1 / 11

CS533 Concepts of Operating Systems Class 3

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?

ivag
Download Presentation

CS533 Concepts of Operating Systems Class 3

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS533 Concepts of Operating SystemsClass 3 Integrated Task and Stack Management

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. Questions • In what ways do scheduler activations mix manual and automatic stack management models? CS533 - Concepts of Operating Systems

  9. 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

  10. 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

  11. 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

More Related