All Definitions Flashcards
Arithmetic and Logic Unit (ALU)
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 (CU)
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.
Program Counter (PC)
A register in the control unit which holds the address of the next instruction to be executed.
Accumulator (ACC)
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.
Memory Address Register (MAR)
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.
Memory Data Register (MDR)
A register that contains the data to be stored in the computer storage, or the data after a fetch from the computer storage. It acts like a buffer and holds anything that is copied from the memory ready for the processor to use it.
Current Instruction Register (CIR)
Instruction Register (CIR)
A register in the control unit that stores the address of the 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
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
The concurrent decoding of two or more machine instructions. While part of one instruction (for example, an address field) is being decoded, another part of a second instructions (for example, an operation code) may also be decoded.
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.
Complex Instruction Set Computer (CISC)
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.
Reduced Instruction Set Computer (RISC)
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.
Graphics Processing Unit
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 have a highly parallel structure that makes them more effective than 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.
Random Access Memory (RAM)
Volatile main memory. Access times are very fast. It can be used in main areas of computing and computing storage. When used as main memory it typically can be thought of as containing the OS, programs in use and the data those programs are using while the computer is running.
Read Only Memory (ROM)
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.
Virtual Storage
A means of apparently extending main storage by using backing storage (such as a hard disk) as if it were main memory.
Operating System
Collection of systems software that manages the computer. Usually supplied with the computer. Examples include Windows, Linux, Unix, MacOS, iOS.
Memory Management
The process of organising 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
Splitting of a large program into a number of smaller segments. Each segment is a complete program that is executed separately. The function of the large program is achieved by running segments consecutively. This allows a large program to be executed on a computer with insufficient memory.
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.
Interrupt Service Routine (ISR)
A software routine that hardware invokes in response to an interrupt. These examine an interrupt and determine how to handle it.
Scheduling
The method by which central processor time is allocated in a multi-access system.
Round Robin (RR)
A scheduling algorithm that deals with each user or task to be processed in turn.
First Come First Serve (FCFS)
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.
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.
Shortest Job First
A scheduling algorithm that deals with each user or task based on the getting the smaller ones out of the way.
Shortest Remaining Time
A scheduling algorithm that deals with each user or task based on a calculating an estimated time remaining 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
Highly specialised OS designed to control a machine. In contrast to an operating system for a general-purpose computer, an this type of OS is typically quite limited, often running a single application. However, that single application is crucial to the device’s operation.
e.g. Washing machine OS
Multi tasking OS
Any type of system that is capable of running or appearing to run more than one program at a time.
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.
Basic Input Output System (BIOS)
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. This involves analysing the language structure of the source program, determining if it is valid, and proceeding suitable machine code.
Syntax Analysis
The stage in compilation 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 compilation 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.
Loader
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.
Software Development Life Cycle (SDLC)
The various stages in designing and implementing a new computer system.
Stages:
- analysis
- design
- implementation
- testing
- installation
- maintenance
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
Type of agile methodology intended to improve software quality and responsiveness to changing customer requirements. It advocates frequent releases in short development cycles, which is intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted.
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.
Rapid Application Development (RAD)
A design strategy that includes online development and repeated prototyping and evaluation. It is particularly suited to interactive systems.
Programming Paradigm
To describe an example or pattern. In a Computing context, this means to describe a computational way of doing things. So a Programming _______ is a style or way of programming. E.g. Low-Level languages, High-Level languages, Declarative languages are all examples.
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.
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.
Little Man Computer (LMC)
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
Uses the data in the address field, not as an address, but as a constant that is needed by the program.
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 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.