Operating Systems Design

Operating Systems Design
Principles and concepts of operating systems design and the implementation of an operating system.
 Hours3.0 Credit, 3.0 Lecture, 0.0 Lab
 PrerequisitesC S 224 & C S 240
 TaughtFall, Winter, Summer
 ProgramsContaining C S 345
Course Outcomes

Operating System Basics

Describe the basic components of an operating system and their role in implementations for general purpose, real-time, and embedded applications.

Basic Concepts

Define the concepts of processes, threads, asynchronous signals and competitive system resource allocation.


Show how a shell works.

Scheduling Algorithms for Multi-Tasking

Explain what multi-tasking is and outline standard scheduling algorithms for multi-tasking.

Mutual Exclusion Principles

Discuss mutual exclusion principles and their use in concurrent programming, including semaphore construction and resource allocation.

System Memory Management

Give an overview of system memory management.

Implementing File Systems

Explain how file systems are implemented.

Competing Operating Systems

Discuss the features and strengths of various contemporary operating systems.

Implement an Operating System

Implement a functional, pre-emptive, multi-tasking operating system written in C, including a shell, scheduler, file manager, memory manager, and synchronization components.