Disclaimer:
This is a set of notes,
that summarizes the class coverage of material. By no means
is this comprehensive or is a substitute for class notes and
attendance. Also, updating of this page is not guaranteed to
be frequent.
Class 1: Jan 19th
- Discussion on TV class logistics, homeworks, exams,
projects, cheating
- What is an operating system - various definitions
- Design goals of operating systems
- "convenience" and "efficiency"
- Government and Resource Management
- Old computers - how they worked
- Resident monitor and automation
- Spooling and Buffering
Class 2: Jan 24th - pretaped
- Spooling and buffering continued
- Multiprogrammed systems - batch and interactive
- Parallel, Distributed and Real time systems
- PC systems
- Structure of Operating Systems
- Process management, Memory management, File Systems, I/O
management and how things fit together.
- Security and Protection
- Interrupt handling
Class 3: Jan 26th - pretaped
- How System calls are implemented (and why)
- The need for protection
- How protection is implemented via memory bounds and
Interrupt handling
Class 4: Jan 31st
- Operating System Structures - layering and modularity
- Assigned reading Chapter 1-3
- The process concept (processes and Programs)
- States of a process
- Scheduling Queues
Class 5: Feb 2nd
- Scheduling continued
- CPU and I/O burst of a process
- How a process executes
- Context Switching - how contexts are saved and restored
- Policy and Mechanisms
- Scheduling Policies: FIFO and SJF
- Good and bad features of SJF
- Priority Scheduling
Class 6: Feb 7th - pretaped
- Overlapping of I/O and CPU as a method for getting effiiency
- SJF revisited - optimality of SJF
- Pre-emptive policies
- Round robin - what it is and how it works
- Response time
- Pros and cons of round robin
Class 7: Feb 9th - pretaped
- How to make round robin better
- Multi level queues
- Starvation revisited
- Multi level feedback queues (adaptive, dynamic scheduling)
- Scheduling in Unix
- Fine tuning of schedulers
- Evaluation of Schedulers: Deterministic, Queuing Models and 2 kinds of
simulations
- Implementing real schedulers - issues
Class 8: Feb 14
- Concurrent Processes, Shared Memory, and Threads
- Why are threads or shared memory processes important in the OS context
- What is the problem with shared memory:
- race conditions
- need for critical sections
- Properties of a critical section
- Towards a software solution (2 process)
Class 9: Feb 16
- Peterson's Algorithm for 2-process software solution
- Lamport's Bakery Algorithm for N process critical section
Class 11: Feb 21
- Lamport's Bakery Algorithm for N process critical section (revisited)
- Overflow problem with Lamport
- Software solution without overflow
- Hardware solution techniques
- Test and Set ... mutex OK but Bounded Waiting not OK.
- A Test and Set solution that provides Bounded Waiting
Class 12: Feb 23
- Types of Critical Sections (associated with variables)
- Programming with critical sections
- Introduction to Semaphores
- Dijkstra's definition
- Usage of semaphores for Critical sections and Synchronization
- The Bounded waiting problem with Dijkstra Semaphores
- The Busy Waiting problem with Dijkstra Semaphores
- Bounded Buffer problem (producer consumer and solution)
Class 13: Feb 28
- The Readers and Writers Problem
- Using Dijkstra Semaphores lead to starvation
- Simple solution to RW problem
- Book solution to RW problem
- Even FIFO semaphores can starve in RW solution
Class 14: March 1
- Implementation of Dijkstra Semaphores
- Atomicity needed for semaphore implementation
- Methods of obtaining atomicity: Interrupt Masking, Test-Set
instruction
- Implementation of Blocking Semaphores
- Properties of Blocking semaphores (FIFO Behavior)
Class 15: March 6th
- Review of material
- The Readers and Writers problem - correct solution (click
here)
Class 16: March 8th
- Mid Term Exam. Open Book,
Open Notes. Material
covered till Class 14, March 1.
Spring Break March 13-17
Class 17: March 20th
- Project details - how to write semaphore programs on Unix
- Project details - sample programs and software (project
info)
- Introduction to the Dining Philosophers Problem
Class 18: March 22
- Solutions to the Mid Term Exam
- The Dining Philosophers - review
- Avoiding deadlock - all or nothing resource allocation (pick both chopsticks
on nothing)
- Starvation in Dining Philosophers
Class 19: March 27th
- The conditional critical region (CCR)
- How to use CCRs - bounded buffer, readers and writes and dining
philosophers
Class 20: March 29th
- CCRs and Dining Philosophers
- Proving the equivalence of CCRs and Semaphores
- Introduction to Monitors (and semantics of wait/signal)
Class 21: April 3rd
- Usage of Monitors - Bounded buffer, Readers and Writers, Dining
Philosophers
- Introduction to Memory Management - Binding, relocating, protection, DLL,
swapping
Class 22: April 5th
- Memory management - process address space layout
- Allocating memory using contiguous allocation (fixed and variable
partitions)
- Problems of fragmentation, sharing, dynamic allocation
- Paging (address translation and sharing)
Class 23 April 10th
- Paging continued - description of how pagingis done
- Page tables
- Protection
- Sharing
- MMU function
- Paging cache (TLB)
Class 24 April 12th
- Multilevel paging (VAX memory architecture)
- Shortcomings of paging
- How segmentation works
- Shortcoming of segmentation
- Fixing segmentation, and making it really work
- Why segmented paging is similar to 2-level paging
Class 25 April 17th
- Virtual Memory concepts
- Locality property of programs
- Demand paging - valid bit
- Demand paging mechanisms (page faults, etc)
- Page replacement, FIFO, Belady's anomaly
Class 26 April 19th
- Page replacement: OPT, LRU
- LRU Approximations
- Paging problems, thrashing
- Program structure
Class 27 April 24
- Deadlocks
- necessary conditions for deadlocks
- modeling deadlocks, RAG, WFG
- Deadlock Preventaion (4 algorithms)
- Intro to deadlock Avoidance
Class 28 April 26
- Bankers Algorithm (complete version)
- Deadlock detection
- Recovery from deadlock
Class 29 May 1
- Plan Secondary storage mgmt
Class 30 May 3 No class
- reading day
Final Exam:
May 10th