Operating System

These are the notes of Operating system CMP 361 abided by the syllabus of Pokhara University. Click on the links below to check out the notes.

Unit I: Introduction (5 Hours)

  1. Operating System concepts
  2. Brief history of Operating System,
  3. Introduction of Operating System,
  4. Importance and functions of OS,
  5. Concepts of Uni-programming, Multiprogramming, and Parallel Programming,
  6. Evolution of Operating System,
  7. Types of Operating System: Sequential, Batch, Multiprogramming (multitasking), Multiprocessing (multiprocessor), Time Sharing, Real-Time, Distributed, Embedded.
  8. Kernel OS,
  9. OS architectures (structures): Monolithic, Microkernel, Layered, Client-server, Virtual machine,
  10. Operating System services: System calls, Shell commands, Shell programming, OS Examples: DOS, UNIX, Linux, MS-Windows, Handheld OS etc.

Unit II: Process and Thread Management (6 Hours)

  1. Introduction to Process
  2. Process description or Operation of Process,
  3. Process States
  4. Process Control Block (PCB)
  5. Threads,
  6. Types of Threads
  7. Implementation of Threads
  8. Multi-threading Models
  9. Process vs Threads,
  10. Scheduler and its types: Short term, Medium term and Long term,
  11. Comparison among Scheduler
  12. Scheduling and its types: preemptive and non preemptive,
  13. Comparison of preemptive and non preemptive scheduling,
  14. Scheduling Techniques
  15. Process Scheduling algorithms: FCFS, SJF, SRTF, RR, Priority, HRN, Multi-level, Multi-level Feedback, Thread Scheduling, Multiprocessor scheduling concepts

Unit III: Inter-Process Communication and Synchronization (6 hours)

  1. Introduction to IPC,
  2. Process Communication Mechanisms: Message Passing, Remote Procedure Call (RPC), Shared Resource (Memory), Resource sharing,
  3. Concurrent process, Critical region, Race condition,
  4. Solution of race condition: Mutual exclusion, Mutual exclusion algorithms: Locks, Test and Set Lock (TSL), Peterson’s algorithms,
  5. Semaphore, and Mutex, Monitor, Process Synchronization Classical problems of Process Synchronization: Readers-Writers Problem,
  6. Producer-Consumer Problem, Sleeping Barber Problem, Dining Philosopher Problems

Unit IV: Deadlock  5 hours

  1. Process Deadlock, Reusable, Consumable Resources,
  2. Causes (Conditions) of Deadlock: Mutual Exclusion, Hold and Wait, No Preemption, and Circular Wait, Deadlock Handling, Prevention,
  3. Avoidance: Ostrich Algorithm, Bankler’s Algorithm, Detection, Recovery, Others issues: Database deadlock, Communication deadlock, Livelock, Starvation

Unit V: Memory Management (7 hours)

  1. Concepts of memory and its hierarchy, Memory address: Logical and Physical address, Concept of swapping,
  2. Managing Free Memory Space: First Fit, Best Fit, Next Fit, and Worst Fit, Coalescing and Compaction, Memory Management Techniques, Contiguous: Resident Monitor, Multiprogramming with fixed and variable partition,
  3. Non-Contigious: Paging, Segmentation, Paging with segmentation, Demand Paging, Virtual Memory Management, Page Replacement Algorithms: FIFO, NRU, LRU, Clock, Optimal, Thrashing

Unit VI: Input/Output Management and Disk Scheduling (5 hours)

  1. I/O Devices, I/O Techniques: Programmed I/O, Interrupt-driven I/O, and Direct Memory Access (DMA), Principle I/O hardware: I/O devices,
  2. Device controllers, DMA, I/O software: Polling, Interrupt, I/O software layer, Disk, Formatting, Arm scheduling algorithms: FCFS, SSTF, Elevator (Scan), C-Scan, Look, C-Look

Unit VII: File System Management (4 hours)

  1. File Naming, File Organization and access, File Directories and paths, File Sharing, Record Blocking,
  2. File system implementation: Contigious, linked-list, linked list with table, I-nodes, Secondary File Storage Management, Examples: CD ROM file system, MS DOS file system, Unix file system

Unit VIII: Security (4 hours)

  1. Security issues, Types of attacks, Security policy and Access control,
  2. Basics of cryptography: Encryption and Decryption, Protection mechanisms, Authentication, OS design considerations for security

Unit IX: Distributed Operating System (6 hours)

  1. Introduction to distributed system and distributed operating system, Goals and objectives,
  2. Distributed operating system (DOS) vs Network operating system (NOS), DOS as middleware, Communication in distributed system: client-server, RPC, and group communication, Mutual exclusion, Clock synchronization algorithm, Election algorithm

Lab Works

Different lab works related to normal OS and distributed OS in Windows, and Linux OS.

Basic Texts

1. William, S. Operating Systems. Delhi: Pearson Education.
2. Tanenbaum, A. S. Modern Operating Systems. New Delhi: Prentice Hall of India.

References

1. Milenkovic, Milan. Operating Systems Concepts and Design. New Delhi: Tata McGraw Hill.
2. Silbcrschatz A, G. P., & Gagne, G. Operating System Concepts. New York: John Wiley and Sons.
3. Bach, M. J. The Design of The Unix Operating System. New Delhi: Prentice Hall of India.
4. Crowley, C. Operating Systems: A Design-oriented Approach. New Delhi: Tata McGraw Hill.