Date: Mon, 11 Nov 1996 02:02:25 GMT
Server: NCSA/1.5
Content-type: text/html
Last-modified: Wed, 15 May 1996 17:54:19 GMT
Content-length: 8973
CS 537 - Introduction to Operating Systems - Spring 1996
|
UNIVERSITY OF WISCONSIN-MADISON
Computer Sciences Department
|
|
CS 537
Spring 1996
| | Bart Miller
|
| CS 537: Introduction to Operating Systems
|
|
New Stuff
-
Final grades are posted.
-
Problem Sets 1 and 2 are available (2/17/96).
-
Programming Assignment 3 is available (3/31/96).
-
Quizzes 1-10 and answers are available (5/1/96).
-
Sections 1-28 of the lecture notes are ready for reading and printing (4/29/96).
Class Staff
Instructor: Bart Miller
email: bart@cs.wisc.edu
Office: 6381 CS
Phone: 263-3378
Office hours: Wednesday/Friday 1030-noon
or by appointment.
TA: Karuna Muthiah
email: muthiah@cs.wisc.edu
Office: 1343 CS
Phone: 262-5596
Office hours: Monday 1100-1300 and Wednesday 1400-1600.
TA: Jonathan Weyers
email: weyers@cs.wisc.edu
Office: 1304 CS
Phone: 262-6601
Office hours: Monday/Friday 1400-1530 and Wednesday 1600-1700.
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
Modern Operating Systems,
by Tanenbaum.
-
For the programming
assignments, you should purchase a copy of
Object-Oriented Programming Using C++
by Pohl, or whatever is your favorite C++ book.
The lecture notes are available now.
You should read the first section before coming to class.
Modern Operating Systems
and
Object-Oriented Programming Using C++
are available in the book store.
Lectures and Discussion Sections
Lecture times:
Tuesday/Thursday 1300-1415
1221 Computer Sciences
Discussion section:
Wednesday 1300-1350
168 Noland
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.
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:
-
Processes and concurrency,
February 7.
-
Semaphores,
February 14.
-
Monitors,
February 21.
-
Messages,
February 28.
-
Scheduling & Synchronization,
March 6.
-
Segmentation & Paging,
March 27.
-
TLB's,
April 10
-
Demand Paging,
April 17
-
File Systems,
April 24
-
File Systems and Recovery,
May 1
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 C++ 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 C++, learn some UNIX system
facilities, and try to write a really input-tolerant program.
-
Programming assignment #2
is available.
The goal of this assignment is to write a program that uses multiple processes
and synchronization.
-
Programming assignment #3
is available.
You are to write a simulator for CPU scheduling algorithms; you will use
traces of activities on a real UNIX systems to drive your simulation.
The goals of this assignment are to
(1) learn more about the CPU scheduling algorithms,
(2) learn about trace-driven simulation,
and
(3) experiment with quantitatively analyzing a computer system.
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 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 to solve problems.
-
Problem Set #2
is available.
The goal of this assignment is to learn memory management hardware and software.
Late Work
Assignments are due at 5 p.m. 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 quiz during the first week nor during the week after Spring break.
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
| January 23 & 25
| Introduction and overview, processes
|
Week 2
| January 30 & February 1
| Dispatching, process creation
|
Week 3
| February 6 & 8
| Cooperating processes, synchronization
|
Week 4
| February 13 & 15
| Semaphores
|
Week 5
| February 20 & 22
| Semaphores, monitors
|
Week 6
| February 27 & 29
| Messages, deadlocks
|
Week 7
| March 5 & 7
| OS debugging strategies, dynamic memory allocation
|
| March 12 & 14
| Spring Break
|
Week 8
| March 19 & 21
| Relocation
|
Week 9
| March 26 & 28
| Segmentation, Paging, TLBs
|
Week 10
| April 2 & 4
| Virtual memory, page replacement, thrashing
|
Week 11
| April 9 & Nov. 11
| Working sets, I/O devices, files
|
Week 12
| April 16 & 18
| Disk allocation and scheduling, directories
|
Week 13
| April 23 & 25
| Protection
|
Week 14
| April 30 & May 2
| Security, advanced topics (readings)
|
Week 15
| May 7 & 9
| Advanced topics (readings)
|
Finals
| May 14
| Final Exam (Tuesday, 5:05pm)
|
Last modified:
Wed May 15 12:54:17 CDT 1996
by
bart