Operating systems control all of a computer's resources and present users with the equivalent of virtual machines that are easier to program than their underlying hardware. This course is an introduction to basic operating systems concepts including operating systems structures, processes and thread, memory management, and file systems.
The course assumes familiarity with basic computer organization and data structures. You will need to be able to program in C (or C++) in UNIX systems to perform most of the assignments.
Tuesdays and Thursdays 2:00-3:20.
Lectures will be held in 1890 Maple, Room 381.
In compliance with Section 504 of the 1973 Rehabilitation Act and the Americans with Disabilities Act, Northwestern University is committed to providing equal access to all programming. Students with disabilities seeking accommodations are encouraged to contact the office of Services for Students with Disabilities (SSD) at +1 847 467-5530 or firstname.lastname@example.org. SSD is located in the basement of Scott Hall. Additionally, I am available to discuss disability-related needs during office hours or by appointment.
There are a number of communication channels set up for this class:
I will try very hard to give you the grade you deserve. I will use a criterion-referenced method; in other words, your grade will be based on how well you do relative to predetermined performance levels, instead of in comparison with the rest of the class. Thus, if a test has 100 possible points, anyone with a score of 90 or greater will get an A, those with scores of 80 or greater will get a B, those with scores of 70 or greater will get a C, and so on. Notice that this means that if everyone works hard and gets > 90, everyone gets an A.
Total scores (between 0 and 100) will be determined, roughly, as follows:
There will be a midterm and a final exam. Exams will be in-class, closed-book, and will cover materials from lecture, required readings and projects. The final exam will not be cumulative.
There will be two kinds of homework assignments given throughout the class: reading assignments and textbook-style questions. You should have finished the assigned reading before coming to lecture. In addition, there will be a set of written homeworks that must be done alone and turned in at the end of class on the due date (see course policies below).
As you can deduce from the allocation of weights for grading, programming projects make up a major portion of this class. There will be four (4) projects. Except for the first ``warm-up'' assignment that you will work by yourself, all other projects are to be done by teams of two (2) people. Both partners should work cooperatively on the design, implementation, and testing of their solution. You will have to choose different partners for different projects.
Because one has to be an optimist to begin an ambitious project, it is not surprising that underestimation of completion time is the norm.
-- Fernando J. Corbato, ``On Building Systems that Will Fail'', 1990 Turing Award Lecture.
- MOS chap. 1.1-1.3
- P. H. Salus, Unix at 25, Byte 19, pp 75-82, Oct. 1994.
- MOS chap. 1.4
- MOS chap. 1.5-1.7
- MOS chap. 2.1-2.2
- A.D. Birrel. An Introduction to Programming with Threads. Tech. Report, Digital - Systems Research Center, Palo Alto, CA, Jan. 1989
- MOS chap. 2.3-2.4
- MOS chap. 2.5
- MOS chap. 3
- MOS chap. 4.1-4.2
- MOS chap. 4.3-4.5
- MOS chap. 4.6-4.8
- MOS chap. 5.1-5.4 (inclusive)
- MOS chap. 6
- MOS chap. 6.3
- McKusic, M.K., Joy, W.N., Leffler, S.J., and Fabry, R. S., A Fast File System for UNIX, ACM Trans. on Computer Systems, 2(3), pp. 181-197, Aug. 1984.
- Rosenblum, M. and Ousterhout, J.K., The Design and Implementation of a Log-Structured File System, in Proceedings of the 13th Symposium on Operating Systems Principles (SOSP), pp. 1-15, 1991.
- MOS chap. 8
- M. Swift, B. Bershad, H. Levy,Improving the reliability of comodity operating systems, ACM Symposium on Operating Systems Principles (SOSP), Bolton Landing, NY, USA, 2003.
Unless otherwise indicated, homeworks and projects are due by the end of lecture on their due date. If you hand in an assignment late, we will take off 10% for each day (or portion thereof) it is late.
Collaboration is a really good thing and we encourage it. On the other hand, cheating is considered a very serious offense. When in doubt remember that it's OK to meet with colleagues, study exams together, and discuss assignments with them. However, what you turn in must be your own (or for group projects, your group's own) work. Copying code, solution sets, etc. from other people or any other sources is strictly prohibited.