Upload
stuart-thompson
View
212
Download
0
Embed Size (px)
Citation preview
Cpr E 308 Spring 2004
Recap for Midterm
Introductory Material
• What belongs in the OS, what doesn’t?
• Basic Understanding of Hardware, Memory Hierarchy
Cpr E 308 Spring 2004
Process
• What’s a process?– Unix Process Creation
– Shell Assignment (fork and exec)
• Address Space– Stack, heap, data and text regions
• What data items go where?
– What do fork() and exec() do to the address space
Cpr E 308 Spring 2004
System Calls
• How are they handled?– How are they different from regular function calls?
– Changing from user to supervisor mode and back
• Some important system calls (including wait())
Cpr E 308 Spring 2004
Multiprogramming
• What is it?
• Process Context Switch
• How are interrupts involved?
Cpr E 308 Spring 2004
Threads
• When are they useful?
• Difference from processes
• Basic thread operations – creation, joining, exiting, etc
• Thread Implementations – User and Kernel Threads
Cpr E 308 Spring 2004
Mutual Exclusion and Synchronization
• What’s the problem with writing to shared variables simultaneously?
• What are critical sections, atomicity?
• Mutual Exclusion Problem – Clear definition
Cpr E 308 Spring 2004
Mutex Solutions
• Software Solutions– Peterson’s solution
• Hardware Support– TSL instruction
• Disabling Interrupts– Advantages and disadvantages– Doesn’t work for multiprocessors – why?
Cpr E 308 Spring 2004
Beyond Mutexes
• Condition Variables and Mutexes– Example programs using condition variables
• Semaphores (not in detail)
• Example Problems:– Producer and Consumer – Readers and Writers – Dining Philosophers – Deadlocks
Cpr E 308 Spring 2004
Deadlocks
• Conditions for a deadlock
• Detection Algorithm
• Deadlock Prevention