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, resource management and communication, and an introduction to distributed operating systems.
- Evaluate computer system organization, OS structure, and process management.
- Interpret CPU scheduling algorithms and their importance.
- Explains the concept of threads and different kinds of threads
- Inspect process synchronization mechanisms and deadlocks
- Analyze the management of main, virtual memory, and storage
1. Operating System Concepts Essentials by Abraham Silberschatz, Peter B. Galvin and Greg Agne, Wiley; 10th Edition (July 5, 2008). ISBN-10: 0470128720
2. Modern Operating Systems by Tanenbaum A.S., Prentice Hall; 3rd Edition (2007). ISBN-13: 978-0136006633
Text and Reference Books
# | Description | Weight | Edit |
---|---|---|---|
CO1 |
Understand and Describe concepts of OS structure and Analyze concepts of threads and CPU scheduling techniques and Apply concepts of pthreads to solve problems. |
30 |
|
CO2 |
Understand and Analyze behaviors of processes and their management, process synchronization mechanisms and deadlocks and Apply system calls for solving problems on process management and process synchronization. |
35 |
|
CO3 |
Understand and Analyze management mechanisms of main memory, virtual memory, file systems, protection and security of OS and Apply techniques of paging to solve address mapping problem. |
35 |
Week | Lecture | CO Map |
---|---|---|
Week 1 |
Concepts, history of operating system, computer system architecture. Services provided by the operating systems, operating system structure, storage structure, protection, and security and system call. |
CO1 |
Week 2 |
Process concepts, states, scheduling, Inter Process Communication (IPC), operation on the process (creation and termination). |
CO2 |
Week 3 |
Basic concepts of CPU scheduling, scheduling criteria, scheduling algorithms and simulations of FCFS, SJF scheduling algorithms. |
CO1 |
Week 4 |
Simulations of Priority, Round Robin, Multilevel queue and Multilevel feedback queue scheduling algorithms. |
CO1 |
Week 5 |
Threads overview, Multicore Programming, Multithreading Models, Thread Libraries, Threading Issues, and operating systems examples. |
CO1 |
Week 6 |
Concepts of Process Synchronization, Race Condition, Critical Section Problem, Mechanisms of Process Synchronization: Peterson’s Solution. |
CO2 |
Week 7 |
Mechanisms of Process Synchronization: Test and Set, Compare and Swap, Mutex locks, Semaphores. |
CO2 |
Week 8 |
Concepts of deadlock, resource allocation graph, methods of deadlock handling: deadlock prevention. |
CO2 |
Week 9 |
methods of deadlock handling: deadlock avoidance, and detection and recovery. |
CO2 |
Week 10 |
Main Memory Management Background, Swapping, Memory Allocation (MFT, MVT, Paging, Fragmentation). |
CO3 |
Week 11 |
Introduction of virtual memory, demand paging, the performance of demand paging, page fault handling, page replacement algorithms (FIFO, LRU, Optimal). |
CO3 |
Week 12 |
Magnetic Disk Structure Overview, Magnetic Disk Architecture, File Concept, File Attributes, File Operations, File Access Methods. |
CO3 |
Week 13 |
Introduction, goals, and principles of Protection in OS. |
CO3 |
Week | Lecture | CO Map |
---|---|---|
Week 1 |
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 |
Systems programming in C: Using UNIX system calls to get and understand process-related all the functionalities. |
CO2 |
Week 5 |
Concept of thread, pthread in UNIX. |
CO1 |
Week 6 |
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. |
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. |
CO2 |
Week 8 |
Process Synchronization: Learning concepts and implementations of mutex and semaphore. Solving race condition problems by using mutex and semaphore. |
CO2 |
Week 9 |
Process Synchronization: Learning concepts and implementations of mutex and semaphore. Solving race condition problems by using mutex and semaphore. |
CO2 |
Week 10 |
Memory Management: Implementing a proper mechanism of mapping physical addresses from CPU generated logical addresses using techniques of paging. |
CO3 |
Week 11 |
Review class. |
CO1 CO2 CO3 |
Week 12 |
Lab final. |
CO1 CO2 CO3 |