Spring 2012
- 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.
Assignments
- Assignment 0202: 1c, 1e, 1f, 1g, 2a, 2b, 2c, 2d, 2f, 4e, 4f
- Assignment 0207: 1a, 1b, 3a, 3b, 3c
- Assignment 0308: 1a, 1b, 2e,
3a, 3b, 3c, 4a, 4b, 4c, 4d, 4e, 4f
- For your test program, the system call sample code may be of assistance.
- Assignment 0320: 1c, 2e, 3c,
3d, 4a, 4b, 4c, 4d, 4e, 4f
- The one-time
fork
-then-exec
sample code may be used as a starting point for this one.
- The one-time
- Assignment 0405: 1c, 1d, 3e,
4a, 4b, 4c, 4d, 4e, 4f
- The bounded buffer sample code may be used as a starting point for this one.
- Assignment 0424a: 1e, 3f, 4a,
4b, 4c, 4d, 4e, 4f
- Starter files for address translation:
addressTranslation.h
,addressTranslation.c
,addressTranslationTest.c
- Starter files for page replacement:
pageReplacement.h
,pageReplacement.c
,pageReplacementTest.c
- Starter files for address translation:
- Assignment 0424b: 1f, 1g, 2e, 2g, 4d, 4e, 4f
Handouts
- 0112: Operating System Interaction via
bash
- 0124: I/O Redirection on the Command Line
- 0131: I/O Agility at the Command Line
- 0207: Unix File System Commands
- 0207: Operating Systems Overview, Operating System Structures
- 0216: System call invocation sample code
- 0223: Processes
- 0308: Threads
- 0313: CPU Scheduling
- 0315: Process Synchronization
- 0329: Deadlocks
- 0403: Main Memory
- 0410: Virtual Memory
- 0419: File Systems: Interface, File Systems: Implementation,
ext2
File System Walkthrough
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:
- Debian GNU/Linux
- Ubuntu
- Red Hat
- And many more — don’t hesitate to scan the Web for them...
- Some prominent Linux derivatives by Google:
- You might have heard of this one (and are likely using it, too): Android
- Chromium OS, the open source version of Google’s Chrome OS
- Virtual machines:
- VirtualBox: Free, open source, functional
- 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 and iOS developer
home pages
- Apple’s Darwin/Mac OS X Kernel Programming Guide
- 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
- Intel 64 and IA-32 Architectures Software Developer’s Manual Volume 1: Basic Architecture: This volume holds an overview of Intel memory management
- Intel 64 and IA-32 Architectures Software Developer’s Manual Volume 3A: System Programming Guide, Part 1: This volume holds the memory management details of the Intel architecture
- 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) Linux machines again
- The Ars Technica operating system reviews don’t pull any technological punches
- Software Carpentry: A very handy collection of practical “tech nuggets”
- 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