Operating Systems

CS-350 Fall 2018 3+1 Credits

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

Loading...