This syllabus has been revised in the recent past with the course number being the same.
Showing the latest revision in section Curriculum 2022. The earlier version is in section Curriculum 2017.

Curriculum 2022

Prerequisite (if any): Foundations of Computing Systems, Systems Programming, Data Structures and Algorithms, Data Structures and Algorithms Lab, Operating Systems Lab (prerequisite/corequisite)

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

UNIX System Calls, Shell, Privileged Instructions, Interrupt handling (6 lectures)

Process Management - Processes and Threads, Scheduling (context-switch, scheduling algorithms, fairness, infinite wait, optimal scheduling, priority inversion) (9 lectures)

Inter-process communication, Synchronization Primitives, Deadlocks (9 lectures)

Memory Management: Virtual Memory, Demand Paging (9 lectures)

File systems: I/O Management, Security. (9 lectures)

Learning Outcomes

  1. Understand how an operating system functions as a middle layer between the hardware of a computer and the user programs and the various tasks involved in this.

  2. Appreciate design issues and concepts underlying some of the well known operating systems.

  3. Compare pros and cons of various design options and issues involved in designing an operating system.

Text Books

  1. Modern Operating Systems, Andrew S. Tanenbaum, Herbert Bos, Pearson Education India; Fourth edition 2016. ISBN-13:978- 9332575776

References

  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

  3. Operating Systems: Internals and Design Principles William Stallings, Pearson Education India; 7 edition (2013). ISBN-13: 978-9332518803

  4. Linux Kernel Development (Developer's Library), Robert Love, Pearson Education India, 3 edition (2010). ISBN-13: 978-8131758182

Curriculum 2017

Learning Objectives

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 Outcomes

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

  1. Process Management : Scheduling (essential topics: context-switch, unix fork, scheduling algorithms representing fairness, infinite wait, optimal scheduling, priority inversion;
  2. Synchronization Primitives and Problems: Deadlocks (essential topics: Peterson's algorithm, monitors);
  3. Memory Management: Virtual Memory, Demand Paging (essential topics: fragmentation, pinning, Belady's anomaly, thrashing);
  4. 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

Metadata

Proposing Faculty: Department: Computer Science and Engineering Programme: B.Tech Proposing date: Approved date: Proposal type: Offerings: