OS Syllabus 2024
OS Syllabus 2024
This course focuses on fundamental operating systems concepts including various algorithms and trade-offs for
efficient management of resources such as CPU, Memory, Storage and I/ O. This course requires the student to
have a desirable knowledge of Data Structures and its Applications.
Course Objectives:
● Focus on fundamental Operating System concepts.
● Provide an understanding of various components of the Operating System (OS).
● Delve deeper into various algorithms and associated trade-offs for efficient resource management such as
process, disk, and memory management.
● Introduce design principles and trade-offs in the design of Operating Systems.
Course Outcomes:
At the end of the course, the student will be able to:
● Understand the principles and modules of Operating Systems.
● Understand the design of various algorithms for scheduling and their relative performance.
● Understand the concept of Deadlocks that typically occur in OS. Deadlocks - Avoidance and Detection.
● Implement Operating Systems Concepts related to process management, Concurrent processes, Threads
and Memory Management.
Course Content:
Unit 1 : Introduction and Process Management – 14 hours
What Operating Systems Do, Operating-System Structure & Operations, Kernel Data Structures,
Operating-System Services, Operating System Design and Implementation.
Shell programming: Overview of bash shell programming – variables, control flow
Processes: process concept, Process Scheduling, Operations on Processes, System calls for process
management-fork (), vfork (), wait () and exec ().
CPU Scheduling: Basic Concepts, Scheduling Criteria, Scheduling Algorithms. Case Study: Linux Scheduling
Policies.
Shell programming - cron
Text Book(s):
1. “Operating System Concepts”, Abraham Silberschatz, Peter Baer Galvin, Greg Gagne 9th Edition, John
Wiley & Sons, India Edition ,2016.
2. “Advanced Programming in the Unix Environment”, Richard Stevens and Stephen A Rago, Pearson, 3rd
edition, 2017.
Reference Book(s):
1. “Operating Systems, Internals and Design Principles”, William Stallings, 9th Edition, Pearson, 2018.
2. “Modern Operating Systems”, Andrew S Tanenbaum, 3rd edition, Pearson, 2007.
3. “Learning the bash shell”, Cameron Newham, 3rd edition, O’Reilly, 2005
Lesson Plan
Programming exercise on
48
virtual memory management
T1: 11.1,
49 File Concept
11.2
Access Methods, Directory and T1: 11.3
50 Unit : 4 Disk Structure
51
File-System, sharing, File system T1: 11.4, 25 100
File Management protection 11.6
System calls to retrieve file
and System Protection
52 attributes, file types and file T2: 4
operations
Project:
Refer to Chapter 2 in the text book (T1) for creating Linux kernel modules. Execute a program that will create
multiple processes/threads (children and siblings). While this task is executing, output the task name (known
as executable name), state and process id of each thread created by the process in a tree structure.
Example: my_kernel_module <process id of the program executing>
Experiential learning:
Enrol for the online course “Introduction to Linux”. Choose the “Audit Track” option and successfully complete
the course. A quiz will be held at the end of the semester on the topics covered in the course
Course: https://www.edx.org/learn/linux/the-linux-foundation-introduction-to-linux
Evaluation scheme:
1. ISA: 2 x 20 = 40
2. Programming exercises (in class scheduled after the completion of each unit): 10 x 4 = 40
3. Project = 4
4. Experiential learning = 16
5. ESA = 50