CS444 OPERATING SYSTEMS

Fall 2006

Instructor: Betty O'Neil, eoneil@cs.umb.edu

Lectures:  TuTh 5:30-6:45pm in M2-417

Syllabus  Note that cs341 is a strong prerequisite for this course. Graduate students are recommended to take cs644, grad OS, offered in the spring, instead of this course.  CS644 does not require cs341, but does require more advanced UNIX programming experience.

First week: get an account for cs444 by running apply, add module ulab to your .cshrc.  Visit www.cs.umb.edu/ulab and its linked documents, review cs341, for example by reading Prof. Wilson’s CS341 lecture slides or the older slides from Prof. Eckhouse listed below, run $pcex/test.c on an SAPC with help of microprocessor lab info linked below.  

Lecture Notes, assignments

hw1 Due Sunday, Sept. 24 by midnight in your hw1 directory (and its queue subdirectory), include README with authorship statement
hw1 solution  (see hw2 directory for i/o package solution)
hw2 Due Sunday, Oct. 15 by midnight in your hw2 directory (and its queue subdirectory), include README with authorship statement
hw2 solution
hw3 intro Due Tuesday, Nov. 7 by midnight in your hw3 directory (and its queue subdirectory), include README with authorship statement
hw3 solution
hw4 Due Tuesday, Nov. 28 in class, on paper, or in cs444/hw4/hw4soln.txt by midnight.  Experimenting with paging on the SAPC. No late days because no programming.
hw4 solution
hw5 Due Monday, Dec. 11 in your hw5 directory, include README with authorship statement
hw5 solution  hw5 scripts

Sept. 5: Intro, Virtual Machine concept
Sept. 7:  UNIX and SAPC programming environments
Sept. 12: Intro to hw1
Sept. 14: Review of programmed i/o, intro to interrupts
Sept. 19: The x86 interrupt system
Sept. 21: Interrupt programming
Sept. 26: UNIX and Win32 system calls (finish Chap. 1)
Sept. 28: Processes (Chap. 2)
Oct. 3: Intro to hw2, system call implementation.
Oct. 5: Processes and Threads
Oct. 10: Threads, Thread safe libraries
Oct. 12: Mutex, intro to semaphores
Oct. 17: Semaphores, monitors
Oct. 19: Message passing, intro to hw3
Oct. 24: Intro to hw3, cont.
Oct. 26: Scheduling, including hw3 sched.c
Oct. 31: Midterm review
Nov. 2: Midterm exam.  Practice midterm  Practice midterm solution
Nov. 7 Deadlock
Nov. 9 Memory Management
Nov. 14 x86 Paging
Nov. 16 Demand Paging
Nov. 21: vmstat, hw3 execution, page replacement algorithms
Nov. 28: Intro to hw5, more on memory management
Nov. 30: hw5 kernel programming
Dec. 5: Debugging, back to I/O Systems, Chap. 5
Dec. 7: I/O Systems, disks, filesystems
Dec. 12: Final Review
practice final  practice final solution
Final Exam: Thurs. Dec. 21, 6:30-9:30 (hopefully can start at 6:20), in M-1-206.  See hw5 solutions, scripts, linked above.

Register for the new cs444 forum here, listing your cs.umb.edu email address (even if you don't actively use it.)  You don't need to register if you already have a cs forum account from another class or activity.

Resources: Please email eoneil to correct or improve these!

Lecture Notes from Fall ‘05

Microprocessor lab info: How to use SAPCs for programming assignments.

CS341 course home page, with more links to hardware resources

From the GNU project:  www.gnu.org: manuals

From RedHat Linux: gdb manual

Directories useful for programming assignments

$pcinc – header

$pcex – C example

$pclibsrc – sources for the SAPC support library

Prof. Eckhouse's slides (as ppt) for cs241/341, by topic, most important parts for cs444:

  1. Intro, slides 2-8
  2. C programming on the SAPC and mp1, 9-14
  3. Registers and i/o ports, 15-17
  4. LPT1 parallel port, 18-22
  5. COM1 and COM2 serial ports, 23-25
  6. Bytes and strings in memory, 26-27
  7. Assembler, 28-65 (only a bit needed for cs444)
  8. Serial Communication and RS232, 66-75
  9. Logic Gates, 76-94 (not needed for cs444)
  10. Timer device, 95-103
  11. Interrupts, 104-122
  12. Exceptions 123-124
  13.  plus much more, but not needed for cs444