Spring 2006
- Note
- This page is maintained as an archival record of the course shown above, and as such, some links on this page may no longer be valid nor accessible. They are kept here as a record of the resources that were available at the time of the course offering.
All materials are in PDF. Sorry, you won’t find source code or solutions here; contact me directly for those.
- Syllabus
- Assignments
- Assignments 0117 and 0124
- Assignment 0131 (update 20060124: now due 20060207 instead)
- Assignment 0207 (as mentioned in the syllabus)
- Assignment 0214
- Assignment 0314 (with sample code): tar.gz zip
- Assignment 0321
- Assignment 0328
- Assignment 0404
- Assignment 0411
- Assignment 0418
- Handouts
- 0110: Operating Systems Overview
- 0117: Operating System Structures
- 0131: Processes and Threads
- 0207: CPU Scheduling
- 0214: Midterm Review Sheet
- 0228: Process Synchronization
- 0228: (supplementary) Database handout on transactions and deadlocks
- 0314: Memory Management: Main Memory
- 0321: Memory Management: Virtual Memory
- 0328: File Systems: Interface
- 0404: File Systems: Implementation
- 0411: Mass-Storage Structure
- 0411: I/O Systems
- 0418: Security
- 0425: Final Review Sheet
Related External Links
These links take you to Web sites beyond this server. The sites are in no particular order or bias, just “as they came to mind.”
- Companion Web site for the Silberschatz/Galvin/Gagne text
- Operating system Web sites
- Linux Online home page
- The Linux Kernel Archives — home base for Linux kernel source code
- Google search for Kernel Build HOWTO documents
- Some popular Linux distributions:
- Red Hat
- Debian GNU/Linux
- Ubuntu
- And many more — don’t hesitate to scan the Web for them...
- User Mode Linux allows you to run a virtual Linux machine in a physical Linux box
- Microsoft Developer Network home page: visit the Developer Centers link for Windows operating system sites
- Mac OS X developer home page
- Apple’s Darwin/Mac OS X Kernel Programming Guide
- Technical note on threads and scheduling in Mac OS X
- Sun’s Solaris Operating System home page; its open source components are hosted by the OpenSolaris home page
- The PalmSource home page
- Process management links
- The E. W. Dijkstra Archive — Full PDF scans of Dijkstra’s work, including the seminal Cooperating Sequential Processes and Een algorithme ter voorkoming van de dodelijke omarming (An algorithm to prevent the deadly embrace [his original term for “deadlock”])
- Online version of C. A. R. Hoare’s seminal monitors paper, “Monitors: An Operating System Structuring Concept”
- Memory management links
- IA-32 Software Developer’s Manual Volume 1: Basic Architecture: This volume holds an overview of IA-32 memory management
- IA-32 Software Developer’s Manual Volume 3A: This volume holds the memory management details of the IA-32 architecture
- IBM PowerPC 970FX User’s Manual: Overview of the microprocessor, with a chapter on memory management
- Online developer documentation for Memory Management in Mac OS X
- PDF version of Mel Gorman’s Understanding the Linux Virtual Memory Manager (8.3M)
- Eric S. Raymond’s The Art of Unix Programming: a unique philosophical/cultural/technical perspective
- The Filesystem Hierarchy Standard (FHS) home page: never get lost in (FHS-compliant) Unix machines again
- The Ars Technica Operating System Reviews home page
- The LaTeX home page
- The MikTeX home page: a highly popular LaTeX implementation
- Wikipedia: A good starting point for virtually any concept lookup
- Wikipedia search for operating systems
- A link to the “classic” article on Smashing the Stack for Fun and Profit by Aleph One