CS370: Operating Systems |
![]() |
[Schedule] | [Assignments] | [Grading] | [Syllabus] | [Infospaces] | [Canvas] | [Home] |
Last updated on Wednesday, February 19, 2025 5:01 PM |
|||
Professor | Lecture Coordinates | ||
Shrideep Pallickara |
|
Key to Notation Readings will be from the Operating Systems Concepts book by Silberschatz, Galvin, and Gagne 10th edition. John Wiley & Sons, Inc. ISBN-13: 978-1119800361. [SCG] |
Introduction | References and HW | ||
This module provides an overview of the course, grading criteria, and a brief introduction to high level operating systems concepts. We will explore the differences between kernel mode and user-mode and why they exist. | Ch {1,2} [SGG] Ch {1} [RR] Ch {1} [AT] Ch {1} AD Programming Exercises (1/21) HW1 1/21 Term-Project (TP) 1/21 |
||
Objectives:
|
|||
01/21 01/23 |
Lecture 1 Lecture 2 |
||
Processes | Readings | ||
Processes are a foundational construct in organizing computations with a program. This module will contrast differences between programs and processes. A key idea covered in this module is the notion of multiprogramming which can used to give the illusion that multiple processes are executing concurrently. We will explore the layout of processes in memory and the various metadata elements regarding a process that are organized within a Process Control Block (PCB). The PCB plays a foundational role in how the OS context-swictches between different processes. | Ch {3} [SGG] Ch {2} [AT] Ch {2, 3} [RR] Ch {2, 3} [AD] HW2 01/29 |
||
Objectives:
|
|||
01/28 01/30 |
Lecture 3 Lecture 4 |
||
Inter-Process Communications | Readings | ||
One of the operating system’s main jobs is to keep processes isolated, making sure they run independently without interfering with each other. But sometimes, isolation isn’t enough: processes need to communicate. In this module, we’ll explore how the OS makes that possible. We’ll break down the three key mechanisms that allow processes to exchange information while still maintaining order and control. |
Ch {3} [SGG] Ch {2} [AT] Ch {2, 3} [AD] HW3 02/05 |
||
Objectives:
|
|||
02/04 02/06 |
Lecture 5 Lecture 6 |
||
Threads | |||
Think of a thread as a lightweight process -- small, fast, and designed to coexist within a larger process. But why would we want a process within a process? The main reason comes down to efficiency: simplified data sharing and rapid context switching. When multiple threads run inside the same process, they can share data easily, without the overhead that comes with communication between separate processes. Achieving this kind of seamless sharing across independent processes would be far more complex and much slower. Ultimately, threads give us a way to keep things both parallel and tightly connected, striking a balance between speed and coordination. |
Ch {4} [SCG] Ch {2} [AT] Ch {12} [RR] Ch {4} [AD] |
||
Objectives:
|
|||
02/11 02/13 |
Lecture 7 Lecture 8 |
||
Process Synchronization | Ch {5}[SCG] Ch {4} [AT] HW4 02/19 |
||
When multiple processes run at the same time and need to work together, they have to coordinate their actions carefully. The challenge isn’t just making them run concurrently: it’s making sure they do so correctly and safely. A flawed approach can lead to chaos, with processes stepping on each other’s toes in unpredictable ways. To get a deeper understanding of these challenges, we’ll explore some classic problems in synchronization. These time-tested scenarios reveal the fundamental issues that arise when processes share resources and need to stay in sync. |
|||
Objectives:
|
|||
02/18 02/20 02/25 |
Lecture 9 Lecture 10 |
||
Atomic Transcations | |||
This module will cover issues relating to preserving atomicty of transcactions. We will explore issues that arise when a multiplicty of transcactions need to execute concurrently while preserving safety properties. | Ch {5}[SCG] |
||
Objectives:
|
|||
02/27 |
|||
Mid Term Exam (03/06): Covers all topics covered up until the lecture on Tuesday (03/04). |
|||
CPU Scheduling algoirithms | |||
The kernel’s job isn’t just to run processes -- it has to juggle them, making sure they all make progress without stepping on each other’s toes. The trick is in the scheduling. A good scheduling algorithm has to balance several competing goals: latency, throughput, priority, and fairness. No single approach is perfect, so we’ll explore a range of scheduling algorithms, each with its own strengths and trade-offs. | Ch {6} [SCG] Ch {7} [AD] Ch {2} [AT] HW5 03/24 |
||
Objectives:
|
|||
03/04 03/11 03/13 |
|
||
Spring Break: Spring Break Recess at CSU March 15-23. |
|||
Deadlocks | |||
A large number of processes compete for limited resources on the machine. Incorrect synchronization between these competing processes leads to deadlocks. In this module, we will look at how to characterize deadlocks and the various mechanisms we can use to prevent them by negating structural requirments necessary for deadlocks. | Ch {7} [SCG] Ch {6} [AT] Ch {4} [AD] HW-ExtraCredit 03/26 |
||
Objectives:
|
|||
03/25 03/27 |
|||
Memory Management | |||
Memory is a shared resource that must be effectively managed across different processes that are executing concurrently, Given that Instruction Set Architectures (ISA) operate on on data in registers and memory, how memory is managed and shared across competing processes has implications for performance including completion times and throughput. | Ch {8} [SCG] Ch {3} [AT] Ch {9} [AD] |
||
Objectives:
|
|||
04/01 04/03 04/08 04/10 |
|||
Virtual Memory | |||
A pure paging based memory allocation schemes require processes to be entirely memory-resident. This is often infeasible and wasteful. In this module we will explore algorithms that facilitate effective allocation of memory while minimizing wasteful allocations. We consider aspects of program behavior (such as the working set model) which reduces the total number of pages that need to be allocated to a process. | [Ch {9} [SCG] Ch {3} [AT] |
||
Objectives:
|
|||
04/15 04/17 |
|||
Virtualization | |||
Virtualization creates the illusion of multiple (virtual) machines on the same physical hardware. Virtualization allows a single computer to host multiple virtual machines; each virtual machine potentially running a different OS.As part of this module we will look at Type-1 and Type-2 hypervisors and techniques for effective virtualization. |
Ch {7} [AT] Ch {16} [SCG] Ch {10} [AD] |
||
Objectives:
|
|||
04/22 04/24 |
|||
Containers | |||
Containers are a lightweight, performant alternative to virtual machines. Unlike, virtual machines every container does not require its own full-blown OS. In fact, all containers on a single host share a single OS. In this module we will see how a container is ultimately just a group of processes ; as such,, a container can do anything that processes can do albeit with restrictions enforced by the kernel. | |||
Objectives:
|
|||
04/25 |
|||
File Systems | |||
Data managed on a hard disk must be amenable to updates, discovery, and retrievals. The underlying storage system only deals with disk blocks. In this module we explore a foundational construct in file systems -- the file control block. We will explore how the design of the file control block informs efficiency in retrievals of content. We will round out our discussion of file systems with a look at the unix file system, file allocation table, and the NT File system. |
Ch {5} [AT] Ch {4} [RR] Ch {10, 11} [SCG] |
||
Objectives:
|
|||
04/29 05/01 |
|||
Mass Storage | |||
In this module, we will explore the technologies behind the two popular data storage frameworks: hard disk drives and solid state drives. We will explore the key enablers of these systems. In the case of solid-state drives we will explore issues such as write-amplifications, wear leveling, and read-disturb errors. | Ch {11} [SCG] Ch {12} [AD] |
||
Objectives:
|
|||
05/06 |
|||
Disk Scheduling Algorithms | |||
In this module we will explore the rationale and need for disk scheduling algorithms. We will review several metrics that are used to assess the peformance of disk scheduling algorithms. We will explore and analyze several different disk scheduling algorthms. These algorithms are used to inform disk head movements as data are retrieved. We will look at key disk scheduling algorithms. |
Ch {12} [SCG] |
||
Objectives:
|
|||
05/08 |
|||
Comprehensive Final Exam in The Institute for Learning & Teaching (TILT) Room-221 Tuesday, May 13th, 9:40-11:40 am |
|||
Department of Computer Science, Colorado State University, Fort Collins, CO 80523 USA © 2025 Colorado State University |