Course Syllabus

Links

Final Exam Logistics

The final exam will be managed in a very similar way to the Midterm was with two main differences:

  • the exam is 120 minutes (the Midterm was 80 minutes), and
  • we will require you to show work on all problems to receive any credit.

These same details are now posted at the top of the course Canvas page/syllabus. The exam is designed to fit into our University-assigned Final Exam slot, but, as you will see below, there is some extra flexibility you should understand. Please read these details fully.

The Final will be administered via Canvas, the exam will appear in the Assignments section on the left side of the class Canvas page Wednesday (5/5) morning.

  • You can start the exam as early as 8:00 AM on Wed May 5.
  • You must submit the exam by 12:00 PM on Wed Mar 5 (noon) for it to be counted.
  • Once you start the exam you will have 120 minutes to complete it.
    • If you are entitled to extra time or other accommodations approved by CDA please send a Canvas message to the professor so I can check in with you and ensure Canvas is configured correctly for your accommodations.
  • The exam will contain true/false, multiple choice, fill-in-the-blank, and short answer questions.
    • For most questions you will need to show your work or type a paragraph or so into textboxes.
  • You can attempt the exam only once.
  • You will not receive any grading feedback until after we've graded the entire exam.
  • If you have any technical problems, immediately report them to the staff via Teams (Links to an external site.) (Links to an external site.); we will work with you to figure out a solution. If that does not work, send a message immediately to Ryan Stutsman on Canvas Inbox, and I will contact you with next steps.

Details on the exam format:

  • This exam will be open book, open note, and open Internet access.
  • No communication with any non-course-staff person is allowed during the exam about the exam material in any form. Discovery of any violation of this term is a violation of the Academic Misconduct policy for the course and will result in course failure.
  • The 2016 Final was similar in question style, so take a look at it (in the Files section).
  • See the Final discussion in Canvas to get details on practice exams, topic lists, and to exchange thoughts/answers on the practice exam questions, etc.

Help during the exam:

  • During the exam all of the course staff will be available on our MS Teams group (Links to an external site.) (Links to an external site.) (and for the hour before/after the exam window as well).
  • For questions about the exam, we’ll have a special "Final Exam (Links to an external site.)Final (Links to an external site.)" channel on Teams; you can ask for help there - one of the staff will start a private chat thread with you there and can enter a video call to help answer questions, if needed.
  • Be careful not to post your questions or specific details about the exam in the public channel - just post your need for help and wait to describe your problem until you are in a private chat with a staff member.
  • For technical problems, you can reach out to the course staff via Teams. (Links to an external site.) If that does not work, send a message immediately to Ryan Stutsman on Canvas Inbox, and I will contact you with next steps.

Logistical considerations:

  • You may need to do math or diagram things out to step through algorithms, so you will likely want to have scratch paper and pencil handy.
  • All questions with short answer textboxes will require you to show work to receive any credit; this work will also be used for partial credit. In all cases where it is possible, show how you computed your answer.
  • You should log in to the CS5460/6460 MS Team (Links to an external site.) (Links to an external site.) and check to make sure you know how to navigate, find the Final Exam channel, and chat with people in the team before the exam day.

Syllabus

This syllabus covers both CS 5460 and CS 6460.

This course is about the design and implementation of operating systems, which provide a crucial layer of abstraction between hardware and application programs. A knowledge of operating systems is essential for understanding how modern computing systems are put together.

Also see: Why Take an Operating Systems Course? (Links to an external site.)

This course is subject to the SoC and CoE Policies and Guidelines; make sure you have read through both of these documents.

