CPSC 457 Principles of Operating Systems (Winter 2013)

Professor Michael E. Locasto [last update: 10 Feb 2013]

Course Information

Wiki: CPSC457.W2013 (main course page)
Class dates: 8 January 2013 - 16 April 2013
Class time: TR 09:30-10:45 in MS 527
Tutorial 1: 11-11:50 MS119
Tutorial 2: 16-16:50 MS176
Instructor Office hours: 10:30am-11:30am Mon @ ICT 643 & by appt.
Midterm exam: 28 Feb (in class)
Final Exam: Monday 22 April 8-10am
Discussion: piazza.com/ucalgary.ca/winter2013/cpsc457
The Piazza site is for discussion and help; the TA and the professor will monitor this site, and we encourage students to share their own understanding here.


This course is an undergraduate level introduction to computer operating systems. It covers modern OS implementation on commodity hardware with a curiosity-driven cross-layer approach. It uses Linux to help ground the discussion and material. When successfully finishing the course, a student should be able to:
  1. enumerate the major roles of commodity operating systems
  2. understand major concepts like swapping, disk scheduling, process scheduling, and virtual memory
  3. compile, configure, and install a custom operating system kernel
  4. design, write, and install a custom kernel module
  5. articulate the relationship between hardware primitives and the high-level services and facilities they support in the OS kernel and in userland
  6. have a conceptual and practical understanding of the ABI and understand the mechanism by which programs are loaded and interpreted

Course Policies

I typically DO NOT scale or curve grades. Plan your work and effort based on the assumption that there will be no curve. I also DO NOT typically accept late work. See the course wiki for more detail on the grading policy.

For all communications concerning the course, please use the Piazza site. Questions on lectures and assignments sent directly to my ucalgary address likely will go unanswered. You may send email to my address only if it is of a private nature (e.g., dealing with your grade or some other personal matter). In either case, terse emails are more likely to get a response. See HOWTO Ask Smart Questions (required reading).

"ACADEMIC MISCONDUCT: (cheating, plagiarism, or any other form) is a very serious offence that will be dealt with rigorously in all cases. A single offence may lead to disciplinary probation or suspension or expulsion. The Faculty of Science follows a zero tolerance policy regarding dishonesty. Please read the sections of the University Calendar under K. Student Misconduct http://www.ucalgary.ca/pubs/calendar/current/k.html to inform yourself of definitions, processes and penalties." You should also read the UofC Academic Honesty Page and ACM Code of Ethics.

ACADEMIC ACCOMMODATION POLICY: Students with documented disabilities are referred to the following links: Calendar entry on students with disabilities and Disability Resource Centre: http://www.ucalgary.ca/drc/. If you have a documented learning disability or other condition that may affect academic performance, you should make sure this documentation is on file with the DRC. Please notify me of your accommodation needs.

ASSEMBLY POINTS: In case of emergency during class time. Be sure to familiarize yourself with the information at: http://www.ucalgary.ca/emergencyplan/assemblypoints

SAFEWALK: Campus Security will escort an individual day or night, safewalk. Call 220-5333 for assistance. Use any campus phone, emergency phone or the yellow phones located at most parking lot pay booths.

FREEDOM OF INFORMATION AND PRIVACY: This course is conducted in accordance with the FOIPP Act. As one consequence, students must identify themselves on all written work by placing their name on the front page and their ID number on each subsequent page. For more information see also http://www.ucalgary.ca/secretariat/privacy.

STUDENT UNION INFORMATION: VP Academic Phone: 220-3911, Email: suvpaca@ucalgary.ca. SU Faculty Rep. Phone: 220-3913. Email: sciencerep@su.ucalgary.ca. Website: http://www.su.ucalgary.ca/home/contact.html. Student Ombudsman: http://www.su.ucalgary.ca/services/student-services/student-rights.html.

INTERNET and ELECTRONIC COMMUNICATION DEVICE Information: You can assume that in all your classes that you attend, your cell phone should be turned OFF. Also, communication with other individuals via laptop computers, tablets, phones, or other electronic devices is not allowed in class time unless specifically permitted by the instructor. If you violate this policy you may be asked to leave the classroom. Repeat abuse may result in a charge of misconduct.

Other Resources

An OS course is routinly held at most universities with an undergraduate CS degree. Here are some links to other OS courses:
  1. http://pages.cpsc.ucalgary.ca/~carey/CPSC457/
  2. http://userweb.cs.utexas.edu/users/ygz/378-02S/
  3. http://www.cs.utexas.edu/~mwalfish/classes/f10-cs395t/
  4. http://www.cse.unsw.edu.au/~cs9242/current/
  5. http://www.cs.columbia.edu/~nieh/teaching/w4118/
There are almost as many OS textbooks as OS courses. Here are a selection of potentially helpful OS and C language references. Presence on this list is not necessarily an endorsement.
  1. The C Programming Language, Second Edition by Kernighan and Ritchie. (ISBN 0-13-110362-8) [Prentice Hall] [Amazon] (wikipedia entry)
  2. Advanced Programming in the UNIX(R) Environment by W. Richard Stevens, Addison-Wesley Professional; 2nd edition (June 17, 2005), ISBN-10: 0201433079, ISBN-13: 978-0201433074.
  3. UNIX Systems Programming: Communication, Concurrency and Threads, 2 Ed. by Kay Robbins and Steve Robbins. San Antonio, Texas, Prentice Hall ISBN-10:0130424110, ISBN-13: 978013042411
  4. Practical C Programming, Third Edition by Steve Oualline. (ISBN 1-56592-306-5) [Barnes & Noble][Amazon][OReilly]
  5. Operating Systems in Depth (T. Doeppner)
  6. Linux Kernel Development (Robert Love)
  7. The Design and Implementation of the FreeBSD Operating System (McKusick and Neville-Neil)
  8. Operating Systems Concepts (Dinosaur book)
  9. Operating System Design (D. Comer)
  10. Operating Systems: Internals and Design Principles