|
Topic
|
Slides
|
|
Introduction
to Operating Systems
|
Course logistics
Slides
- What is
an OS?
- Architecture
support for OS
- System
Calls
- OS
structures
|
|
Programs,
Processes and Threads
|
Slides
- Programs
and processes
- Processes
in UNIX
- Intro to
threads and lightweight processes
|
|
Intro
to Scheduling
|
Slides
- Scheduler
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
|
|
POSIX
Threads Synchronization
|
Slides
- 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
system 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
|
|
Case
Study: Producer Consumer Problem
|
Slides
|
|
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: Overview , Security
- Security
goals
- Security threats
- Authentication
- Authorization
- Confidentiality
- Case
studies
|