Week | Topic | Details |
1: |
Tools (appendix) |
A.1 Getting help: man (figure A.1), man -k (example A.2), command vs.
functions (example A.6, exercise A.3), command syntax (exercise A.10) |
| |
A.2 Compiling C programs: cc, cc -o, cc -c (examples A.14, A.17) |
| |
A.3 Makefile target, components, dependency graph (examples a.19-20,
figure A.2) and make command (example A,22). |
2: |
Review HW1 |
Ex. Process 1-3 |
| |
Section 7.1: Simple Shell |
| |
Semantics of fork() in a loop: Example 2.7 (pp. 46-47) |
| |
Learning Unix (Ch. 6): Background processes- ^Z, fg, bg, ps |
| |
Learning Unix: (Ch. 5): I/O redirection (|, >, <, >>), Ex. (pp 74) |
| |
Lab. 1: review makefile |
3: |
Files |
Ex. Files
1-5 |
| |
Process synch. via wait/exit: Exercises 2.4, 2.5 (pp 52-53) ) |
| |
Unix file representation (Exercise 3.3, pp. 87) |
| |
Learning Unix: (Ch. 4) File Management: *, ?, ls, find, cd, rm, mv vs. cp |
| |
Optional: mkdir, rmdir, ls -a, ftp, mcopy, lp/lpr, lpq, cancel/lprm |
4: |
Review HW2 |
Lab. 2: review makefile |
| |
Review substitute command in vi/sed (e.g. s/ab/cd/g) with regular
expression characters (e.g. *, ?, []) |
| |
Buffers & fork: Exercise- Files+Process 2
(script)
|
| |
7.2 Implementing redirection: Program 7.5) |
| |
7.3 Implementing pipes: Program 7.7, 7.8 |
5: |
Signals | Signals 2 from on-line list |
| |
7.4 Implementing Signals: Programs 7.9 |
| |
Exercise 7.10 (pp. 267) |
6: |
Review HW3 |
Lab. 3: review makefile |
| |
C pointers, memory management (lecture notes) |
| |
raise(), handler installation : Predict output of the program 1 |
| |
handlers : Predict outputs of program 2 for options 1, 2 and 3. |
| |
Reentrant functions :
Predict outputs of
program 3
and
program 4.
What makes a function non-reentrant?
|
7: |
Threads |
Writing servers handling multiple concurrent clients |
| Asynchronous I/O |
Sections 9.1.1, 3.7 |
| select() and poll() |
Sections 9.1.3, 9.1.4, 3.8 |
8: |
Review for MQ |
Practice MQ |
9: |
Misc. |
Review MQ Exam. |
10: |
Review HW4 |
Lab. 4: review makefile |
| mutex |
Ex. Threads 9: how to analyze MT programs w/ mutex |
| thread synchronization |
Ex. Threads 11: compare mutex, semaphore, condition |
11: |
Semaphores |
Ex. Thread 10 - analyzing programs with semaphores |
| Threads and Signals |
Program 10.7 (pp. 388-390) |
12: |
Review HW5 |
Lab. 5: review makefile |
| Testing Client Server |
Exercise 12.1 (pp. 444) |
| Client Server |
Client - Server 1, 2, Client - Server + Files 10 |
13: |
Review HW5 |
Lab. 5: review makefile, uici.h, uici.c |
| Sockets |
|
14: |
Review for Final |
Practice Exam. |
| Course Evaluation |
15: |
Practice Final |