Week/Topic |
Slides |
|
|
Introduction to Operating Systems |
slides
What is an OS?
Architecture Support for OS
System Calls
OS Structures
|
Programs, Processes, Threads |
slides
Programs and Processes
Processes in UNIX
Intro to Threads and Light-weight Processes
|
Intro to Scheduling |
slides
Schedulers in the OS
Structures of Schedulers
FIFO/SPF/SRTF/Priority Schedulers
|
POSIX Threads |
slides
Why Threads?
Pthread Management
Pthread Safety
Pthread Attributes
|
Synchronization |
slides
Mutual Exclusion
Semaphores
Producer/Consumer and other classical Problems
Monitors
Synchronization in Java
Synchronization in POSIX Threads
- Mutex Locks
- Condition Variables
- Read-Write Locks
- Interlude: priority inheritance
|
UNIX I/O |
slides
File Representation
Basic File Operations
Caching: File Open/Close
Multiplexing: select()
File Descriptors
|
Files and Directories |
slides
File Systems and Directories
UNIX inodes
Accessing Directories
Understanding Links in Directories
|
UNIX Special Files |
slides
Pipes
Named Pipes
Special Files and Devices
|
POSIX IPC |
slides
It's all about naming!
Message Queues
Shared Memory
Semaphore Sets
|
Asynchronous Events: Signals |
slides
Signal Concepts
Generating and Catching Signals
Waiting for Signals
Signals and Program Start-up
Signal Handling and Threads
|
Time and Timers |
slides
The 'Epoch'
The Current Time
Sleeping and Waiting
Timers
|
Network Programming: |
slides
Network Programming as Programming across Machine Boundaries
The Sockets API
Server Design
|
Security |
slides
Security Goals
Authentication
Authorization
Confidentiality
Case Studies
|