CSSE332 – Operating Systems

Spring 2008

Schedule Overview

Readings are to be completed before the class session. Homework and other assignments are due at the beginning of class unless otherwise noted. Schedule expected to change as the quarter progresses.

Schedule last updated Thu May 15.

Session quick links:  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Week Session Reading HW Due Topics Slides HW Assigned Milestone
1

1

Sec. 1: Mon Mar 3
Sec. 2: Mon Mar 3

 
  • Overview of Course
  • Introduction to Linux
  • Gentle Introduction to C Programming
Introduction  
1

2

Sec. 1: Tue Mar 4
Sec. 2: Tue Mar 4

  • ch. 1
  • C Programming
  • External Library files
  • Preprocessor directives
  • Simple data types
  • Arrays and strings
Preprocessors, Arrays, and Strings  
1

3

Sec. 1: Thu Mar 6
Sec. 2: Thu Mar 6

  • ch. 1
  • C Programming
  • Structures
  • Command line arguments
  • File Handling
  • Functions
Structs, Command line, File, and Functions  
2

4

Sec. 1: Mon Mar 10
Sec. 2: Mon Mar 10

  • ch. 1, ch. 2
  • C Programming
  • Introduction to Pointers
  • Pointers and arrays
  • Pointer arithmetic
  • Explicit memory allocation: Brief Introduction
Introduction to Pointers  
2

5

Sec. 1: Tue Mar 11
Sec. 2: Tue Mar 11

  • ch. 2
  • C Programming
  • Explicit memory allocation
  • Dynamic array
  • Array of Pointers
  • Common errors
  • Functions – pointers as arguments
  • Passing and returning arrays, structs
  • Using the GNU debugger
Explicit Memory Allocation  
2

6

Sec. 1: Thu Mar 13
Sec. 2: Thu Mar 13

  • ch. 2
  • C Programming
  • Standard C Library
  • Storage classes
  • Using Make to compile programs
Libraries, Storage classes, Make  
3

7

Sec. 1: Mon Mar 17
Sec. 2: Mon Mar 17

  • ch. 3
  • The Process Model
  • Process description
  • Process state models
  • The process control block (PCB)
  • Process Scheduling Queues
  • Schedulers
Introducing Processes  
3

8

Sec. 1: Tue Mar 18
Sec. 2: Tue Mar 18

  • ch. 3
  • None
  • The Process Model
  • Process switch
  • Mode switch
  • Interrupts, traps, system calls
  • The Unix Kernel
Process switch, mode switch, Unix
  • Complete the reading of chapter 3
 
3

9

Sec. 1: Thu Mar 20
Sec. 2: Thu Mar 20

  • ch. 3
  • The Process Model
  • Unix Process Creation, fork
  • Sending Signals to Processes
  • overlaying process images (exec functions)
  • Unix Process termination
  • wait and waitpid
Unix process management  
4

10

Sec. 1: Mon Mar 24
Sec. 2: Mon Mar 24

  • ch. 4
 
  • Threads
  • Resource ownership vs unit of dispatch
  • Intro to threads
  • Thread states
  • Threading models
  • User level threads
  • Kernel level threads
  • Threading issues
Threads
  • Prepare for exam 1
 
4

11

Sec. 1: Tue Mar 25
Sec. 2: Tue Mar 25

  • ch. 5
 
  • Exam 1 review
  • Threads
  • Model of multithreading
  • Lightweight Processes
  • Threads Standards
  • Pthreads
Threads  
4

12

Sec. 1: Thu Mar 27
Sec. 2: Thu Mar 27

   
  • Exam 1
  • No regular class session
    Exam 1
5

13

Sec. 1: Mon Apr 7
Sec. 2: Mon Apr 7

  • ch. 5
  • Concurrency
  • Mutual Exclusion
  • Mutual Exclusion with hardware support
Concurrency, Mutual Exclusion andSynchronization
  • Read sections 5.3 and 5.4
 
5

14

Sec. 1: Tue Apr 8
Sec. 2: Tue Apr 8

  • ch. 5
 
  • Concurrency
  • Enforcing Mutual Exclusion
  • Semaphores
  • Bounded-Buffer Problem
Concurrency, Enforcing Mutual Exclusion, Semaphores
  • Read sections 5.5 and 5.6
 
5

15

Sec. 1: Thu Apr 10
Sec. 2: Thu Apr 10

  • ch. 6
  • Project kick-off
  • xssh: a simple shell
Project 1, xssh, a simple shell  
6

