67808 – Operating Systems Course
Spring 2012

Course Plan

Note that the exercise sessions precede the lecture in each week.

Date Material Reading Notes
1 12Mar12 14Mar12 Administration and rules
Introduction to Unix and system calls
Explanation of Ex1
Ex1: cost of trap
DEADLINE: 22/3/2012
Bach 1 PDF
PDF
PPT
15Mar12 Introduction
What the operating system does
Hardware support for privileged execution
Stallings 2.1, 1.4
Silberschatz 1.1, 1.5, 2.3
PDF
Background on Architecture:
PDF
2 19Mar12 21Mar12 Signals
Signals in unix, signal races
Online guide: Signals
Online guide: Static C Libraries
PDF
PDF
PPT
22Mar12 Processes
What is a process
Processes vs. threads
Motivation for multiprogramming
Stallings 3.1, 3.4-5, 4.1
Silberschatz 3.1, 4.1-3
PDF
3 26Mar12 28Mar12 User-Level Threads
Call stacks
Implementing threads with setjmp and longjmp
Explanation of Ex2
Ex2: a user-level thread library
DEADLINE: 19/4/12
Stallings 4.1
Bach 6.4
PDF
PDF
PPT
29Mar12 CPU scheduling
Metrics and dependence on workload
SJF, preemption, and priority-based scheduling
Stallings 9
Silberschatz 5.1-3
PDF
PESAH
4 16Apr12 18Apr12 PTHREADS
POSIX threads programming
Ex3: concurrent programming
DEADLINE: 3/5/2012
Online guide: PThreads PDF
PDF
PPT
19Apr12 Concurrency
Problems with concurrent access to shared data
Mutual exclusion algorithms
Semaphores and locks
  PDF
YOM ZIKARON + ATZMAUT
5 30Apr12 02May12 Concurrent programming problems
Readers-writers lock
Bounded buffer
  PDF
PDF
PPT
03May12 Deadlock
The problem of deadlock
Avoidance and prevention of deadlock
Stallings 6.1-6
Silberschatz 7.1-5
PDF
6 07May12 09May12 Memory Management
Hardware support in real systems
Silberschatz 9 PDF
PDF
PPT
10May12 Memory management
Structure of the address space
Segmentation and contiguous allocation
Stallings 1.5, 7.1-2, 7.4
Silberschatz 8.1, 8.3, 8.6
PDF
7 14May12 16May12 Explanation of Ex4
Ex4: memory mapping algorithms
DEADLINE: 31/5/12
UNIX file system API
Bach 5 PDF
PDF
PPT
17May12 Virtual memory
Paging concepts, hardware support, and page replacement algorithms
Thrashing and swapping
Stallings 7.3, 8.1-2
Silberschatz 8.2, 8.4-5, 9.1-6
PDF
8 21May12 23May12 Structure of the traditional Unix file system Silberschatz 12, 14
Bach 4
PDF
PDF
PPT
24May12 File Systems
What is a file
File naming and directories
Permissions and access control
Stallings 12.1, 12.3-4, 16.2
Silberschatz 10.1, 10.3, 10.6, 14.4-5
PDF
PDF
Disk access:
PDF
9 28May12 30May12 Internet Sockets API Online guide PDF
PDF
PPT
31May12 Data access and caching
memory-mapped files
  PDF
10 04Jun12 06Jun12 Inter Process Communication (IPC)
Ex5: socket programming
DEADLINE: 21/6/2012
Online guide PDF
PDF
07Jun12 Communication
Naming and name servers
Programming interfaces
Client-server systems
Stallings 14.1
Silberschatz 3.4-6
PDF
11 11Jun12 13Jun12 Advanced Topics
System security
Operating system structure and Microkernels
  PDF
PDF
PPT
14Jun12 Protocol stacks
Layered network model
TCP/IP
TCP congestion and flow control
Stallings 13.1-2
Silberschatz 16.6
PDF
ISO OSI:
PDF
12 18Jun12 20Jun12 Fun stuff
Random numbers
  PDF
PDF
21Jun12 Distributed systems
Principles
Remote file access
Load balancing
  PDF

Books

  1. Dror Feitelson's OS course notes, linked to each week's lecture. Note that the individual chapters are often updated just prior to the lectures, so it is best not to print the whole thing in advance.
  2. Text Book: Andrew Tanenbaum, Modern Operating Systems 3rd ed., Pearson Education, 2009.
  3. Text Book: William Stallings, Operating Systems: Internals and Design Principles 5th ed., Prentice-Hall, 2005. (or other edition)
  4. Text Book: Abraham Silberschatz, Peter Baer Galvin and  Greg Gagne, Operating System Concepts,  7th ed., John Wiley & Sons, Inc., 2005. (or other edition)
  5. Advanced Programming in the UNIX Environment, W. Richard Stevens.