||UNIVERSITY OF WISCONSIN
Computer Sciences Department
||CS 537: Introduction to Operating Systems
Here's the paper to read for Thursday, December 12th:
Flight 501 Failure: Report by the Inquiry Board".
This is a very cool and important report (5 Dec 2013).
Quiz 10 answers
are available (4 Dec 2013).
A listing of
so far is now available, complete through Quiz 9 and Program 3.
Please check it for accuracy and completeness.
The "TOTAL" is your percentage of the points for the assignments graded thus far,
with your lowest quiz score dropped.
(26 Nov 2013).
Quiz 9 answers
are available (24 Nov 2013).
Problem Set 3
is available (20 Nov 2013).
Programming Assignment 4 is available (13 Oct 2013).
Quiz 8 answers
are available (13 Nov 2013).
Quiz 7 answers
are available (06 Nov 2013).
Problem Set 2
is available (30 Oct 2013).
Quiz 6 answers
are available (30 Oct 2013).
Quiz 5 answers
are available. Some recent updates to fix typos (24 Oct 2013).
Programming Assignment 3 is available (21 Oct 2013).
One of my former TAs, Lena Olson, wrote a nice tutorial on
This is a great tool to help you find memory errors.
(09 Oct 2011).
I have posted a list of basic
coding standards for
your CS537 programs.
This list may evolve over the course of the semester (10 Sep 2013).
Instructor: Barton Miller
Office: 7363 CS
TA: Wei-Yu Shih
Office: 1306 Computer Sciences
The course is organized around my lecture notes.
are available on the class Web page.
You will need the textbook
Operating Systems Concepts
by Silberschatz, Galvin, and Gagne;
any of the recent (7th, 8th) editions will do.
(If you have an older version, please come talk with me; it might be acceptable.)
For the programming
assignments this semester, we will use the C programming language.
I am not requiring a specific book for C.
If you have a book already and are happy with it, you probably do not
need to buy a new book.
If you do not have a book, I would recommend the
C Programming Language
by Kernighan and Ritchie.
My lecture notes are available now.
You should read the first section before coming to class.
1325 Computer Sciences
Note that there is the
discussion section (Wednesday at 11am).
This section will be used mainly to discuss material
covered in lecture and for the weekly quizzes.
It will be used also to discuss important details of
the programming assignments and homework.
Make sure that you leave room in your schedule to attend this section.
You must attend
the discussion section associated with this lecture;
you cannot attend one of the other discussion sections.
There will be no midterms.
The final is optional.
old final exam
is available for you to review.
Most weeks, there will be a quiz in the Discussion Section; see the class schedule
for details as to when are the quizzes.
The quizzes will last 15-45 minutes.
Following are the past quizzes with answers:
There will be about four programming assignments during the semester.
Details on these assignments will be given in class handouts.
These assignments will be written in C and done on workstations running
It is unlikely that you will be able to do all these assignments on your
personal computer unless you have loaded a recent version of Linux.
The goal of this assignment is to practice using C, learn about system
and try to write a program that is really tolerant to junk input.
Due Friday, September 27th, 5pm.
Here are the
The goal of this assignment is to write a program that uses fork and exec, and
can handle badly formed input.
Due October 18, 5pm.
Here are the
You will create a wrapper library for malloc() and free() that
will help check for memory errors.
Due November 11th at 5pm.
Here are the
You will get a chance to experience system benchmarking, doing some simple
performance studies of file I/O.
Due December 4th at 5pm.
During the semester, I will hand out several
written problem sets based on the lectures.
These problem sets are for your use and do not need to be turned in.
However, you will find that you will do poorly on the weekly quizzes,
don't do the problems
The TA and I will be happy to answer questions on these problems and
look over your solutions.
Problem Set #1
The goal of this assignment is to learn about using the various synchronization
primitives (semaphores, monitors, messages) to solve problems.
Problem Set #2
The goal of this assignment is to learn about
memory management hardware and software.
Problem Set #3
The goal of this assignment is to learn about file system structures and methods.
Assignments are due at the start of class on the date listed on the handout.
Over the entire semester,
three late days
You can use these late days on different assignments (e.g., one day on each
of three assignments) or all three days on one assignment.
Other than these three days (or serious personal emergencies),
absolutely no late work will be accepted.
Late days are 24-hour days.
Late days cannot be used on any assignment
that is due during the last week
Programming assignments will be done with partners.
Each group of two will work independently from other groups; there should
be no collaborations between groups.
Quizzes and exams are individual work; there should be no communication between
students during an exam.
If you have any questions about what is a permissible activity, talk with me
The penalty for cheating will include receiving an
"F" grade for the course
and having an academic misconduct notation marked on your transcript.
Please make sure to turn off your cell phone during class time.
If your cell phone or beeper rings audibly during class,
you will be asked to leave
and not return until you meet with me in my office.
We will be using the Linux workstations for this course.
All students who have registered for this class should have an account.
If your personal computer has the proper compilers and libraries, you are welcome
to use it for the programming assignments.
|If you don't take the final:
||If you take the final:
Your lowest quiz grade will be dropped from the average; there will be
no quizzes during the first two weeks.
If you take the final exam, it will be counted as above.
In the past, when I've taught this class, the class GPA has been
The following schedule is tentative and could (and probably will) change.
If you are planning on being out of town, make sure to talk with Bart before
you make your plans.
||September 3 & 5
||Introduction and overview, processes
No class Thursday
|Intro to C
||September 10 & 12
||Dispatching, process creation
||Intro to C and I/O libraries
||September 17 & 19
||Cooperating processes, synchronization.
Guest lecturer Thursday: Emily Jacobson
|Intro to gdb, Makefiles, CVS
||September 24 & 26
||Quiz 1: Processes
||October 1 & 3
||Monitors, message passing
||Quiz 2: Synchronization with Semaphores
||October 8 & 10
||Implementing synchronization, CPU scheduling
||Quiz 3: Once again with Semaphores
||October 15 & 17
||Deadlock, dynamic memory allocation
||Quiz 4: Synchronization with Monitors
||October 22 & 24
||Quiz 5: Synchronization with Messages
||October 29 & 31
||Quiz 6: Scheduling and Deadlock
||November 5 & 7
||TLBs, Virtual memory, page replacement, thrashing.
||Quiz 7: Segmentation
||November 12 & 14
||Working sets, I/O devices, files
||Quiz 8: Multi-Level Paging
||November 19 & 21
||Disk allocation and scheduling, directories
Guest lecturer Tues and Thurs: Emily Jacobson
|Quiz 9: TLB's
||November 26 & 28
||Protection, file systems
No class Thursday: Thanksgiving
|No class Wednesday
||December 3 & 5
||Quiz 10: Page Replacement
||December 10 & 12
Flight 501 Failure: Report by the Inquiry Board"
||Quiz 11: File systems
||Optional Final Exam: 12:25pm-2:25p, Location TBA
Wed Dec 4 16:53:12 CST 2013