You are on page 1of 9

Name: Onyekwelu, Augustine O.

Department: Computer Science


Degree: M.Sc
Session: 2015/2016
Course: Data Mining
Date: March 6, 2016
Assignment
Question: What is abstraction and what are the levels of abstract
What is Abstraction?
Conceptually, the term Abstraction (from the Latin abs, meaning away from and trahere,
meaning to draw) is the process of taking away or removing characteristics from
something in order to reduce it to a set of essential characteristics. To abstract means
to hide something
In computer science, abstraction is a technique for managing complexity of computer
systems. It works by establishing a level of complexity on which a person interacts with
the system, suppressing the more complex details below the current level. The
programmer works with an idealized interface (usually well defined) and can add
additional levels of functionality that would otherwise be too complex to handle. For
example, a programmer writing code that involves numerical operations may not be
interested in the way numbers are represented in the underlying hardware (e.g. whether
they're 16 bit or 32 bit integers), and where those details have been suppressed it can
be said that they were abstracted away, leaving simply numbers with which the
programmer can work.

The essence of abstractions is preserving information that is relevant in a given context,


and forgetting information that is irrelevant in that context (Guttag, John V. 2013.
Introduction to Computation and Programming Using Python (Spring 2013 ed.)).

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:

User Level: Application Programs

Level 6:

High level Languages

Level 5:

Assembly Languages

Level 4:

Operating System

Level 3:

Microprogrammed / Hardware

Control (ISA)
Level 2:

Functional Units (Memory, ALU, CU,

Level 1:

Logic Gates

Level 0:

Transistors and Wires

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.

Level 7: User Level: Application Programs:


Provides a convenient interface and applications engine that helps the user produce
results specific to a given application area. For example, Microsoft Word is used for
document creation or editing, Excel for accounting spreadsheets, etc.
This interface can take several forms. One is a command-line interface (CLI), which
uses text commands and a method for entering them (say, a keyboard for typing in
commands in a specific format with specific options). Another is a batch interface, in
which commands and directives to control those commands are entered into files, and
those files are executed. Most commonly, a graphical user interface (GUI) is used.
Here, the interface is a window system with a pointing device to direct I/O, choose from
menus, and make selections and a keyboard to enter text. Some systems provide two
or all three of these variations.

Level 6: High Level Languages:

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

Level 5: Assembly Languages:

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.

Level 4: Operating System

An operating System is a suite of programs that acts as an intermediary between the


user of a computer and the computer hardware thus providing a convenient
environment in which a user can execute programs in a convenient and efficient
manner. It manages the hardware unbehalf of the user thus abstracting (hides) the
complexity of the hardware from the user.
Operating System provides a convenient interface between assembly language and the
abstraction of the hardware architecture's instruction set. Operating systems generally
contain many libraries that help a software developer or programmer connect to lowerlevel system functions (e.g., I/O, memory allocation, etc.) in an organized way. It
abstracts the user from complex hardware details by providing some services to

programs and to the users of those programs. Thus creating a convenience


environment for the programmer by making programming task easier.
Operating System has its own level of abstraction which are captured in the diagram
below.

One set of operating system services provides functions that are helpful to the user.
i.

System Calls: They provide an interface to the services made available by an


operating system. They abstract the operating system services. They shield the
user from the complex details of the operating system services.

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.

File-system manipulation. The file system is of particular interest. Obviously,


programs need to read and write files and directories. They also need to create
and delete them by name, search for a given file, and list file information. Finally,
some operating systems include permissions management to allow or deny
access to files or directories based on file ownership. Many operating systems
provide a variety of file systems,

v.

sometimes to allow personal choice and sometimes to provide specific features


or performance characteristics.

vi.

Communications. There are many circumstances in which one process needs


to exchange information with another process. Such communication may occur
between processes that are executing on the same computer or between
processes that are executing on different computer systems tied together by a
computer network. Communications may be implemented via shared memory, in
which two or more processes read and write to a shared section of memory, or

message passing, in which packets of information in predefined formats are


moved between processes by the operating system.

vii.

Error detection. The operating system needs to be detecting and correcting


errors constantly. Errorsmay occur in the CPU and memory hardware (such as a
memory error or a power failure), in I/O devices (such as a parity error on disk, a
connection failure on a network, or lack of paper in the printer), and in the user
program (such as an arithmetic overflow, an attempt to access an illegal memory
location, or a too-great use of CPU time). For each type of error, the operating
system should take the appropriate action to ensure correct and consistent
computing. Sometimes, it has no choice but to halt the system. At other times, it
might terminate an error-causing process or return an error code to a process for
the process to detect and possibly correct.

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.

Protection and security. The owners of information stored in a multiuser or


networked computer system may want to control use of that information. When
several separate processes execute concurrently, it should not be possible for
one process to interfere with the others or with the operating system itself.
Protection involves ensuring that all access to system

Level 3: Microprogrammed / Instruction Set Architecture (ISA)


One of the most important parts of a computer is the interface between the lowest-level
software and the hardware. The ISA includes anything programmers use to make a
binary machine language program work correctly, including instructions, I/O, etc. The
ISA facilitates design of functionality independent of the hardware. Interfaces the

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.

You might also like