Course Information
This course was taught to Bachelor of Computer Applications (BCA), II Year students at JNV University, Jodhpur during the academic session 2023.
Prerequisites
Course Description
Operating Systems introduces the fundamental concepts of modern operating systems, including process management, CPU scheduling, memory management, file systems, input-output management and synchronization mechanisms. The course explains how an operating system manages hardware resources and provides services to application programs.
Course Outcomes
- Understand the basic concepts, functions and services of operating systems.
- Understand process management, process states and CPU scheduling algorithms.
- Analyze thread management and concurrency issues.
- Understand synchronization mechanisms and deadlock handling.
- Explain memory management techniques including paging and virtual memory.
- Understand file systems, storage management and I/O organization.
- Understand operating system concepts used in Linux and modern computing systems.
Course Modules
Module 1: Introduction to Operating Systems
Topics Covered
- Operating System definitions and characteristics
- Types of operating systems
- Functionalities and services of operating systems
- Hardware concepts related to operating systems
- System calls and system structure
Learning Resources
- Download Operating System Book
-
Introduction to Operating Systems - Slides
Course aims, computer system, introduction to OS, abstract view of OS, program execution, OS functions, CPU, memory and I/O management, history of operating systems. Take a Test!! -
Operating System Types and Process Introduction
Batch systems, multiprogramming, real-time operating systems, multiprocessor systems, time-sharing systems, distributed systems and monolithic systems. - Home Assignment #1 (Deadline: Sept 12, 2023)
-
User and Operating System Interface
OS structure, command interpreter, system calls, UNIX commands, implementing cat command, GUI and system calls.
Module 2: Process Management
Topics Covered
- Process concepts, states and Process Control Block (PCB)
- Process scheduling and scheduling criteria
- Scheduling algorithms
- Multiple processor scheduling
- Real-time scheduling
- Threads and multithreading in Linux
Learning Resources
-
Introduction to Process Management
Process states, process creation, fork(), OS data structures, state transitions and process-related system calls. -
Process Scheduling
Scheduling criteria, OS scheduler, FIFO, SJF, Round Robin, static and dynamic priority scheduling. - Home Assignment #2 (Submission Deadline: Oct 16, 2023)
-
Threads and Concurrency
Thread definition, single and multithreaded processes, process versus threads, advantages of threads and thread creation. -
Programming Multi-core Systems
Multicore programming, parallelism, multithreading models, pthreads, signal handling and thread cancellation. -
Threads and Concurrency - Part 2
Thread creation in UNIX, sharing global data, multiple threads, compilation and execution. - Class Test #1 Question Paper and Solution
-
Problems of Multithreading
Shared data, race conditions and synchronization problems.
Module 3: Process Synchronization
Topics Covered
- Interprocess communication
- Critical section problem
- Mutex locks and semaphores
- Classical synchronization problems
- Deadlock characterization and handling
- Deadlock prevention, avoidance, detection and recovery
- Process scheduling in Linux
Learning Resources
-
Critical Section
Interprocess communication, shared memory, message passing, producer-consumer problem, mutual exclusion, kernel critical section and mutex locks. - Home Assignment #3 (Submission Deadline: Nov 27, 2023)
-
Semaphore
wait(), signal(), semaphore implementation, semaphore use in single processor and multiprocessor systems, deadlock and starvation. -
Deadlocks
Deadlock characterization and methods for handling deadlocks. -
More on Deadlocks
Deadlock prevention and deadlock avoidance techniques. -
Assignment No. 4: Deadlocks
Deadlock detection, prevention and avoidance. Last date for submission: 15 Jan 2024.
Module 4: Memory Management
Topics Covered
- Logical and physical address space
- Memory allocation and swapping
- Contiguous memory allocation
- Segmentation and paging
- Virtual memory
- Demand paging
- Page replacement algorithms
- Memory management in Linux
Learning Resources
- Logical vs Physical Address Space, Swapping and Memory Protection
- Fixed and Variable Size Partitions, Segmentation
- Segmentation and Paging
- Paging, Demand Paging and Performance Study
-
Assignment No. 5: Memory Management
Segmentation and paging. Last date for submission: 20 Jan 2024. -
Memory Management
Demand paging and page replacement algorithms: FIFO and LRU.
Module 5: I/O Management and File Systems
Topics Covered
- Disk scheduling algorithms
- Disk management
- Swap space management
- Disk reliability and stable storage
- File concepts and directory structures
- Linux file systems
Learning Resources
-
Storage Management
Mass-storage structure, disk management and swap-space management. - File Concepts and Directory Structures
- File System in Linux
-
Assignment No. 6: Storage Management
File management and disk operation. Last date for submission: 10 Feb 2024.