Computer AbstractionsAs computer scientists we routinely use abstractions to help reduce the complexity of large problems. Abstraction can also be used to describe the modern computer as a hierarchy of levels in which each level has a specific function. Each level carries out its own particular set of instructions using the lower levels when necessary. Thus, the abstraction hides the lower-level implementation details. The figure below illustrates the common layers representing the modern computer system: The user level is the level at which most people work with a computer. It is comprised of general purpose user applications like Word, Wing, Firefox. User applications are written in high-level languages. The high-level language level is the level at which most computer programmers work. It consists of machine independent languages such as C, C++, Java, Python, FORTRAN, Scheme, and etc. These languages must be translated to a language the machine can understand. Compiled languages are translated into assembly language and then assembled into machine code.
The assembly language level encompasses the machine dependent assembly language for the given processor. Assembly language is directly translated into machine code, typically on a one-to-one basis. That is, one assembly language instruction corresponds to a single machine code instruction. The system software level deals with system calls provided through the operating system (OS) and system libraries. This level is responsible for all operations that must be coordinated through a privileged user (the OS), which can not be performed directly by a user program. User programs must make system calls to through the OS in order to perform a variety of tasks such as multiprogramming, protecting memory, managing processes, scheduling tasks, and sharing resources. The machine level consists of the machine code executed by the given processor. This code, which makes up the instruction set architecture (ISA), consists of a binary representation of the limited operations that the given processor can execute. The operations are executed by electronic circuits. The control level involves the control unit interpreting, decoding and properlty executing the machine code passed to it, one instruction at a time. This action causes the specified actions to take place. The digital logic level consists of the physical components of the computer system, which are built using logic circuits. These circuits are comprised of gates and wires, which are the fundamental building blocks that are common to all computer systems.
|