Basic information:

  • Lecture: 09:10-10:30 Tuesday and Thursday via Zoom.
    • Video Recordings of Lectures: live attendance is preferred so class can be somewhat interactive; recordings posted with some delay.
    • Slides will be made available; drafts that may exist before class may not match final in-class slides.
  • Office hours and Contact (via the Office Hours MS Teams Channel; at other time use Canvas Discussions or Canvas Inbox):
    • Professor: Ryan Stutsman, Tuesday 14:00 to 15:30 and Thursday 10:45 to 12:15.
    • TA: John Jolly, Friday 13:00 to 14:30.
    • TA: Amit Samanta, Thursday 13:00 to 14:30.
    • TA: Vinita Pawar, Wednesday 14:00 to 15:30.
    • TA: Calvin Lee, Tuesday 11:00 to 12:30.
  • Prereqs: CS 4400 and proficiency in C programming
  • Policy on incompletes: I won't give an "incomplete" grade unless you had a documented legal or medical emergency during the semester
  • Please keep the dates in the academic calendar in mind

Textbook:

Grades

  • Programming assignments are 40% of the course grade.
    • Expect 4 or 5 programming assignments, depending on time.
  • Homeworks are 10%
    • Expect 2 to 4 written homeworks, depending on time.
  • The midterm exam is 25%
  • The final exam is 25%

Exams will be administered online via Canvas, but they will be (at least somewhat) synchronous. You will need to ensure you are available at these specific times to take exams:

  • Tue Mar 16 from 09:10 AM to 10:30 AM for the online Midterm exam, and
  • Wed May 5 from 08:00 AM to 10:00 AM for the online Final exam.

Late Submissions, Regrades, and Appeals

Late homework or assignments are ok if you have a valid reason (e.g. family or medical emergency) and have made arrangements in advance when possible.

Aside from emergencies, each student can use late days with the following constraints:

  • You can only use late days for programming assignments (named "Assignment 1", and so on).
  • You have 5 late days that you can divide among the programming assignments as you see fit.
  • You can only use late days in whole integer units.
  • You must notify the TA that you are turning it in late and how many late days you'd like to use. You can do this up to 5 days beyond the due date.
  • You must turn in all work before May 5th; all unturned in work will be given a 0
  • After accounting for any applied late days late penalties are applied as follows:
    • Your assignment score is scaled by 0.9 if it is up to one day late,
    • by 0.8 if it is up to two days late,
    • by 0.7 if it is up to three days late, and
    • by 0.6 if it is any later.

Regrade requests must be submitted in writing; no adjustments are made in-person neither by TAs nor the professor. Students who wish to appeal a grade must do so within two weeks of receiving the grade.

Collaboration and Cheating

  • Everyone needs to read the SoC Policy on Academic Misconduct...P
  • Per SoC Policy: each student in a CS course must either have the Academic Misconduct Acknowledgement Form on file in the SoC office or must print, sign, and submit the form acknowledging that they understand the SoC academic misconduct policy to the appropriate graduate or undergraduate academic advisor in the SoC office. This form must be submitted prior to the end of the second week of this semester. Students who fail to submit the form by this date will be asked to withdraw from the course. Students who do not withdraw from the course and fail to turn in the form will receive a EU grade.
  • Working with others on assignments is a good way to learn the material and we encourage it. However, there are limits to the degree of cooperation that we will permit.
  • When working on programming assignments, you must work only with others whose understanding of the material is approximately equal to yours. In this situation, working together to find a good approach for solving a programming problem is cooperation; listening while someone dictates a solution is cheating. You must limit collaboration to a high-level discussion of solution strategies, and stop short of actually writing down a group answer. Anything that you hand in, whether it is a written problem or a computer program, must be written in your own words. If you base your solution on any other written solution, you are cheating.
  • Never look at another student's code or share your code with any other student.
  • We do not distinguish between cheaters who copy other's work and cheaters who allow their work to be copied. If you cheat, you will be given an E in the course and referred to the University Student Behavior Committee. If you have any questions about what constitutes cheating, please ask.

College of Engineering Guidelines

Information on withdrawing from courses, appealing grades, and more, see the College of Engineering Academic Affairs website.

Behavior in Class

Students are expected to maintain professional behavior in class according to the University of Utah Student Code, which is available here. Students should read the Code carefully and know what their responsibilities are. According to Faculty Rules and Regulations, it is the faculty responsibility to enforce responsible classroom behavior, beginning with verbal warnings and progressing to dismissal from class and a failing grade. Students have the right to appeal such action to the Student Behavior Committee.

