Review for the Final
Chapter 2
Chapter 4 (not anything past 4.3)
- What is a process
- Different from thread
- Different from executable
- Process queues
- Running
- Ready
- New
- Exit
- Wait
- Ways to make a new process
Chapter 5 (very light past 5.4)
- Threads -- definition of
- User level threads vs Kernel level threads (a bit, what a reading
would tell you)
- How to program threads using the pthread library
- pthread_creat()
- pthread_join
- locking
Chapter 6
- CPU Burst -- definition
- Prememptive scheduling
- Aging
- Criteria
- CPU Utilization
- Throughput
- Wait time
- Starvation
- Fairness
- Algortihms
- FCFS
- Shortest Job Next
- Round Robin
- Priority
- Multi-level feedback queues (yes, really)
- Real Time
- Priority Inversion -- the definition and the solution
- Which process goes next
- Most important????
- Soonest deadline???
- Soft vs Hard real time
Chapter 7 and 8 (Weak between 7.6 - 8.0)
- Software algorithm from 7.2.2
- How does it work
- When to use it
- Hardware
- Deadlock
- Definition
- Avoid by ordering resources
- Avoid by using two phases
- Avoid by drawing the wait-for graph
- Avoid by timeouts
Chapter 9 and 10 (starting at 9.2, light after 10.7)
- Definition of swapping
- Segments
- Hardware needed
- External fragmentation
- Chosing a spot
- First fit
- Best fit
- Worst fit
- Paging
- Hardware needed
- Page Tables
- Protection
- Computing the size
- Multi-level page tables
- Internal fragmentation
- Replacement algorithms
- One and two handed clocks
File systems (Chapter 11 and 12)
- EXT2
- Inodes
- Direct and indirect blocks
- groups
- hard links
- VFAT
- VFAT organization
- File names and long file names
- NFS and Samba
- Caching
- Hit rates
- How it interacts with the paging stuff
- Cache files or cache blocks or both or neither
Disk I/O (Chapter 14)
- Disk scheduling algorithms
- FCFS
- Elevator
- Cyclic elevator
- Shortest seek next
- The Linux algorithms
- RAID (expecialy levels 0, 1, 5)
- What to do for error
- What to do when a new disk is inserted
- Speed
- Small reads
- small writes
- large reads
- large writes
- Capacity
- Sledge hammer factor
Device Drivers
- Interrupts
- Maskable
- Types
- Caused by I/O
- Caused by processor exception
- Caused by software
- Polling
- DMA
- Who can
- Who should
- Interaction with paging subsystem
Microkernels
- Advantages
- Flexible
- Subsystem crashes don't kill everything
- Disadvantages