Operating Systems - Syllabus

Embark on a profound academic exploration as you delve into the Operating Systems course (OS) within the distinguished Tribhuvan university's CSIT department. Aligned with the 2074 Syllabus, this course (CSC259) seamlessly merges theoretical frameworks with practical sessions, ensuring a comprehensive understanding of the subject. Rigorous assessment based on a 60 + 20 + 20 marks system, coupled with a challenging passing threshold of , propels students to strive for excellence, fostering a deeper grasp of the course content.

This 3 credit-hour journey unfolds as a holistic learning experience, bridging theory and application. Beyond theoretical comprehension, students actively engage in practical sessions, acquiring valuable skills for real-world scenarios. Immerse yourself in this well-structured course, where each element, from the course description to interactive sessions, is meticulously crafted to shape a well-rounded and insightful academic experience.


Course Description: This course includes the basic concepts of operating system components. It consists of process management, deadlocks and process synchronization, memory management techniques, File system implementation, and I/O device management principles. It also includes case study on Linux operating system.

Course Objectives

  1.  Describe need and role of operating system.
  2.  Understand OS components such a scheduler, memory manager, file
  3. system handlers and I/O device managers.
  4.  Analyze and criticize techniques used in OS components
  5.  Demonstrate and simulate algorithms used in OS components
  6.  Identify algorithms and techniques used in different components of Linux

Units

Operating System Overview

1.1. Definition, Two views of operating system, Evolution of operating system, Types of OS.

1.2. System Call, Handling System Calls, System Programs, Operating System Structures,

The Shell, Open Source Operating Systems



Process Management

2.1. Process vs Program, Multiprogramming, Process Model, Process States, Process Control

Block.

2.2. Threads, Thread vs Process, User and Kernel Space Threads.

2.3. Inter Process Communication, Race Condition, Critical Section

2.4. Implementing Mutual Exclusion: Mutual Exclusion with Busy Waiting (Disabling

Interrupts, Lock Variables, Strict Alteration, Peterson’s Solution, Test and Set Lock),

Sleep and Wakeup, Semaphore, Monitors, Message Passing,

2.5. Classical IPC problems: Producer Consumer, Sleeping Barber, Dining Philosopher

Problem

2.6. Process Scheduling: Goals, Batch System Scheduling (First-Come First-Served, Shortest

Job First, Shortest Remaining Time Next), Interactive System Scheduling (Round-Robin

Scheduling, Priority Scheduling, Multiple Queues), Overview of Real Time System

Scheduling



Process Deadlocks

3.1. Introduction, Deadlock Characterization, Preemptable and Non-preemptable Resources,

Resource – Allocation Graph, Conditions for Deadlock

3.2. Handling Deadlocks: Ostrich Algorithm, Deadlock prevention, Deadlock Avoidance,
Deadlock Detection (For Single and Multiple Resource Instances), Recovery From
Deadlock (Through Preemption and Rollback)


Memory Management

4.1. Introduction, Monoprogramming vs. Multi-programming, Modelling Multiprogramming, Multiprogramming with fixed and variable partitions, Relocation and Protection.

4.2. Memory management (Bitmaps & Linked-list), Memory Allocation Strategies

4.3. Virtual memory: Paging, Page Table, Page Table Structure, Handling Page Faults, TLB’s

4.4. Page Replacement Algorithms: FIFO, Second Chance, LRU, Optimal, LFU, Clock, WS- Clock, Concept of Locality of Reference, Belady’s Anomaly

4.5. Segmentation: Need of Segmentation, its Drawbacks, Segmentation with Paging(MULTICS)



File Management

5.1. File Overview: File Naming, File Structure, File Types, File Access, File Attributes, File

Operations, Single Level, two Level and Hierarchical Directory Systems, File System

Layout.

5.2. Implementing Files: Contiguous allocation, Linked List Allocation, Linked List

Allocation using Table in Memory, Inodes.

5.3. Directory Operations, Path Names, Directory Implementation, Shared Files

5.4. Free Space Management: Bitmaps, Linked List



Device Management

6.1. Classification of IO devices, Controllers, Memory Mapped IO, DMA Operation,

Interrupts

6.2. Goals of IO Software, Handling IO(Programmed IO, Interrupt Driven IO, IO using

DMA), IO Software Layers (Interrupt Handlers, Device Drivers)

6.3. Disk Structure, Disk Scheduling (FCFS, SSTF, SCAN, CSCAN, LOOK, CLOOK), Disk

Formatting (Cylinder Skew, Interleaving, Error handling), RAID



Linux Case Study

7.1 History, Kernel Modules, Process Management, Scheduling, Inter-process

Communication, Memory Management, File System Management Approaches, Device

Management Approaches.



Lab works

Laboratory Work

The laboratory work includes solving problems in operating system. The lab

work should include;

1 Demonstration of basic Linux Commands

2 Process creation and termination, thread creation and termination

3 Simulation of IPC techniques

4 Simulation process Scheduling algorithms

5 Simulation of deadlock avoidance and deadlock detection algorithms

6 Simulation of page replacement algorithms

7 Simulation of File allocation techniques

8 Simulate free space management techniques

9 Simulation of disk scheduling algorithms