CS604 - Operating Systems
Course Page
Q & A
Course Category: Computer Science/Information Technology
Course Level: Imdregraduate
Credit Hours: 3
Pre-requisites: CS301 CS401 CS502

Course Synopsis

This course focuses on the processes, synchronization, scheduling, multi-threaded applications, deadlocks, memory management, and file systems. Linux and Windows are general purpose operating systems used as examples when studying and applying above concepts. Laboratory assignments of process/thread synchronization, process communication, and file systems are expected.

Course Learning Outcomes

At the end of the course, you should be able to:
  • Grasp the working of an operating system
  • Analyze the synchronization process
  • Identify the working methodology of multithreaded applications
  • Determine the reasons of deadlocks in an operating system
  • Find the management of different type of memories in the computer system
  • Compare different file systems being used in different operating systems

Course Contents

Introduction, Single-user systems,Operating system components and services, Operating system structures, Process concept, Inter-process communication (IPC) and process synchronization, UNIX/Linux IPC tools and associated system calls, Use of FIFOs in a program, Thread models, Schedulers, Dispatcher, Algorithm evaluation, Process synchronization, The Critical Section Problem, The Bakery Algorithm, Deadlock and Starvation, Deadlock handling, Detections and Recovery, Memory management, Paging, Memory Management in Intel 80386, Virtual Memory, Demand Paging, , Page Fault, Belady’s Anomaly, Stack Replacement Algorithms, Thrashing, File Concept, Directory Structure, File System, Mounting, File Sharing and Protection, Space Allocation Techniques, Disk Structure and Scheduling, Free Space Management.

Course Related Links

Wikipedia Page of Operating System
Unix vs. Linux vs. Windows2000
Process Synchronization in Operating Systems
Operating System Page of How Stuff Works
POSIX Compatible IPC Tools
Linux vs. Windows
OS Resource Site
Download Ubuntu for your desktop machine
List of Linux Distributions
Useful for Linux learning
10 Linux Distributions and Their Targeted Users
Paging and Segmentation in Operating Systems
Wikipedia Page for Ubuntu
Posix Threads explained by IBM
Wrong Prediction by IBM President Mr. Thomas Watson about Computer in 1943
Install and Run Ubuntu in Windows Using VirtualBox
Online Resources for Students by book "Operating Systems: Internals and Design Principles" 9th Edition, written by William Stallings
POSIX Threads
UNIX Tutorial for Beginners
4 Methods to Take Screenshot Capture in Ubuntu Linux
Course Instructor

Dr. Syed Mansoor Sarwar
PhD Computer Engineering Iowa State University, USA

Operating Systems Internals and Design by William Stallings

Operating Systems by Dietel, D

Operating System Concepts by Silberschatz,A, Galvin

Modern Operating Systems by Tanenbaum