|
UNIVERSITY OF WISCONSIN
Computer Sciences Department |
|
CS 537
Fall 2012 |
|
Barton Miller |
|
CS 537: Introduction to Operating Systems |
|
Instructor: Barton Miller
email:
Office: 7363 CS
Phone: 263-3378
Office hours:
Tuesday/Wednesday 9:30am-10:30am
Aldo hour:
Friday 10am-11am
|
TA: Kumaresh Murugan
email: mvisakan@cs.wisc.edu
Office: 1301 CS
Phone: 262-6600
Office hours:
Monday 11am - noon
Thursday 1pm - 2pm
Friday 2pm - 3pm
|
-
The course is organized around my lecture notes.
The
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.
Lecture times:
Tuesday/Thursday 11am-12:15pm
1221 Computer Sciences
Discussion section:
Wednesday 11am-11:50am
107 Psychology
Note that there is the
mandatory 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.
There will be no midterms.
The final is optional.
An
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-30 minutes.
Following are the past quizzes with answers:
-
Quiz 1,
Statistics,
September 25.
-
Quiz 2,
Statistics,
October 3.
-
Quiz 3,
Statistics,
October 10.
-
Quiz 4,
Statistics,
October 17.
-
Quiz 5,
Statistics,
October 24.
-
Quiz 6,
Statistics,
October 31.
-
Quiz 7,
Statistics,
November 7.
-
Quiz 8,
Statistics,
November 14.
-
Quiz 9,
Statistics,
November 21.
-
Quiz 10,
Statistics,
November 28.
-
Quiz 11,
December 12.
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
Linux.
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 about system
calls,
and try to write a program that is really tolerant to junk input.
Due September 28th, 5pm.
Here are the
score statistics.
-
Programming
assignment #2
is available.
The goal of this assignment is to write a program that uses pthread threads and
synchronization.
Due October 24, 5pm.
Here are the
score statistics.
-
Programming
assignment #3
is available.
You are to create a simulator for CPU scheduling algorithms.
You will implement two simulation algorithms: Exponential Queues and
SCTF, and then
perform a variety of experiments with your simulator.
Due November 30th at 5pm.
Here are the
score statistics.
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,
if you
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
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 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,
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 (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
of classes.
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
first.
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:
|
| 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
around 3.0.
The following schedule is tentative and could (and probably will) change:
| Date |
Lectures |
Discussion |
|---|
| Week 1 |
September 4 & 6 |
Introduction and overview, processes |
Intro to C |
| Week 2 |
September 11 & 13 |
Dispatching, process creation
|
Intro to C and I/O libraries |
| Week 3 |
September 18 & 20 |
Cooperating processes, synchronization.
No class Tuesday
|
Intro to gdb, Makefiles, CVS |
| Week 4 |
September 25 & 27 |
Semaphores
Quiz 1: Processes (in lecture)
|
No discussion
|
| Week 5 |
October 2 & 4 |
Monitors, message passing
Guest lecturer Tuesday: Drew Bernat |
Quiz 2: Synchronization with Semaphores |
| Week 6 |
October 9 & 11 |
Implementing synchronization, CPU scheduling
|
Quiz 3: Once again with Semaphores |
| Week 7 |
October 16 & 18 |
Deadlock, dynamic memory allocation
Guest lecturer Tues and Thurs: Emily Jacobson
|
Quiz 4: Synchronization with Monitors |
| Week 8 |
October 23 & 25 |
Relocation
|
Quiz 5: Synchronization with Messages |
| Week 9 |
October 30 & November 1
| Segmentation, Paging
Guest lecturer Tues and Thurs: Drew Bernat
|
Quiz 6: Scheduling and Deadlock |
| Week 10 |
November 6 & 8 |
TLBs, Virtual memory, page replacement, thrashing.
No class Thurs
|
Quiz 7: Segmentation |
| Week 11 |
November 13 & 15 |
Working sets, I/O devices, files
Lecture Tues and Thurs: via Skype!
|
Quiz 8: Multi-Level Paging |
| Week 12 |
November 20 & 22 |
Disk allocation and scheduling, directories
No class Thursday, Thanksgiving |
Quiz 9: TLB's |
| Week 13 |
November 27 & 29 |
Protection, file systems
|
Quiz 10: Page Replacement |
| Week 14 |
December 4 & 6 |
File systems
| No quiz |
| Week 15 |
December 11 & 13 |
Security, "ARIANE 5
Flight 501 Failure: Report by the Inquiry Board"
|
Quiz 11: File systems |
| Finals |
December 19 |
Optional Final Exam: 5:05pm-7:05p, 1221 Computer Sciences |
Last modified:
Thu Dec 13 12:34:30 CST 2012
by
bart