Prerequisites
Cmp Sc 2700, Cmp Sc 2750, and Cmp Sc 3130

Textbooks
Bill Stallings. Operating Systems. Prentice-Hall , Englewood Cliffs, NJ. 2015.
Michael Kifer and Scott Smolka. OSP: An Environment for Operating Systems Projects. Addison-Wesley, 1991.
Robbins/Robbins. Unix Systems Programming -- Communication, Concurrency, and Threads. Prentice-Hall. 2003.

/objectives

We'll discuss the structure of a generic operating system, with an emphasis on the algorithms and data structures needed to perform various tasks to manage processes, resources, memory, files, and I/O devices. There will be \emph{extensive} programming in C under Linux environment. The sequences of topics will be as follows (in that order):

/policy

I'll expect you to be present in most of the classes. I will not be taking attendance but if you start missing too many classes, please take responsibility for your absence, specially when it concerns tests and homeworks. When you come to class, you must change your cell phones to silent mode. If your cell phone rings during the test, I'll deduct 10% points from that test score for you.

If you are more than ten minutes late, please try to not disrupt the class. I'll penalize you by one letter grade for habitually coming late to class (more than five times I notice you coming late or leaving early).

The grade will be based on programming assignments and three tests. Each assignment must be meticulously documented and clearly identify its purpose, author, and date. I will like to read your submitted code; I should not have to figure it out. It will do you good if you peruse the Gnu Coding Standards. When you come to me for help with the code, or when you submit the code, make sure that you follow good indentation practices.

All tests will be open book and open notes but no electronic devices will be permitted. Tests are non-comprehensive but may have a small overlap of material from one test to next. If you miss any test or assignment without making prior arrangements, you will have a zero. When making such arrangements, please stop by my office instead of sending me an email. I will not give any make up tests. The distribution of grades will be as follows:

Programming assignments 40%
Three tests 20% each

/exam_dates

Test 1 February 18, 2015
Test 2 April 01, 2015
Test 3 May 06, 2015

There is no final exam. In case of class cancellation due to weather-related or other campus emergency on the day of a test, the test will be held in the following class period. For the third test, if the campus is closed on May 06, the alternative date will be the May 07, 2015, possibly in the conference room in the department.

Other important dates

January 28, 2015 Last day to enroll in the course
February 16, 2015 Last day to drop without receiving a grade
April 20, 2015 Last day to drop the course with instructor approval
Anyone desiring an EXC grade after March 31, 2015 must be passing the course at that point to get EXC.

/etc

OS-related links