Week | Date | Class | Topic | Readings/Notes | Assignment/Solutions |
1 | M 01/05 | -- | |||
W 01/07 | Lecture 1 | UNIX 1 Intro to Linux |
APUE: 1.2 (pg. 1-2), APUE: 1.11 (pg. 21) Origins and History of Unix |
HW 1 | |
R 01/08 | Lab 1 | UNIX 2 Unix File System and Command Line Tools |
APUE: 1.3, 1.4 | ||
2 | M 01/12 | Lecture 2 | UNIX 3 Globbing, Ownership, Groups, and Permissions |
HW 2 | |
W 01/14 | Lecture 3 | UNIX 4 Unix Design Philosophy and Standard Streams |
APUE: 1.5, 2.1, 2.3 | ||
R 01/15 | Lab 2 | Bash Scripting Lab |
Advanced Bash Scripting Guide | ||
3 | T 1/20 | Lecture 4 | C Programming 1 Format Input/Output and Basic Types |
HW 3 | |
W 01/21 | Lecture 5 | C Programming 2 Structures, Pointers, and Arrays |
|||
R 01/22 | Lab 3 | C prog Lab 1 |
APUE: 7.4 | ||
4 | M 01/26 | Lecture 6 | C Programming 3 Strings and String Library |
HW 4 | |
W 01/28 | Lecture 7 | C Programming 4 Command Line Arguments and Double Arrays |
|||
R 01/29 | Lab 4 | C prog Lab 2 |
|||
5 | M 02/02 | Lecture 8 | C Programming 5 Program Memory Layout and Dynamic Memory |
APUE: 7.6, 7.8 | HW 5 |
W 02/04 | Lecture 9 | C Programming 6 Dynamic Array Allocation and Data Representation |
|||
R 02/05 | Lab 5 | Memory Leaks and Memory Allocation Lab (simplefs) |
|||
6 | M 02/09 | Lecture 10 | C Programming 7 File Streams |
APUE: 1.11 (pg 21-23) | HW 6 |
W 02/11 | Lecture 11 | Operating System 1 User-Space, Kernel-Space and System Call API |
APUE: 3.1-2.9 (pg. 61-72) | ||
R 02/12 | 6-Week Exam | |
S14: 6-week Exam solution s14: 6-Week Practicum solution |
||
7 | M 02/16 | no class | Washington Birthday | ||
W 02/18 | Lecture 12 | Operating System 2 File and Device I/O via System Calls |
HW 7 | ||
R 02/19 | Lab 6 | Makefiles, myls, mycp, mytouch lab |
|||
8 | M 02/23 | Lecture 13 | Processes 1 Process Creation and Management |
HW 8 | |
W 02/25 | Lecture 14 | Processes 2 fork/exec/wait |
|||
R 02/26 | Lab 7 | minishell lab |
|||
9 | M 03/02 | Lecture 15 | Processes 3 Process Sate and OS Scheduling |
HW 9 | |
W 03/04 | Lecture 16 | Processes 4 Terminal Device and Job Control |
|||
R 03/05 | Lab 8 | myps/mypstree |
|||
10 | M 03/09 | Lecture 17 | Processes 5 Process Groups and Terminal Signaling |
HW 10 | |
W 03/11 | Lecture 18 | Processes 6 Pipes, Pipelines and File Duplication |
|||
R 03/12 | Lab 9 | pipeline shell |
|||
SPRING BREAK | |||||
11 | M 03/23 | Lecture 19 | Processes 7 Signals and Signal Handling |
HW 11 | |
W 03/25 | Lecture 20 | Processes 8 Alarms, sigaction() and rentrant system calls |
|||
R 03/26 | Lab 10 | Signal Handling/fg-shell |
|||
12 | M 03/30 | Lecture 21 | File Systems 1 File System, Kernel Data Structures and Open Files |
HW 12 | |
W 04/01 | Lecture 22 | File Systems 2 File Links: Hard and Symbolic |
|||
R 04/02 | 12-Week Exam | |
S14: 12-week Exam solution s14: 12-Week Practicum solution |
||
13 | M 04/06 | Lecture 23 | OS Security 1 Setting User/Group Permissions |
HW 13 | |
W 04/08 | Lecture 24 | OS Security 2 Path, Injection, and Overflow Attacks |
|||
R 04/09 | Lab 11 | Security Lab |
|||
14 | M 04/13 | Lecture 25 | Networking 1 Network Fundamentals/Client Server Model |
HW 14 | |
W 04/15 | Lecture 26 | Networking 2 Socket Addressing and Client Sockets |
|||
R 04/16 | Lab 12 | Socket Client Lab |
|||
15 | M 04/20 | Lecture 27 | Networking 3 Server Sockets |
HW 15 | |
W 04/22 | Lecture 28 | Threading 1 Posix Threads |
|||
R 04/23 | Lab 13 | Threading Socket Server Lab |
|||
16 | M 04/27 | Lecture 29 | Threading 2 Locking, Deadlock and Concurrency |
HW 16 (Replacement HW) |
|
W 04/29 | Lecture 30 | Threading 3 (SOFS) Deadlock Avoidance: Dining Philosophers Exercise |
Final Practicum Released | ||
F 5/1 | - | - |
Final Practicum DUE | - | |
17 | W 5/6 | Final Exam @ 1330 | Sec. 2001 in MI 107 Sec. 4001 and 6001 in MI 110 |