Recommended Textbooks
- Operating Systems: Three Easy Pieces , Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau.
- The C Programming Language, ANSI C, 2nd ed., Kernighan and Ritchie, Prentice Hall, 1988, ISBN 110362-8.
Description
This course is an introduction to the concepts of operating systems, their structures and organization. Major topics include process management (asynchronous processes, interprocess communication and synchronization, multithreading, deadlock and starvation, scheduling), storage management (paging/segmentation, virtual memory, file systems), protection and security issues, and an introduction to distributed systems. To demonstrate these concepts, case studies of operating systems will be presented, and a programming project will be an integral part of the course.Prerequisites
CS 344CS 241
Objectives
- Give students an overview of the major concepts in modern operating systems including process management (asynchronous processes, interprocess communication and synchronization, multithreading, deadlock and starvation, scheduling), storage management (paging/segmentation, virtual memory, file systems), protection and security issues, and an introduction to distributed systems
- Expose students to the historical development of operating systems
- Expose students to several major operating systems and the APIs they provide to the programmer
- Provide hands-on experience with systems programming and operating system implementations
Outcomes
- Students will understand the major components of modern operating systems including include process management (asynchronous processes, interprocess communication and synchronization, multithreading, deadlock and starvation, scheduling), storage management (paging/segmentation, virtual memory, file systems), protection and security issues, and an introduction to distributed systems.
- Students will understand how operating system concepts are implemented
- Students will be exposed to the historical development of operating systems
- Students will understand how applications interact with the operating system and each other
- Students will be able to use a variety of user level tools to monitor the behavior of operating systems
- Students will be familiar with the programming APIs of both Windows and Linux/UNIX
- Students will be able to write multi-threaded code
- Students will gain practical experience with locking and deadlock prevention
- Students will complete programming intensive projects covering aspects of operating system implementation
Grading
Tentative grade breakdown:- 15% Tests (Midterm(s))
- 25% Final (20-25% Online/ 0-5% Personal Interview)
- 20% Programming Assignments
- 10% Multiple Choice Question Writing and Other Homework Assignments
- 15% Lab (Attendance, Lab Assignments, Open Forums)
- 10% Project
- 5% Class Participation including participation in lectures and online forums
Attendance Policy/Late Policy
I expect students to attend each class. We will doing hands-on exercises and labs throughout the semester. If you must miss a class, please make arrangements ahead of time or if the absence is unexpected then make an appointment to discuss it with me as soon as possible. Attendance can be used as a mitigating factor in computing grades.I do not plan on accepting late work for credit. If you complete an assignment late, you may submit it with a written note explaining the circumstances. If I have not completed the grading, I will grade your work, but the score will be recorded as a zero.
I will however keep a special folder with the explanatory notes you have written and possibly the score that would have been assigned if the work was submitted on time. At the end of the semester, before assigning final grades, I will read through all the notes in the folder one more time and consider reinstating or dropping the score for that assignment if it was an isolated incident and if it would indeed have changed the final grade.
Academic Integrity
All work you submit must be your own individual work unless explictly indicated. In particular, work taken from books, the Internet, other students or any other source may not be submitted as your own. You are always better to err on the side of acknowledging sources and collaborations!!!It is also an academic integrity violation for you to give your work to others. This includes sharing materials privately as well as making assignments available in Github or other public repositories.
Additional information about rights, obligations and procedures related to academic integrity can be found in Section IV of Clarkson's official regulations.