0% found this document useful (0 votes)
85 views5 pages

OS Syllabus 2024

Uploaded by

pes1202203594
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
85 views5 pages

OS Syllabus 2024

Uploaded by

pes1202203594
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Computer Science and Engineering (UG)

UE21CS242B: Operating Systems (4-0-1-4-4)

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.

Desirable Knowledge: UE21CS252A - Data Structures and its Applications.

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

Unit 2 : IPC, Threads and Concurrency – 14 hours


IPC – Introduction, Shared Memory systems, Message Passing, Communication in Client–Server Systems- Pipes,
ordinary pipes and named pipes, system calls for shared memory, pipes and fifo’s.
Threads: Overview, Multicore Programming, Multithreading Models, Thread Libraries, Thread Scheduling.
Process Synchronization: Background, The Critical-Section Problem, Peterson’s Solution, Synchronization
Hardware, Mutex Locks, Semaphores, Classic Problems of Synchronization- The Bounded-Buffer Problem, The
Readers–Writers Problem, The Dining-Philosophers Problem, Synchronization Examples- Synchronization in
Linux. System calls for threads creation and synchronization-POSIX Threads.
Deadlocks: System Model, Deadlock Characterization, Deadlock avoidance, Banker’s Algorithm, Deadlock
Detection.

Unit 3: Memory Management – 14 hours


Main Memory: Background- Basic Hardware, Address Binding, Logical Versus Physical Address Space, Dynamic
Loading, Dynamic Linking and Shared Libraries, Swapping, Contiguous Memory Allocation, Segmentation,
Paging, Structure of the Page Table.
Virtual Memory: Background, Demand Paging, Copy-on-Write, Page Replacement Algorithms-FIFO, LRU,
Optimal, Allocation of Frames, Thrashing.

Unit 4 : File and Storage Management – 14 hours


File-System Interface: File Concept, system calls for file operations-open(), read(),write(), lseek(), close() and
system call to retrieve file attributes and file types-stat(), lstat(), Access Methods, Directory and Disk Structure,
system calls for reading directories, system calls to create hard links (link()) and symbolic links-symlink().

Handbook of Instructions Scheme and Syllabi 2021-22 1


Computer Science and Engineering (UG)

File-System Implementation: File-System Structure, File-System Implementation, Directory Implementation,


Allocation Methods, File Sharing, Protection.
Storage management: Overview of Mass-Storage Structure, Disk Scheduling, Swap-Space Management, RAID
Structure.
System Protection: Goals, Principles and Domain of Protection, Access Matrix, Implementation of the Access
Matrix, Access Control
Shell programming - awk, sed

Tools/Languages/OS : C, Linux/Unix OS for system call implementation.

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

Handbook of Instructions Scheme and Syllabi 2021-22 2


Computer Science and Engineering (UG)

Lesson Plan

Chapter Reference % of Portions Covered


Class
Title/Reference Topics to be covered Reference
# Cumulative
Literature Chapter
What Operating Systems Do, T1: 1.1 - 1.2
1 Computer-System Organization
Computer-System Architecture, T1: 1.3 - 1.5
2 Operating-System Structure &
Operations
Kernel Data Structures, Computing T1: 1.10 -
3 Environments 1.11
Operating-System Services, T1: 2.1 - 2.6
4 Operating System Design and
Implementation
Lab 1 - Creation of Linux VM,
installation of C compiler, creation
5 of a sample program, Linux shells,
basic Linux commands
6 Process concept: Process in T1: 3.1 - 3.3
memory, Process State, Process
7 Control Block, Process Creation
and Termination
System calls for process T2: 8.1 –
8 Unit: 1 management 8.10
Lab 2 - Demonstration of process
9 25 25
Introduction and management system calls
Process Management CPU Scheduling: Basic Concepts,
10 Scheduling Criteria
T1: 6.1, 6.2
Scheduling Algorithms:
First-Come, First-Served
11 Scheduling, Shortest-Job-First
T1: 6.3
Scheduling
Scheduling Algorithms: Priority
12 Scheduling, Round-Robin T1: 6.3
Scheduling
Lab 3 - Demonstration of process
13 scheduling algorithms
Multi-level Queue, Multi-Level
14 Feedback Queue Scheduling
T1: 6.3

