Instructor:  Mirela Damian, Mendel 167A
   
Week 01: Aug. 26, 28  Operating Systems Overview (pdf slides). Assignment #1 out.
  Review Questions.
Week 02: Sep. 2, 4  Basics of Unix: hierarchical file system, emacs and gcc (pdf). Assignment #2 out.
Week 03: Sep. 9, 11  Review of C Fundamentals (pdf). Assignments #3, #4 out.
   Additional material on input/output, arrays, pointers and strings.
Week 04: Sep. 16, 18  Memory layout for Unix processes (pdf).
 Additional material on memory management in C.
 Program execution environment (pdf).
 Additional material on the Unix environment.
Week 05: Sep. 23, 25  Creating and executing processes in Unix (pdf).
   More on fork, execv (and its variants), wait and exit.
Week 06: Sep. 30, Oct. 2  Executing processes in Unix (continued). Code we wrote in class.
Week 07: Oct. 7, 9  Test 1 on Oct. 7. No class meeting on Oct. 9.
Oct. 13 - 19:  Fall Break
Week 08: Oct. 21, 23  Finalizing the smartshell (hands-on). Code we wrote in class on Oct. 21.
 Code we wrote in class on Oct. 23.
Week 09: Oct. 28, 30  CPU Scheduling (pdf). Practice Exercises (pdf).
Week 10: Nov. 4, 6  Introduction to Threads (pdf).  Hands-on programming with POSIX threads (html).
 Code badcnt.c
Week 11: Nov. 11, 13  Synchronizing Threads with Semaphores (pdf).  Hands-on programming with POSIX semaphores (html).
Week 12: Nov. 18, 20  Threads and Semaphores (continued)
Week 13: Nov. 25  Test 2
Nov. 26 - 30:  Thanksgiving Break
Week 14: Dec. 2, 4  Classical Synchronization Problems (pdf). Hands-on implementation.
   Virtual Memory (pdf). Page Replacement Warmup (html).
Dec. 11  Page Replacement Simulation (hands on).
NO final exam