Operating Systems
0%
Course Title: Operating Systems
Course No: CSC264
Nature of the Course: Theory + Lab
Semester: 4
Full Marks: 60 + 20 + 20
Pass Marks: 24 + 8 + 8
Credit Hours: 3
Course Description
Course Objectives
Course Contents
1.1. Operating System Fundamentals
- Definition
- Two views of operating system
- Evolution of operating system
- Types of OS
1.2. System Components and Structure
- System Call
- Handling System Calls
- System Programs
- Operating System Structures
- The Shell
- Open Source Operating Systems
2. Process Management
10 hrs
2.1. Process Fundamentals
- 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
- 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
3. Process Deadlocks
6 hrs
3.1. Deadlock Fundamentals
- 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)
4. Memory Management
8 hrs
4.1. Memory Management Basics
- Introduction
- Monoprogramming vs. Multi-programming
- Modelling Multiprogramming
- Multiprogramming with fixed and variable partitions
- Relocation and Protection
- Memory management (Bitmaps & Linked-list)
- Memory Allocation Strategies
4.2. Virtual Memory
- Paging
- Page Table
- Page Table Structure
- Handling Page Faults
- TLB's
4.3. Page Replacement Algorithms
- FIFO
- Second Chance
- LRU
- Optimal
- LFU
- Clock
- WS-Clock
- Concept of Locality of Reference
- Belady's Anomaly
4.4. Segmentation
- Need of Segmentation
- Drawbacks of Segmentation
- Segmentation with Paging (MULTICS)
5. File Management
6 hrs
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 and Free Space Management
- Directory Operations
- Path Names
- Directory Implementation
- Shared Files
- Free Space Management (Bitmaps, Linked List)
6. Device Management
6 hrs
6.1. I/O Hardware
- Classification of IO devices
- Controllers
- Memory Mapped IO
- DMA Operation
- Interrupts
6.2. I/O Software
- Goals of IO Software
- Handling IO (Programmed IO, Interrupt Driven IO, IO using DMA)
- IO Software Layers (Interrupt Handlers, Device Drivers)
6.3. Disk Management
- Disk Structure
- Disk Scheduling (FCFS, SSTF, SCAN, CSCAN, LOOK, CLOOK)
- Disk Formatting (Cylinder Skew, Interleaving, Error handling)
- RAID
7. Linux Case Study
5 hrs
7.1. Linux Operating System
- History
- Kernel Modules
- Process Management
- Scheduling
- Inter-process Communication
- Memory Management
- File System Management Approaches
- Device Management Approaches
Laboratory Works
- 1.Learn basic Linux Commands
- 2.Create process, threads and implement IPC techniques
- 3.Simulate process Scheduling algorithms and deadlock detection algorithms
- 4.Simulate page replacement algorithms
- 5.Simulate free space management techniques and disk scheduling algorithms
Text Books
- 1.Modern Operating Systems: Andrew S. Tanenbaum, PHI Publication, Third edition, 2008
Reference Books
- 1.Abraham Silberschatz, Peter Baer Galvin and Greg Gagne, Operating System Concepts, John Wiley & Sons (ASIA) Pvt. Ltd, Seventh edition, 2005
- 2.Harvey M. Deitel, Paul J. Deitel, and David R. Choffnes, Operating Systems, Prentice Hall, Third edition, 2003