DAY |
|
TOPIC |
|
Readings |
|
Project |
|
Homework |
Jan 7 |
|
First day craziness |
|
Silbershatz: Chapter 1 (skim); Chapter 2; Chapter 3 (Sections 1-3). |
|
Project 0 out |
|
Homework #1: form project teams |
Jan 9 |
|
Just what is an OS?
Multiprograming. slides |
|
|
|
|
|
|
Jan 11 |
|
OS Protection
( slides ) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Jan 14 |
|
Hardware trends: How is hardware evolving, and how does this alter the design of systems?
(slides)
|
|
Andrew Birrell: An Introduction to Programming with Threads (C# version or Modula 2 version);
also: An introduction to Programming with Java Threads |
|
|
|
Homework 1 in |
Jan 16 |
|
Threads: what is a thread? How is it different than a process? What problems do threads solve? Which problems do they create? (
slides
)
|
|
|
|
Project 0 in;
project 1 out |
|
Out:
Homework #2 threads |
Jan 18 |
|
More on thread safety (
slides
)
AspectRatio.java ,
thread-safe version
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Jan 21 |
|
No class |
|
|
|
|
|
|
Jan 23 |
|
Condition variables and the
producer/consumer pattern (
slides ) |
|
Silbershatz chapter 7 |
|
|
|
|
Jan 24 |
|
Scheduling (slides). Bounded buffers: A simple solution, a more sophisticated solution |
|
|
|
|
|
|
Jan 25 |
|
Deadlock: How do we prevent threaded programs from “getting
stuck (
slides,
BufferPool.java)
”?
|
|
|
|
Project 1 in, Project 2 out |
|
Homework 2 in
Homework 3 out |
|
|
|
|
|
|
|
|
|
Jan 28 |
|
Project 2 Overview |
|
Silbershatz chapter 5,
skip 5.7 |
|
|
|
|
Jan 30 |
|
Thread implementation: How does the OS / runtime implement threads and synchronization primitives (slides) |
|
|
|
|
|
|
Feb 1 |
|
Alternatives to lock-based synchronization (
slides)
VisibilityExample.java
ConcurrentStack.java |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Feb 4 |
|
Memory management intro (
slides) |
|
Silbershatz: Chapters 8, 9 |
|
|
|
|
Feb 6 |
|
Paging (
slides)
|
|
|
|
Project 2 in |
|
Homework 3 in |
Feb 8 |
|
Virtual memory (
slides)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Feb 11 |
|
Midterm |
|
Silbershatz: Chapters 11,12 |
|
|
|
|
Feb 13 |
|
Disks and storage systems(
slides) |
|
|
|
Project #3 out: virtual memory |
|
|
Feb 15 |
|
File system intro (
slides) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Feb 18 |
|
No class |
|
Silbershatz: Chapters 11,12 |
|
|
|
|
Feb 20 |
|
File system performance(
slides) |
|
|
|
|
|
|
Feb 22 |
|
The page cache, memory mapping, and pipes (
slides ) |
|
|
|
Project #4 out: file systems |
|
Homework #4 in
Homework #5 out |
|
|
|
|
|
|
|
|
|
Feb 25 |
|
Distributed systems (
slides) |
|
Silbershatz: Chapter 16 |
|
Project 3 in |
|
|
Feb 27 |
|
Service-oriented architectures: How do we construct large distributed systems that get work done?
(slides) |
|
|
|
|
|
|
Feb 29 |
|
Remote procedure calls: How do we implement SOAs?
(slides) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Mar 3 |
|
Security intro: What is “security”, and how do we go about achieving it?
(slides) |
|
Silbershatz: Chapter 15 (skim 14 if necessary) |
|
|
|
Homework #5 in |
Mar 5 |
|
Buffer overflow attacks.
No slides . In class examples:
ss1.c,
ss2.c,
ss3.c,
ss4.c,
|
|
|
|
|
|
|
Mar 7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Mar 10 |
|
Virtual machine monitors
(slides) |
|
|
|
|
|
|
Mar 12 |
|
Wrap up VMMs;
para-virtualization. no slides |
|
|
|
Project #4 in |
|
|
Mar 14 |
|
Review |
|
|
|
|
|
|
|