6. Execution Platform Components
This section describes the four categories of execution platform components: processor, device, memory and bus.
Processors can execute threads.  Processors can contain memory subcomponents. Processors and devices can access memories over buses.
Memories represent randomly addressable storage capable of storing binary images in the form of data and code. Memories can be accessed by executing threads. 
Buses provide access between processors, devices, and memories.  A bus provides the resources necessary to perform exchanges of control and data as specified by connections.  A connection may be bound to a sequence of buses and intermediate processors and devices in a manner that is analogous to the binding of threads to processors.
Devices represent entities that interface with the external environment of an application system and may  have complex behaviors. A device can interact with application software components through their port and subprogram features.  A device may achieve its functionality through device internal software or may require device driver software to be executed by a processor.  Binary images or threads cannot be bound to devices.
Processors may contain software subcomponents, where the associated source text and data in the form of binary images will be bound to memories accessible from that processor.  These software components implement the capability of the processor to schedule and execute threads bound to that processor. 
Execution platform components can be assembled into execution platform systems, i.e., into systems of execution platform components to model complex physical computing hardware components and software/hardware computing systems, through the use of system components (see Section 7.1). The execution platform systems and their components may denote physical computing hardware for example, memory to represent a hard disk or RAM.  Execution platform systems may also model abstracted storage, for example, a device or memory to represent a database, depending on the purpose of the modeler.
The hardware represented by the execution platform components may be modeled by a hardware description or simulation language.  Alternatively, they may be represented using configuration data for programmable logic devices. Or a simulation may be used to characterize the components. Such descriptions are also viewed as associated source text.
Execution platform components can be used to model a layered system architecture.  Processors, buses, memory, and devices may represent abstractions of a virtual machine layer.  Those abstractions can be modeled as systems in terms of software components and of execution platform components of the next virtual machine layer; eventually a system architecture layer representing physical hardware.  The mapping between different layers of a multi-layer architecture may be represented by an appropriate property for each of the execution platform categories.  For example, a Maps_To property may be defined to specify the mapping of an execution platform component classifier to a system classifier that represents the implementation of the abstraction in the virtual machine layer.