diff options
| -rw-r--r-- | doc/assignment1.md | 86 |
1 files changed, 43 insertions, 43 deletions
diff --git a/doc/assignment1.md b/doc/assignment1.md index 6824f8c..c15337d 100644 --- a/doc/assignment1.md +++ b/doc/assignment1.md @@ -8,61 +8,61 @@ Instructions: Please answer the following questions in complete sentences. Your 1. Define the concepts interrupt and trap, and explain the purpose of an interrupt vector. - An interrupt vector is a list or table of interrupts. Each interrupt has an - address to the interrupt routine to execute when the interrupt is signaled. - A trap is a way to capture a triggered signal to allow programs to respond to - and handle the signal. - - Signals can be sent to a particular process via the `kill` program. - A list of signals that can be sent are listed below: - - ```bash - モ kill -L - 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP - 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 - 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM - 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP - 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ - 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR - 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 - 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 - 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 - 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 - 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 - 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 - 63) SIGRTMAX-1 64) SIGRTMAX - ``` + An interrupt vector is a list or table of interrupts. Each interrupt has an + address to the interrupt routine to execute when the interrupt is signaled. + A trap is a way to capture a triggered signal to allow programs to respond to + and handle the signal. + + Signals can be sent to a particular process via the `kill` program. + A list of signals that can be sent are listed below: + + ```bash + モ kill -L + 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP + 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 + 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM + 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP + 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ + 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR + 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 + 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 + 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 + 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 + 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 + 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 + 63) SIGRTMAX-1 64) SIGRTMAX + ``` Programs can also trap a signal and handle them. In the following example the Ruby program is trapping the `SIGUSR1` signal to reload a configuration file. - ```ruby - #!/usr/bin/env ruby + ```ruby + #!/usr/bin/env ruby - pid = fork do - Signal.trap("USR1") do - puts "done" - exit 0 - end + pid = fork do + Signal.trap("USR1") do + puts "done" + exit 0 + end - loop do - print "." - sleep 1 + loop do + print "." + sleep 1 + end end - end - Process.detach(pid) - sleep 5 - Process.kill("USR1", pid) - ``` + Process.detach(pid) + sleep 5 + Process.kill("USR1", pid) + ``` When this program is run it will print a '.' 5 times then exit - ```bash - モ ruby lib/sigtrap.rb - .....done - ``` + ```bash + モ ruby lib/sigtrap.rb + .....done + ``` 1. How does a computer system with von Neumann architecture execute an instruction? |
