CS444 OPERATING SYSTEMS

Fall 2012

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

Lectures:  MW 5:30-6:45 in M-1-210

Syllabus  Note that cs341 is a strong prerequisite for this course.If you haven't taken cs341, you need C programming, computer architecture, some x86 assembly language programming, and preferably experience in hardware programming. Hardware programming and interrupt programming will be reviewed in this course.

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 and run $pcex/test.c on an SAPC with help of microprocessor lab info linked below. 

Assignments

hw1 due Friday, Sept. 21, Monday Oct 1. An Device-independent Interrupt-driven I/O Package  hw1_part2 Solution
hw2 due Saturday, Nov. 3 Tiny UNIX: A single user program using 3 system calls that trap to the kernel. hw2 setup directory of provided files hw2 Solution
hw3 due Tues., Nov. 20 Multitasking Tiny UNIX (late days won't count Nov 22-23, Thanksgiving recess)
hw3 setup files for hw3 (now complete) README
hw4, due Mon., Dec. 10, A Semaphore Service for Tiny Unix: partnerships welcome.hw4 Solution

Lecture Notes

Sep. 5.: Intro, Virtual Machine concept
Sep. 10: Linux/UNIX syscalls and SAPC programming environments (handout)

Sep. 12: Intro to hw1
Sep. 17: More on hw1, review of hardware programming
Sep. 19: x86 Interrupts (interrupt slides handout) (typewr.c handout)
Sep. 24: Transmitter Interrupts
Sep. 26: hw1 points, Tanenbaum Chap. 1 (testio.lnx handout)
Oct. 1   Tanenbaum Chap 1, start on Chap. 2
Oct. 3  Intro to hw2: implementation of system calls
Oct. 8 Holiday
Oct 10 System calls and interrupts (handout), Processes
Oct. 15 Kernel stacks of processes, Threads (handout)
Oct. 17 Mutex, Semaphores
Oct. 22 Producer-Consumer Problem (handout, handout)
Oct. 24: Midterm Review  Practice Midterm Exam (Solution)
Oct. 29: University closed due to storm
Oct. 31 Midterm Exam
Nov. 5  Scheduling and intro to hw3, the multitasking tiny UNIX (handout)
Nov. 7 More on hw3 and its scheduler Makeup Midterm at 8:15 in W-1-0042
Nov. 14 hw3, Start on Memory Management (debuglog handout)
Nov. 19 Paging
Nov. 21 x86 Paging (demo handout)
Nov. 26: Page Replacement Algorithms, Page Faults
Nov. 28: Intro to hw4, a Semaphore Service (updated 12/3) (handout)
Dec. 3: I/O Systems, preemptive scheduler (handout)
Dec. 5  I/O Systems
Dec. 10 Deadlocks
Dec. 12 Final Review

Practice Final Practice Final Solution

Final Exam: Monday, Dec. 17, 6:30-9:30 in M-1-201

Resources: Please email eoneil to correct or improve these!

Our Google group on the web

How to access ulab.cs.umb.edu from offsite and transfer files

How to use gcc on your Windows system for cs444

How to use gcc on your Linux or Mac system for cs444

Lecture Notes from Fall ‘06

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

Directories useful for programming assignments

$pcinc – header

$pcex – C example

$pclibsrc – sources for the SAPC support library

Android: an optional part of this course
Android Linux Poster  Android Linux TechBlog
Android Linux Additions
Android Binder (a thesis)