|
UNIVERSITY OF
WISCONSIN-MADISON
Computer Sciences Department |
|
|
CS 537
Fall 1997 |
|
Bart Miller |
|
CS 537: Introduction to Operating Systems
|
|
New Stuff
Class Staff
Instructor: Bart Miller
email: bart@cs.wisc.edu
Office: 6381 CS
Phone: 263-3378
Office hours: Tuesday/Thursday 11-noon |
Instructor (Section 1): Marv Solomon
email: solomon@cs.wisc.edu
Office: 7379 CS
Phone: 263-2844
Office hours: Monday/Friday 9am-10am |
TA: Youlin Li
email: youlin@cs.wisc.edu
Office: 1349 CS
Phone: 262-5340
Office hours: Monday 1pm-3pm, Wednesday 3pm-5pm |
TA: Dongbin Tao
email: taodb@cs.wisc.edu
Office: 1349 CS
Phone: 262-5340
Office hours: Monday/Friday 3:30pm-5:30pm |
TA: Sivasankaran Chandrasekar (programs
only)
email: schandra@cs.wisc.edu
Office: 1308 CS
Phone: 262-6602
Office hours: Tuesday/Thursday 2pm-4pm |
Course Materials
- The course is organized around my lecture notes. The lecture notes are available
on the class Web page.
- You will need the textbook Operating System Concepts, by
Silberschatz and Galvin.
- For the programming assignments, you should purchase a copy of
The Java Programming Language by Arnold and Gosling, or pick
your favorite Java language book. In addition, Marv Solomon has
written an excellent introduction
to Java for C++ programmers. You should read this introduction
as soon as you can.
The lecture notes are available now. You should read the first
section before coming to class. Operating System Concepts
and The Java Programming Language are available in the book
store.
Lectures and Discussion Sections
Lecture times: Tuesday/Thursday 1300-1415
1325 Computer Sciences
Discussion section: Wednesday 1300-1350
1221 Computer Sciences
Note that there is the extra (Wednesday at 1300) discussion
section. This section will be used mainly as a recitation section
to discuss material covered in lecture and for the weekly quizzes.
On occasion, it will be used to discuss important details of the
programming assignments and homeworks. Make sure that you leave
room in your schedule to attend this section.
Exams/Quizzes
There will be no midterms. The final is optional. The final exam from Spring 1997 is available
for you to review.
Each week, starting the second week of classes, there will be a
quiz in the Discussion Section. The quizzes will last 15-30
minutes. Following are the past quizzes with answers:
- Threads and Java,
September 17.
- Dining Philosphers,
September 24.
- Synchronizing Passengers,
October 1.
- Implementing Semaphores with
Monitors, October 8.
- Implementing Semaphores with
Messages, October 15.
- Scheduling and Deadlock,
October 22.
- Segmentation, October
29.
- Multi-Level Paging,
November 5.
- Paging and TLB's, November
12
- Paging to Disk, November
19
- File Systems, December 3
-
None yet.
Programming Assignments
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 Java and done on
workstations running UNIX. It is unlikely that you will be able to
do all these assignments on your personal computer.
- Programming
assignment #1 is available. The goal of this assignment is to
practice using Java, learn some of the important classes, and try
to write a program that is really tolerant to junk input. Due
September 16th.
- Programming
assignment #2 is available. The goal of this assignment is to
write a program that uses Java's threads and monitor-based
synchronization. Due October 9th.
- Programming
assignment #3 is available. You are to modify a simulator for
CPU replacement scheduling algorithms. We provide you with a
trace-driven simulator that implements a non-preemptive Round Robin
scheduler. You will implement two variations of Exponential Queues
and then perform a variety of experiments with your simulator. Due
November 6th at the start of class.
- Programming
assignment #4 is available. You are add directories and file
names to a simple inode file system. We provide you with the
low-level file access routines and you will build on top of these.
Due December 9th at the start of class. A list of Frequently
Asked Questions and their answers is available for this
assignment.
-
None yet.
Written Problem Sets
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. Though, you will find that you will do
poorly on the weekely quizzes, if you don't do the problems
Solution sets for the problem will be handed out about two weeks after the
problem set.
The TA's and I will be happy to answer questions on these problems
and look over your solutions.
- Problem Set #1 is
available. The goal of this assignment is to learn about using the
various synchronization primitives (semaphores, monitors, messages)
to solve problems.
- Problem Set #2 is
available. The goal of this assignment is to learn about memory
management hardware and software.
- Problem Set #3 is
available. The goal of this assignment is to learn file system
structures and methods.
-
None yet.
Late Work
Assignments are due at the start of class on the date listed on the
handout. Over the entire semester, you have three late days
of credit. 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, absolutely no late
work will be accepted.
Late days cannot be used on any assignment that is due
during the last week of classes.
Cheating
Programming assignments will be done with partners. Each group of
two will work independently from other groups.
Cheaters will receive the maximum penalties, which include
receiving an "F" grade for the course and having this marked
on your transcript.
Computer Facilities
We will (probably) be using the Solaris (UNIX) workstations for
this course. These are UNIX workstations, running the Sun Solaris
operating systems and X windows. All students who have registered
for this class should have an account.
Grading Policy
If you don't take the
final:
|
|
If you take the final:
|
Programming assignments: |
40% |
|
Programming assignments: |
30% |
Quizzes: |
60% |
|
Quizzes: |
45% |
Final: |
0% |
|
Final: |
25% |
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 in the range of
2.9-3.1.
Class Schedule
The following schedule is tentative and could (and probably will)
change:
Week 1 |
September 2 & 4 |
Introduction and overview, processes |
Week 2 |
September 9 & 11 |
Dispatching, process creation |
Week 3 |
September 16 & 18 |
Cooperating processes, synchronization |
Week 4 |
September 23 & 25 |
Semaphores |
Week 5 |
September 30 & October 2 |
Semaphores, monitors, NO CLASS
Thursday |
Week 6 |
October 7 & 9 |
Messages, deadlocks |
Week 7 |
October 14 & 16 |
OS debugging strategies, dynamic memory allocation |
Week 8 |
October 21 & 23 |
Relocation |
Week 9 |
October 28 & 30 |
Segmentation, Paging, TLBs |
Week 10 |
November 4 & 6 |
Virtual memory, page replacement, thrashing |
Week 11 |
November 11 & 13 |
Working sets, I/O devices, files |
Week 12 |
November 18 & 20 |
Disk allocation and scheduling, directories |
Week 13 |
November 25 & 27 |
Protection, NO QUIZ Weds,
NO CLASS Thursday |
Week 14 |
December 2 & 4 |
Security, advanced topics (readings) |
Week 15 |
December 9 & 11 |
Advanced topics (readings) |
Finals |
December 16 |
Optional Final Exam (Tuesday, 7:25pm) |
Last modified: Fri Dec 12 10:38:02 CST 1997 by bart