0% found this document useful (0 votes)
17 views4 pages

BITS Pilani CS F372 Operating Systems Course

valuable to college students
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)
17 views4 pages

BITS Pilani CS F372 Operating Systems Course

valuable to college students
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

Birla Institute of Technology & Science, Pilani

Hyderabad Campus

ACADEMIC— UNDERGRADUATE STUDIES DIVISION

FIRST SEMESTER, 2025–2026


Course Handout Part II

Date: 1st August 2025


In addition to part I (General Handout for all courses appended to the Timetable), this portion gives
further specific details regarding the course.

Course No : CS F372
Course Title : Operating Systems
Instructor-in-Charge : Dipanjan Chakraborty
Instructors : Barsha Mitra

1. Course Description:

Introduction to operating systems; Various approaches to design of operating systems; Overview


of hardware support for operating systems; Process/thread management: synchronization and
mutual exclusion, inter process communication, CPU scheduling approaches; Memory manage-
ment: paging, segmentation, virtual memory, page replacement algorithms; File systems: design
and implementation of file systems; Input/Output systems; device controllers and device drivers;
Security and protection; Case studies on design and implementation of operating system modules.

2. Scope of the Course:

An operating system (OS) is a set of software that manages the computer hardware resources
and provides common services for all computer programs that are executed on it. Alternatively
stated, an OS acts as a manager of resources. OS provides an established, convenient, and
efficient interface between user programs and the bare hardware of the computer on which it runs.
It provides relatively uniform interfaces to access the extremely wide variety of devices that a
computer interacts with, ranging from input/output devices such as printers and digital cameras, to
multiple processors that are available on a single board. OS is responsible for sharing resources
(e.g. disks, and processors), providing common services needed by many different programs (e.g.
access to the printer), and protecting individual programs from interfering with one another. There
is a huge range and variety of computer systems for which operating systems are being designed:
from embedded devices like on-board computers for the space shuttle or a luxury sedan and
cellphones to PCs, workstations, and mainframes, to supercomputers. The intent of this course
is to provide a thorough discussion of the fundamentals of operating system concepts and to
relate these to contemporary design issues and current directions in the development of operating
systems.

3. Objectives of the Course:

• To learn about how process management is carried by the OS. This will include process
creation, thread creation, CPU scheduling, process synchronization and deadlocks.

1
• To learn about memory management carried out by OS. This will include the concepts of
paging, segmentation, swapping, and virtual memory.

• To learn how permanent storage like files and disks are managed by OS. This will include
topics related to access methods, mounting, disk scheduling, and disk management.

• To gain hands-on experience on the above-mentioned topics through the Linux operating
system.

4. Textbooks:

TB1. “Operating System Concepts”, Silberschatz, Galvin, and Gagne, 10th Edition, Global
Edition, Wiley India, 2023

References:

Ref1. Russ Cox, Frans Kaashoek, Robert Morris, “xv6 a simple, Unix-like teaching oper-
ating system”. Online Draft, 2021. [Link]
[Link]

Ref2. Smruti R. Sarangi, “Operating Systems: A Linux Kernel-Oriented Approach”, 2025.


[Link]

Ref3. W. Stallings, “Operating Systems: Internals and Design Principles”, 6th edition, Pear-
son, 2009.

Ref4. Tanenbaum, Woodhull, “Operating Systems Design & Implementation”, 3rd edition,
Pearson, 2006.

Ref5. Robert Love, “Linux Kernel Development”, 3rd edition, Pearson, 2010.

5. Course Plan:

Weekly plan for 14 weeks with 3 lectures per week

Lecture Learning Objectives Topics to be covered Chapter in


No. the Text
Book
1 To understand the various Introduction: What OS does? Com- TB1: Ch. 1
components of a computer puter System Organization & Archi-
and the role OS plays to con- tecture, OS Operations, Computing
trol them. environments.
2–3 To learn what functions and OS Structures: OS Services, Inter- TB1: Ch. 2
services an OS provides. faces, System calls, OS structure,
OS Debugging

2
4–6 To learn how processes are Processes: Process Control Block TB1: Ch. 3
created and handled by the (PCB), Process states, Opera-
OS and how they communi- tions on processes, Inter Process
cate with each other. Communication (IPC), Scheduling
queues, Types of schedulers, Con-
text switch.
7–9 To understand how threads Threads: Motivation, Benefits, Mul- TB1: Ch. 4
are created and managed by ticore programming, Multithreading
OS and differences between models, Thread library, Threading
processes & threads. issues.
10–13 To understand how OS man- Process Synchronization: Criti- TB1: Ch. 6,
ages the concurrent resource cal section problem, Peterson’s 7
access requests. solution, Hardware solutions,
Semaphores, Classical synchro-
nization problems, Monitors.
14–17 To identify how two or more Deadlocks: Resource Allocation TB1: Ch. 8
processes can wait indefi- Graphs, Cycle and Knot, Solutions
nitely for accessing resources to deadlock: Prevention, Avoid-
and how to resolve the situa- ance, Detection, and Recovery
tion. from deadlocks.
18–21 To learn how multiple pro- CPU Scheduling: Scheduling Crite- TB1: Ch. 5
cesses are executed by OS. ria, Scheduling Algorithms, Thread
scheduling, Algorithm evaluation.
22–25 To learn how main mem- Main Memory Management: Ad- TB1: Ch. 9
ory is divided into different dress binding, Logical vs physical
parts and allocated to the address space, Dynamic loading,
processes so that degree of Swapping, Contiguous memory al-
multiprogramming can be in- location, Paging: Hardware sup-
creased. port, Structure of Page table, Seg-
mentation.
26–29 To understand how to com- Virtual Memory: Demand paging, TB1: Ch.
bine RAM and Hard disk to Page replacement algorithms, Allo- 10
get a Virtual memory so that cation of frames, Thrashing, Mem-
larger programs can be run. ory mapped files, Allocating Kernel
memory.
30–32 To learn how secondary stor- Mass Storage: TB1: Ch.
age structures are imple- HDD: Disk structure, disk schedul- 11
mented and managed. ing, disk management and RAID.
NVM (Non-Volatile Memory): dif-
ferences between HDD and NVM
scheduling.
33–34 To identify what abstraction File System Interface: File system, TB1: Ch.
OS provides to access con- Access methods, Mounting, shar- 13
tents from a hard disk. ing, and disk structures.

3
35–37 To understand how file sys- File System Implementation: Struc- TB1: Ch.
tem implementation helps to ture and Implementation, Allocation 14
improve the efficiency of stor- methods and Free space manage-
age space. ment.
38–40 To understand how OS man- I/O Systems: I/O hardware, I/O In- TB1: Ch.
ages various I/O devices. terface, Kernel I/O subsystem. 12

6. Evaluation Scheme:

Component Wt (%) Duration Date & Time Comments


Programming Assignments (2 no.s) 35% (15% + 20%) Take Home TBA Open Book
Mid-Semester Examination 30% 90 mins. TBA Closed Book
Comprehensive Examination 35% 180 mins. TBA Closed Book

Note: A minimum of 40% of the evaluation will be completed at the time of mid-semester grading.

7. Office Consultation Hour:

Will be announced in the class.

8. Make-up Policy:

• Institute rules will apply for make-up for mid-semester and comprehensive examinations.
The decision of the I/C is final.

• No make up for missing take-home components.

9. Notices:

Announcements will be made in class and/or put up on LMS and/or Piazza

10. Academic Honesty and Integrity Policy:

Academic honesty and integrity are to be maintained by all the students throughout the semester
and no type of academic dishonesty is acceptable.

Instructor-in-charge
CS F372, Operating Systems

Common questions

Powered by AI

Operating systems resolve deadlocks by employing strategies like prevention, avoidance, detection, and recovery. Deadlock prevention involves designing a system in such a way as to ensure that one of the necessary conditions for deadlock cannot occur. Avoidance requires the system to make resource allocation decisions with the knowledge of future requests. Detection involves the system continually checking for deadlocks, and recovery requires terminating or rolling back processes to break the deadlock .

The primary challenges in I/O management include the diversity of device types, speed differences between devices and the CPU, and potential device failures. Operating systems address these through device drivers, which provide a common interface regardless of the hardware specifics, buffering techniques to manage speed mismatch, and error detection and recovery strategies to handle device failures effectively .

File system structures provide a logical way to manage and organize data on storage media, offering benefits like efficient storage management, fast data retrieval, and data security. However, challenges include maintaining consistency, especially in distributed environments, handling storage devices of varying performance and reliability, and ensuring data integrity across operations like crashes or unexpected shutdowns .

Linux is favored in educational contexts because it is open-source, which allows students to see the actual implementation of OS concepts and experiment with the code. Additionally, Linux is a robust OS with extensive community support and documentation, making it an excellent platform for gaining hands-on experience with topics like process management, threading, memory management, and device control .

Paging allows the memory to be divided into fixed-size units called pages, and the physical memory into frames. It helps eliminate fragmentation and simplifies the allocation process by allowing non-contiguous allocation of physical memory. Segmentation involves dividing the memory into variable-length segments based on the logical subdivision of programs, allowing more understandable and flexible memory management that aligns with the logical structure of a program .

Virtual memory allows operating systems to extend the available physical memory through disk space, enabling larger programs to run than physical memory would allow. It enhances system capabilities by providing an abstraction of unlimited memory space, optimizing multiprogramming efficiency, and enhancing protection and isolation between processes, thus leading to better overall system performance .

Multicore processors necessitate changes in operating system design to harness parallel processing capabilities effectively. This includes redesigning scheduling algorithms to handle more CPUs, enhancing process synchronization to prevent contention among threads, and improving memory management to optimize cache usage. Additionally, operating systems must provide robust support for multicore-specific challenges like load balancing and processor affinity .

CPU scheduling is vital for maximizing the efficient use of CPU time by determining which processes run at any given time. Effective scheduling algorithms like round-robin and priority scheduling help achieve a balance between system throughput and responsiveness, influence process waiting time, turnaround time, and CPU utilization, ultimately impacting overall system performance and user experience .

Operating systems enable inter-process communication (IPC) through mechanisms like pipes, message queues, shared memory, and sockets, each providing different levels of efficiency and complexity. Pipes offer a simple stream-based communication, message queues allow structured message passing, shared memory provides the fastest method by enabling multiple processes to access the same memory space, and sockets facilitate communication over networked processes .

Process synchronization is crucial in operating systems to ensure that multiple processes can run concurrently without conflict over shared resources. It prevents race conditions by managing access through various techniques like semaphores, monitors, and locks. Synchronization impacts system performance by minimizing idle time and maximizing resource utilization, but poorly implemented synchronization can lead to bottlenecks and reduced efficiency .

You might also like