CSci 5473: Applied Operating System
Home Page
Spring, 2007
This page last updated: Fri May 04 18:00:00 MST 2007
This course focuses on OS design, analysis, and implementation techniques.
It has a significant programming and practice component, primarily
experimenting with Linux kernel internals. There will also be a software
course project.
You are not required to have taken an undergraduate OS course prior to
enrolling in this course, although if you have not done so, you may find it
necessary to do extra reading (from the optional textbook).
LATE BREAKING NEWS
- Mon Feb 12 09:00:00 MST 2007:
Please do your work on a lab machine rather than on the
lab server,
as the server is not intended to support education and
experimentation -- its purpose is to provide
stable, remote storage for the lab machines.
The only reason you should ever log into the server machine
is to ssh through to a lab machine (when you are outside the kernel lab).
The lab machines are for your general use,
so please use them to solve your assignments,
and to otherwise experiment with Linux or other operating systems.
The lab machines are called
"klab-01", "klab-04", "klab-05", "klab-08", "klab-11", and "linux".
After you have used ssh to log in to
klab.cs.colorado.edu, you should be able to type something like the
following to the KLab server shell:
ssh klab-01
to log into a particular lab machine.
General Information
Week of January 15
- Tue:
Logistics; Concurrency;
Using processes [2,
Ritchie and Thompson]
- Thur:
Using processes [2]
Week of January 22
- Tue:
Using threads [2,
pthreads]
- Thur:
Using synchronization [8]
Friday (January 26):
Assignment No. 1 is due at 8:00 am today.
Write a README text document that describes anything you want the
grader to know about your solution, e.g., your approach,
how to compile it, or special instructions to use a feature.
Include a file with test output that illustrates how your
program solves each part of the assignment.
You will have prepared multiple files for your solution (at least
a README, output, and a .c file). Package all files using
tar and gzip then attach the tar/zip file to a mail message and
send it to nutt@cs.colorado.edu.
Late homework will not be accepted.
Week of January 29
- Tue:
Computer Organization[4, 5]
- Thur: Kernel organization [6,
Linux source code]
Week of February 5
- Tue: Process management
[
Linux source code]
- Thur: Process management
[
Linux source code]
Assignment No. 2 is due at 6:00 pm today.
Prepare your submission package as for Assignment No. 1.
N.B. You are to use the pthread primitives mentioned in class.
You should not use kernel semaphores (semaphore.h) to solve this
assignment -- it is an exercise to solve a classic synchronization
problem using only the pthread mutex, condition variable, and/or
read-write lock.
Late homework will not be accepted.
Week of February 12
- Tue: Scheduling [7]
- Thur: Real-time scheduling [
Stankovic, et al.]
Week of February 19
- Tue: Implementing synchronization mechanisms
- Thur: Interprocess communication (IPC) [9]
Assignment No. 3 is due at 6:00 pm today.
Here are some useful
build notes prepared by Adam Manzanares.
Prepare your submission package as for Assignment No. 1.
Week of February 26
- Tue: Memory managment[11]; Virtual memory [12]
- Thur: Virtual memory
[
Lecture Notes]
Week of March 5
- Tue: Midterm Exam.
The exam will cover material addressed in lectures
through Feb. 27 (including the parts of the Linux source code discussed
in lecture), material related to assignments 1-3,
and the assigned reading (i.e., the papers whose links appear
in this course plan).
- Thur: Virtual Memory
[
Lecture Notes]; Networks
[
Lecture Notes]
Week of March 12
- Tue: Networks
[
Lecture Notes]
- Thur: Networks; Distributed Systems
[
Lecture Notes]
Assignment No. 4 is due at 6:00 pm today.
Prepare your submission package as for Assignment No. 3.
Week of March 19
- Tue: Distributed Systems
[
Lamport]
- Thur: Storage systems
[
Lecture Notes,
Patterson, et al.,
Lee & Thekkath,
]
Week of March 26: Spring Break
Week of April 2
- Tue: File Manager [13,
Lecture Notes]
Form a group for the course project. Prepare an informal project proposal
(less than a page long) and submit to the instructor by today.
See the
Project Proposal for more information.
- Thur: File Manager
Assignment No. 5 is due at 6:00 pm today.
Prepare your submission package as for Assignment No. 3.
Week of April 9
- Tue: Remote File Systems
[
Lecture Notes]
Project Plan is due at 6:00 pm today.
- Thur: Remote File Systems
[
Howard, et al.]
Week of April 16
- Tue: RPC
[
Lecture Notes]
- Thur:
Remote Objects
[
Birrell, et al.]
Project Interim Report is due at 6:00 pm today.
Week of April 23
- Tue: Distributed Shared Memory
[
Lecture Notes,
Gharachorloo and Adve]; Online FCQs
- Thur: Distributed Shared Memory; Protection & Security [14]
Week of April 30
- Tue: Protection & Security
- Thur: Protection & Security; Review
Project Final Report is due at 6:00 pm today.
May 5 (10:30 AM - 1:00 PM): Final Exam
Archived News Items
- Wed Jan 17 16:35:00 MST 2007: Kernel Lab information.
Adam Manzanares
is the kernel lab system administrator. You can contact him with specific
questions about using the lab
at Adam.Manzanares@colorado.edu. He has your name and email
address if you are registered for the class, and will use that to create
your login. Contact him to get your initial password (change it immediately).
This is a relatively standard Linux lab, but if you have questions about
how to use it, drop Adam a note. If there are enough people that want
a session with him, he will arrange one. You can use the Kernel Lab, CSEL,
or any other Unix/Linux machine to solve Assignment No. 1.
If you have not given the instructor your name and the last 7 digits of your
CUBuff card, you will be unable to access the Kernel Lab.
- Wed Feb 07 12:00:00 MST 2007:
If, while logging into a lab machine, you get an error such as:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
35:ae:77:03:24:1f:6a:ab:3a:f5:50:a5:29:63:f6:e5.
Please contact your system administrator.
Add correct host key in /home/adam/.ssh/known_hosts to get rid of this
message.
Offending key in /home/adam/.ssh/known_hosts:6
RSA host key for klab-01 has changed and you have requested strict
checking.
Host key verification failed.
remove the .ssh/know_hosts file within your home directory. If that doesn't
work, contact Adam.