Week of |
Topic(s) and Papers |
30 January |
Introduction
Readings |
Silberschatz et al.: Ch. 1,2.
|
Slides |
Welcome Lecture:
[Slides]
[Handouts]
Overview Lecture:
[Slides]
[Handouts]
|
Lecture |
History of operating system development. Role of
an operating system. Evolution of hardware and
operating systems. Course structure and plan.
|
Audio |
Mon, January 30: [mp3] [Ogg]
Tue, January 31: [mp3] [Ogg]
Wed, February 1: [mp3] [Ogg]
|
Homework |
To be assigned
|
|
6 February |
Memory Management
Readings |
Silberschatz et al.: Ch. 8.
Bonwick:
The
Slab Allocator: An Object-Caching Kernel
Memory Allocator
|
Slides |
Memory Management Lecture:
[Slides]
[Handouts]
|
Lecture |
Rubber, roads, and operating systems. Allocation
strategies for main memory. The problem of
fragmentation. Overlays and placement algorithms
for fixed partitions. Dynamic partitioning
strategies. External fragmentation. The Buddy
System. Swapping and relocation. Segmentation
vs. position independent code.
Address translation, page tables, and
paging. Implementations of page tables
(hierarchical, hashed). TLBs and the
performance impact of memory hierarchies.
Memory protection and multilevel paging
mechanisms. Complications of page sharing and
need for inverted page tables.
The address space as a resource: understanding
the proper relationship between actors,
processes, and address spaces.
|
Audio |
Mon, Feb 6: [mp3] [Ogg]
Tue, Feb 7: [mp3] [Ogg]
Wed, Feb 8: [mp3] [Ogg]
|
|
13 February |
Virtual Memory
Readings |
Silberschatz et al.: Ch. 9.
|
Slides |
Virtual Memory Lecture:
[Slides]
[Handouts]
|
Lecture |
Making something out of nothing: revisiting the
swapping concept. Demand paging
vs. prefetching. Page faults and architecture
support for paging. Performance implications of
memory hierarchies. Page replacement policies
and ageing strategies (FIFO, LRU, Stack
algorithms). Working sets and the problem of
shared pages. Second chance algorithms. Page
buffering and why clean frames are better than
free frames. Frame allocation policies and the
recurring problem of ad hoc policy in
monolithic systems. Pinning. Thrashing. Variable
page sizes.
|
Audio |
Mon, February 13: [mp3] [Ogg]
Tue, February 14: [mp3] [Ogg]
Wed, February 15: [mp3] [Ogg]
|
|
20 February |
Process Control and Scheduling
|
27 February |
Process Synchronization
Readings |
Silberschatz et al.: Ch. 6.
|
Slides |
Process Synchronization Lecture:
[Slides]
[Handouts]
|
Lecture |
The problem with unrestricted
concurrency. Race conditions and critical
sections. Software meachanisms. The Bakery
Algorithm. Hardware mechanisms: atomic
instructions, disabling interrupts. Operating
system mechanisms: semaphores. The
producer/consumer problem. The readers/writers
problem. Care and feeding of
philosophers. Monitors and condition variables.
|
Audio |
Mon, February 27: [mp3] [Ogg]
Tue, February 28: [mp3] [Ogg]
Wed, March 1: [mp3] [Ogg]
|
|
6 March |
Deadlocks
Readings |
Silberschatz et al.: Ch. 7.
|
Slides |
Deadlocks Lecture:
[Slides]
[Handouts]
|
Lecture |
Definition of deadlock. Railroads in
Indianna. Conditions for deadlock. Resource
allocation graphs. Methods for prevention,
avoidance, and detection. Safe states. The
Bankers Algorithm. An integrated solution.
|
Audio |
Mon, March 6: [mp3] [Ogg]
Wed, March 8: [mp3] [Ogg]
|
|
13 March |
File Systems
Readings |
Silberschatz et al.: Ch. 10, 11.
|
Slides |
File Systems Lecture:
[Slides]
[Handouts]
|
Lecture |
Definition of a ``file'' and purpose of a file
system. Files and file attributes. Conventional
file protection mechanisms. Why they do not
work.
Operations on files.
Files as a generic interface for I/O channels.
Access methods for files.
Directories and directory
organization. Operations on directories. Single
level, two level, and multilevel
directories. Acyclic graph directories. General
graph directories. Protection.
File sharing and consistency semantics. File
system components and the architecture of a file
system. File allocation policies and storage
management strategies. Linked vs. hierarchical
file structures. Log structured file systems.
|
Audio |
Mon, March 13: [mp3] [Ogg]
Wed, March 15: [mp3] [Ogg]
|
|
20 March |
SPRING BREAK
|
27 March |
File System and Disk Management
Readings |
Silberschatz et al.: Ch. 11, 12.
Ruemmler and Wilkes: An
Introduction to Disk Drive Modeling
|
Slides |
File Systems II, Disk Management Lecture:
[Slides]
[Handouts]
|
Lecture |
Free space management. Directories as a type of
file. Consistency and the problem of directory
updates. Why general directory graphs are a bad
idea. Backup and recovery. Block (buffer)
caching. Ram disks. Placement, interleaving, and
update ordering. Disk drive mechanics and
performance. Interleaving and disk scheduling.
|
Audio |
Mon, March 27: [mp3] [Ogg]
Tue, March 28: [mp3] [Ogg]
|
|
3 April |
More on File Systems
Lecture |
Log-structured file systems, checkpointing.
|
Audio |
Mon, April 3: [mp3] [Ogg]
Tue, April 4: [mp3] [Ogg]
Wed, April 5: [mp3] [Ogg]
|
|
10 April |
Access Control and Security
Readings |
Silberschatz et al.: Ch. 14, 15.
Lampson: Protection
|
Slides |
Protection and Security Lecture:
[Slides]
[Handouts]
|
Lecture |
Domains of protection. Domain structure. Domain
implementation in UNIX. The Lampson Access
Matrix. Access Control Lists (ACLs) and
Capabilities. The Safety Problem. The
confinement problem. Why users are not
subjects. Enforceable vs. political security
policies.
|
Audio |
Mon, April 10: [mp3] [Ogg]
Tue, April 11: [mp3] [Ogg]
|
|
17 April |
Microkernels and Distributed Systems
|
24 April |
Microkernels
Lecture |
Questions of operating system
structure. Encapsulation of function, and design
of kernel substrates for encapsulation rather
than feature set. The argument for
microkernels. Core mechanisms of a microkernel,
advantages, and disadvantages.
|
Audio |
Mon, April 24: [mp3] [Ogg]
Tue, April 25: [mp3] [Ogg]
Wed, April 26: [mp3] [Ogg]
|
|
1 May |
Exam Review
Lecture |
Completing the microkernels topic
(Monday). Response to exam review questions (if
any) or advanced topic discussion.
|
Audio |
Mon, May 1: [mp3] [Ogg]
|
|