MWF 9.00-9.50, Room Carver 305
|
Instructor Srikanta Tirthapura
|
Teaching Assistants
|
Contents
Aim:
This course is an introduction to the basic principles underlying current operating
systems. Operating systems have evolved over a few decades and have led to a
few well accepted abstractions. We will study those concepts and how they fit
together: the purpose of an operating system, processes and threads,
synchronization between multiple processes, process scheduling, deadlocks, the
address space concept, virtual memory, file systems, I/O systems, security, and
the basics of networking. The corresponding (weekly) labs cover the
"practice" portion of the class, where the students are required to
write programs which interact with the operating system, and implement
simplified versions of some of the OS modules. The labs require a knowledge of the C programming language and a working
knowledge of the Linux operating system, which is introduced in the first lab.
Lectures:
Attendance in the lectures is compulsory, and we welcome active participation.
Textbook:
The required text for the course is Modern Operating Systems by
Andrew S. Tanenbaum, Second Edition, (ISBN 0-13-031358-0).
Labs:
1. Attendance
is compulsory (there is credit for attendance)
2. Lab
reports are due the week after the lab, unless otherwise stated.
3. There will be no lab during the first week of classes.
Grading:
The grading breakup will be as follows (Grades can be checked using WebCT.):
1. Weekly
labs + Programming Projects: 40%
2. The homeworks for the class will not be graded, but there will in-class quizzes based on each homework, and the quizzes make up 10 %
3. Mid
term exam: 20%
4. Final
Exam: 30%
Academic Integrity
All your work (including the labs) should be done
individually unless otherwise specified. You are not allowed to use work done
by others, or obtain the answers directly in any form (such as from the
web). If you have any questions about what is allowed/not allowed, please
contact the instructor or the TAs. Any cases of
cheating will be dealt with the strictest possible measures allowed by the
university, please refer to the university
policies on academic dishonesty.
Disability:
If you have a documented disability and anticipate needing
accommodations in this course, please make arrangements to meet with the instructor soon. Please request that a Disability
Resources staff send a
|
|
Hours |
Location |
|
Tirthapura |
10-11 AM, Wednesday |
3212 Coover |
|
Sun Song |
4:30-5:30 PM, Friday |
Cubicle 27, Village F, ALC, Coover |
|
Irsan Halim |
1:00-2:00 PM, Wednesday |
Cubicle 9, Village C, ALC, Coover. |
Please go to here for Class Schedule .
·
Attendance
- You are expected to attend all laboratory sessions. Absence will not be
grounds for delaying the submission of a laboratory report. Attendance
will account for 10% of each laboratory report grade. Each report will be
normalized to 90% of the possible points with attendance making up the final 10%
of the lab report grade. Attendance will only be taken within the first
30 minutes of lab. If you do not show up within the first 30 minutes of
lab you will be counted as absent for that lab.
·
Email
- You are expected to read your ISU email for laboratory updates.
·
Feel
free to ask questions of your friendly TAs. However, you will be expected
to put in a fair amount of time struggling on your own as well. We want to
encourage development and debugging skills, so try not to get frustrated when
we won't tell you exactly how to fix something or what to do next. As long as
you make steady progress during the lab, the TAs will try to help you stay on
track. Also, please do not email source code to your TA. If you cannot fix
something during the normal lab hours, arrange a time with your TA to review
your code.
·
Report
Deadlines - Lab reports are due the week following the completion of the lab.
They are to be submitted in hard copy within the first 30 minutes of the
laboratory session. Late labs are penalized 10% per day for up to 7 days. Labs
submitted after 7 days will not be graded and will receive no credit. A 10%
penalty applies to reports not submitted within the first 30 minutes of the lab
session. You will have one grace period to delay the late penalty for 3 days.
This grace period will be used automatically for the first late report.
If you do not turn in your report within the grace period the late policy
applies beginning on the fourth day. So after the end of your grace
period you begin losing 10% on the fourth day and can turn in the report until
day 10 losing 10% each day.
·
Grading
- Reports and other work will be returned in lab. You have one week after work
is available to be returned to challenge the given grade. Grades will be
updated in WebCT.
· Secure Your Work - From your home directory run the command: chmod 700 308 to prevent anyone else from accessing your work.
|
Section |
Time |
TA |
|
1 |
T 12.10-3.00 |
Irsan |
|
2 |
R 3.10-6.00 |
Irsan |
|
4 |
R 12.10-3.00 |
Irsan |
|
5 |
W 10-12.50 |
Bryan |
|
6 |
F 10-12.50 |
Bryan |
|
Date |
Week |
Lab |
Description |
|
Jan 8 |
1 |
No Lab |
|
|
Jan 15 |
2 |
Lab 1 |
|
|
Jan 22 |
3 |
Lab 2 |
|
|
Jan 29 |
4 |
Project 1
|
|
|
Feb 5 |
5 |
||
|
Feb 12 |
6 |
Lab 3 |
|
|
Feb 19 |
7 |
Lab 4 |
|
|
Feb 26 |
8 |
Project 2 |
|
|
Mar 5 |
9 |
||
|
Mar 12 |
10 |
No Lab |
Spring Break |
|
Mar 19 |
11 |
Lab 5 |
|
|
Mar 26 |
12 |
Lab 6 |
|
|
Apr 2 |
13 |
No Lab |
|
|
Apr 9 |
14 |
Project 3 |
|
|
Apr 16 |
15 |
||
|
Apr 23 |
16 |
Lab 7 |
|
|
Apr 30 |
17 |
No Lab |
|
Project 1: Unix Shell
Project 2: Threads Project
Project 3: File Systems Project
Homework #1 Homework #1 solutions
Homework #2 Homework #2 solutions
Homework #3 Homework #3 solutions
Homework #4 Homework
#4 solutions
2. Getting started, good reference for
basic commands (ls, mkdir)
http://www.cs.wayne.edu/labPages/Unix_T/start.html
3. Another basic Unix tutorial, also
has information on redirecting output (pipes)
http://www.ee.surrey.ac.uk/Teaching/Unix/
4. Information on Unix System Calls, mostly
uses info from man pages, but still useful
http://www2.cs.uregina.ca/~hamilton/courses/330/notes/unix/unix.html
5. List of System Calls, good
information but not well organized
http://www.softpanorama.org/Internals/unix_system_calls_links.shtml
6. Unix system calls and processes,
fork(), exec() and wait()
http://www.scit.wlv.ac.uk/~jphb/spos/notes/processes.html
7. Unix process management
http://heather.cs.ucdavis.edu/~matloff/UnixAndC/Unix/Processes.html
8. Posix thread programming
http://www.llnl.gov/computing/tutorials/pthreads/#Thread
http://www.llnl.gov/computing/tutorials/workshops/workshop/pthreads/MAIN.html
9. List of signals and their numbers
http://linux.about.com/library/cmd/blcmdl7_signal.htm
10. Beej's Guide to Unix Interprocess
Communication
http://www.ecst.csuchico.edu/~beej/guide/ipc/
11. Shared Memory, Semaphores, and
Message Queues
http://www.princeton.edu/~psg/unix/Solaris/troubleshoot/ipc.html
12. Linux MAN Pages
http://linux.ctyme.com/
13. SSH
http://www.unix.org.ua/orelly/networking_2ndEd/ssh/
14. GnuPG
http://www.gnupg.org
Last modified: Monday, April 19, 2006