Courses/Computer Science/CPSC 457.S2016/Policies

Jump to: navigation, search


Course announcements will be posted via D2L.

Topics / Syllabus

The major topic areas are threefold (in accordance with the calendar's course description)

  • performance measurement (inspection of state, history, timing, resources; measurement techniques and tools)
  • concurrency (threads, processes, critical sections, locking)
  • resource management (schemes and algorithms for scheduling and allocating time and space multiplexed resources; sharing)

The course will cover roughly these general topics, time permitting:

  • synchronization primitives; threads and concurrent execution; critical sections; locking; deadlock, livelock
  • Basic operating system designs and structures, OS history
  • IDT; interrupts; system initialization; privilege levels; segment descriptors
  • hardware support for segmentation and paging; page permissions
  • traps and interrupts; call gates
  • System calls
  • process supervision; ptrace; debugging
  • binary file format; ELF
  • Process creation, meta-data, management, and scheduling
  • Thread management from the kernel viewpoint
  • Memory hierarchy, Memory management, virtual memory, DMA; page faults, page replacement
  • Device I/O; disk scheduling algorithms
  • Files and file systems; attributes, VFS; file system case study
  • File locking
  • kernel instrumentation; kprobes; SystemTap


Due to the short nature of spring courses it is not practical to require a text book as provided by the University. However there are several good books that are worth considering to support your work in this class.

On the matter of Operating Systems, I recommend one of these two books:

  • Modern Operating Systems, 4th Edition", Tanenbaum & Bos, Pearson 2015


  • Operating Systems Concepts 9th Edition, Silberschatz, Galvin and Gagne, Wiley 2013

On the matter of the C programming language:

  • The C Programming Language, Kernighan & Richie, Prentice Hall 1988


  • C: A Reference Manual, Harbison & Steele, Prentice Hall 2002

Finally for a better understanding of how to work with the Linux Kernel

  • Linux Kernel Development, 3rd Edition by Robert Love (you may find this helpful for your HW assignments)

Midterm Exam

There is a midterm exam on June 13, 2016. It will be during class time, at 9:00 and be conducted in ICT 102.

"One sheet of notes is permitted for the exams. No text permitted. No calculator or electronic aid of any kind is permitted."

Final Exam

To be scheduled by the Registrar.

"One sheet of notes is permitted for the exams. No text permitted. No calculator or electronic aid of any kind is permitted."

It will cover the entire semester.


Your performance in this class will be assessed with the following items:

  • Programming assignments (x3) : 50% of your grade
  • Midterm: 15% of your grade
  • Final exam : 35% of your grade

Each item will be given a numerical score out of total points. The final percentage grade will be calculated by summing the total points you earn out of those available. This percentage will then be converted to a final letter grade for the University grading system. The table in the course outline will be used to convert grades from percentages to final letter grades.

Assignment Policies

Each homework assignment should be completed alone.

Each assignment has two graded components: (1) programming task and (2) written answers. Some assignments may not have a written answers component.

Late work is not accepted, barring an extraordinary personal emergency (these should be rare, and will be dealt with fairly and with common sense). You have until 14:00pm Mountain Time on the due date to submit your answers and code. It is much better to submit partially complete work than to expect or depend on an extension.

Assignments vary in difficulty.

All programs must compile (i.e, `make' succeeds with no warnings) and all kernels must boot. Assignments that don't compile and kernels that don't boot will receive a grade of zero.

You must cite all sources of information (web sites, books, articles). For example, if you found a particular implementation trick from an online article, you should give the URL and date accessed and identify the code snippet or explanation you used in formulating your answer or code. Not doing so will be considered plagiarism and your assignment will receive a grade of zero and be forwarded to the departmental process responsible for dealing with cheating and plagiarism.

Submission Process

Details to come.