|
UNIVERSITY OF WISCONSIN
Computer Sciences Department |
|
CS 537
Fall 2020 |
|
Barton Miller |
|
CS 537: Introduction to Operating Systems |
|
Barton Miller
email:
Office: 7363 CS
Phone: 263-3378
Office hours:
click here
-
The course is organized around my lecture notes.
The
lecture notes
are available on the class Web page.
-
We will use the free and online textbook
Operating
Systems: Three Easy Pieces
by our very own Remzi and Andrea Arpaci-Dusseau.
Other books, such as Silberschatz, Galvin, and Gagne's
Operating Systems Concepts
or Andrew Tannenbaum's Modern Operating Systems, are also useful though
not necessary.
-
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 1pm-2:15pm
Online at the regular class time, using BBCollaborate
Lectures will be recorded
Section |
TA |
email |
Room |
Time |
Office Hours |
301. |
Mark Powers |
mppowers@wisc.edu |
Online |
Weds 11:00am |
click here |
302. |
McKinley Sconiers-Hasan |
msconiershas@wisc.edu |
Online |
Weds 12:05pm |
303. |
Saurabh Kulkarni |
skulkarni27@wisc.edu |
Online now Microbial Sciences 1220 |
Weds 1:20pm |
304. |
Shanmathi Natarajan |
natarajan8@wisc.edu |
Online now Microbial Sciences 1220
| Weds 3:30pm |
305. |
Robert Williams |
rjwilliams22@wisc.edu |
Online now Microbial Sciences 1220
| Weds 4:35pm |
The sections will be used mainly to
discuss important details of the programming assignments.
It is also a good place to ask questions about the challenge problems, in preparation for
the quizzes.
Make sure that you leave room in your schedule to attend your scheduled section.
Graders |
Akshat Jain |
ajain85@wisc.edu |
Grishma Gupta |
ggupta7@wisc.edu |
Nisarg Shah |
nisargs@cs.wisc.edu |
Peer Mentors |
Shubham Mehta |
smehta23@wisc.edu |
Wei Shi |
wshi48@wisc.edu |
Connor Waity |
cbwaity@wisc.edu |
The testing in the class will be based on weekley quizzes that will occur most weeks.
The class schedule has the list of quizzes (though that will be updated as the semester
progresses.
Quizzes will happen online at the start of class time on Thursdays and take 10-20 minutes.
There will be no midterm and the final is optional.
If you choose to take the final, it will be averaged into your semester's grade, as
described
below.
You will need to sign up for the final during the last week of classes, if you
wish to take it.
Note: because we are online this semester online, a final will be available only if we are allowed to have
in-person exams.
Below are the past quizzes with answers.
You can also see the
statistics for each quiz.
-
Quiz 11,
December 8.
-
Quiz 10,
December 3.
-
Quiz 9,
November 19.
-
Quiz 8,
November 12.
-
Quiz 7,
November 5.
-
Quiz 6,
October 29.
-
Quiz 5,
October 21.
-
Quiz 4,
October 8.
-
Quiz 3,
October 1.
-
Quiz 2,
September 24.
-
Quiz 1,
September 17.
There will be five (possibly six) programming assignments during the semester.
Details on these assignments will appear linked to the class home page and you'll get
an announcement via email and Canvas when they are available.
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 unless you have loaded a recent version of Linux.
Assignments will be done in teams of two (2).
You do not need to keep the same teammate for each assignment.
You can see the
statistics for each program.
-
Programming
assignment #5
Extra credit, adding MIN/OPT to the page replacement algorithm simulator:
The goal of this assignment is learning about optimal algorithms and how to
implement one in a simulator.
Due Wednesday, December 11th at 5pm.
-
Programming
assignment #4
Page replacement algorithm simulator:
The goal of this assignment is to think more about memory management and
get experience with the critical and important area of writing simulators.
Please! Get started right away.
There are some tricky parts to this assignment.
Due Wednesday, December 2th at 5pm.
-
Programming
assignment #3
537make:
The goals of this assignment is to learn about about how to start new programs
running on UNIX-type operating systems, and learn about how "make" works.
Due Wednesday, November 4th at 5pm.
Now due Thursday, November 5th at 12:30pm.
-
Programming
assignment #2
Synchronizing with Threads and Shared Memory:
The goal of this assignment is to practice what we learned about in lecture
and quizzes using threads and synchronization.
Due Tuesday, October 13th at 5pm.
-
Programming
assignment #1
537ps:
The goal of this assignment is to practice using C, learn about system
calls,
and try to write a program that implements an interesting and important
Linux utility, ps.
Due Wednesday, September 23th, 5pm.
Most weeks, I will post one or two challenge problems,
based on the lectures.
These problem 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
Solution for the problems will be discussed in section before the quiz.
problem set.
And the TA's and I will be happy to answer your questions about these problems and
look over your solutions.
-
Challenge Problem #11
is available.
This is a collection of questions to better understand file systems, including NTFS
and crash recovery.
-
Challenge Problem #10
is available.
This is a collection of questions to better understand file systems.
-
Challenge Problem #9
is available.
This is a collection of questions to better understand page replacement algorithms and
virtual memory.
-
Challenge Problem #8
is available.
This is an exercise on designing the TLB from Challenge Problem 7.
-
Challenge Problem #7-1
is available.
Here is another exercise on multi-level paging.
-
Challenge Problem #7
is available.
Here is an exercise on multi-level paging.
-
Challenge Problem #6-1
is available.
Here is a second segmentation challenge problem.
-
Challenge Problem #6
is available.
This problem is an exercise on figuring out the design of the segment table structure for
virtual memory.
-
Challenge Problem #5
is available.
These problems will give you a chance to think about issues related to scheduling and deadlock.
-
Challenge Problem #4
is available.
This problem will give you practice solving a synchronization problem with monitors.
-
Challenge Problem #3
is available.
This problem will give you more practice solving a synchronization problem with semaphores.
-
Challenge Problem #2 (with one possible solution
is available.
This problem will give you practice solving a synchronization problem with semaphores,
and teach you about another synchronization mechanism called barriers.
-
Challenge Problem #1
is available.
These two problems focus on what can happen when multiple processes share (and modify) variables.
Assignments are due at the date and time 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),
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.
Make sure to read the
the class page on
Academic Conduct Policy.
This is critical to your success in the class.
You must complete the online form on the class Canvas page,
acknowledging that you accept this policy.
Until you hand this in, no assignments will be accepted.
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.
Please see the Academic Conduct Policy for information relating to
phones (and similar devices) during quizzes and exams.
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.
Note that the final exam option
will only be available
if in-person exams are
available.
Right now, that seems unlikely.
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.
If you are planning on being out of town, make sure to talk with Bart before
you make your plans.
Note that quizzes are on Thursdays.
Date |
Lectures (Tue/Thu) |
Discussion (Wed) |
Programming Assignments |
Week 1 |
September 3 |
Introduction and overview
|
No section |
|
Week 2 |
September 8 & 10 |
Processes, Dispatching, process creation
|
Intro to C |
Program 1: 537ps: writing the "ps" command.
Assigned: Sep 11
Due: Sep 23 @ 5pm
|
Week 3 |
September 15 & 17 |
Cooperating processes, semaphores.
Quiz 1: Processes
|
Intro to gdb, Makefiles
|
Week 4 |
September 22 & 24 |
Semaphores
Tuesday class pre-recorded on BBCollaborate
Quiz 2: Synchronization with semaphores
|
Discuss Challenge Problem 2 |
Week 5 |
September 29 & October 1 |
Monitors, Message passing, implementing synchronization
Quiz 3: Once again with Semaphores
|
Discuss Program 2 and Challenge Problem 3
|
Program 2: Producer/consumer with semaphores and monitors
Assigned: Sep 29
Due: Oct 13 @ 5pm
|
Week 6 |
October 6 & 8 |
CPU scheduling
Quiz 4: Synchronization with Monitors
|
Discuss Program 2 and Challenge Problem 4 |
Week 7 |
October 13 & 15 |
Deadlock, Relocation, Dynamic Address Translation
No Quiz
|
Discuss Challenge Problem 5 |
Week 8 |
October 20 & 22 |
Segmentation, paging,
Quiz 5: Scheduling and Deadlock
|
Discuss Program 3 and Challenge Problem 6 |
Program 3: 537make: The "make" command
Assigned: Oct 16
Due: Nov 4 @ 5pm
Now due: Nov 5 @ 12:30pm
|
Week 9 |
October 27 & 29
| Multi-level paging, TLBs
Quiz 6: Segmentation
|
Discuss Challenge Problem 6 |
Week 10 |
November 3 & 5 |
Virtual memory, page replacement, thrashing.
Quiz 7: Multi-Level Paging
|
Discuss Challenge Problem 7 |
Week 11 |
November 10 & 12 |
Clock, Working Set, file systems.
Quiz 8: TLB's
|
Discuss Challenge Problem 8 |
|
Week 12 |
November 17 & 19 |
Disk allocation and scheduling
Quiz 9: Page Replacement
|
Discuss Challenge Problem 9 and Program 4 |
Program 4: A page replace algorithm simulator
Assigned: Nov 13
Due: Dec 2 @ 5pm
Now due: Dec 3 @ 5:30pm
|
Week 13 |
November 24 & 26 |
Inodes
No class Thursday: Thanksgiving
|
No section: Thanksgiving
|
|
Week 14 |
December 1 & 3 |
Path names, directories, links
Quiz 10: File systems
| Discuss Challenge Problem 10 and Programs 4 and 5 |
Week 15 |
December 8 & 10 |
Advanced topic: Kerninst
Quiz 11: NTFS and crash recovery (Tues)
No class Thursday
|
Discuss Program 5 (extra credit) |
Program 5 (extra credit): Adding MIN/OPT to your simulator
Assigned: Nov 16
Due: Dec 11 @ 5pm
|
Finals |
December 15 |
Optional Final Exam: tba |
|
This course conforms to the standard Carnegie unit of instruction.
It is for 4 credits.
There are two 75 minute lectures and one 50 minute discussion section per week.
In addition, there will be approximately 8 hours of out-of-class (homework) per week.
Instruction covers a period of 15 weeks.
Our class is a safe, supportive and accepting environment.
The instructors and students are expected to demonstrate respect for
others in class regardless of age, race, gender, religion, nationality
or abilities.
-
Students will learn about the three fundamental categories of operating system abstraction and
function:
(1) processes, synchronization, and scheduling,
(2) virtual memory and memory management,
and
(3) file systems and persistent data storage.
-
Through programming assignments, students will learning about system libraries
and kernel calls, which are mechanisms provided to user to access operating system
functionality.
-
Students will learn to reason about system functionality, viewing a complex system as a layering of
interacting abstractions with concrete implementations
-
Students will learn to reason about system performance, applying the lessons of
algorithms and data structures to the complex operation of an operating system.
The University of Wisconsin-Madison supports the right of all enrolled students
to a full and equal educational opportunity. The Americans with Disabilities Act
(ADA), Wisconsin State Statute (36.12), and UW-Madison policy
(Faculty Document 1071) require that students with disabilities be reasonably
accommodated in instruction and campus life.
Reasonable accommodations for students with disabilities is a shared faculty
and student responsibility. Students are expected to inform me of their
need for instructional accommodations by the end of the third week of the
semester, or as soon as possible after a disability has been incurred or recognized.
I will work either directly with the you or in coordination with the McBurney
Center to identify and provide reasonable instructional accommodations.
Disability information, including instructional accommodations as part
of a student's educational record, is confidential and protected under FERPA.
In addition to completing an electronic Faculty Notification Letter request
through McBurney Connect, it is important for students to contact the
me directly by the end of the third week of the semester to set up a meeting
to discuss implementation of any necessary accommodations.
This early communication helps ensure that accommodations can be
implemented in a timely manner.
For example, if an alternative exam room is needed, arrangements must be
made well in advance of an exam date to ensure room availability and to
secure a room booking.
Last modified:
Tue Dec 8 14:24:26 CST 2020
by
bart