Fall 2019 (08/27/2019 - 12/20/2019)

The semester has 29 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 Wednesday, September 4 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 Wednesday, September 11 on CUNY Blackboard)
Setting up a x86 Linux system on a VirtualBox virtual macine. The assignment is on CUNY Blackboard. (Due: by September 12 in person.)

Reading

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

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 Wednesday, September 11 on CUNY Blackboard)
Setting up a x86 Linux system on a VirtualBox virtual macine. The assignment is on CUNY Blackboard. (Due: by September 12 in person.)

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

Reminder: complete exercises assigned last week (Due: see due dates from last week)
Online Quiz 3 on CUNY Blackboard (Due: before the class on Wednesday, September 18 on CUNY Blackboard)
Running bootsector example and Linux API example programs. The assignment is on CUNY Blackboard. (Due: Due by September 18 in person.)

Reading

Sections 2.1 - 2.11

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

Reminder: complete exercises assigned last week (Due: see due dates from last week)
Online Quiz 3 on CUNY Blackboard (Due: before the class on Wednesday, September 18 on CUNY Blackboard)
Running bootsector example and Linux API example programs. The assignment is on CUNY Blackboard. (Due: Due by September 18 in person.)

Reading

Sections 2.1 - 2.11

Online Discussion via Disqus (Experimental)

Topics: concepts of process and thread; process/thread scheduling; process/thread states; transition of process/threat states; process control block; process creation; process termination; multirprocess architecture; concept of interprocess communication; concepts of shared memory and message passing; interprocess communication in POSIX and Windows (including shared memory and pipes); (time permits) client-server communications (socket and rpc);

Lecture Notes

Assignments

Reminder: complete exercises assigned last week (Due: see due dates from last week)
Online Quiz 4 on CUNY Blackboard (Due: before the class on Wednesday, September 18 on CUNY Blackboard)
Running process example programs. The assignment is on CUNY Blackboard. (Due: Due by September 25 in person.)
(Group) Project 1 Creating a Simple Shell. The description is on CUNY Blackboard. (Due: before the class on Wednesday, October 2 via Github Classroom)

Reading

Section 3.1 - 3.6

Online Discussion via Disqus (Experimental)

Topics: concepts of process and thread; process/thread scheduling; process/thread states; transition of process/threat states; process control block; process creation; process termination; multirprocess architecture; concept of interprocess communication; concepts of shared memory and message passing; interprocess communication in POSIX and Windows (including shared memory and pipes); (time permits) client-server communications (socket and rpc);

Lecture Notes

Assignments

Reminder: complete exercises assigned last week (Due: see due dates from last week)
Online Quiz 4 on CUNY Blackboard (Due: before the class on Wednesday, September 18 on CUNY Blackboard)
Running process example programs. The assignment is on CUNY Blackboard. (Due: Due by September 25 in person.)
(Group) Project 1 Creating a Simple Shell. The description is on CUNY Blackboard. (Due: before the class on Wednesday, October 2 via Github Classroom)

Reading

Section 3.1 - 3.6

Online Discussion via Disqus (Experimental)

Topics: concepts of process and thread; process/thread scheduling; process/thread states; transition of process/threat states; process control block; process creation; process termination; multirprocess architecture; concept of interprocess communication; concepts of shared memory and message passing; interprocess communication in POSIX and Windows (including shared memory and pipes); (time permits) client-server communications (socket and rpc);

Lecture Notes

Assignments

Reminder: complete exercises assigned last week (Due: see due dates from last week)
Online Quiz 4 on CUNY Blackboard (Due: before the class on Wednesday, September 18 on CUNY Blackboard)
Running process example programs. The assignment is on CUNY Blackboard. (Due: Due by September 25 in person.)
(Group) Project 1 Creating a Simple Shell. The description is on CUNY Blackboard. (Due: before the class on Wednesday, October 2 via Github Classroom)

Reading

Section 3.1 - 3.6

Online Discussion via Disqus (Experimental)

