On designing lightweight threads for substrate software

Matthew Haines · NASA Technical Reports Server (NASA) · 1997

Existing user-level thread packages employ a "black box" design approach, where the implementation of the threads is hidden from the user. While this approach is often sufficient for application-level programmers, it hides critical design decisions that systemlevel programmers must be able to change in order to provide efficient service for high-level systems. By applying the principles of Open Implementation Analysis and Design, we construct a new user-level threads package that supports common thread abstractions and a well-defined meta-interface for altering the behavior of these abstractions. As a result, system-level programmers will have the advantages of using highlevel thread abstractions without having to sacrifice performance, flexibility, or portability. 1 Introduction Lightweight threads are useful for a variety of purposes. An application-level programmer will typically use threads to facilitate asynchronous scheduling for a number of related tasks. For example, consider...

Read the paper · More papers on PaperTik