CS370: Operating Systems |
[Schedule] | [Assignments] | [Grading] | [Syllabus] | [Infospaces] | [Canvas] | [Home] |
Last updated on Wednesday, December 6, 2023 4:17 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 HW1 8/22 Term-Project (TP) 8/22 |
||
Objectives:
|
|||
08/22 08/24 |
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 08/30 |
||
Objectives:
|
|||
08/29 08/31 |
Lecture 3 Lecture 4 |
||
Inter-Process Communications | Readings | ||
A key role of the OS is to ensure that processes execute in isolation and have no ability to influence each other's execution. In this module, we will explore how the OS allows processes to communicate with each other. We will look at the 3 different mechansims to accomplish this. |
Ch {3} [SGG] Ch {2} [AT] Ch {2, 3} [AD] HW3 09/06 |
||
Objectives:
|
|||
09/05 09/07 |
Lecture 5 Lecture 6 |
||
Threads | |||
A thread can be thought of as a lightweight process. Threads also exist within the confines of a singular process. Why would we want a kind of process within a process? The key reason is simplified data sharing and fast context switches. The sharing occurs at a scale and simplicty that would be very difficult to accomplish across processes. |
Ch {4} [SCG] Ch {2} [AT] Ch {12} [RR] Ch {4} [AD] |
||
Objectives:
|
|||
09/12 09/14 |
Lecture 7 Lecture 8 |
||
Process Synchronization | Ch {5}[SCG] Ch {4} [AT] HW4 09/20 |
||
When multiple processes cooperate with each other concurrently they must synchronize their actions. A key consieration is correctness and safety of the mechanisms that we use: incorrect solution have We will look at several classical problems in synchronization to help you understand the core issues that arise during process synchronization. | |||
Objectives:
|
|||
09/19 09/21 09/28 |
Lecture 9 Lecture 10 Lecture 11 |
||
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:
|
|||
09/26 |
Lecture 12 |
||
Mid Term I (10/05): Covers all topics covered up until the lecture on Tuesday (10/03). |
|||
CPU Scheduling algoirithms | |||
The CPU is reponsible for ensuring that multiple processes can make forward progress. The scheduling algorithm must accomplish several competing objectives: latency, throughput, priorty, and fairness. We will look at a slew of scheduling algorithms to accomplish these objectives. | Ch {6} [SCG] Ch {7} [AD] Ch {2} [AT] HW5 10/11 |
||
Objectives:
|
|||
10/03 10/10 10/12 |
Lecture 13 Lecture 15 Lecture 16 |
||
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 10/16 |
||
Objectives:
|
|||
10/17 10/19 |
Lecture 17 Lecture 18 |
||
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:
|
|||
10/24 10/26 10/31 11/02 |
Lecture 19 Lecture 20 Lecture 21 Lecture 22 |
||
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:
|
|||
11/07 11/09 |
Lecture 23 Lecture 24 |
||
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:
|
|||
11/14 11/16 |
Lecture 25 Lecture 26 |
||
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:
|
|||
11/17 |
Lecture 26-B |
||
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:
|
|||
11/28 11/30 |
Lecture 27 Lecture 28 |
||
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:
|
|||
12/05 |
Lecture 29 |
||
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:
|
|||
12/07 |
Lecture 30 |
||
Comprehensive Final Exam in Behavioral Sciences-131 Thursday, December 14th, 2:00-4:00 pm |
|||
Department of Computer Science, Colorado State University, Fort Collins, CO 80523 USA © 2023 Colorado State University |