Professional Documents
Culture Documents
Computer System spans many levels of detail, which in computer science we call levels
of abstraction. Progressing from top level downward, the levels become less abstract as
more of the internal structure of the computer becomes visible.
LEVELS OF ABSTRACTION IN A COMPUTER SYSTEM
High Level
Level 7:
Level 6:
Level 5:
Assembly Languages
Level 4:
Operating System
Level 3:
Microprogrammed / Hardware
Control (ISA)
Level 2:
Level 1:
Logic Gates
Level 0:
etc.)
Low Level
Each of this level defines a well defined level of functionality and expresses greater
level of details as we move from the user level down to the transistor level. Each of this
level is discussed below from topmost level lowest level.
This level consists of programming languages used to write programs and interact with
the computer system. T The language at this level is usually a sequence of keystrokes
or a high-level scripting language. In software design, the language is a high-level
programming language such as C, C++, or Java which is very far from the binary
language of the computer but very close to natural language
Assembly is a very detailed language that helps the systems programmer or software
designer move information around in a computer architecture in a highly specific way.
For example, many compilers (programs that translate programming language into an
assembly-like language) are written in assembly language. The advantage to assembly
language is speed and power in accessing various features of the hardware.
One set of operating system services provides functions that are helpful to the user.
i.
ii.
Program execution. The system must be able to load a program into memory
and to run that program. The program must be able to end its execution, either
normally or abnormally (indicating error).
iii.
I/O operations. A running program may require I/O, which may involve a file or
an I/O device. For specific devices, special functions may be desired (such as
recording to a CD or DVD drive or blanking a display screen). For efficiency and
protection, users usually cannot control I/O devices directly. Therefore, the
operating system must provide a means to do I/O.
iv.
v.
vi.
vii.
viii.
Another set of operating system functions exists not for helping the user but
rather for ensuring the efficient operation of the system itself. Systems with
multiple users can gain efficiency by sharing the computer resources among the
users.
ix.
Resource allocation. When there are multiple users or multiple jobs running at
the same time, resourcesmust be allocated to each of them. The operating
system manages many different types of resources. Some (such as CPU cycles,
main memory, and file storage) may have special allocation code, whereas
others (such as I/O devices) may have much more general request and release
code. For instance, in determining how best to use the CPU, operating systems
have CPU-scheduling routines that take into account the speed of the CPU, the
jobs that must be executed, the number of registers available, and other factors.
There may also be routines to allocate printers, USB storage drives, and other
peripheral devices.
x.
Accounting. We want to keep track of which users use how much and what
kinds of computer resources. This record keeping may be used for accounting
(so that users can be billed) or simply for accumulating usage
xi.
statistics. Usage statistics may be a valuable tool for researchers who wish to
reconfigure the system to improve computing services.
xii.
software (listed above) to the hardware (listed below), and provides support for
programming.
Level 2: Functional Units (Memory, ALU, CU, etc)
These components support the execution of machine code instructions expressed in
terms of the ISA
Level 1: Logic Gates:
The circuitry that makes a digital computer run is called logic. All processes of a digital
computer are expressed in terms of functions of ones and zeros, for example, and, or,
and not functions.
Level 0: Transistors and Wires
This is the lowest and final level of abstraction where logic gates and registers are
implemented using transistors and wires.