CS 370-Operating Systems
CS 370-Operating Systems
Instructor: Atif Alvi Office & Email: Room 9-120A (CS Deptt), [email protected] Office Hours: To be announced Year: 2011-12 Semester: Fall Category: Junior
CS 370 Operating Systems (4 Credit Hours) An operating system is an intermediary between the user and computer hardware. By managing disparate hardware resources, an OS shields user programs from the complexities of individual hardware devices and issues such as concurrency and failure. The user gets an abstraction of hardware resources, which is convenient to use and allows for efficient utilisation of these resources. This course provides an opportunity to learn about operating systems both theoretically and practically. Core for Computer Science majors CS 202 Data Structures
Core/Elective Pre-requisites
Goals Material
The objective of this introductory course is to teach the core concepts and principles of the design and implementation of operating systems. Textbook: Silberschatz, Galvin and Gagne, Operating System Concepts, John Wiley & Sons Inc., 8th Edition, 2008. Reference Books: Tanenbaum, Modern Operating Systems, Prentice Hall Inc., 3rd Edition, 2008. Nutt, Operating Systems, Addison Wesley, 3rd Edition, 2004. Stallings, Operating Systems: Internals and Design Principles, Prentice Hall, 6th Edition, 2008.
Quizzes may be announced or unannounced. Assignments will be in C/C++ and Linux environment. Assignments are individual; however, you can discuss them with your colleagues. Please see Student Handbook for detailed information on what constitutes cheating and plagiarism.
Additional Details
Course website will serve as a primary tool for organisation of additional reading material, web links and other information related to the course. While doing any correspondence with the instructor or TAs using email, please use CS370 at the start of the subject line of your email.
Class Schedule Each lecture is 100 minutes; Total 28 sessions, including Midterm
Sessions 1.5 1.5 2 2 2 3 3 1 2 2 2 2 2 2 Topic Introduction (What is an OS, Grand tour of OS Concepts) Operating-System Structures (OS services, User interfaces, System calls, OS design, etc.) Processes (Scheduling, IPC, etc,) Threads (Multithreading models, Thread libraries, Threading issues, etc.) CPU Scheduling (Scheduling criteria, Algorithms, Thread scheduling, etc.) Process Synchronization (Critical-section, Synchronization hardware, Semaphores, etc.) Deadlocks (Prevention, Avoidance, Detection, etc.) Midterm Main Memory (Swapping, Contiguous memory allocation, Paging, etc.) Virtual Memory (Demand paging, Page replacement, Thrashing, etc.) File-System Interface (Access methods, Directory structure, Mounting, Sharing, etc.) File-System Implementation (File-system implementation, Directory implementation, Allocation methods, Free space management, etc.) Mass-Storage Structure (Disk structure, Management, Scheduling, etc.) I/O Systems (I/O Hardware, Application I/O interface, Kernel I/O subsystem, etc.)
(Silberschatz)
Reading Ch. 1 Ch. 2 Ch. 3 Ch. 4 Ch. 5 Ch. 6 Ch. 7 Ch. 8 Ch. 9 Ch. 10 Ch. 11 Ch. 12 Ch. 13