Section 1.4 Course objectives
By the end of this course, a student should be able to:
- P1: Processes
- Explain the mechanisms that an operating system utilizes to allow multiple processes to be run on a limited number of CPUs
- P2: Scheduling
- Describe and contrast the policies that the operating system might employ for scheduling processes to run
- M1: Virtual Memory
- Explain the mechanisms employed by the operating system in order to virtualize the physical memory so that processes donβt need to know anything about the physical layout of their memory.
- M2: Page swapping
- Explain the mechanisms and policies involved in using persistent storage to provide the illusion that there is more available memory than there actually is.
- C1: Threads
- Describe how threads allow a process to have multiple threads of computation concurrently, and the challenges that this brings up.
- C2: Concurrency primitives
- Describe the core mechanisms used for implementing concurrency (locks, condition variables, semaphores).
- P1: Files
- Describe the main mechanisms and policies involved in the file abstraction and persisting information to a persistent storage medium.
- P2: Journaling
- Describe the journaling and log-based system mechanisms that ensure a file system can recover from something like a power outage.
- I1: Code comprehension
- Examine the code of a small operating system, and identify how the various OS concepts are implemented.
- I2: Code modification
- Make suitable modifications to the small OS code in order to implement new features.
