PKU OS course project and notes based on Nachos and XV6.
- Nachos - An immature OS that we can try to add wings on it.
- XV6 - A much more functional OS that we can absorb its essence by tracing code.
Lab | Subject | Detail |
---|---|---|
Lab 0 | Build Nachos | Setup 32bit cross compile dev. env. |
Lab 1 | Thread Mechanism | Multi-thread management |
Lab 2 | Thread Scheduling | CPU scheduling |
Lab 3 | Synchronization Mechanism | Concurrency, mutex lock and semaphore |
Lab 4 | Virtual Memory | TLB, demand paging, replacement algorithm and user program |
Lab 5 | File System | Improve current file system |
Lab 6 | System Call | Implement all system calls |
- Process and Thread (with Scheduling)
- Synchronization Mechanism
- Interrupt and System Call
- Memory Management
- File System
- Nachos
- Debugging Nachos
- MIPS Architecture
- MIPS Introduction
- MIPS Assembly
- MIPS Register
- XV6
- Trace Code
- Process
- Thread
- CPU Scheduling (Algorithm)
- Executing Environment
- Interrupt/Exception/Trap
- Timer Interrupt
- System Call
- Interrupt/Exception/Trap
- Memory Management
- Page Replacement Algorithm
- Synchronization
- Deadlock
- File System
Algorithm
- Scheduling Algorithm
- Process/Thread CPU Scheduling
- Disk Scheduling
- Replacement Algorithm
- Page Replacement
- TLB Replacement
- Cache Replacement
- Other Algorithm
- Deadlock
- Deadlock prevention
- Deadlock avoidance
- Deadlock discover and recover
- Deadlock
- Solutions
- Concurrency
- Semaphore
- Dekker Solution
- Peterson Solution
- Semaphore
- Deadlock
- Banker's Algorithm
- Concurrency
Data Structure
- Free Space Management (for Memory or Disk)
- Bitmap (Bit vector)
- Free Table
- Free Linked List
- Concurrency
- Semaphore
- Monitor
- Hoare Monitor
- Mesa Monitor
- Mutex Lock + Condition Variable
Hardware
- TLB vs. Cache
- Modern Operating System 4ed.
- Operating System Concepts 9ed.
- Advanced Programming in the UNIX Environment 3ed.
- Computer Systems: A Programmer's Perspective 3ed.
- PKU Operating System Principle
- CMU Introduction to Computer Systems (ICS)