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.
- 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.
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
Text and Reference Books.
# | 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 |
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 |
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 |