Terminology Flashcards
ALU
Arithmetic Logic Unit
The part of the CPU where data is processed and manipulated. This processing and manipulation normally consists of arithmetic operations or logical comparisons allowing a program to make decisions.
Control Unit
The part of the CPU that manages the execution of instructions. The control unit fetches each instruction in sequence, and decodes and synchronises it before executing it by sending control signals to other parts of the computer.
Register
Tiny areas of extremely fast memory located in the CPU normally designed for a specific purpose, where data or control information is stored temporarily.
PC
Program Counter
A register in the control unit which holds the address of the next instruction to be executed.
ACC
Accumulator
A special register within the ALU. It is used to hold the data currently being processed by the central processor. Any data to be processed is stored temporarily in the accumulator, the results ending up back in the accumulator being stored in the memory unit.
MAR
Memory Address Register
A register in the CPU that stores the address of the memory location currently in use. In the fetch phase, this would be the address of the instruction being loaded; in the execute phase, it would be the address of the data being used.
MDR
Memory Data Register
A register in the CPU that stores data being transferred to and from the immediate-access store. It acts as a buffer, allowing the central processor and memory unit to act independently without being affected by minor differences in operation. A data item will be copied to the MDR ready for use at the next clock pulse, when it can either be used by the central processor or be stored in main memory.
CIR
Current Instruction Register
A register in the control unit that stores the address of the next instruction currently being executed and decoded.
Busses
A common physical pathway shared by signals to and from several components of a computer.
Data Bus
The part of the bus which carries the actual information.
Address Bus
The part of the bus which carries identification about where the data is being sent.
Control Bus
This bus carries command and control signals to and from every other component of a computer.
Fetch-Decode_execute
The complete process of retrieving an instruction from store, decoding it and carrying it out. Also known as the instruction cycle.
CPU
Central Processing Unit
The main part of the computer, consisting of the registers, ALU and control unit.
Clock Speed
Measured in Hertz, the clock speed is the frequency at which the internal clock generates pulses. The higher the clock rate, the faster the computer may work. The “clock” is the electronic unit that synchronises related components by generating pulses at a constant rate.
Cores
A part of a multi-core processor. A multi-core processor is a single component with two or more independent actual CPUs, which are the units responsibly for the fetch-decode-execute cycle.
Cache
A part of the main store between the central processor and the rest of the memory. It has extremely fast access, so sections of a program and its associated data are copied there to take advantage of its short fetch cycle.
Pipelining*
Successive steps of an instruction sequence are executed in turn by a sequence of cores able to operate concurrently, so that another instruction can be begun before the previous one is finished
Von Neumann Architecture
Traditional computer architecture that forms the basis of most digital computer systems. A single control unit manages program control flow following a linear sequence of “fetch-decode-execute”.
Harvard Architecture
A computer architecture with physically separate storage and signal pathways for instructions and data. These early machines had data storage entirely contained within the central processing unit and provided no access to the instruction storage as data.
Contemporary Architecture
Any modern set of disciplines that describes the functionality, the organisation and the implementation of computer systems.
CISC
Complex Instruction Set Computer
A design that produces a complicated and expensive integrated circuit capable of performing a large variety of complex instructions. Complex instructions can be executed with few machine cycles.
RISC
Reduced Instruction Set Computer
A design that produces a simple, cheap integrated circuit with a basic range of machine instructions. Relies on speed as complex instructions take many machine cycles.
GPU
Graphical Processing Unit
A specialised electronic circuit designed to rapidly manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display. Modern GPUs highly parallel structure makes them more effective than general-purpose CPUs for algorithms where processing of large blocks of data is done in parallel.
Multicore System
Development of CISC architecture with several sets of CPU components in one microprocessor.
Parallel Processor System
The simultaneous use of several processors to perform a single job. A job may be split into a number of tasks each of which may be processed by any available processor.
Input Device
Any peripheral device that can accept data, presented in the appropriate machine-readable form, decode it and transmit it as electrical pulses to the CPU.
Output Device
Any peripheral device that translates signals from the computer into a human-readable form or into a form suitable for reprocessing by the computer at a later stage.
Storage Device
Any medium (optical, magnetic, solid state and even paper which holds data or programs.
Magnetic Storage
Storage medium which uses surfaces coated with a layer of magnetic material on which data can be stored by magnetically setting the arrangement of the magnetic material. This is done by electromagnetic read/write heads.
Flash Storage
Collection of memory chips that is controlled by its own software to make the collection of chips act like a disk drive.
Optical Storage
Storage medium that uses plastic discs on which the data is stored as patterns on the surface in pits and lands.
RAM
Random Access Memory
Volatile main memory. Access times are very fast. Often referred to as Main Memory, although RAM can be used in main areas of computing and computing storage. When used as main memory RAM typically can be thought of as containing the Operating System, programs in use and the data those programs are using while the computer is running.
ROM
Read Only Memory
Memory for which the contents may be read by cannot be written to by the computer system. Software in ROM is fixed during manufacturing. It typically holds system boot up instructions. ROM is non-volatile. More modern types of ROM can be written to in limited ways, these include, PROM, EPROM and EAROM.
Virtual Storage
Data stored on remote hard disks accessed over the internet.
Operating System
Collection of systems software that manages the computer. Usually supplied with the computer. Most common operating systems are Windows, Linux, Unix, MacOS, iOS.
Memory Management
The process of organizing the flexible use of the computer’s main memory.
Paging
The organisation of memory into fixed-sized units, called pages. The immediate-access store is organised as a number of physical pages. The logical pages used by the SPU can be assigned by the memory management unit to any page in physical memory.
Segmentation
The splitting of a large program unto a number of smaller programs or segments. Each segment is a complete program that is executed separately. The function of the large program is achieved by running segments consecutively. Segmentation allows a large program to be executed on a computer with insufficient memory to store the whole program by carving up memory logically rather than physically.
Virtual Memory
Used when sufficient immediate-access store is not available. Part of a disk drive is allocated to be used as if it were main memory. This is very slow, and the software will attempt to use the immediate-access store if possible.
Interrupt
A signal generated by a source such as an input or output device or a systems software routine that causes a break in the execution of the current routine. Control passes to another routine in such a way that the original routine can be resumed after the interrupt.
ISR
Internet Service Routine
A software routine that hardware invokes in response to an interrupt. ISRs examine an interrupt and determine how to handle it.
Scheduling
The method by which central processor time is allocated in a multi-access system.
RR
Round Robin
A scheduling algorithm that deals with each user or tasks to be processed in turn.
FCFS
First Come - First Serve
A scheduling algorithm that deals with each user or task in the order in which they arrive, this can be thought of as a queue.
MLFQ
Multi-Level Feedback Queue
A complex scheduling algorithm that deals with tasks based on a set of priorities and rules across different league tables, jobs in a certain table get promoted up or down their table based on these rules and can then end up in totally different tables if they relegated.
SJF
Shortest Job First
A scheduling algorithm that deals with each user or task based on the getting the smaller ones out of the way.
SRT
Shortest Remaining Time
A scheduling algorithm that deals with each user or task based on an calculating a estimated time remaking to complete.
Distributed OS
An operating system where the software is spread over a collection of independent, networked, communicating, and physically separate nodes.
Embedded OS
A highly specialised, often quite limited and cut down operating system design to fit inside a certain type of machine. For example, computers in cards, tragic lights, cash machines, POS, elevators, drinks machines etc. In contrast to an operating system for a general-purpose computer, an embedded OS is typically quite limited, often running a single application. However, that single application is crucial to the device’s operation.
Multi-tasking OS
Any operating system designed to allow multiple users to log in and connect to it from different locations / machines at the same time. Specially designed for the sharing of resources such as files, programs or hardware (printers, scanners etc).
Multi-user OS
Any operating system designed to allow multiple users to log in and connect to it from different locations / machines at the same time. Specially designed for the sharing of resources such as files, programs or hardware (printers, scanners etc).
Real Time OS
An operating system intended to serve real-time application process data as it comes in, typically without buffering delays.
BIOS
Basic Input Output System
Part of the operating system that handles the input and output of the computer. It enables the operating system to use the particular features of the hardware being used.
Device Drivers
A computer program that operates or controls a particular type of device that is attached to a computer.
Virtual Machine
An emulator of a particular computer system. Virtual machines operated based on the computer architecture and functions of a real or hypothetical computer, and their implementations may involve specialised hardware, software, or a combination of both.
Intermediate Code
Half-way type of code which is standard across machine types. Runs on a virtual machine.
Application
Any program, routine or procedures (together with their associated documentation) that can be run on a computer system.
Utilities
A systems program that performs some specific task in the operation of the computer, for example file backup, virus checking or a compression program.
Open Source
Software for which the original source code is made freely available and may be redistributed and modified. – Open-source file types are often able to be opened on many different types of applications.
Closed Source
Often called Proprietary is a type of computer program for which the software code is not shared with the public for anyone to look at or make changes to – Closed / Proprietary file types are often only able to be opened if you own a version of the software they were originally made in.
Source Code
Original code typed in by the programmer in the native language. This is the code as it appears before it is compiled or interrupted.
Translator
A program that translates a program written in assembly language into machine code.
Interpreter
Translates and executes a program one statement at a time.
Compiler
A program that translates a high-level language program, source code, into a computer’s machine code.
Assembler
A program that translates (assembles) a program written in assembly language into machine code.
Compilation*
The translation process that produces an equivalent program in a low-level language. Compilation involves analysing the language structure of the source program, determining if it is valid, and proceeding suitable machine code.
Lexical Analysis*
The stage in compilation of a program that puts each statement into the form best suited to the syntax analyser. The standard components of each statement, such as PRINT, IF etc., are replaced by their tokens (a unique fixed length code) and programmer-defined names are entered into a symbol table. The lexical analyser also remove unnecessary charters such as spaces, tabs and coder comments
Syntax Analysis*
The stage in complication where language statements are checked against the rules of the language, errors being reported if a statement is not valid.
Code Generation*
The stage in complication that produces a machine-code program that is equivalent to the source program.
Optimisation*
The stage of compilation that ensures that the executable program if optimised at least as much as the compiler can predict. e.g. removing reference to unused variables or routines.
Linker*
Software tool that allows already compiled object code files or modules to be combined with the compiled program.
Loaders*
A program that copies an object program held on backing store into main store ready for execution.
Libraries*
A collection of pre-compiled routines which can be incorporated into a program.
SDLC
Systems Development Life Cycle
The various stages in designing and implementing a new computer system. These stages – typically analysis, design, implementation, testing and installation – are part of the systems life cycle performed by the main design team. Not be to confused with the Software Development Cycle which is part of the implementation stage of the systems life cycle.
Waterfall Model
An earlier abstract description of the system lifecycle where each identified stage of development flows from the previous one and down to the next one. Feedback from each to the previous takes place independently of the forward flow.
Agile Methodologies
Describes the responsive development of a system made of small software modules (often web-based applications) by a group of collaborators who work concurrently and closely under a leader who ensures engineering best practice and delivery of the customer requirements.
Extreme Programming
A software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. It is a form of agile development, and as such advocated frequent releases in short development cycles, which is intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted. Other common elements of XP include: programming in pairs or doing extensive code review, flat management structures and avoiding programming of features until they are actually needed.
Spiral Model
An abstract description of the systems life cycle where there are four defined quadrants – planning, risk analysis, use of design methods, client and management evaluation. Once one stage of development has gone full circle, the next please takes place, and so on until completion.
RAD
Rapid Application Development
A design strategy that includes online development and repeated prototyping and repeated prototyping and evaluation. It is particularly suited to interactive systems.
Programming Paradigm*
The word ‘paradigm’ means to describe an example or pattern. In a Computing context, this means to describe a computational way of doing things. So a Programming Paradigm is a style or way of programming. E.g. Low-Level languages, High-Level languages, Declarative languages are all examples of different programming paradigms.
Procedural Language*
Any high level language in which program statements can be grouped in self-contained blocks called procedures and functions. These procedures have their own variables, not accessible outside the procedure.
Assembly Language*
A language which is related very closely to the computer’s own machine code.
Machine Code*
Set of all possible instructions made available by the hardware design of a particular processor. Closest to pure binary.
Low Level Language*
A language which is close to machine code. Related closely to the design of the machine. A one-to-one language
High Level Language*
A language designed to help a programmer express a computer program in a way that reflects the problem that is being solved, rather than the details of how the computer will produce the solution. One-to-many language.
LMC
Little Man Computer
“An instructional model of a computer, created by Dr. Stuart Madnick in 1965. The LMC is generally used to teach students, because it models a simple von Neumann architecture computer - which has all of the basic features of a modern computer. It can be programmed in machine code or assembly code.
Immediate Addressing*
Modifies the address (either a direct or an indirect address) in the address field by the addition of a number held in a special-purpose registers, called an index register, before the address is used. Index registers are quickly and easily altered providing an efficient way of accessing a range of memory locations, such as in an array.
Direct Addressing*
Uses the data in the address field without alteration. This is the simplest method of addressing and also the most common.
Indirect Addressing*
Uses the address field to hold the address of a location that contains the required address.
Indexed Addressing*
Modifies the address (either a direct or an indirect address) in the address field by the addition of a number held in a special-purpose registers, called an index register, before the address is used. Index registers are quickly and easily altered providing an efficient way of accessing a range of memory locations, such as in an array.
OO*
Object Oriented
Looking at systems by classifying them into real world objects.
OOP*
Object Oriented Programming
A method of programming which classifies real world objects into classes and encapsulates those objects attributes and behaviours.
Class*
A type definition of an object
Object*
An instance of a class
Base Class*
Base class contains attributes and methods. It is the highest class and does not inherit from any other class.
Superclass*
A class that has been extended by another class. It allows the extending class to inherit its attributes and methods.