CPSC 457 Principles of Operating Systems (Winter 2013)
(main course page)
: 8 January 2013 - 16 April 2013
: TR 09:30-10:45 in MS 527
: 11-11:50 MS119
: 16-16:50 MS176
Instructor Office hours
: 10:30am-11:30am Mon @ ICT 643 & by appt.
: 28 Feb (in class)
: Monday 22 April 8-10am
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
- enumerate the major roles of commodity operating systems
- understand major concepts like swapping, disk scheduling,
process scheduling, and virtual memory
- compile, configure, and install a custom operating system kernel
- design, write, and install a custom kernel module
- articulate the relationship between hardware primitives and the high-level services and facilities they support in the OS kernel and in userland
- have a conceptual and practical understanding of the ABI and
understand the mechanism by which programs are loaded and
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
ACM Code of Ethics.
ACADEMIC ACCOMMODATION POLICY: Students with documented disabilities
are referred to the following
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:
SAFEWALK: Campus Security will escort an individual day or night,
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
STUDENT UNION INFORMATION: VP Academic Phone: 220-3911, Email:
firstname.lastname@example.org. SU Faculty Rep. Phone: 220-3913. Email:
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.
An OS course is routinly held at most universities with an undergraduate
CS degree. Here are some links to other OS courses:
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.
The C Programming Language, Second Edition by
Kernighan and Ritchie.
[Amazon] (wikipedia entry)
- 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.
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
Practical C Programming, Third Edition by
Steve Oualline. (ISBN 1-56592-306-5)
[Barnes & Noble][Amazon][OReilly]
Operating Systems in Depth (T. Doeppner)
Linux Kernel Development (Robert Love)
The Design and Implementation of the FreeBSD Operating System
(McKusick and Neville-Neil)
Operating Systems Concepts (Dinosaur book)
Operating System Design (D. Comer)
Operating Systems: Internals and Design Principles