Énekel: Kiss Estilla és Eckhardt Fanni Zongorán játszik : Eckhardt Gábor
1 Review Dave Eckhardt [email protected]. 1 Synchronization ● Exam will be closed-book ● Who...
-
Upload
camilla-brown -
Category
Documents
-
view
216 -
download
0
Transcript of 1 Review Dave Eckhardt [email protected]. 1 Synchronization ● Exam will be closed-book ● Who...
![Page 2: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/2.jpg)
1
Synchronization
● Exam will be closed-book● Who is reading comp.risks?● Some homework questions on .qa bboard● About today's review
– Mentioning key concepts– No promise of exhaustive coverage– Reading some of the textbook is advisable
![Page 3: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/3.jpg)
1
OS Overview
● Abstraction/obstruction layer● Virtualization● Protected sharing/controlled interference
![Page 4: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/4.jpg)
1
Hardware
● Inside the box – bridges● User registers and other registers● Fairy tales about system calls● Kinds of memory, system-wide picture
– User vs. kernel– Code, data, stack– Per-process kernel stack
● Device driver, interrupt vector, masking interrupts
![Page 5: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/5.jpg)
1
Hardware
● DMA● System clock
– “Time of day” clock (aka “calendar”)– Countdown timer
![Page 6: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/6.jpg)
1
Memory hierarchy
● Users want– big, fast– cheap– compact, cold– non-volatile
● Use locality of reference● To build a pyramid of deception
![Page 7: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/7.jpg)
1
Memory hierarchy
● Small, fast memory– backed by large slow memory– indexed according to large memory's address space– containing most-popular parts
● Line size, CAM● Placement, associativity● Miss policy/Eviction, LRU/Random, write policy● TLB
![Page 8: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/8.jpg)
1
Process
● Pseudo-machine (registers, memory, I/O)● Life cycle: fork()/exec()
– specifying memory, registers, I/O, kernel state– the non-magic of stack setup (argv[])– the non-magic function that calls main()
● States: running, runnable, sleeping– also forking, zombie
● Process cleanup: why, what
![Page 9: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/9.jpg)
1
Thread
● Core concept: schedulable set of registers– With access to some resources (“task”, in Mach
terminology)– Thread stack
● Why threads?– Cheap context switch– Cheap access to shared resources– Responsiveness– Multiprocessors
![Page 10: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/10.jpg)
1
Thread types
● Internal– optional library– register save/restore (incl. stack swap)
● Features– only one outstanding system call– “cooperative” scheduling might not be– no win on multiprocessors
![Page 11: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/11.jpg)
1
Thread types
● Kernel threads– resources (memory, ...) shared & reference-counted– kernel manages: registers, kstack, scheduling
● Features– good on multiprocessors– may be “heavyweight”
![Page 12: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/12.jpg)
1
Thread types
● M:N– M user threads share N kernel threads
● dedicated or shared
● Features– Best of both worlds– Or maybe worst of both worlds
![Page 13: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/13.jpg)
1
Thread cancellation
● Asynchronous/immediate– Don't try this at home– How to garbage collect???
● Deferred– Requires checking or cancellation points
![Page 14: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/14.jpg)
1
Thread-specific data
● printf(“Client machine is %s\n”, thread_var(0));● reserved register or stack trick
![Page 15: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/15.jpg)
1
Race conditions
● The setuid shell script attack
![Page 16: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/16.jpg)
1
Wacky memory
● Stores may be re-ordered or coalesced● That's not a bug, it's a feature!
![Page 17: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/17.jpg)
1
Atomic sequences
● short● require non-interference● typically nobody is interfering● store->cash += 50;● “mutex” / “latch”
![Page 18: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/18.jpg)
1
Voluntary de-scheduling
● “Are we there yet?”● We want somebody else to have our CPU● Not running is an OS service!● Atomic:
– release state-guarding mutex– go to sleep
● “condition variable”
![Page 19: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/19.jpg)
1
Critical section problem
● Three goals– Mutual exclusion– Progress – choosing time must be bounded– Bounded waiting – choosing cannot be unboundedly
unfair
● “Slide 15” algorithm● Bakery algorithm
![Page 20: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/20.jpg)
1
Mutex implementation
● XCHG, Test&Set● Load-linked, store-conditional● i860 magic lock bit● Lamport's algorithm● “Passing the buck” to the OS (or not!)● Kernel-assisted instruction sequences
![Page 21: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/21.jpg)
1
Bounded waiting
● One algorithm● How critical?
![Page 22: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/22.jpg)
1
Environment matters
● Spin-wait on a uniprocessor????● How reasonable is your scheduler?
– Maybe bounded waiting is free?
![Page 23: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/23.jpg)
1
Condition variables
● Why we want them● How to use them● What's inside?● The “atomic sleep” problem
![Page 24: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/24.jpg)
1
Semaphores
● Concept– Thread-safe integer– wait()/P()– signal()/V()
● Use– Can be mutexes or condition variables
● 42 flavors– Binary, non-blocking, counting/recursive
![Page 25: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/25.jpg)
1
Monitor
● Concept– Collection of procedures– Block of shared state– Compiler-provided synchronization code
● Condition variables (again)
![Page 26: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/26.jpg)
1
Deadlock
● Definition– N processes– Everybody waiting for somebody else
● Four requirements● Process/Resource graphs● Dining Philosophers example
![Page 27: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/27.jpg)
1
Prevention
● Four Ways To Forgiveness● One of them is actually common
![Page 28: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/28.jpg)
1
Avoidance
● Keep system in “safe” states– States with an “exit strategy”
● Assume some process will complete, release resources● Make sure this enables another to finish● Banker's Algorithm
![Page 29: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/29.jpg)
1
Detection
● Don't be paranoid (or oblivious)● Scan for cycles
– When?– What to do when you find one?
![Page 30: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/30.jpg)
1
Starvation
● Always a danger● Solutions probably application-specific
![Page 31: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/31.jpg)
1
Context switch
● yield() by hand (user-space threads)– No magic!
● yield() in the kernel– Built on the magic process_switch()– Inside the non-magic process_switch()
● Scheduling● Saving● Restoring
● Clock interrupts, I/O completion
![Page 32: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/32.jpg)
1
Scheduling
● CPU-burst behavior– “Exponential” fall-off in burst length– CPU-bound vs. I/O-bound
● Preemptive scheduling– Clock, I/O completion
● Scheduler vs. “Dispatcher”● Scheduling criteria
![Page 33: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/33.jpg)
1
Scheduling – Algorithms
● FCFS, SJF, Priority● Round-robin● Multi-level● Multi-processor (AMP, SMP)● Real-time (hard, soft)● The Mars Pathfinder story
– priority-inheritance locks
![Page 34: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/34.jpg)
1
Memory Management
● Where addresses come from– Program counter– Stack pointer– Random registers
● Image file vs. Memory image● What a link editor does
– relocation
● Logical vs. physical addresses
![Page 35: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/35.jpg)
1
Swapping / Contiguous Allocation
● Swapping– Stun a process, write it out to disk– Memory can be used by another process
● Contiguous allocation– Need a big-enough place to swap in to– External fragmentation (vs. internal)
![Page 36: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/36.jpg)
1
Paging
● Fine-grained map from virtual to physical– Page address -> frame address
● Page table per process– Per-page bits: valid, permissions, dirty, referenced– Fancy data structures
● Multi-level page table● Inverted page table● Hashed/clustered page table
![Page 37: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/37.jpg)
1
Segmentation
● Concept– Hardware expression of “memory region”– Protection boundary, sharing boundary
● Typically combined with paging– The beautiful complex x86
![Page 38: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/38.jpg)
1
Less is more
● Software-managed TLB– Choose your own page table structure– “Explain” it via TLB miss faults
![Page 39: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/39.jpg)
1
Virtual Memory
● Observations– Some stuff is “never” needed in memory– Some stuff isn't needed in memory to start– Some stuff is sometimes needed in memory
● Approach– RAM is just a cache of system memory– Page-valid bits record swapping out of pages– Page-fault handler fixes everything up
![Page 40: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/40.jpg)
1
Page-fault handling
● Map address to region● Deduce semantic reason for fault● Special techniques
– COW– Zero pages– Memory-mapped files
![Page 41: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/41.jpg)
1
Paging
● Page replacement policy– FIFO, optimal, LRU– Reality: LRU approximations
● Clock algorithm
● Backing store policy● Page buffering● Reclaim faults
![Page 42: 1 Review Dave Eckhardt de0u@andrew.cmu.edu. 1 Synchronization ● Exam will be closed-book ● Who is reading comp.risks? ● Some homework questions on.qa.](https://reader036.fdocuments.net/reader036/viewer/2022062515/56649f3e5503460f94c5edf9/html5/thumbnails/42.jpg)
1
Paging
● Frame allocation policy– Equal/proportional/...
● Thrashing– Just not enough pages– Working-set model– Fault-frequency model
● Reducing paging– Simple program optimizations