CSE321

Operating Systems

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, and protection of OS.

30

CO2

Understand the behaviors of threads and their management, process, and thread synchronization mechanisms, deadlocks, virtual machines and containers and Apply thread libraries for solving problems on thread management and synchronization.

35

CO3

Understand mechanisms of main memory, and virtual memory management, and file systems concepts, and implementation of file system, and Apply the concepts to design complex file systems.

35

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

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 8

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 9

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.

CO3

Week 10

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.

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

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

CO2

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

Basic Shell Commands: Getting started, Linux Basics and Installing Ubuntu. Familiarizing with the Linux kernel. Working with the Terminal Panel. Learning how one can access and operate on different directories and files through Terminal using Shell Commands.

CO1

Week 2

C Programming (Part 1): Variables, Data types, Input/Output, Arithmetic Operations, Arrays, Pointers, String, Struct.

CO1

Week 3

C Programming (Part 2): Flow Control (If-Else), Loop, Function.

CO1

Week 4

System programming in C: Using UNIX system calls to get and understand process-related all the functionalities. Term Project 1: Implementing Shell

CO1

Week 5

Threads: Concept of thread, pthread in UNIX. Thread Synchronization: Learning concepts and implementations of mutex and semaphore. Solving race condition problems by using mutex and semaphore.

CO2

Week 6

Threads: Concept of thread, pthread in UNIX. Thread Synchronization: Learning concepts and implementations of mutex and semaphore. Solving race condition problems by using mutex and semaphore.

CO2

Week 7

Inter-Process Communication: 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. Term Project 2: Implement File System Checker for VSFS

CO2

Week 8

Inter-Process Communication: 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. Term Project 2: Implement File System Checker for VSFS

CO2

Week 9

Access Control: Implement and compare ACL and CBAC access control models and simulate how these models grant or deny permissions to users based on static access control data structures.

CO1

Week 10

Access Control: Implement and compare ACL and CBAC access control models and simulate how these models grant or deny permissions to users based on static access control data structures.

CO1

Week 11

Review class.

N/A

Week 12

Lab final.

N/A


©2025 BracU CSE Department