An operating system (OS) is a software platform that permits shared (multi-user/multi-program) usage of a computer's hardware resources. Sharing is intended to be "isolated," "secure," and "efficient" by the OS. From the early days of digital computers (in the form of dinosauric mainframes) to the era of workstations and PCs and modern miniature computers in tablets, cell phones, and so on, the operating system has evolved. Although OS technology has changed, its main principles have remained largely unchanged and unaffected by advancements in hardware technology. These "main principles" provide answers to questions like:
This course will focus more on understanding general concepts than discussing specific features of any special operating system. Topics include kernel architectures, process abstraction, process scheduling, system calls, concurrency within the OS, virtual memory management, and file systems.
There will be at least three tricky programming assignments and some theoretical ones dealing with the OS's fundamentals.
Install Ubuntu ASAP, start with the shell (ls, cd, rm, cp, cd, etc.), choose an editor (emacs, gedit, etc.), write some C/C++ code, compile it with gcc, and automate it with make (start with the Lab Tutorial).
It is high recommended to take "The Operating Systems' Lab" concurrently with this course to get the most out of it.
You should also be aware of what a computer program does when it is running.
Operating systems: Three easy pieces, by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, Arpaci-Dusseau Books, 2018
In the event of a special situation, we may consider an online mode for the class.
The lecture notes are available at this address in printable format. It is recommended that you print out the lecture notes and bring them with you to class so you can add notes throughout.
DO NOT put off assignments until the last minute. Start early!
Descriptions of assignments will be made available as the semester progresses.
Assignments release dates and due dates are as follows:
Note that your solutions will be assessed based on their correctness as well as their presentation and justification.
Keep in mind that "Any work you submit must be your own."
If two assignments are judged to be very similar (meaning that we believe they were constructed together), all students involved in the incident will each be penalized by -100 points on their assignment. More serious cases of academic dishonesty, such as cheating on exams or reoccurring offenses, will result in students receiving a severe penalty, such as a fail mark for the course.
You may find this course challenging, so please refrain from committing academic dishonesty in your work if you've ever felt pressured to meet a deadline. Instead, get in touch with your TAs; they are here to assist!
Late Policy:
Important announcements will be emailed to students and posted on the website. Please make frequent mailbox checks.
Here is the contact information for your carefully selected and highly qualified course assistants: