Glossary of Common Terms

access control list (ACL)
a service implemented in different ways by modern operating systems allowing a file to be accessed by named lists of users and groups, rather than a single user or group
address
a binary number, zero or greater, used to refer to a location of a byte in memory or on disk, possibly used for memory mapped I/O
alias
a pointer to a file or another file or name used to access or reference a file, such as a UNIX link or a Windows shortcut
application program(ming) interface (API)
The interface (calling conventions) by which an application program accesses operating system and other services. It is defined at source code level and provides a level of abstraction between the application and the kernel (or other privileged utilities) to ensure the portability of the code. It can also provide an interface between a high level language and lower level utilities and services which were written without consideration for the calling conventions supported by compiled languages. In this case, the API's main task may be the translation of parameter lists from one format to another and the interpretation of call-by-value and call-by-reference arguments in one or both directions. Examples of APIs include NetBIOS, Win16, Win32 and Win32s, and Java AWT.
archive
a single file containing one or (usually) more separate files, often compressed and used for backup
backup
a spare copy of a file used if the original is lost or damaged
basic input output system (BIOS)
a library of basic input and output hardware functions or system calls stored in read-only memory
batch job or batch processing
a non-interactive process which executes without stopping for interaction or input by the user
block
a logical allocation unit of one or more disk sectors to optimise disk access
booting
loading and initialising the operating system on a computer when the power is switched on
buffer
an area of memory used for storing messages from which processes can read and to which they can write; a waiting area for data used to synchronize the arrival of data from a device with the eventual reading of the data by a program. Examples of use include reading from and writing to disk or other I/O devices, and shared memory and other forms of IPC.
bus
one of the sets of conductors (wires, PCB tracks or connections in an integrated circuit) connecting the various functional units in a computer. There are busses both within the CPU and connecting it to external memory and peripheral devices. The data bus, address bus and control signals, despite their names, really constitute a single bus since each is useless without the others.
cache
small fast memory holding recently accessed data, designed to speed up subsequent access to the same data
clock
a timer within the processor which determines the speed at which instructions are executed
cluster
an allocation unit defined by the filesystem consisting of one or more disk sectors
command line interface (CLI)
a user interface which allows the user to log on, manipulate files, compile and run programs and perform tasks by typing commands at a prompt using a keyboard, e.g. a UNIX shell
compression
using codes to store repeated pieces of information in order to save space in memory or on disk
concurrent processing
processing with the appreance of being executed simultaneously, because the system can perform time-sharing
context switching
when switching from one process to another, the process state must be recorded and stored on disk in a process control block; it requires overhead such as time and CPU cycles
cooperative multitasking
A form of multitasking where it is the responsibility of the currently running task to give up the processor to allow other tasks to run
cylinder
a collection of all tracks on all disk platters which are at the same head position; they are all at the same distance from the disk axis
daemon
UNIX program that performs operating system services, owned by the system but runs outside the kernel, at user level, e.g. mountd, rlogind, keyserv, syslogd, named, inetd, ftpd
deadlock
a situation where one or more processes is waiting for an event that will never occur and can only be caused by another of the waiting processes
device driver
software to handle interrupts and control a computer hardware component or peripheral; translates a user's logical device commands to physical commands
direct memory access (DMA)
allows a peripheral to read and write memory without intervention by the CPU, freeing the CPU to do other things
directory
a node in a hierarchical file system which contains zero or more other nodes (files or other directories)
double buffering
the use of two buffers so that one buffer can be emptied as the other is being filled, so there is no waiting time to use the buffer
dynamic link library (DLL)
a Windows shared library; shared code which can be used by several running programs simultaneously and linked at run time; saves disk space and RAM
encryption
encoding data so that it cannot be read without a decoding system or key
exec
a UNIX system call that overwrites the current process with another process
expanded memory
memory used through MS-DOS memory management
extended memory
memory beyond 1 MB on a 80286 or later processor
file
an element of data storage in a file system; a single sequence of a finite number of bytes kept in a directory on non-volatile storage. The file system stores its name and path and other attributes
file allocation table (FAT)
component of an MS-DOS or Windows 95 file system which describes the files, directories and free space on a hard disk or floppy disk
file lock
a file which signals that a file is in use and prevents others from using the locked file
file system
the organisation of files and directories on a disk by the operating system
fork
a UNIX system call that makes an exact copy of the current process; both processes then continue to execute independently
format
put a filesystem on a disk and prepare it for use; includes marking disk sectors with addresses; low level formatting is often done by the disk manufacturer
fragmentation
parts of the data exist in very different locations in memory or on disk, joined together by pointers, and separated by a large number of holes. Fragmentation occurs because the OS must find a free space wherever it can. Ideally, data would always be stored in contiguous blocks, but in practice files may be deleted, leaving holes in the data which must then be filled up by the OS. Internal fragmentation is space wasted within pages (or segments); external fragmentation is free space between segments in physical memory.
graphical user interface (GUI)
use of pictures rather than just words to represent the input and output of a program; generally includes use of windows, icons, mouse and pointer (WIMP)
inode
a data structure that holds information about a UNIX file; its number uniquely identifies the file
input output control system (IOCS)
part of the operating system which passes system calls from application programs to device drivers for I/O devices
interprocess communications (IPC)
exchange of data between one process and another, either within the same computer or over a network. It implies a protocol that guarantees a response to a request. Examples are Unix sockets, RISCOS's messages, OS/2's Named Pipes, Microsoft Windows' DDE, Novell's SPX and Macintosh's IAC
interrupt or interrupt request (IRQ)
hardware signals sent to CPU by connected devices; an input found on many processors which causes the processor to suspend normal instruction execution temporarily and to start executing an interrupt handler routine. Some processors have several interrupt request inputs allowing different priority interrupts
job control language (JCL)
scripting language to control batch jobs
kernel
the essential part of operating systems, responsible for resource allocation, low-level hardware interfaces, security etc. The essential, core portion of the operating system that is loaded into random access memory (RAM) when the computer is turned on and stays in RAM for the duration of the operating session; core of a multitasking operating system which deals with the basic system resources; drives physical devices and handles I/O, memory management and process scheduling
locality of reference
if one location is read then nearby locations (particularly following locations) are likely to be read soon afterwards; characteristic of modular, object-oriented code; requires few disk accesses so good performance
link
a UNIX directory entry which refers to a file inode; it can be either a hard link or a symbolic link
Linux
a free operating system based on UNIX and originally designed for Intel-based PC compatible computers
memory
circuitry that stores information temporarily so that it is readily available to the central processing unit
Microsoft Disk Operating System (MS-DOS)
a single-user, single-tasking operating system which was commonly used on Intel-based PC compatible computers before Windows
monitor
a built-in function or feature of a programming language that helps programmers provide mutual exclusion without having to worry about low-level details
mount
make a file system available for access by associating it with a directory
multiprocessing
use of two or more processors in the same computer system at the same time
multitasking
capability to execute more than one application at a time
multithreading
capability to execute more than one thread within a program
multiuser
designed to be used by more than one person at a time
mutual exclusion
a situation where only one process may access a resource at a time
network file system (NFS)
an IP-based protocol originally developed by Sun Microsystems which provides file services, allowing a computer to access files over a network as if they were on its local disks
NT file system (NTFS)
The native file system of Windows NT, which improves over FAT in security and reliability, large file and volume sizes, unicode file names and some POSIX compliance
object linking and embedding (OLE)
a distributed object system which allows incorporating part of a document from one application into another. A Microsoft Windows standard that enables applications to exchange data and work with one another dynamically
operating system (OS)
A set of programs to assist human operators with controlling and operating a computer system. Important functions include program management and process scheduling, memory management, file and disk management, Input/Output device control, user interface, and user account and security management
page
a fixed-size unit of transfer between memory and disk in paging
page table
a list of pages and their physical and logical addresses
paging
only single pages are swapped between physical memory and virtual memory
parallel processing
processes that actually run simultaneously on different CPUs
parity
an extra bit of information stored with a byte of data and used for detecting data transfer errors
partition
a logical section of a disk created by the system administrator; to separate a disk into such sections
path
a complete specification of a file location which includes the disk, one or more directories, and file name
physical or real memory
every possible address to which memory chips are connected
pipe
redirects the output of one process to be used as the input of another
plug and play (PnP)
a Microsoft Windows standard for automating and simplifying the installation and configuration of device drivers after a hardware device has been installed; requires co-ordination of the BIOS, the operating system, the device and its drivers
preemptive multitasking
the operating system controls how time is to be shared between the tasks, and interrupts each process after its time-slice; the task scheduler periodically suspends the running task and restarts another
primary storage
built-in storage designed to be directly accessed by the CPU; includes main memory and read-only memory
process
a running program including the program code and private data such as process ID, open files, CPU time limits, shared memory, child processes and signal handlers
process control block
a data structure stored in memory or on disk which keeps track of how far a process has executed and what resources it is using
queueing
a form of scheduling where each process waits its turn; also called first-come-first-served or first-in-first-out scheduling; serial or batch processing
random access memory (RAM)
physical memory which is accessed randomly, i.e. there is no seek time, unlike disks which are accessed sequentially
RAM disk
a portion of memory that is used like a physical disk to hold files and is assigned a drive letter and volume label, used for high performance or when a physical disk is not available
read-only memory (ROM)
memory which cannot be changed or erased merely by switching off the power; often used to store crucial information about hardware such as the BIOS
redundant array of independent (or inexpensive) disks (RAID)
a set of specifications and techniques for secondary storage that use more than one disk for improving read and/or write performance and data reliability. Techniques include mirroring, striping and parity checking
root
the UNIX superuser account, or the top-level directory in a hierarchical file system
round-robin scheduling
time-sharing approach to scheduling in which several tasks can coexist. The scheduler gives a short time-slice to each job, before moving on to the next job, polling each task round and round. This way, all the tasks advance, little by little, on a controlled basis
scheduling
determining the order and timing for sharing a resource among multiple requests. On most multitasking systems, only one process can truly be active at a time; the system must therefore share its time between the execution of many processes. Disk scheduling is necessary to determine when and how much each process can read and write to disk.
search path
an environmental variable containing a list of directories (separated by commas) where the kernel or command interpreter searches for executable programs or commands typed by the user
secondary storage
non-volatile storage such as disk or tape used to supplement primary storage, generally larger and slower than memory and not strictly necessary for most systems
sector
a physically marked part of a disk track on which a fixed amount of data is stored; 512 bytes on most modern disks
segment
a collection of pages in a memory management system, or a section of an executable program that can be relocated
semaphore
a protected integer counting variable used to restrict access to shared resources in a multi-processing system
shell
command-line interface or command interpreter used to pass user commands to an operating system; examples are the c shell (csh) and the Bourne shell (sh)
shortcut
a small Windows file which points to the full path name of another file, used for quick access to the file, often used to quickly launch programs
signal
a message sent to a process by another process to communicate an unexpected event such as the forced termination of the process
socket
the end-point of a virtual connection between processes which can either be a stream of bytes or a fixed-length message
software interrupt
a signal sent by a user program to interrupt the processor to handle special situations; also called an exception or trap
spooling (simultaneous peripheral operation on-line)
to send files to some device or program that puts them in a queue for later processing, e.g. controlling output of jobs to a printer, other peripherals or input devices; used when two devices or pieces of software have different speeds
starvation
a process which waits forever for a resource, e.g. never gets a share of the CPU or disk access; this can occur if there are design flaws, errors or deadlocks in scheduling
swapping
move a program from fast-access memory to a slow-access memory ("swap out"), or vice versa ("swap in"). The term often refers specifically to the use of a hard disk (or a swap file) as {virtual memory} or "swap space". When a program is to be executed, possibly as determined by a scheduler, it is swapped into core for processing; when it can no longer continue executing for some reason, or the scheduler decides its time slice has expired, it is swapped out again. exchanging program instructions and data between the swap file (located on the hard disk) and random access memory (RAM). An entire process, including code segment and data segments is expunged from the system memory
superuser
a privileged user (normally the system operator) who has permission to do anything, unlike a normal user who is restricted in the interest of system safety and security
symbolic link
a special type of Unix file which refers to another file by its pathname. A symbolic link is created with the "ln" (link) command: ln -s OLDNAME NEWNAME where OLDNAME is the target of the link (usually a pathname) and NEWNAME is the pathname of the link itself. In contrast with hard links, there are no restrictions on where a symbolic link can point
system call
a frequently used low level operating system function, available to programmers as functions in high-level languages, to ask the operating system to perform a service such as memory allocation or device I/O
thrashing
spending so much of the time switching between processes that little or no useful work is done; can occur when there are too many active processes
thread
a lightweight process; a task which shares many parts of a process but has its own program counter and stack
track
A circular area on a disk platter on which data is stored
transparency
something happens without anyone needing to know the details about how it happens, simplifying systems for users and programmers, an advantage of encapsulation and modular design
UNIX
a multi-user time-sharing operating system; most versions are based on AT&T System 5 and Berkeley Software Distribution
user interface (UI)
aspects of a computer system or program which can be seen (or heard or otherwise perceived) by the human user, and the commands and mechanisms the user uses to control its operation and input data
virtual memory
a portion of a disk (e.g. a Widows swap file or page file or a UNIX swap partition) used to increase performance of physical memory and the number of simultaneously scheduled programs
virus
a program, designed as a prank or as sabotage, that replicates itself by attaching to (infecting) other programs and carrying out unwanted and sometimes dangerous operations, spread to other computers and disks when information is shared
volatile
temporary storage such as main memory that is erased if the power is switched off
Windows
a Microsoft operating systems with a graphical user interface; versions include 3.1, 95, 98, Me, NT, 2000, XP
volume
a logical section of a disk with its own filesystem