Operating Systems, CMSC 421 Section 101

Tentative Spring 1997 Course Syllabus

Course Goals

The goal of this course is to give students a good introduction to the fundamentals of both the theory and practice of modern operating systems. The 101 section has switched to Tanenbaum and Woodhull's new "Minix"-based text. Minix is a sort of "baby unix" operating system designed for instructional purposes, simple enough to be covered in a semester but complex enough to illustrate real systems principles and practice, and will give us valuable and badly-needed "hands-on" experience and examples. The popular Linux operating system was derived from an earlier version of Minix.

Course Outline

        Chapter 1.    Introduction         2 weeks
        Chapter 2.    Processes            3 weeks
        Chapter 3.    Input/Output         3 weeks
        Chapter 4.    Memory Management    3 weeks
        Chapter 5.    File Systems         3 weeks
The above times are only estimates, since this is a new text.

Grading

"Points" are given for projects, exams, homework, and class participation, with your final grade depending on the total number of points you have accumulated. All points carry the same weight. Tentatively, points will be divided up as follows.

         Projects                200  points
         Exercises               100  points
         Midterm Exam            100  points
         Final Exam              100  points
	 Class Participation      20  points
         -------------------     -----------
         Total                   520  points
There will probably be two moderate-sized projects, to be done in C, and some of the "exercises" may be short projects. The moderate-sized projects will be assigned at least three weeks before they are due. There are no extensions of project due dates, though at the instructor's option partial credit may be given for late work. No incompletes will be given except as required by university policy for truly exceptional circumstances. General information about programming projects is available, and more detailed information will be provided with individual assignments.

The midterm exam should come towards the end of Chapter 3, the chapter on I/O, and the final exam will cover the remaining material and will not be explicitly cumulative, though the material in the latter chapters in not entirely independent from that in the former. In addition to projects and exams, there will be four or five homework assignments or short projects, one every two or three weeks. Students are encouraged to ask questions both in class and during office hours, though to a large extent "class participation" consists simply of showing up and being reasonably well behaved, and in particular in not disrupting class for others.

Hardware

Minix can be run on almost any Intel-based 80x86 machine, and both 16 and 32-bit versions are available. For those without even an old PC, we have arranged for access to PCs in the circuits lab. In addition, the Bochs 80386 PC-emulator can run Minix (and also DOS and early versions of Windows) on any sufficiently fast Unix X-windows system, though the emulated system will necessarily run relatively slowly.

Further Information

Course material, including class announcements, project and homework assignments, a list of due dates, and a partial set of lecture notes are available online at the URL http://umbc.edu/~motteler/teaching/os/os.html .