Students with Disabilities

The University of Utah seeks to provide equal access to its programs, services and activities for people with disabilities. If you will need accommodations in the class, reasonable prior notice needs to be given to the Center for Disability Services, 162 Union Building, 581-5020 (V/TDD). CDS will work with you and the instructor to make arrangements for accommodations.

Addressing Sexual Misconduct

Title IX makes it clear that violence and harassment based on sex and gender (which Includes sexual orientation and gender identity/expression) is a civil rights offense subject to the same kinds of accountability and the same kinds of support applied to offenses against other protected categories such as race, national origin, color, religion, age, status as a person with a disability, veteran’s status or genetic in-formation. If you or someone you know has been harassed or assaulted, you are encouraged to come speak to the School of Computing Advisors and/or to the Title IX Coordinator in the Office of Equal Opportunity and Affirmative Action, 135 Park Building, 801-581-8365, or the Office of the Dean of Students, 270 Union Building, 801-581-7066. For support and confidential consultation, contact the Center for Student Wellness, 426 SSB, 801-581-7776. To report to the police, contact the Department of Public Safety, 801-585-2677(COPS). More information is available at https://safeu.utah.edu.

Preferred Name and Pronoun

Class rosters are provided to the instructor with the student’s legal name as well as “Preferred first name” (if previously entered by you in the Student Profile section of your CIS account). While CIS refers to this as merely a preference, we will honor you by referring to you with the name and pronoun that feels best for you in class, on papers, exams, group projects, etc. Please advise us of any name or pronoun changes (and update CIS) so we can help create a learning environment in which you, your name, and your pronoun will be respected. If you need assistance getting your preferred name on your UIDcard, please visit the LGBT Resource Center Room 409 in the Olpin Union Building, or email bpeacock@sa.utah.edu to schedule a time to drop by. The LGBT Resource Center hours are M-F 8am-5pm, and 8am-6pm on Tuesdays.

University Counseling Services

The process of earning any university degree can be stressful and with the added burden of the rigorous workload and high GPA requirements of a CS degree, along with other issues many students face (e.g., commuting, working, family, etc.), it is often the case that students will need additional counseling and support.
The University of Utah Counseling Center (UCC) offers brief individual, couples and group counseling, psychiatric medication services and psychological assessment for eligible UU students. Any student who is experiencing adverse stress levels should feel free to contact their course instructors, the School of Computing advisors and staff, or contact the UCC directly. For more information, please call 801-581-6826 or refer to: https://counselingcenter.utah.edu/.

Topics covered:

  • Operating system organization and the hardware / software interface
  • Concurrency
    • Process and thread management
    • Scheduling
    • Memory models and synchronization
    • Deadlock
  • Memory/Resource Management
    • Virtual memory and paging
    • Disks
    • File systems
    • Flash and SSDs
  • Virtual machines
  • Other emerging topics as we have time and room to fit them

Course Objectives

  • Students should understand and be able to explain how programs work on a modern operating system.
    • Students should be familiar with threads, processes, libraries, files, and sockets.
    • Students have a basic understanding of the implementation of each of these abstractions, and they should be able to modify these abstractions and their implementations themselves.
    • Students should be able to explain the steps involved internally when an operating system runs a program, when a process accesses a file, when a process uses more memory than is physically available, or when a mouse is moved and its cursor is updated on a screen.
  • Students should be able to competently modify an operating system kernel to extend its functionality.
  • Students should be able to write non-trivial concurrent code to solve real problems with common concurrent design patterns.
  • Students should be able to explain the difference between mechanisms and policy and they should be able to cite key examples of it in the context of operating systems.

Schedule

The below calendar is tentative and is subject to change according to the above Topic List. As we make progress lectures and topics may be dropped or rearranged, so be careful working too far ahead. Required OSTEP chapter readings are in marked in parenthesis and linked from each calendar event.

Course Summary:

Date Details Due