CSE321

Operating Systems
Undergraduate Program

CSE321: Operating Systems

Offered:

Soft Pre-requisite: CSE340

Pre-requisite: CSE221


This course provides a general understanding of the principles and concepts governing the functions of operating systems and acquaints students with the state-of-the-art approaches that make the design, implementation, and operation of complex operating systems possible. The core of the course contains concurrent programming (threads and synchronization), inter-process communication, process and thread management, storage and resource management and communication, and an analysis on security and protection.

Course Objectives

- Understanding core concepts of OS structures, process management and inter process communication methods.
- Interpreting CPU schedulers and their functions.
- Understanding the concepts and behaviours of threads and examine the concurrency of multithreading.
- Inspecting thread synchronization mechanisms in OS level.
- Understanding the secondary memory management and file systems concepts and analysing file system implementation.
- Understanding mechanisms of main and virtual memory management of OS.
- Analysing OS level security threats and the methods used to provide protection from the threats.

List of Books

1. Operating System Concepts Essentials by Abraham Silberschatz, Peter B. Galvin and Greg Agne, Wiley; 10th Edition (July 5, 2008). ISBN: 978-1119320913

2. Modern Operating Systems by Tanenbaum A.S., Prentice Hall; 4th Edition (2015). ISBN-13: 978-0133591620

3. Operating Systems: Three Easy Pieces by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, Arpaci-Dusseau Books, October, 2023 (Version 1.10), http://www.ostep.org

Course Materials

Text and Reference Books.

Course Outcome

# Description Weight Edit

CO1

Understand the concepts of processes and their management, CPU scheduling techniques, and Apply system calls for solving problems on process management, and Analyze security concerns, and protection mechanisms of OS.

35

CO2

Understand the behaviors of threads and their management, process, and thread synchronization mechanisms, deadlocks, virtual machines and containers, Apply thread libraries for solving problems on thread management and synchronization, and Understand mechanisms of file systems concepts, and their implementations in OS, and Apply the concepts to design complex file systems.

35

CO3

Understand mechanisms of main memory, and virtual memory management in OS.

30

Course Lectures

Week Lecture CO Map

Week 1

Process concepts, states, Inter Process Communication (IPC), operation on the process (creation and termination).

CO1

Week 2

Process concepts, states, Inter Process Communication (IPC), operation on the process (creation and termination).

CO1

Week 3

Threads overview, Multicore Programming, Multithreading Models, Thread Libraries, Threading Issues, and operating systems examples.

CO2

Week 4

Basic concepts of CPU scheduling, scheduling criteria, scheduling algorithms and simulations (FCFS, SJF, Priority, Round Robin), and Multilevel queue and Multilevel feedback queue algorithms.

CO1

Week 5

Concepts of Process Synchronization, Race Condition, Critical Section Problem, Mechanisms of Process Synchronization: Test and Set, Compare and Swap, Mutex locks, Semaphores, and Classical synchronization problems.

CO2

Week 6

Concepts of Process Synchronization, Race Condition, Critical Section Problem, Mechanisms of Process Synchronization: Test and Set, Compare and Swap, Mutex locks, Semaphores, and Classical synchronization problems.

CO2

Week 7

Magnetic Disk Structure Overview, Magnetic Disk Architecture, File Concepts, File Attributes, File Operations, Indexed File Allocation Method, UNIX Inode, File System Implementation, Crash consistency and journaling.

CO2

Week 8

Magnetic Disk Structure Overview, Magnetic Disk Architecture, File Concepts, File Attributes, File Operations, Indexed File Allocation Method, UNIX Inode, File System Implementation, Crash consistency and journaling.

CO2

Week 9

Main Memory Management Background, Address spaces, paging, implementation of page table, shared paging, hierarchical page table. Introduction of virtual memory, demand paging, the performance of demand paging, page fault handling, page replacement algorithms (FIFO, LRU, Optimal).

CO3

Week 10

Main Memory Management Background, Address spaces, paging, implementation of page table, shared paging, hierarchical page table. Introduction of virtual memory, demand paging, the performance of demand paging, page fault handling, page replacement algorithms (FIFO, LRU, Optimal).

CO3

Week 11

Security Problem, security violation categories and methods, security measure levels, program threats, implementing security defenses, firewall, goals and principles of protection, domain of protection, domain structure, domain implementation in unix and android, access matrix, revocation of access rights, mandatory access control, capability-based systems, other protection improvement methods and language-based protection.

CO1

Week 12

Security Problem, security violation categories and methods, security measure levels, program threats, implementing security defenses, firewall, goals and principles of protection, domain of protection, domain structure, domain implementation in unix and android, access matrix, revocation of access rights, mandatory access control, capability-based systems, other protection improvement methods and language-based protection.

CO1

Week 13

Concepts of Virtual Machines and Containers and differences between them, Concepts of Hypervisors, Mobile OS concepts.

CO2

Lab Lectures

Week Lecture CO Map

Week 1

Topic: Basic Shell Commands and Basic C Programming. Description: Online tutorial(s) provided in the buX of basic Linux shell/bash commands and the fundamentals of the C programming language. Objectives: Familiarization of students with basic shell commands, and C programming language to orient them with future lab activities.

CO1

CO2

CO3

Week 2

Topic: System Calls. Description: Lecture on system calls in C: process manipulation, file/file descriptor manipulation, performance profiling, system call tracing. Objectives: Create the fundamentals of system calls for students to apply them in xv6 and further labs.

CO1

Week 3

Topic: Linux Shell Scripting. Description: Lecture on shell/bash scripting. Objectives: Introduces students to Linux shell scripting fundamentals. Students will learn to automate system tasks, handle user input, and work with command-line arguments.

CO2

CO1

CO3

Week 4

Topic: Threads and Synchronization. Description: Lecture on creation and management of pthreads and thread synchronization mechanisms using mutex and semaphore. Objectives: Learning how to create and manage multiple threads using pthreads and solving race condition problems within multiple threads using mutex and semaphore.

CO2

Week 5

Lab Assessment 1: Assessment on basic shell commands and basics of C programming which were learnt by self-study from the online tutorials of buX.

N/A

Week 6

Topic: IPC. Description: Lecture on IPC mechanisms such as pipes, shared memory and message passing. Objectives: Learning and implementing various techniques of Inter-Process Communications such as pipes, shared memory and message passing in order to establish communication among multiple processes.

CO1

Week 7

Topic: xv6 - Introduction. Description: Introductory lecture on xv6: introduction, xv6 installation tutorial, booting process (?), kernel vs user space, file system hierarchy. Objectives: Teach students what xv6 is, how to run it on their own devices, explain the xv6 codebase, and create user programs.

CO1

CO2

CO3

Week 8

Discussion and explanation on Lab Term Project.

N/A

Week 9

Topic: xv6 - Features. Description: In-depth explanation: system call implementation and tracing, process structure, context switching, scheduler control. Objectives: Build on syscall fundamentals to teach implementation in xv6, teach how preemptive process scheduling works in xv6.

CO1

Week 10

Assessment 2: Assessment on system calls and threads, and synchronization.

N/A

Week 11

Project Viva.

N/A

Week 12

Review class.

N/A


©2026 BracU CSE Department