next up previous contents index
Next: 2.3 Impure Model Up: 2 Execution Environments Previous: 2.1 Introduction

2.2 Pure Model

 

The pure execution model is the most basic of the OSKit execution environments; it has the following properties:

   figure925
Figure: Illustration of the execution model used by pure components. Separate components, and separate instances of each component, are fully independent and have no implicit shared global state; therefore they can be invoked concurrently with no synchronization. However, each individual instance of a component (e.g., a particular LMM memory pool) is single-threaded and non-reentrant; the client OS must avoid concurrent calls to that instance, as well as recursive calls to the same instance through callbacks.

Figure 2.1 illustrates the pure execution environment. Since pure functions and components contain no implicit global state, separate ``instances'' or uses of these components by the client can be treated as completely independent objects: although each individual instance of the component is single-threaded and non-reentrant, the client OS can manage synchronization between independent instances of the component in any way it chooses.


next up previous contents index
Next: 2.3 Impure Model Up: 2 Execution Environments Previous: 2.1 Introduction

University of Utah Flux Research Group