CSE321

Operating System

CSE321: Operating System

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.

Course Objectives

- 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

List of Books

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

Course Materials

Text and Reference Books

Course Outcome

# 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

Course Lectures

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

Lab Lectures

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


©2024 BracU CSE Department