Course 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?

Basic information:

  • Lecture: 9:10-10:30 Tuesday and Thursday morning in WEB L103
  • Office hours: TBD
  • 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

  • Grades will be assigned based on the standard 90/80/70/60 scale
  • Programming assignments are 40% of the course grade
  • Homework is 10%
  • The in-class midterm exam is 20%
  • The final exam is 30%
  • Late homework or assignments are only accepted if you have a valid reason and have made arrangements in advance

Programming assignments

  • These will be done on CADE lab Linux machines and handed in via Canvas

Collaboration and Cheating

  • Everyone needs to read the SoC Policy on Academic Misconduct
  • 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.

Topics covered:

  • Operating system organization and the hardware / software interface
  • Process and thread management
  • Scheduling
  • Memory models and synchronization
  • Deadlock
  • Virtual memory and paging
  • Security
  • Virtual machines
  • File systems
  • Distributed systems and clouds
  • Maybe some more advanced topics if we have time

Course Summary:

Date Details Due