16

Sec. 1: Mon Apr 14
Sec. 2: Mon Apr 14

  • ch. 6
 
  • Concurrency
  • Enforcing Mutual Exclusion
  • Support from programming languages
  • Monitors
  • IPC with message passing
Concurrency, Enforcing Mutual Exclusion, Monitors, Message passing    
6

17

Sec. 1: Tue Apr 15
Sec. 2: Tue Apr 15

  • ch. 7
 
  • Deadlock
  • Necessary and sufficient conditions for deadlock
  • Deadlock Handling
  • Deadlock prevention
  • Deadlock avoidance
Deadlock, prevention and avoidance    
6

18

Sec. 1: Thu Apr 17
Sec. 2: Thu Apr 17

  • ch. 7
  • Deadlock
  • Detection algorithm
  • Recovery schemes
  • Combined approach to deadlock handling
  • Dining philosopher problem
Deadlock, detection and recovery Milestone 1
7

19

Sec. 1: Mon Apr 21
Sec. 2: Mon Apr 21

  • ch. 8.1
    (19 pages)
 
  • Memory Management
  • Memory managemnt requirements
  • Shared memory introduction
  • Fixed partitioning
  • Dynamic partitioning
  • Buddy System
Memory Management    
7

20

Sec. 1: Tue Apr 22
Sec. 2: Tue Apr 22

  • ch. 8.2
    (20 pages)
  • Memory Management
  • Paging and segmentation
  • Virtual Memory
  • Support needed for virtual memory
  • Virtual memory with simple pagin
  • Virtual memroy with two-level page table
Memory Management, paging and segmentation  
7

21

Sec. 1: Thu Apr 24
Sec. 2: Thu Apr 24

  • ch. 9.1, 9.2
    (14 pages)
 
  • Virtual Memory
  • Virtual memory with paging
  • Address translation
  • Inverted page tables,
  • Translation lookaside buffer
  • Virtual memory with segmentation
  • Combined paging and segmentation
Virtual Memory, address translation   Milestone 2
8

22

Sec. 1: Mon Apr 28
Sec. 2: Mon Apr 28

  • ch. 9.2
    (13 pages)
  • Virtual Memory
  • OS Policies for virtual memory
  • Fetch policy
  • Placement Policy
  • Replacement policy
  • Resident Set Management
  • Cleaning policy
  • Load Control
Virtual Memory, OS policies    
8

23

Sec. 1: Tue Apr 29
Sec. 2: Tue Apr 29

   
  • Exam 2 review
  • Process Scheduling
  • Long-term, medium-term, short-term scheduling
  • Short-term scheduling criteria
  • Scheduling policies
Process Scheduling    
8

24

Sec. 1: Thu May 1
Sec. 2: Thu May 1

   
  • Exam 2
  • No regular class session
    Exam 2
9

25

Sec. 1: Mon May 5
Sec. 2: Mon May 5

  • ch. 11
 
  • I/O Management and disk scheduling
  • I/O devices
  • Techniques for performing I/O
  • Operating System Design Issues
  • I/O Buffering
  • Disk performance parameters
I/O Management and disk scheduling   Milestone 3 of xssh
9

26

Sec. 1: Tue May 6
Sec. 2: Tue May 6

  • ch. 11
 
  • I/O Management and disk scheduling
  • Disk scheduling policies
I/O Management and disk scheduling, scheduling policies    
9

27

Sec. 1: Thu May 8
Sec. 2: Thu May 8

  • ch. 12
 
  • File Management
  • File structure, attributes, operations
  • Directory structure, operations, organization
  • Filesystem structure
  • File allocation methods
File Management, Why a file system? Milestone 4 of xssh
10

28

Sec. 1: Mon May 12
Sec. 2: Mon May 12

  • ch. 12
 
  • File Management
  • The Unix filesystem
  • Inode
  • User View of Files
  • BSD Unix space allocation
  • Free space management
File Management, UNIX File System  
10

29

Sec. 1: Tue May 13
Sec. 2: Tue May 13

  • ch. 12
  • File Management
  • Windows File System
  • Key features of NTFS
  • Important concepts in NTFS
  • NTFS volume layout
  • Master File Table (MFT)
File Management, Windows File System    
10

30

Sec. 1: Thu May 15
Sec. 2: Thu May 15

 
  • Course evaluations
  • Final exam review/update
Course evals, final exam update
  • Both paper and programming parts of exam due by 10:00 PM on 05/21/2008
Final Exam