Week | Date | Class | Topic | Readings/Notes | Assignment/Solutions |
1 | M. 1/7 | Lecture 1 | Introductions, Unix/Linux and Systems Basics | APUE: 1.2 (pg. 1-2), APUE: 1.11 (pg. 21),
Origins and History of Unix |
HW 1 |
W. 1/8 | Lecture 2 | Unix File System and Command Line Tools | APUE: 1.3, 1.4 | ||
F. 1/10 | Lab 1 | Unix Familiarity and Basic Command Line Tools Lab | |||
2 | M. 1/13 | Lecture 3 | Unix Design Philosophy and Standard Streams | APUE: 1.5, 2.1, 2.3 | HW 2 |
W. 1/15 | Lecture 4 | Filename Matching with Globbing and find | |||
F. 1/17 | Lab 2 | Bash Scripting Lab | Advanced Bash Scripting Guide | solution | |
3 | M. 1/20 | No Class | MLK Day | ||
W. 1/22 | Lecture 5 | Intro C Programming | HW 3 | ||
F. 1/24 | Lab 3 | mywc : word count lab | APUE: 7.4 | solution | |
4 | M. 1/27 | Lecture 6 | Memory Allocation and Program Memory Layout | APUE: 7.6, 7.8 | HW 4 |
W. 1/29 | Lecture 7 | Dynamic Memory and Data Types | |||
F. 1/31 | Lab 4 | Debugging and simplefs | solution | ||
5 | M. 2/3 | Lecture 8 | User-Space, Kernel-Space and System Call API | APUE: 1.11 (pg.21-23) | HW 5 |
W. 2/5 | Lecture 9 | File and Device I/O via System Calls | APUE: 3.1-3.9 (pg. 61-72) | ||
F. 2/7 | Lab 5 | Makefiles and mytouch, and myls | solution | ||
6 | M. 2/10 | Lecture 10 | Catchup/Review | ||
W. 2/12 | 6-Week Exam | written solution | |||
F. 2/14 | Practicum | practicum code solution | |||
7 | M. 2/17 | No Class | Washington's Birthday | ||
W. 2/19 | Lecture 11 | Process Creation and Management | APUE: 5.4, 7.3, 8.10, (pg. 145-147, 200-202, 249-255) | HW 6 | |
F. 2/21 | Lab 6 | fork/exec/wait lab | APUE: 8.3, 8.6, (pg. 229-231, 238-241) | solution | |
8 | M. 2/24 | Lecture 12 | Process State and O.S. Scheduling | APUE: 8.5, 8.16 (pg. 237, 276-280) | HW7 |
W. 2/26 | Lecture 13 | The Terminal Device and Job Control | APUE 9.2, 9.7, 9.8 (pg. 286-289, 298, 299-303) | ||
F. 2/28 | Lab 7 | Process State Inspection and fg-shell | solution | ||
9 | M. 3/3 | Lecture 14 | Process Groups and Terminal Signalling | APUE: 9.4, 9.5, 9.9, 9.10 (pg. 293-299, 303-309) | HW 8 |
W. 3/5 | Lecture 15 | Pipes, Pipelines and File Duplication | APUE: 15.1,15.2,15.3 (pg. 533-546) | ||
F. 3/7 | Lab 8 | Pipeline Lab | solution | ||
SPRING BREAK |
|||||
10 | M. 3/17 | Lecture 16 | Signals and Signal Handling | HW 9 | |
W. 3/19 | Lecture 17 | Alarms, sigaction(), and Reentrant System Calls |
|
| |
F. 3/21 | Lab 9 | Signal Handling Lab | solution | ||
11 | M. 3/24 | Lecture 18 | File System, Kernel Data Structures, and Open Files | HW 10 | |
W. 3/26 | Lecture 19 | File Links: Hard and Sybolic | |||
F. 2/28 | Lab 10 | File System lab | solution | ||
12 | M. 3/31 | Lecture 20 | Catchup/Review | ||
W. 4/2 | 12-Week Exam | written solution | |||
F. 4/4 | Practicum | practicum code solution | |||
13 | M. 4/7 | Lecture 21 | Network Fundamentals and Command Line Tools | HW 11 | |
W. 4/9 | Lecture 22 | Socket Addressing and Address Structures | |||
F. 4/11 | Lab 11 | Socket Client Lab | solution | ||
14 | M. 4/14 | Lecture 23 | Socket Servers | HW 12 | |
W. 4/16 | Lecture 24 | Posix Threads | |||
F. 4/18 | Lab 12 | Threaded Socket Server Lab | |||
15 | M. 4/21 | Lecture 25 | Locking, Deadlock and Concurrency | HW 13 | |
W. 4/23 | Lecture 26 | Deadlock Avoidance: Dining Philosophers | |||
F. 4/25 | Final Practicum | ||||
16 | M. 4/28 | Lecture 27 | Wrap Up/Review | ||
T. 4/29 | Lab 12 Due | ||||
Sat. 5/3 | Final Exam | Time: 0755 Location: MI107 (2001) Location: MI110 (4001,6001) |