ly fits the blocks of the waveform, which are relatively simple; the concept of hardware. Thus, the device controllers all complexity in component development arrives in the inherit from the Resource base class. There are four implementation of the actual component functionality. device controllers: Device, LoadableDevice, Executa- When developing or acquiring a framework, the bulk of bleDevice, and AggregateDevice. Each of these classes is the complexity is in the framework control classes. These intended to support hardware with increasingly complex classes are involved in the management of system hard- needs. ware, systemwide and hardware-specific storage, and The most fundamental hardware is the hardware that deployed waveforms. From a high level, the framework performs some hardwired functionality and that may or control classes provide all the functionality that one may not be configurable. Such hardware has some in- would expect from an os other than thread and process herent capacities that may be allocated for specific use. scheduling. An example of such a piece of hardware is an ADC. The From Figure 2.4a-4, the framework control classes can ADC is not programmable, but it is conceivable for an be partitioned into three basic pieces: hardware control, ADC to be tunable, meaning the developer may set the sampling rate or number of quantization bits. In such a case, the available capacity of this tunable hardware depends on whether it is being used for data acquisition of a particular signal or over a particular band. To this end, Programmable HW the only two functions that the Device class includes are allocateCapacity and .eallocateCapacity. Beyond the simple ability to allocate and deallocate capacities, a particular piece of hardware may have the ability to load and unload binary images. These images Framework are not necessarily executable code, but they are images that configure a particular piece of hardware. For exam- ple, an FPGA, once loaded with a bit image, is configured Controller as a circuit