ICS 412: Operating Systems (Fall 2009)

 Logistics

Lectures: Tuesdays and Thursdays 3:00PM-4:15PM, POST 127

Professor: Henri Casanova  (henric@hawaii.edu, 956-2649)
Office Hours: Wed 1PM-3PM

TA: Ali Altunkaya (altunkay@hawaii.edu)
Office Hours: Mondays 10:30-12:30, POST 303-2

 Announcements

 Course Description

Class Goals

Syllabus
The syllabus for the class is available here in PDF format.

Textbook
The textbook for the class is:
Operating System Concepts, 8th Edition, by Silberschatz, Galvin, and Gagne.
Wiley Publisher, 2008

 Computer for the course

You are strongly encouraged to use your own computer for this course. If, for some reason, you cannot, then I can povide you with an account on a Linux box. If you use your own computer, at some point you'll need to have Linux running.

To run linux, you can install a linux partition on your machine. (Google is your friend about how to do this.) Alternately, you can run a virtual machine that runs Linux as a guest OS. Technologies to do this include VMWare, VirtualPC, and VirtualBox. VirtualBox, who was suggested by a student in class seems good, and I am putting here a little VirtualBox how to. This is by no means authoritative and just goes through the steps I went through to install Ubuntu (a Linux distribution) on my laptop. Also, I do not mean to imply that VirtualBox is the best solution, but since it's free and seems solid it's obsviously a strong candidate.

Here are a few random slide on the UNIX/Linux command-line environment ([PPT], ([PDF]).

 About the Nachos OS

Links for more general information about Nachos:

 Assignments

 Nachos Projects

All projects are in teams of 3 students (with exceptions in case the total class size isn't a multiple of 3).

See the Team List

 Lecture Topics, Lecture Notes, and Reading Assignments

Below is the list of topics that we will discuss in the class. Some of these topics will be covered in one lecture, some will span several lectures. Lecture notes will be made available for download at least one week before the actual lecture. Several links and pointers to on-line material and sources are also provided.

Topic Lecture Notes Reading Additional Material and Source Code
Course Introduction [PPT] [PDF]
OS Overview [PPT] [PDF] Chapter 1
OS Architecture [PPT] [PDF] Chapter 2, without Section 2.8
Processes [PPT] [PDF] Sections 3.1, 3.2.3, and 3.3 fork_example1.c fork_example2.c fork_example3.c
wait_example1.c wait_example2.c
signal_example.c
zombie_example.c nozombie_example.c
orphan_example1.c orphan_example2.c
nozombie_interrupted.c nozombie_interrupted_fixed.c exec_example.c
IPCs [PPT] [PDF] Sections 3.4-6 posix_shm_example.c
socket_server.c socket_client.c
dup_example1.c dup_example2.c
Threads [PPT] [PDF] Chapter 4 pthread_creating_joining.c
Synchronization [PPT] [PDF] Sections 6.1-2, 6.4-8 race_condition_example.c
Deadlocks [PPT] [PDF] Sections 7.1-4, 7.5 (not 7.5.3), 7.6 (not 7.6.2), 7.7-8
CPU Scheduling [PPT] [PDF] Sections 3.2, 5.1-3, 5.6
Nachos and Projects [PPT] [PDF]
Main Memory [PPT] [PDF] Chapter 8 tlb_stress.c
Virtual Memory [PPT] [PDF] Sections 9.1-8, 9.10-11
Mass-Storage [PPT] [PDF] Sections 12.1-7
Fils System Interface [PPT] [PDF] Sections 10.1-4, 10.6, 10.7
Fils System Implementation [PPT] [PDF] Sections 11.1-8



henric@hawaii.edu