CMSI 387
Operating Systems
Spring 2009
- 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.
Assignments
Handouts
- 0113: Operating Systems Overview
- 0115: Operating System Structures, Operating System Interaction via bash
- 0120: I/O Redirection on the Command Line, Processes
- 0127: Main Memory, Virtual Memory
- 0129: I/O Systems
- 0203: I/O Agility at the Command Line
- 0205: File Systems: Interface, File Systems: Implementation, Unix File System Commands
- 0224: Midterm Review Sheet
- 0303: Threads
- 0305: CPU Scheduling
- 0319: Process Synchronization
- (supplementary) Concurrency Control in Databases
- 0409: Deadlocks
- 0414: Main Memory (same as on 0127)
- 0416: Virtual Memory (same as on 0127)
- 0421: File Systems: Interface, File Systems: Implementation (both the same as on 0205), ext2 File System Walkthrough
- 0428: File System Implementation Supplementary Exercise
- 0430: 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
- 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