Class 1:
 | Introduction
|
 | "What is an Operating System"
|
 | Interrupts
|
 | Operating Systems and Interrupt Handlers
|
 | Hardware Interrupts
|
 | Software Interrupts and System calls
|
 | History of Operating Systems -- resident monitors
|
 | Multiprogramming, Spooling, Timesharing
|
Class 2:
 | Operating Systems and Interrupts
|
 | Polled and Interrupt driven I/O
|
 | Kernel -- OS structures
|
 | System Calls
|
 | Memory Protection
|
 | Privileged Instructions
|
 | Mode switching via Interrupts
|
Class 3:
 | Operating Systems - big picture
|
 | Types of Operating Systems (mainframe, timesharing, distributed,
etc.)
|
Class 4:
 | Kernel structure, monolithic, micro, layered
|
 | Applications to device drivers and systems programs
|
 | Mechanisms and policies
|
 | Starting processes, running programs, loading programs
|
 | Programs and Processes
|
 | Process states and scheduling queues
|
Class 5:
 | Processes and Threads and Scheduling
|
 | Context Switching - the mechanism
|
 | Process Management, relationships (also Threads)
|
 | Interprocess Communications
|
 | Message Passing, RPC and RMI
|
Class 6:
 | Scheduling of Processes - Scheduling points/events
|
 | Preemptive and non-preemptive
|
 | FCFS, SJF and Priority
|
 | Round Robin and "quanta"
|
 | Multilevel schedulers
|
Class 7:
 | Multi-level feed back queues
|
 | Multiprocessor scheduling
|
 | Real time scheduling
|
 | Evaluation of schedulers -- deterministic, queuing, simulations
|
 | Real life schedulers (unix...windows/linux)
|
Class 8:
 | Threads and Processes
|
 | Terminology
|
 | Memory layout of threads
|
 | User and Kernel level threads -- and properties
|
 | Threading in Unix, Linux, Windows and Solaris
|
 | Starting/Stopping threads
|
 | Java Threads
|
Class 9:
 | Threads and memory sharing
|
 | The Railroad
Problem
|
 | Critical Sections
|
 | Conditions: Mutual Exclusion, Bounded Waiting, Progress
|
 | Attempted solutions to the Critical section problem
|
Class 10:
 | Peterson's solution to the 2-process critical section problem
|
 | Lamport's Bakery Algorithm
|
Class 11:
 | Atomicity
|
 | Hardware solutions -- interrupt disable, spin locks
|
Class 12:
 | Semaphores
|
 | Processes, critical sections and synchronization using semaphores
|
 | Producer - consumer problem
|
|
Class 13:
Class 14:
 | Readers and Writers with no starvation
|
Class 15:
Class 16:
 | Conditional Critical Regions
|
 | Solutions to Bounded Buffer, Readers and Writers, and Dining
Philosophers using CCR [CCR
Programs]
|
Class 17:
Class 18:
 | Monitors and Bounded Buffer, Readers and Writers, and Dining
Philosophers [Monitor
Programs]
|
 | Monitor-Semaphore equivalence [program]
|
Class 19:
 | Memory management - basics
|
 | compiling, linking, loading
|
 | relocation -- static and dynamic
|
 | physical and logical address spaces
|
Class 20:
 | Address translation
|
 | Overlays
|
 | Loading - linking - static - dynamic
|
 | MFT-MVT - contiguous allocation schemes
|
 | Fragmentation, compaction
|
 | Swapping
|
 | |
Class 21:
 | Introduction to paging |
 | Paging (protection, sharing, TLB, memory allocation) |
 | Paging and Segmentation |
Class 22:
 | Segmentation
|
 | Paging and Segmentation combined (Paged Segmentation) |
Class 23: Apr 18
 | The VAX memory management (P0, P1 and SYS)
|
 | Virtual Memory, Demand Paging
|
 | Page replacement algorithms
|
Class 24: Apr 20
 | Deadlocks -- system model -- necessary conditions
|
 | Resource Allocation Graph, Waits for graph
|
 | Deadlock Prevention
|
 | Deadlock Avoidance -- bankers Algorithm
|
Class 25: Apr 25
 | Deadlock Avoidance
|
 | Deadlock Detection
|
 | Deadlock Recovery
|
 | Device Management
|
 | Device Driver Structure
|
Class 26: Apr 27
 | Device Management - disk scheduling
|
 | File Systems, properties, structure
|
 | The Unix File System
|
 | Files, directories and links
|
 | Buffering in file systems
|
Class 27:
 | Review |
|