CMSI 387/587
Operating Systems
Spring 2010
- 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. Contact me directly for source code or solutions.
- Syllabus
- Syllabus (graduate version)
- LaTeX paper template: LaTeX source, BibTeX source, PDF result
Assignments
- Assignment 0128
- Assignment 0204
- Process survey starter files: LaTeX source, PDF result
- Linux system call starter files: LaTeX source, PDF result
- Assignment 0216
- Assignment 0304
- Assignment 0318
- Assignment 0325
- Assignment 0413
- Assignment 0422
Handouts
- 0121: Operating Systems Overview, Operating System Structures, Operating System Interaction via bash
- 0126: I/O Redirection on the Command Line, Processes
- 0202: Main Memory, I/O Agility at the Command Line
- 0209: Unix File System Commands
- 0211: ext2 File System Walkthrough
- 0225: Midterm Review Sheet
- 0308: Threads
- 0311: CPU Scheduling
- 0318: Process Synchronization
- (supplementary) Concurrency Control in Databases
- 0406: Deadlocks
- 0413: Main Memory (same as on 0202)
- 0415: Virtual Memory
- 0420: File Systems: Interface, File Systems: Implementation
- 0427: ext2 File System Walkthrough (same as 0211), File System Implementation Supplementary Exercise
- 0429: 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
- Antoine Martin’s Virtualization Tools site consisting of UML file systems and kernel images
- 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
- The Chromium Projects site, one of which is Chromium OS, the open source version of Google’s upcoming Chrome OS
- 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
- Software Carpentry: A very handy collection of practical “tech nuggets”
- LaTeX resources
- The LaTeX home page
- The Not So Short Introduction to LaTeX 2e (2.2M PDF)
- LaTeX 2e Cheat Sheet (106K PDF)
- Annotated LaTeX Guide
- The MikTeX home page: a 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