UNIVERSITY OF WISCONSIN
Computer Sciences Department
CS 537
Fall 2020
Barton Miller
CS 537: Introduction to Operating Systems

Instructor

Barton Miller
email: email address
Office: 7363 CS
Phone: 263-3378
Office hours: click here

Course Materials

My lecture notes are available now. You should read the first section before coming to class.


Lectures and Discussion Sections

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.


Support Staff

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

Exams and Quizzes

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.


Programming Assignments

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.


Challenge Problems

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.

Late Work

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.


Academic Conduct Policy

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.


Cells Phones

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.


Computer Facilities

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.


Grading Policy

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.


Class Schedule

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  


Credits and Hours

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.

Community Standards

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.

Learning Outcomes


Disability Accomodations

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.


Valid HTML 4.01 Transitional

Last modified: Tue Dec 8 14:24:26 CST 2020 by bart