| 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
|
|
|
- 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
|
|
|
- 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
|
|
|
- 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
|
|
|
- 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
|
|
|
- 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
|
|
|
- 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
|
|
|
- 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
|
|
|
- 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
|
|
|
- Threads
- Resource ownership vs unit of dispatch
- Intro to threads
- Thread states
- Threading models
- User level threads
- Kernel level threads
- Threading issues
|
Threads
|
|
|
| 4 |
11
Sec. 1: Tue Mar 25 Sec. 2: Tue Mar 25
|
|
|
- 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
|
|
|
- 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
|
|
|
- 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
|
|
|
- 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
|
|
|
- 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
|
|
|
- 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
|
|
|
- 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
|
|
|
- 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
|
|
|
- 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
|
|
|
- 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
|
|
|
- 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
|
|
|
- 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
|
|
|
- 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
|
|
|
- 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
|
|
|
- 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
|
|
|
- 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
|