CSCI 4630, Spring 2000
Last modified: 5/1/00
The final exam is Monday, May 8 from 2:00-4:00.
Quizzes
Syllabus
This is a course on the foundations of operating systems.
Please see the
syllabus for details.
Assignments
- Due Wednesday, Jan 19.
Exercises 1.5, 1.10, 2.3, 2.5, 2.9 in
the text. Please give clear and concise answers. Turn in at the
beginning of class.
- Due Wednesday, Jan 26.
Exercises 3.5, 3.9, 3.11.
- Due Wednesday, Feb 2. Exercises 4.2, 4.4, 4.6 and 4.8.
Please give concise answers.
- Due Wednesday Feb 16. Exercises 5.2, 5.3, 5.5, 5.8.
- Due Wednesday Feb 23. Exercises 6.1, 6.3, 6.7. (Exercise 6.3 will
take considerable thought, and the answer will not be short. Try to
distill the answer the best that you can, and make it as convincing
as you can. You might ask a classmate whether he or she is convinced
by your argument.)
- Due Monday, Feb. 28.
Programming assignment 1.
- Due Wednesday, Mar. 1. Homework set 6.
- Due Wednesday, Mar. 22. Programming
assignment 2.
- Due Monday, Apr 10. Programming
assignment 3.
- Due Wednesday, April 19. Programming
assignment 4.
Summary of material covered
- Jan 10. We discussed the syllabus and the history of operating
systems. This material is in sections 1.1-1.8 of Silberschatz
and Galvin.
- Jan 12. We discussed material from sections 2.1-2.6.
- Jan 17. We discussed material from Chapter 3. The most
important thing is the design of an operating system in layers,
with the more basic services being provided at the lower layers.
- Jan 24. We discussed material from Chapter 3 on virtual machines,
and then began discussing processes. Chapter 4 discusses processes.
We introduced the POSIX fork system call, which creates a new process.
- Jan 26. We used the fork, execv and wait system calls to
make a parent process create a child that runs another program.
The parent waited for the child to finish. We also looked at an
example where the parent did not wait for the child to finish.
The system calls are:
- fork()
- Create a new child process that is nearly identical to the parent.
Return the process number of the child process to the parent, and
return 0 to the child.
- wait(v)
- Wait until a child process has terminated. Store into memory
address v the status value returned by that child, and return from
wait the process number of that child.
- execv(cmd,argv)
- Replace the current program by the program in file cmd. argv is
an array of strings giving the command line, with argv[0] being the
name of the command itself. The last member of argv must be a null
pointer.
We also discussed interprocess communication. Three modes of communication
are
- Shared memory.
- Message passing.
- Files and pipes.
- Jan. 31. We finished discussing Chapter 4 of the text.
We discussed threads. We covered more on methods of communication,
including message passing with mailboxes (as in Mach), rendezvous,
and remote procedure call (as in Windows NT).
- Feb 2. We discussed material on scheduling from Chapter 5,
including the role of the scheduler (which determines scheduling
policy) and various scheduling policies, including
first-come-first-serve, shortest-job-first, shortest-remain-time-first
and priority methods.
- Feb 7. We had quiz 1. We continued looking at Chapter 5
on scheduling.
- Feb 9 We began Chapter 6 on process synchronization.
- Feb 14. We had a second attempt at quiz 1.
We continued looking at Chapter 6 on process synchronization, and
examined solutions to the critical section problem.
- Feb 16. We discussed more material from Chapter 6 on
process synchronization. We looked at semaphores and implementations
of semaphores.
- Feb 21. We completed material from Chapter 6. We discussed
synchronization mechanisms in programming languages, including
critical regions, monitors and synchronized methods in Java.
- Feb 23. We discussed deadlock, deadlock detection, avoidance and
recovery. This material is in Chapter 7.
- Feb 28. We finished deadlock detection and prevention, and
began material on memory management from Chapter 8.
- Mar 1. We had quiz 2. We discussed memory management, from contiguous
allocation strategies to the beginning of virtual memory.
- Mar 6. The quizzes were handed back.
We began discussing virtual memory, including the page table and the
need for the implementation of the page table to be very fast.
- Mar 8. We continued with Chapter 8 on the memory.
- Mar 13--17. Spring break.
- Mar 20. We began Chapter 9, on virtual memory.
- Mar 22. We finished Chapter 9.
- Mar 27. We began Chapter 10 on the file system.
- Mar 29. We had quiz 3 and finished Chapter 10 on the file system.
- Apr 3. The quizzes were handed back.
We covered Chapter 11, on file system storage. Assignment in Ch. 10,
due Apr. 10: 10.5, 10.11, 10.12. Also, answer the following question.
Solaris 2 stores the /tmp directory in the same disk partition that
is used to store virtual memory. Comment on the advantages and
disadvantages of doing that.
- Apr 5. This course will not cover the material in Chapter 12.
Today, we begin Ch. 13 on managing disks.