CS 416 Documents

O you possessed of sturdy intellects, observe the teaching that is hidden here beneath the veil of verses so obscure.
         — Dante Alighieri, Inferno IX:61-63, trans. A. Mandelbaum

This page contains links to lecture note, in-class lecture slides, and related reading material. Lecture slides are in Adobe PDF format. You probably have something that reads pdf files already. If you don't have a pdf reader for your platform, you can get one for free for Windows, Mac OS, iOS, Android, or Windows Phone. You don't need one for the Mac since Preview can render pdf files. You also don't need one for the iPhone or iPad. If you're using an Android platform and don't have a pdf viewer installed, you can download the Google PDF Viewer, Adobe Acrobat, or any of dozens of other viewers.

Please let me know if you find any errors or unclear wording. Any corrections will be most appreciated.

Lecture notes

Week Title
Week 1. A history of computing and operating systems: lecture notes
  Intro lecture slides (6 per page)
  How operating systems boot: lecture notes
  Booting: lecture slides (6 per page)
Week 2. Concepts of Operating Systems: lecture notes
  Concepts lecture slides (6 per page)
  Processes: lecture notes
  Processes: lecture slides (6 per page)
  Threads: lecture notes
  Threads: lecture slides (6 per page)
Week 3. Synchronization: lecture notes
  Synchronization lecture slides (6 per page)
Week 4. Scheduling: lecture notes
  Scheduling: lecture slides (6 per page)
  Real-time scheduling: lecture notes
  Real-time scheduling: lecture slides (6 per page)
Week 5 Exam 1: study guide
Week 5. Memory management: lecture notes
  Memory management lecture slides (6 per page)
Week 6. Paging: lecture notes
  Paging: lecture slides (6 per page)
  Kernel memory: lecture slides (6 per page)
Week 7. Device drivers: lecture notes
  Devices: lecture slides (6 per page)
Week 9. File systems: lecture notes
  File systems: lecture slides (6 per page)
  File system design case studies: lecture notes
  File system design: lecture slides (6 per page)
Week 10 Exam 2: study guide
Week 10 File systems for flash memory: lecture notes
Week 10 Special file systems and devices: lecture notes
  Special file systems and devices: lecture slides (6 per page)
Week 11 Client-server networking: lecture notes
  Client-server networking: lecture slides (6 per page)
Week 11 Sockets: lecture notes
  Sockets: lecture slides (6 per page)
Week 12 Remote Procedure Calls: lecture notes
  Remote Procedure Calls: lecture slides (6 per page)
Week 12 Network file systems: lecture notes
  Network file systems: lecture slides (6 per page)
Week 12 Protection: lecture slides (6 per page)
Week 12 Protection: lecture notes
Week 12r Cryptography: lecture slides (6 per page)
Week 13 Authentication: lecture slides (6 per page)
  Security: lecture slides (6 per page)
Week 14 Exam 3: study guide (including virtualization)
Week 14 Virtualization: lecture slides (6 per page)
Week 15 2015 Exam 3 review (6 per page)
Week 15 Windowing: lecture slides (6 per page)
Week 15 Power management: lecture slides (6 per page)

Recitation notes

Title
System calls (6 per page)
Pre-exam 1 review (6 per page)
Pre-exam 2 review (6 per page)
Pre-exam 3 review (6 per page)

Study guides

Title
Exam 1 study guide
Exam 2 study guide
Exam 3 study guide

Supplemental notes

Title
Linux kernel coding style, Linux Kernel Documentation
Notes on Programming in C, Rob Pike:
This discusses style and is somewhat applicable to java programmers as well — food for thought more than concrete rules.
C Programming Style, Paul Krzyzanowski