Design of Operating Systems
General Material
- Syllabus (NEW August 12 2022)
- Ubiquitous Presenter Lecture Notes
- Ubiquitous Presenter Interactive Tutorial
- Piazza Discussion Board
- Virtual Box Software for Windows
- Operating Systems Virtual Machine
- Operating Systems Virtual Machine (On campus link)
- Research Paper Assignment (NEW August 12 2022)
Exam Information
- Midterm Exam Review Sheet (NEW August 12 2022)
- Final Exam Review Sheet (NEW August 12 2022)
Lectures
- Course Introduction (NEW August 12 2022)
- Review of C and the GCC Compiler Chain (NEW August 12 2022)
- hello.c
- respond.c
- respond.h
- makefile (NEW August 12 2022)
- An Introduction to Operating Systems (NEW August 12 2022)
- Operating Systems Structures (NEW August 12 2022)
- File IO Demo (NEW August 12 2022)
- Malloc Demo (NEW August 12 2022)
- Operating Systems Structures and Virtual Machines (NEW August 12 2022)
- Processes
- Process Operations
- fork demo (NEW August 12 2022)
- fork_exec.c demo (NEW August 12 2022)
- kill demo (NEW August 12 2022)
- Communicating Between Processes
- pipeexample.c (NEW August 12 2022)
- sharedMemory.c (NEW August 12 2022)
- Communicating Between Processes Continued
- Socket client.c (NEW August 12 2022)
- Socket Server.c (NEW August 12 2022)
- rpc example rpc.zip (NEW August 12 2022)
- Threads
- Java Thread Example 1 (NEW August 12 2022)
- Java Thread Example 2 (NEW August 12 2022)
- POSIX C Thread Example 1 (NEW August 12 2022)
- POSIX C Thread Example 2 (NEW August 12 2022)
- ATMEGA32 Example Operating System
- Complete OS Project (NEW August 12 2022)
- Threading Challenges
- CPU Scheduling
- Process Synchronization
- Semaphores, Monitors, and Condition Variables
- Erronious Code Example: threadad.c (NEW August 12 2022)
- Working add (NEW August 12 2022)
- Semaphore code example
- Mutex Example Code (NEW August 12 2022)
- makefile (NEW August 12 2022)
- Exam Review / Catchup
- Midterm Exam
- Deadlocks
- Deadlocks Continued
- Memory Management
- Virtual Memory
- Thrashing
- File Systems Interface 1
- File Systems Interface 2
- File System Implementation
- I/O Systems
- Protection
- Security
- Review for final exam
Labs
- Lab 1: Getting used to Linux (NEW August 12 2022)
- Debugging with gdb (A basic tutorial)
- Debugging with gdb (A second tutorial)
- Developing with Emacs
- lab1BrokenCode.tar.gz (NEW August 12 2022)
- Lab 1 submission page
- Lab 2: A Linked List in C (NEW August 12 2022)
- lab2SuppliedMaterial.tar.gz (NEW August 12 2022)
- Lab 2 Demo Video
- Lab 2 submission page
- Lab 3: A UNIX Word Counter - Part 1 (NEW August 12 2022)
- Gettysburg Address (NEW August 12 2022)
- War and Peace
- Lab 3 Demo Video
- Lab 3 submission page
- Lab 4: A UNIX Word Counter - Part 2 (NEW August 12 2022)
- The War of the Worlds (NEW August 12 2022)
- The War in the Air (NEW August 12 2022)
- The Time Machine (NEW August 12 2022)
- The Island of Dr. Moreau (NEW August 12 2022)
- The Invisible Man (NEW August 12 2022)
- Lab 4 Demo Video
- Lab 4 submission page
- Lab 5: Lets Chat: A lab where two partners can talk to each other. (NEW August 12 2022)
- Lab 6: A Dynamic Memory Manager. (NEW August 12 2022)
- Memory Allocator Supplied Code (NEW August 12 2022)
- Lab 6 submission page
Videos
- Installing and starting your Virtual Box Virtual machine
- Installing Guest Additions to your Virtual Box Virtual Machine (Needed for file sharing with Windows)
- Developing with Emacs
- Debugging with gdb (A basic tutorial)
- Debugging with gdb (A second tutorial)