Spring 2025 (01/25/2025 - 05/22/2025)

The semester has 15 class meetings including the final exam. Clicking on a class day below, you should find the class module for the day including lecture notes, assignments, and others. The instructor releases the content for a class generally on the Monday before the class. However, the instructor often makes update to the module content after the initial release. You should check this page often for up-to-date content.

In case you encounter a problem when viewing class content, such as, a broken link, please report it to the instructor immediately.

Topics: overview of class organization; overview of operating systems including computer organization, computer architecture, operating system structures, resources management, and computing environments

Lecture Notes

Exercises

Reading

Chapter 1 of the textbook

Topics: concepts of process; process/thread scheduling; process/thread states; transition of process/threat states; process control block; process creation; process termination; multirprocess architecture;

Lecture Notes

Processes and Process Operations

Exercises

TBA

Reading

Notice: Conversion day, classes follow Wednesday schedule

Topics: concepts of threads thread control block; thread creation; thread termination; multithread architecture; comparison of multiprocess and multithread architectures;

Lecture Notes

Threads and Thread Models

Reading

Topics: Process vs. Thread, Inter-process Communications (IPC)

Lecture Notes

Threads and Thread Models
(Tutorial) Process vs. Threads - Part I
Inter-process Communication (IPC)

Exercises

TBA

Reading

Topics: Miterm Exam is held 6:05 - 8:10 PM This exam covers chapters 1, 2, 3, and sections 12.1 and 12.2.

Topics: Process vs. Thread, Inter-process Communications (IPC)

Lecture Notes

Threads and Thread Models
(Tutorial) Process vs. Threads - Part I
Inter-process Communication (IPC)

Exercises

TBA

Reading

Topics: Race condition, critical section problem, Peterson's solution, limitation of Peterson's solution, hardware support for synchronization, test_and_set, compare_and_swap, acquiring and releasing locks via hardware instructions, meeting critical section requirements (mutual exclusion, progress, and bounded waiting); Concept of deadlock; necessary conditions; resource allocation graph; Banker's algorithm; the Ostrich algorithm; deadlock avoidance; (time permits) deadlock detection; (time permits) deadlock prevention; (time permits) recovery from deadlock;

Lecture Notes

Inter-process Communication (IPC)
Synchronization
Deadlock

Exercises

TBA

Reading

Notice: Spring Recess - No classes scheduled

Topics: Race condition, critical section problem, Peterson's solution, limitation of Peterson's solution, hardware support for synchronization, test_and_set, compare_and_swap, acquiring and releasing locks via hardware instructions, meeting critical section requirements (mutual exclusion, progress, and bounded waiting); Concept of deadlock; necessary conditions; resource allocation graph; Banker's algorithm; the Ostrich algorithm; deadlock avoidance; (time permits) deadlock detection; (time permits) deadlock prevention; (time permits) recovery from deadlock;

Lecture Notes

Deadlock

Reading

Chapter 6, Sections 7.2 - 7.4; Sections 8.1, 8.3, 8.4, and 8.6; (Optional) Section 8.2, 8.5, 8.7, and 8.9

Topics: basic concepts regarding multiprogramming; scheduling criteria; scheduling algorithms; thread scheduling; scheduling for multiprocessor systems; real-time scheduling; (time permits) operating system CPU scheduling examples; (time permits) algorithm evaluation

Lecture Notes

CPU Scheduling

Reading

Topics: Address binding; memory allocation; logical address; physical address; rellocation and limit registers; continuous allocation; paging; TLB; analysis of TLB; structure of page tables (hierarchical, hashed, and inverted), memory segmentation

Lecture Notes

Main Memory
Exercises about Main Memory
Example Programs

Exercises

TBA

Reading

Sections 9.1 - 9.4

Topics: Concept of swapping; concept of virtual memory; demand paging; copy-on-write; frame allocation; page replacement; thrashing; working-set model;

Lecture Notes

Virtual Memory
Example Programs

Reading

Section 9.5; Sections 10.1 - 10.6

Topics: 6:05 - 8:10 PM, Wednesday, Decmeber 18, 2024.