Recommended Textbooks
- Operating Systems: Principles and Practice, Tom Anderson and Mike Dahlin, Beta Version .
- Operating Systems Concepts, 8th ed., Abraham Silberschatz, Peter Galvin and Greg Gagne, John Wiley & Sons, ISBN 978-0470128725, student materials .
- 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 or EE 360 or EE 264
Objectives
- Give students an overview of the major concepts in modern operating 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
Grading
Tentative grade breakdown:- 25% Midterm
- 25% Final
- 25% Programming Assignments
- 25% Lab
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.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!!!Additional information about rights, obligations and procedures related to academic integrity can be found in Section IV of Clarkson's official regulations.