Operating Systems

Core principles and concepts governing operating systems — process management, inter-process communication, CPU scheduling, thread synchronization, memory management, file systems, and OS security.

Instructor: Istiaq Ahmed Fahad

Term: Fall 2026

Location: Department of Computer Science and Engineering, BRAC University

Course Overview

CSE321: Operating Systems provides a comprehensive understanding of the principles and concepts governing the functions of modern operating systems. The course acquaints students with the state-of-the-art approaches that make the design, implementation, and operation of complex operating systems possible.

Key topics covered include:

  • Process Management & Concurrency: Process lifecycle, context switching, inter-process communication (IPC), multithreading, and CPU scheduling.
  • Synchronization & Deadlocks: Race conditions, mutex locks, semaphores, critical section problem, and deadlock avoidance/handling.
  • Memory Management: Main memory allocation, paging architectures, virtual memory, demand paging, and page replacement strategies.
  • Storage & File Systems: File organization, directory structures, allocation methods, UNIX inodes, and disk scheduling.
  • Protection & Modern Systems: Access control matrices, security mechanisms, virtualization, containers, and mobile operating systems.

Course Information

Textbooks & References

  1. Operating System Concepts Essentials — Abraham Silberschatz, Peter B. Galvin, Greg Gagne (Wiley, 10th Edition, 2018).
  2. Modern Operating Systems — Andrew S. Tanenbaum (Prentice Hall, 4th Edition, 2015).
  3. Operating Systems: Three Easy Pieces (OSTEP) — Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau (Online Book).

Prerequisites

  • Hard Prerequisite: CSE221 (Algorithms)
  • Soft Prerequisite: CSE340 (Computer Architecture)

Schedule

Topic Materials
Week 1 — Introduction to Operating Systems & Process Concepts

Overview of operating system structures, process concepts, process states, Process Control Block (PCB), process creation and termination, and Inter-Process Communication (IPC).

Week 2 — Operations on Processes & Inter-Process Communication (IPC)

Deep dive into IPC mechanisms: shared memory, message passing, Unix pipes, and system calls for process management.

Week 3 — Threads & Concurrency

Threads overview, multicore programming, user vs kernel threads, multithreading models, thread libraries (pthreads), and threading issues.

Week 4 — CPU Scheduling Algorithms

Basic concepts of CPU scheduling, scheduling criteria, FCFS, SJF, Priority, Round Robin, Multilevel Queue, and Multilevel Feedback Queue scheduling.

Week 5 — Process Synchronization I

Concurrency, race conditions, critical section problem, software solutions (Peterson’s Algorithm), and hardware support (Test-and-Set, Compare-and-Swap).

Week 6 — Process Synchronization II & Classical Problems

Mutex locks, binary and counting semaphores, monitors, and classic synchronization problems (Bounded-Buffer, Readers-Writers, Dining Philosophers).

Week 7 — Deadlocks & Storage Systems Overview

Deadlock characterization, prevention, avoidance (Banker’s Algorithm), detection, recovery, and magnetic disk architecture overview.

Week 8 — File Systems Implementation & Storage

File concepts, attributes, directory structures, allocation methods (contiguous, linked, indexed), UNIX inode structure, crash consistency, and journaling.

Week 9 — Main Memory Management & Paging

Address spaces, logical vs physical addresses, contiguous memory allocation, paging architecture, page tables, TLBs, and hierarchical page tables.

Week 10 — Virtual Memory & Page Replacement

Virtual memory concepts, demand paging, page fault handling, page replacement algorithms (FIFO, Optimal, LRU), and thrashing.

Week 11 — Protection & Security

Security threats, protection goals and principles, domain of protection, access matrix, mandatory access control, and Unix/Android security mechanisms.

Week 12 — Advanced Security Defenses & Access Control

Implementing security defenses, firewalls, capability-based systems, revocation of access rights, and language-based protection.

Week 13 — Virtual Machines, Containers & Mobile OS

Virtualization concepts, hypervisors (Type 1 & Type 2), containers vs virtual machines, Docker fundamentals, and mobile operating system architectures.