CPSC 457 Principles of Operating Systems (Winter 2012)

Professor Michael E. Locasto [last update: 25 Feb 2012]

Course Information

Wiki: CPSC457.W2012 (main course page)
Class dates: 10 Jan 2012 - 12 April 2012
Class time: TR 09:30-10:45
Tutorial 1: TR 11:00-11:50
Tutorial 2: TR 16:00-16:50
Instructor Office hours: 3pm-4pm TR @ ICT 643
Midterm exam: 1 March
Final Exam: 19 April (12:00-14:00)
Classroom: EDC 57
Discussion: piazza.com/ucalgary.ca/winter2012/cpsc457

The Piazza site is for discussion and help; both the TAs and the professor will monitor this site and respond to queries (no time guarantees, though). We encourage students to share their understanding with other students via this site.

Introduction

This course is an undergraduate-level introduction to computer operating systems. It covers modern operating system implementation on commodity hardware with a curiosity-driven cross-layer approach. The course will focus heavily on the Linux operating system to ground the discussion and material. When successfully finishing the course, a student should be able to:
  1. understand the principles and tradeoffs expressed by such implementations
  2. enumerate the major roles of commodity operating systems
  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 and at the user level
  6. understand the mechanism by which user level programs are loaded and interpreted
  7. understand major concepts like swapping, disk scheduling, process scheduling, virtual memory, and device access / programming
  8. have a conceptual and practical understanding of the ABI

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 mail concerning the course, please use the Piazza site. Questions on lectures and assignments sent directly to my ucalgary address 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).

Cheating and plagiarism are absolutely forbidden. I assume that you have read U of C's policies on academic honesty. This is the Faculty of Science boilerplate text on this topic: "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: 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 Disability Resource Center. Please talk with me to discuss 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, http://ucalgary.ca/security/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