Operating Systems
Operating Systems
Course Information
Institution: Mohammad Ali Jinnah University, Karachi, Pakistan
Department: Computer Science
Level: Undergraduate
Prerequisites: Object-Oriented Programming
Course Description
This course provides an overview of an Operating System's various layers and functions. It elucidates the concepts of multiprocessing with a single processor and multithreading and how operating systems manage multiple tasks through techniques such as Mutual Exclusion, Scheduling, and Virtual Memory. Students will learn how Operating Systems interact with I/O devices for different processes and how they manage resource sharing when multiple processes require access to the same devices.
Learning Outcomes
Upon successful completion of this course, students will be able to:
- Understand operating systems principles and concepts, including essential functions and layered approaches
- Design and implement complex Operating Systems operations
- Manage memory allocation and virtual memory systems
- Implement file structuring and file system management
- Apply process scheduling algorithms and synchronization techniques
- Configure I/O device management and resource sharing mechanisms
Course Outline
| Lecture | Topic |
|---|---|
| 1 | Introduction, Goals and Functions of Operating Systems |
| 2 | History, Evolution and Types of Operating Systems |
| 3 | Kernel, Shell Programming and System Architecture |
| 4 | Multiprogramming, Multiprocessing, and Multi-User OS Concepts |
| 5 | Process States and Management (2,3,5 and 7 States) |
| 6 | Inter Process Communication (IPC) and Process Control Block (PCB) |
| 7 | Threads: Concepts, Multi-threading and Thread Control Blocks |
| 8 | Dekker’s Algorithms for Mutual Exclusion (1,2,3) |
| 9 | Dekker’s Algorithms (4,5) and Peterson’s Algorithm |
| 10 | CPU Scheduling: Priority Based and SJF |
| 11 | CPU Scheduling: FCFS and Round Robin |
| 12 | Case Study: Process Management in Windows and Linux |
| 13 | Deadlocks: Introduction and Detection |
| 14 | Deadlock Prevention and Avoidance Strategies |
| 15 | Deadlock Avoidance Algorithms and Implementation |
| 16 | Memory Management: Concepts and Issues |
| 17 | Memory Organization: Logical and Physical |
| 18 | Memory Partitioning: Fixed and Dynamic |
| 19 | Protection, Security and External Fragmentation |
| 20 | Paging and Segmentation |
| 21 | Virtual Memory: Concepts and Implementation |
| 22 | Virtual Memory and Secondary Storage Management |
| 23 | I/O Systems: DMA and Buffering |
| 24 | File Systems: Introduction and Structure |
| 25 | File Organization, Directories and Management |
| 26 | File System Security and SSD Management |
| 27 | Distributed Operating Systems: Concepts and Architecture |
| 28 | Distributed OS: Implementation and Considerations |
| 29 | Process Scheduling in Distributed Systems |
| 30 | Concurrency: Concepts and Applications |
| 31 | Embedded Systems: Concepts and Applications |
| 32 | Open Source Operating Systems: Features and Considerations |