Assignments are due at the beginning of class on the due date.
Assigned Monday 9/12, due Monday 9/19. Please submit your source code via HSP.
Write a Linux program that creates a child process, after which the following steps take place indefinitely.
On Wednesday, I'll talk in class about shared memory. You can get started before then by leaving out step 2 and the "user's string" part of step 4.
You'll need to use several system calls, including (but not necessarily limited to) fork, signal, kill, and shmget.
Assigned Monday 9/19, due Monday 9/26, on paper. Problems 7, 16, 21, 22, 28, 32, 38, 40, 43, and 45 from chapter 2.
Assigned Tuesday 9/27, due 5:00PM Monday 10/3. A little command shell.
Assigned Monday 10/10, due Friday 10/14, on paper. Problems 2, 8, 12, 13, 16, 29, and 34 from chapter 4.
Assigned Wednesday 10/26, due Wednesday 11/2, on paper. Problems 7, 9, 12, 16, 19, and 20 from chapter 3.
Assigned Wednesday 10/26, due Monday, 11/7. Add the following to the kernel:
Test the new system call by collecting enough data to determine the average quantum length over a period of ten seconds. Try this under varying conditions (e.g. minimal load, with even X-windows shut off, or heavy load, with some long CPU-intensive program running).
Hand in hard copies of all the code you add to the kernel, along with the program you write to test your new system call. Also, hand in a summary and brief (one or two paragraphs) discussion of your quantum length observations.
9/12. Look at the Unix manual pages for the system calls read(), write(), fork(), exec(), signal(), getpid(), getppid(), wait(), and kill(). For system calls like kill() for which there is also a Unix command with the same name, you'll need to specify the manual section number to get the documentation you need. For example, to get the manual page for kill(), you type "man 2 kill".
9/12. Read Chapter 1 of Tanenbaum.
9/14. Read Chapter 2 of Tanenbaum.
9/26. Read Chapter 4 of Tanenbaum.
10/10. Read Chapter 6 of Tanenbaum.
10/24. Read Chapter 3 of Tanenbaum.