Information Technology Reference
In-Depth Information
Applications
Applications
API calls
API
Libraries
Libraries
User
ISA
ABI
System calls
User
ISA
Operative system
Operative system
ISA
ISA
Hardware
Hardware
FIGURE 15.1
Layering and interfaces between layers of a computer system.
for the hardware is expressed in terms of the Instruction Set Architecture
(ISA), which defines the instruction set for the processor, registers, memory,
and interrupts management. ISA is the interface between hardware and
software, and it is important to the operating system (OS) developer (sys-
tem ISA) and developers of applications that directly manage the underly-
ing hardware (user ISA).
The API defines the set of instructions the hardware was designed to
execute and gives the application access to the ISA. It includes high-level
languages (HLL) library calls, which often invoke system calls. A process
is the abstraction for the code of an application at execution time; a thread
is a lightweight process. The API is the projection of the system from the
perspective of the HLL program and the ABI is the projection of the com-
puter system seen by the process. Consequently, the binaries created by a
compiler for a specific ISA and a specific operating system are not portable.
Such code cannot run on a computer with a different ISA or on computers
with the same ISA but different operating systems. However, it is possible
to compile an HLL program for a VM environment, where portable code
is produced and distributed and then converted dynamically by binary
translators to the ISA of the host system. A dynamic binary translation
converts blocks of guest instructions from the portable code to the host
instruction and leads to a significant performance improvement as such
blocks are cached and reused.
For any operation to be performed in the application level API, ABI and ISA
are responsible for making it happen. The high-level abstraction is converted
into machine-level instructions to perform the actual operations supported
by the processor. The machine-level resources, such as processor regis-
ters and main memory capacities, are used to perform the operation at the
hardware level of the central processing unit (CPU). This layered approach
simplifies the development and implementation of computing systems
 
Search WWH ::




Custom Search