This note mainly covers writing multi-threaded programs and implementing synchronization primitives with low-level hardware.
These topics are covered in the first half of the course.
OS is a software layer between application programs and the hardware:
OS allows:
OS provides abstractions:
In reality, OS is the main program that calls applications as subroutines. Applications run until it returns control back to the OS.
It is interactive but utilizes hardware very poorly.