15 Case Study: Linux Scheduling T1: 6.7


Overview of bash shell
16 programming – variables,
control flow, cron
Programming exercise on
17
process management
IPC: Shared Memory & Message
18 Passing, Pipes-Named and T1: 3.4, 3.6
Ordinary
Unit : 2 System calls for shared memory,
19 pipes and FIFOs
T2: 15
Lab 4 - Demonstration of shared
20 IPC, Threads and memory, pipes and FIFOs system 25 50
Concurrency calls
Introduction to Threads, types of
21 threads, Multicore Programming.
T1: 4.1, 4.2
Multithreading Models, Thread
22 creation, Thread Scheduling
T1: 4.3, 6.4

Handbook of Instructions Scheme and Syllabi 2021-22 3


Computer Science and Engineering (UG)

Thread libraries, Pthreads and


23 Windows Threads
T1: 4.4

24 Lab 5 - Demonstration of threads


Mutual Exclusion and
25 Synchronization: software T1: 5.1-5.3
approaches
Principles of concurrency,
26 hardware support
T1: 5.4

27 Mutex Locks, Semaphores T1: 5.5-5.6


Classic problems of
Synchronization: Bounded-Buffer
28 Problem, Readers -Writers T1: 5.7
problem, Dining Philosophers
Problem concepts
29 Synchronization Examples T1: 5.9
30 Deadlocks: principles of deadlock,
T1: 7.1, 7.2
31 Deadlock Characterization
Deadlock avoidance, Banker’s
32
Algorithm
Lab 6 – Demonstration of mutex,
33 semaphores, deadlocks
Programming exercise on inter
34
process communication
Main Memory: Hardware and
control structures, OS support,
35 Address translation, Dynamic T1: 8.1
Loading, Dynamic Linking and
Shared Libraries
Swapping, Memory Allocation
36 (Partitioning, relocation), T1: 8.2-8.3
Fragmentation
37 Segmentation T1: 8.4
38 Paging T1: 8.5
39 Structure of page tables T1: 8.6
Unit :3 Example: Intel 32 and 64-bit
40 Architectures
T1: 8.7
25 75
41 Memory Management Virtual Memory – Demand Paging T1: 9.1, 9.2
42 Copy-on-Write T1: 9.3
43 Page replacement T1: 9.4
44 Allocation of frames T1: 9.5
45 Thrashing T1: 9.6
Lab 7 – Demonstration of page
46 replacement algorithms
Case Study: Linux/Windows
47 Memory
T1: 9.10

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

Handbook of Instructions Scheme and Syllabi 2021-22 4


Computer Science and Engineering (UG)

System calls for reading T2: 4


53 directories, create hard links and
symbolic links
T1:
54 File system implementation
12.1-12.2
Directory implementation, T1:
55 allocation methods 12.3-12.4
56 Free-Space Management T1: 12.5
57 Efficiency and Performance T1: 12.6
58 Case study: Linux T1: 12.9
59 Lab 8 - Demo of file operations
Programming exercise on file
60
management
Mass storage structure, Disk T1:
61 Structure 10.1-10.3
Disk scheduling, Disk Management T1:
62 10.4-10.5
63 Swap-Space Management, T1: 10.6
64 RAID Structure T1: 10.7
System Protection: Goals,
T1:
65 Principles and Domain of
14.1-14.3
Protection
Access Matrix, Implementation of T1: 14.4
66 the Access Matrix -14.5
Access Control, Revocation of T1:
67 Access Rights 14.6-14.7
68 System calls for access control T2: 6
69 Case Study: Windows, Linux
Lab 9 - Demonstration of access
70 control, awk, sed
Programming exercise on
71
access control
72 Project review

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

Total = 100 (#2 + #3 + #4 = 60, scaled down to 10)

Handbook of Instructions Scheme and Syllabi 2021-22 5

You might also like