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

Bill Stallings. Operating Systems: Internals and Design Principles. Prentice-Hall , Englewood Cliffs, NJ. 2017.
Robbins/Robbins. Unix Systems Programming -- Communication, Concurrency, and Threads. Prentice-Hall. 2003.

Course Description

This course covers the structure of a generic operating system, considering in detail the algorithms for interprocess communications, process scheduling, resource management, memory management, file systems, and device management. Presents examples from contemporary operating systems. This course also requires practical projects implemented within a modern operating system or simulator environment.


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):


At the end of this course, you are expected to be able to proficiently perform system programming tasks. You should also be knowledgeable in different operating systems topics as outlined above. You should understand the algorithms to achieve various tasks in operating systems and use the knowledge to improve the performance of your programs.

Email Requirements

All correspondence shhould be made through your UMSL-provided email. Please use the class email list on Canvas for communications with other students in the class. Any unsigned email and email not in plain text will go unanswered by me. Please do no send me any attachments without talking to me first.


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. 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. 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. 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
Anyone desiring an EXC grade after October 31, 2017 must be passing the course at that point to get EXC.

Failure to hand in any assignment will result in an automatic zero for that assignment. If some student is unable to hand in an assignment by the deadline, he/she must discuss it with me before the deadline. I'll encourage you to talk to other students regarding homework but you should not collaborate to the extent that two submissions are copies of each other. If you are found copying an assignment (from another student or internet), or if your submission has unreasonable similarity to another submission, you get a zero for that assignment automatically. A second offense will be reported to the University officials and students involved will face serious consequences. I may ask you to come to my office and explain your code to me; in case you are not able to explain the code to my satisfaction, I'll assign you a zero in that project.

The projects in this class will take up a lot of your time. So, you should start working on those as soon as they are assigned. In the past, the students who have asked a lot of questions have scored better grades. Do not hesitate to ask a question in class, in my office, or over email, especially if you do not have an idea on how to start working on the project.


If you have any disability that requires an accommodation (as per UMSL policy), you must notify me in advance. If you cannot attend the class due to a religious holiday or a university-sanctioned event, please let me know in advance as well. For religious holiday, please also fill in this form. In case you are down with flu, stay absent from the class till you recover, and contact me via phone or email. I'll try my best to make accommodation for you in that case.

You will have an account on the Linux machine in the CS department and you should use it for all assignments. All programs must be done in C. Any assignment that fails to run on hoare automatically gets a zero. You can access hoare from home by signing on to campus VPN, or by logging on to admiral and then, ssh'ing from there.

Please use the class email list on MyGateway for communications. Any unsigned email and email not in plain text will go unanswered by me. Please do not send me any attachments without talking to me first.

Exam Dates

Test 1 September 25, 2017
Test 2 November 01, 2017
Test 3 December 06, 2017

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 the scheduled date, the alternative date will be the day after the scheduled date; possibly in the conference room in the department.

Other important dates

August 27, 2017 Last day to enroll in the course
September 18, 2017 Last day to drop without receiving a grade
November 13, 2017 Last day to drop the course with instructor approval

UMSL Course Policies

Participation (expectations)

Academic Integrity/Plagiarism

Mandatory Reporting

Access, Disability and Communication

Student Support and Services

Technical Support

Academic Support

Student Services

Departmental Tutoring

OS-related links