Topics: multithread architecture; comparison of multiprocess and multithread architectures; (time permits) thread libraries; (time permits) operating system thread libraries examples; (time permits) implicit threading; (time permits) implicit threading operating systems examples; (time permits) threading issues;

Lecture Notes

Assignments

Reminder: complete exercises assigned last week (Due: see due dates from last week)
Online Quiz 5 on CUNY Blackboard (Due: before the class on Wednesday, October 2 on CUNY Blackboard)

Reading

Section 4.1 - 4.7

Online Discussion via Disqus (Experimental)

Notice: College open but no class scheduled per the College's calendar for Fall 2019

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

Assignments

Review for Midterm Exam (See CUNY Blackboard for Review 1 and Test 1) (Due: N/A)
(Group) Project 1 Review and Evaluation (Discuss in class) (Due: Monday, October 7, 2019)
Online Quiz 6 on CUNY Blackboard (Due: before the class on Wednesday, October 16 on CUNY Blackboard)
(Group) Project 2 Quantifying Context Switching Cost. The description is on CUNY Blackboard. (Due: before the class on Wednesday, October 30 via Github Classroom)

Reading

Sections 5.1 - 5.7

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

Assignments

Review for Midterm Exam (See CUNY Blackboard for Review 1 and Test 1) (Due: N/A)
(Group) Project 1 Review and Evaluation (Discuss in class) (Due: Monday, October 7, 2019)
Online Quiz 6 on CUNY Blackboard (Due: before the class on Wednesday, October 16 on CUNY Blackboard)
(Group) Project 2 Quantifying Context Switching Cost. The description is on CUNY Blackboard. (Due: before the class on Wednesday, October 30 via Github Classroom)

Reading

Sections 5.1 - 5.7

Online Discussion via Disqus (Experimental)

Notice: College open but no class scheduled per the College's calendar for Fall 2019

Topics: CPU scheduling (unfinished discussion); Q & A for Midterm Exam.

Lecture Notes

Reading

Chapters 1, 2, 3, 4, 5, and Sections 12.1 and 12.2 of the textbook; lecture note; all quizzes; review guide and test

Online Discussion via Disqus (Experimental)

Topics: Miterm Exam is held 3:40 - 4:55 PM, October 21 in Room 234 Ingersoll Hall Extension (234IA)

Online Discussion via Disqus (Experimental)

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)

Lecture Notes

Assignments

Reminder: (Group) Project 2 Quantifying Context Switching Cost. The description is on CUNY Blackboard. (Due: before the class on Wednesday, October 30 via Github Classroom)

Reading

Chapter 6, Sections 7.2 - 7.4

Online Discussion via Disqus (Experimental)

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)

Lecture Notes

Assignments

Reminder: (Group) Project 2 Quantifying Context Switching Cost. The description is on CUNY Blackboard. (Due: before the class on Wednesday, October 30 via Github Classroom)

Reading

Chapter 6, Sections 7.2 - 7.4

Online Discussion via Disqus (Experimental)

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)

Lecture Notes

Assignments

Reminder: (Group) Project 2 Quantifying Context Switching Cost. The description is on CUNY Blackboard. (Due: before the class on Wednesday, October 30 via Github Classroom)

Reading

Chapter 6, Sections 7.2 - 7.4

Online Discussion via Disqus (Experimental)

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

Reminder: (Group) Project 2 Quantifying Context Switching Cost. The description is on CUNY Blackboard. (Due: before the class on Wednesday, November 6 via Github Classroom)
Online Quiz 7 on CUNY Blackboard (Due: before the class on Monday, November 11 on CUNY Blackboard)
Online Quiz 8 on CUNY Blackboard (Due: before the class on Monday, November 18 on CUNY Blackboard)
(Optional) Exercise on resource allocation and Banker's algorithm (Due: N/A)

Reading

Sections 8.1, 8.3, 8.4, and 8.6; (Optional) Section 8.2, 8.5, 8.7, and 8.9

