67808 – Operating Systems Course
Spring 2010

Course Plan
Date Material Reading Notes
1 22Feb10 24Feb10 Administration and rules
Introduction to Unix and system calls
Explanation of ex1
Ex1: cost of trap DEADLINE: 10.3.10
Bach 1 PDF
PDF
25Feb10 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 01Mar10 03Mar10 PURIM: no exercises!    
04Mar10 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 08Mar10 10Mar10 Signals
Signals in unix, signal races
Online guide: Signals
Online guide: Static C Libraries
PDF
PDF
11Mar10 CPU scheduling
Metrics and dependence on workload
Preemption and priority-based scheduling
Stallings 9
Silberschatz 5.1-3
PDF
4 15Mar10 17Mar10 User-Level Threads
Implementing threads with setjmp and longjmp
Explanation of Ex2
Ex2: a user-level thread library DEADLINE: 11.4.10
Stallings 4.1
Bach 6.4
PDF
PDF
18Mar10 Concurrency
Problems with concurrent access to shared data
Mutual exclusion algorithms
Semaphores
  PDF
5 22Mar10 24Mar10 PTHREADS
POSIX threads programming
Online guide: PThreads PDF
PDF
25Mar10 No lecture    
PESAH
6 12Apr10 14Apr10 Concurrent programming problems
Readers-writers lock
Ex3: concurrent programming DEADLINE: 28.4.10
  PDF
PDF
15Apr10 Deadlock
The problem of deadlock
Avoidance and prevention of deadlock
Stallings 6.1-6
Silberschatz 7.1-5
PDF
7 19Apr10 21Apr10 YOM HA'ATZMA'UT: no exercises!    
22Apr10 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
8 26Apr10 28Apr10 Memory Management
Hardware support in real systems
Silberschatz 9 PDF
PDF
29Apr10 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
9 03May10 05May10 Structure of the traditional Unix file system
UNIX file system API
Ex4: file system structure DEADLINE: 20.5.10
Silberschatz 12, 14
Bach 4
PDF
PDF
PDF
PDF
06May10 File Systems
What is a file
File naming and directories
Data access and caching
Stallings 12.1, 12.3-4, 16.2
Silberschatz 10.1, 10.3, 10.6, 14.4-5
PDF
PDF
Disk access:
PDF
10 10May10 12May10 YOM HASTUDENT: no exercises    
13May10 more on file systems    
11 17May10 19May10 SHAVU'OT: no exercises    
20May10 Communication
Naming and name servers
Programming interfaces
Client-server systems
Stallings 14.1
Silberschatz 3.4-6
PDF
12 24May10 26May10 Internet Sockets API
Ex5: socket programming DEADLINE: 9.6.10
Online guide PDF
PDF
27May10 Protocol stacks
Layered network model
TCP/IP
TCP congestion and flow control
Stallings 13.1-2
Silberschatz 16.6
PDF
ISO OSI:
PDF
13 31May10 02Jun10 Inter Process Communication (IPC) Online guide PDF
PDF
03Jun10 Distributed systems: principles, remote file access, and load balancing    
14 07Jun10 09Jun10 Fun stuff
Random numbers
  PDF
PDF
10Jun10 Performance evaluation
Simulation, analysis, and workloads
Queueing theory and the M/M/1 queue
Open vs. closed systems
  PDF
Self Similarity:
PDF
15 14Jun10 16Jun10 Security / microkernels    
17Jun10 Crosscutting Topics
Security and authentication
Operating system structure: layering and microkernels
Stallings 2.3, 4.3
Silberschatz 2.8
PDF

Books

  1. Dror Feitelson's OS course notes, linked to each week's lecture. Note that the individual chapters are updated just prior to the lectures, so it is best not to print the whole thing in advance. A copy of each week's lecture is also placed in the library for photocopying.
  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.
  4. Text Book: Abraham Silberschatz, Peter Baer Galvin and  Greg Gagne, Operating System Concepts,  7th ed., John Wiley & Sons, Inc., 2005.
  5. Advanced Programming in the UNIX Environment, W. Richard Stevens.