This course will introduce the student to the basic concepts involved in the design and implementation of an operating system. Students will be made familiar to the important modules of operating systems like process management, memory management, file systems, synchronization primitives and exception handling. Important data structures used in the design of these modules will be introduced. The accompanying lab course CS3510 is intended to give students an illustration of the concepts introduced in the theory course.

Learning outcome:

Students will be able to develop an understanding of how an operating functions as a middle layer between the hardware of a computer and the user programs and the various tasks involved in this. By the end of this course, students will be able to appreciate the design issues and concepts underlying some of the well known operating systems and compare the pros and cons of various design options and various issues involved in the design of a large software.

Syllabus

  • Process Management : Scheduling (essential topics: context-switch, unix fork, scheduling algorithms representing fairness, infinite wait, optimal scheduling, priority inversion)

  • Synchronization Primitives and Problems, Deadlocks (essential topics: Peterson’s algorithm, monitors)

  • Memory Management : Virtual Memory, Demand Paging (essential topics: fragmentation, pinning, Belady’s anomaly, thrashing)

  • File systems; I/O Management (essential topics: DMA, delayed writes, elevator algorithm). Security.

Textbook(s)

  1. Operating Systems: A Design-Oriented Approach, Charles Crowley, International edition, McGraw-Hill Education (ISE Editions). ISBN-13 978 0071144629
  2. Operating Systems Concepts, Abraham Silberschatz, Peter B. Galvin and Greg Gagne, Wiley, 2015. ISBN-13: 978-8126554270

Reference(s)

  1. Modern Operating Systems, Andrew S. Tanenbaum, Herbert Bos, Pearson Education India; Fourth edition 2016. ISBN-13:978- 9332575776
  2. Operating Systems: Internals and Design Principles William Stallings, Pearson Education India; 7 edition (2013). ISBN-13: 978-9332518803
  3. Linux Kernel Development (Developer’s Library), Robert Love, Pearson Education India, 3 edition (2010). ISBN-13: 978-8131758182