Online Discussion via Disqus (Experimental)

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 9 on CUNY Blackboard (Due: before the class on Wednesday, November 20 on CUNY Blackboard)

Reading

Sections 9.1 - 9.4

Online Discussion via Disqus (Experimental)

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 9 on CUNY Blackboard (Due: before the class on Wednesday, November 20 on CUNY Blackboard)

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 10 on CUNY Blackboard (Due: before the class on Monday, November 25 on CUNY Blackboard)
(Group) Project 3 Perfect Number on Multicore Systems (The Assignment is on CUNY Blackboard) (Due: Wednesday, December 4, 2019)

Reading

Section 9.5; Sections 10.1 - 10.6

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 10 on CUNY Blackboard (Due: before the class on Monday, November 25 on CUNY Blackboard)
(Group) Project 3 Perfect Number on Multicore Systems (The Assignment is on CUNY Blackboard) (Due: Wednesday, December 4, 2019)

Reading

Section 9.5; Sections 10.1 - 10.6

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 10 on CUNY Blackboard (Due: before the class on Monday, November 25 on CUNY Blackboard)
(Group) Project 3 Perfect Number on Multicore Systems (The Assignment is on CUNY Blackboard) (Due: Wednesday, December 4, 2019)

Reading

Section 9.5; Sections 10.1 - 10.6

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 10 on CUNY Blackboard (Due: before the class on Monday, November 25 on CUNY Blackboard)
(Group) Project 3 Perfect Number on Multicore Systems (The Assignment is on CUNY Blackboard) (Due: Wednesday, December 4, 2019)

Reading

Section 9.5; Sections 10.1 - 10.6

Online Discussion via Disqus (Experimental)

Topics: I/O devices; I/O schemes; characterizing I/O devices; structure of I/O subsystems; (time permits) design of I/O subsystems

Lecture Notes

Assignments

Reminder: (Group) Project 3 Perfect Number on Multicore Systems (The Assignment is on CUNY Blackboard) (Due: Wednesday, December 4, 2019)

Reading

Sections 12.1, 12.2, 12.3, 12.4, and 12.5

Topics: file concept, access methods, disk and directory structure, file-system mounting, file sharing, file protection; (time permits) file-System structure, file-System operations directory implementation, allocation methods, free-space management, efficiency and performance, file system recovery;

Lecture Notes

Assignments

Reminder: (Group) Project 3 Perfect Number on Multicore Systems (The Assignment is on CUNY Blackboard) (Due: Wednesday, December 4, 2019)
(Optional) File Path (posted on CUNY Blackboard) (Due: N/A)

Reading

Chapters 13 and 14

Online Discussion via Disqus (Experimental)

Topics: Overview of mass storage; HDD; NVM; optimization for HDD (HDD scheduling); optimization for NVM; reliability and efficiency; RAID; ZFS

Lecture Notes

Assignments

(Group) Project 3 Perfect Number on Multicore Systems (The Assignment is on CUNY Blackboard) (Due: Wednesday, December 4, 2019)
Review for final exam and Test 2 (on CUNY Blackboard) (Due: N/A)

Reading

Sections 11.1, 11.2, 11.3, 11.4, 11.8

Topics: Selected topics on file systems and mass storage; Q & A for Final Exam.

Lecture Notes

Reading

Relevant chapters in the textbook; lecture notes; all quizes; review guides and tests

Online Discussion via Disqus (Experimental)

Topics: Overview of mass storage; HDD; NVM; optimization for HDD (HDD scheduling); optimization for NVM; reliability and efficiency; RAID; ZFS

Lecture Notes

Assignments

(Group) Project 3 Perfect Number on Multicore Systems (The Assignment is on CUNY Blackboard) (Due: Wednesday, December 4, 2019)
Review for final exam and Test 2 (on CUNY Blackboard) (Due: N/A)

Reading

Sections 11.1, 11.2, 11.3, 11.4, 11.8