Spring 2020 (01/27/2020 - 05/22/2020)

The semester has 14 class meetings including midterm and final exams. 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

Assignments

Online Quiz 1 on CUNY Blackboard (Due: before the class on Thursday, Feburary 6 on CUNY Blackboard)
Setting up a Linux system on a virtual machine and running the provided boot sector code (Due: before the class on Thursday, Feburary 13 on CUNY Blackboard)

Reading

Chapter 1 of the textbook

Online Discussion via Disqus (Experimental)

Topics: review of concept of interrupts and interrupt handling; Overview of I/O hardware; I/O schemes;

Lecture Notes

Assignments

Online Quiz 2 on CUNY Blackboard (Due: before the class on Thursday, February 13 on CUNY Blackboard)

Reading

Sections 1.2, 1.3, 1.7; Sections 12.1, 12.2, 12.3

Online Discussion via Disqus (Experimental)

Topics: OS functions and services; user OS interface; system calls; type of system calls; system calls and library functions; using system calls; system calls and APIs; system programs; overview of OS design and implementation; OS structure; OS debugging; building and booting OS

Lecture Notes

Assignments

Project 1: OS Abstraction on CUNY Blackboard (Due: In class February 27, 2020)

Reading

Sections 2.1 - 2.11

Topics: OS functions and services; user OS interface; system calls; type of system calls; system calls and library functions; using system calls; system calls and APIs; system programs; overview of OS design and implementation; OS structure; OS debugging; building and booting OS

Lecture Notes

Assignments

Project 1: OS Abstraction on CUNY Blackboard (Due: In class February 27, 2020)

Reading

Sections 2.1 - 2.11

Topics: concepts of process; process/thread scheduling; process/thread states; transition of process/threat states; process control block; process creation; process termination; multirprocess architecture; multithread architecture; comparison of multiprocess and multithread architectures;

Lecture Notes

Processes and Process Operations Threads IPC Example Programs: Process: Simple Multiprogramming Model Example Programs: Process: Memory Layout Example Programs: Process: Process Creation Example Programs: Process: Process Termination Example Programs: Process: Multiprocess Architecture: Echo Server and Client Example Programs: Process: Multiprocess Architecture: Monte Carlo simulation for estimating π Example Programs: Process: Multiprocess Architecture: the Chromium Projects Example Programs: Thread: Java Threads for Responsive Applications Example Programs: Thread: Multithread Architecture: Multithread Sum-all using Pthread Example Programs: Thread: Multithread Architecture: Multithread π Estimator using Pthread Example Programs: Thread: Multithread Architecture: Multithread Echo Server and Client using Pthread Example Programs: Thread: Multithread Architecture: Sum-all via Windows Thread Example Programs: Thread: Thread Library: Implicit Threads: Java Thread Pool via ExecutorService Example Programs: Thread: Thread Library: Implicit Threads: OpenMP Example Programs: Thread: Toward Creating User-Mode Thread Example Programs: IPC: POSIX IPC: Shared Memory Example Programs: IPC: POSIX IPC: Messsage Queue Example Programs: IPC: POSIX IPC: Ordinary Pipe Example Programs: IPC: POSIX IPC: Named Pipe (or FIFO) Example Programs: IPC: Windows IPC: Shared Memory Example Programs: IPC: Windows IPC: Named Pipe Example Programs: IPC: Windows IPC: Anonymous Pipe Example Programs: IPC: Windows IPC: Mail Slot Example Programs: IPC: Linux IPC: Remote Procedure Call (RPC)

Assignments

Presentations for Project 1 (Due: In class)
Online Quiz 3 on CUNY Blackboard (Due: before the class on Thursday, March 5 on CUNY Blackboard)
Experimenting process example programs in the above (partially). (Due: Due by March 5 on CUNY Blackboard.)
(Group) Project 2 Experimenting with Process Context Switch. The description is on CUNY Blackboard. (Due: before and in class on Thursday, April 2, 2020)

Reading

Section 3.1 - 3.6

Online Discussion via Disqus (Experimental)

Topics: concepts of process; process/thread scheduling; process/thread states; transition of process/threat states; process control block; process creation; process termination; multirprocess architecture; multithread architecture; comparison of multiprocess and multithread architectures;

Lecture Notes

Processes and Process Operations Threads IPC Example Programs: Process: Simple Multiprogramming Model Example Programs: Process: Memory Layout Example Programs: Process: Process Creation Example Programs: Process: Process Termination Example Programs: Process: Multiprocess Architecture: Echo Server and Client Example Programs: Process: Multiprocess Architecture: Monte Carlo simulation for estimating π Example Programs: Process: Multiprocess Architecture: the Chromium Projects Example Programs: Thread: Java Threads for Responsive Applications Example Programs: Thread: Multithread Architecture: Multithread Sum-all using Pthread Example Programs: Thread: Multithread Architecture: Multithread π Estimator using Pthread Example Programs: Thread: Multithread Architecture: Multithread Echo Server and Client using Pthread Example Programs: Thread: Multithread Architecture: Sum-all via Windows Thread Example Programs: Thread: Thread Library: Implicit Threads: Java Thread Pool via ExecutorService Example Programs: Thread: Thread Library: Implicit Threads: OpenMP Example Programs: Thread: Toward Creating User-Mode Thread Example Programs: IPC: POSIX IPC: Shared Memory Example Programs: IPC: POSIX IPC: Messsage Queue Example Programs: IPC: POSIX IPC: Ordinary Pipe Example Programs: IPC: POSIX IPC: Named Pipe (or FIFO) Example Programs: IPC: Windows IPC: Shared Memory Example Programs: IPC: Windows IPC: Named Pipe Example Programs: IPC: Windows IPC: Anonymous Pipe Example Programs: IPC: Windows IPC: Mail Slot Example Programs: IPC: Linux IPC: Remote Procedure Call (RPC)

Assignments

Presentations for Project 1 (Due: In class)
Online Quiz 3 on CUNY Blackboard (Due: before the class on Thursday, March 5 on CUNY Blackboard)
Experimenting process example programs in the above (partially). (Due: Due by March 5 on CUNY Blackboard.)
(Group) Project 2 Experimenting with Process Context Switch. The description is on CUNY Blackboard. (Due: before and in class on Thursday, April 2, 2020)

Reading

Section 3.1 - 3.6

Online Discussion via Disqus (Experimental)

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

Reading

Sections 5.1 - 5.7

Topics: Miterm Exam is held 6:05 - 8:10 PM in Room 236 Ingersoll Hall Extension (236IA). This exam covers chapters 1, 2, 3, and sections 12.1 and 12.2.

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

Reading

Sections 5.1 - 5.7

Notice: College open but no class scheduled per the College's calendar for Spring 2020

Notice: College open but no class scheduled per the College's calendar for Spring 2020

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

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: 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

Assignments

Group) Project 3 Process Synchronization. The description is on CUNY Blackboard. (Due: before the class on Thursday, May 14 via Github Classroom)

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: 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

Assignments

Online Quiz 6 on CUNY Blackboard (Due: before the class on Thursday, May 14 on CUNY Blackboard)
Final Review (on CUNY Blackboard) (Due: N/A)

Reading

Sections 9.1 - 9.4

Online Discussion via Disqus (Experimental)

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

Lecture Notes

Assignments

Online Quiz 7 on CUNY Blackboard (Due: before the class/final exam on Thursday, May 21 on CUNY Blackboard)
Final Review (on CUNY Blackboard) (Due: N/A)

Reading

Section 9.5; Sections 10.1 - 10.6

Online Discussion via Disqus (Experimental)