110 likes | 118 Views
CS533 Concepts of Operating Systems Class 3. Integrated Task and Stack Management. Questions. What do these terms mean? process, thread, kernel-level thread, user-level thread, fiber? user-level thread stack, user stack, kernel stack? Address space?
E N D
CS533 Concepts of Operating SystemsClass 3 Integrated Task and Stack Management
Questions • What do these terms mean? • process, thread, kernel-level thread, user-level thread, fiber? • user-level thread stack, user stack, kernel stack? • Address space? • In what way are user-level threads “faster” than kernel-level threads? • Aren’t we just layering abstractions on abstractions? CS533 - Concepts of Operating Systems
Questions • How are synchronization operations such as spin-locks and semaphores implemented, i.e., how do you spin and how do you block? • For user level threads? • For kernel level threads? • Why can’t you do preemptive user-level thread scheduling without special kernel (or language runtime) support? CS533 - Concepts of Operating Systems
Questions • How might a user-level thread library support synchronous I/O calls for its threads without losing control of the CPU due to blocking? • Does this constitute stack ripping? • Why can’t you handle page-faults this way? • Why are preemptions of kernel threads a problem for user level thread libraries? CS533 - Concepts of Operating Systems
Questions • What stack management model do most OS kernels export? • How are I/O and page faults events handled? • What differences are there between virtual CPUs (threads) and real CPUs (hardware)? • How are I/O and page fault events handled by code on a real CPU vs on a virtual CPU? • What similarities do kernel-provided scheduler activations have to hardware-provided interrupts? CS533 - Concepts of Operating Systems
Questions • What synchronization-related issues do you have to worry about when writing an interrupt handler? • Do these occur with scheduler activation handlers? • Why must the user-level thread library be reentrant? • How is its pattern of entry points and synchronization concerns similar to or different from kernel-level scheduler code? • With scheduler activations and without scheduler activations CS533 - Concepts of Operating Systems
Questions • Why does the kernel delay delivery of a second page-fault SA until the first page-fault SA on the same address has completed? • Why might a user level thread scheduler choose to delay context switching a user level thread that is holding a spin lock? • How can it do this in the presence of kernel preemption and notification via scheduler activations? CS533 - Concepts of Operating Systems
Questions • In what ways do scheduler activations mix manual and automatic stack management models? CS533 - Concepts of Operating Systems
Duality • What really happens underneath the abstraction? • For synchronous procedure calling and message passing • For asynchronous procedure calling and message passing • Fundamental tasks: • execute new instruction stream • exchange data • What is the cost of pushing state onto the stack and popping it off, vs the cost of allocating copying then freeing message memory? CS533 - Concepts of Operating Systems
Optimizations Discussed in Future Classes • How could you optimize context switch costs for local message passing? • How could you optimize data movement costs for local message passing? • What conventions would you need to follow to avoid needing synchronization? • How does this approach compare to local state management in procedure calling? • How might you further optimize pointer passing? • … and what does this remind you of? Hint: SP. CS533 - Concepts of Operating Systems
Duality • Is threading just an automated “pattern” of context switch and data exchange that is done manually in event models? • Do the two models have equal memory consumption? • Is over-allocation of memory inevitable in thread-based systems? • If not, how can you avoid it … and at what cost? CS533 - Concepts of Operating Systems