«  10.9. Files   ::   Contents   ::   11.2. Bibliography  »

11.1. Glossary

A2DP
Abbreviation for Advanced Audio Distribution Profile.
access point
A router, typically Wi-Fi, that connects a host device to the Internet.
acknowledgement number
An integer used in TCP to acknowledge the receipt of a message; the acknowledgement number is the previous message’s sequence number plus the number of bytes in the message.
acquire
The act of using a lock’s interface to gain mutually exclusive access to a critical section.
Address Resolution Protocol
Abbreviated as ARP. A link-layer protocol that translates IP addresses into MAC addresses within a local network.
Advanced Audio Distribution Profile
Abbreviated as A2DP. A Bluetooth profile used to improve performance of AVDTP.
Advanced Encryption Standard
Abbreviated as AES. The symmetric key encryption standard published by NIST for use in contemporary computing systems; based on the Rijndael block cipher.
AEAD
Abbreviation for Authenticated Encryption with Attached Data.
AES
Abbreviation for Advanced Encryption Standard.
agreement (consensus protocol)
The characteristic that all correct nodes participating in a consensus protocol eventually reach the same answer to a question.
Amdahl’s law
The mathematical formulation that there is a theoretical maximum speedup that can be achieved through parallelizing parts of a calculation.
amplitude modulation
Manipulating the amplitude of a carrier signal to encode binary data.
application layer
The top layer of the Internet model, often providing services to end users.
architectural style
An abstract description that instance of system architectures follow.
ARP
Abbreviation for Address Resolution Protocol.
ARP cache poisoning
A link-layer protocol attack that allows an attacker to change which machine on the local network correspond to an IP address, thus making it possible for the attacker to redirect and intercept network traffic.
AS
Abbreviation for autonomous system.
asynchronous
A style of communication in which the timing of sending and receiving are not necessarily linked, allowing senders to move on to other tasks during transmission. Also used to describe a form of execution in which concurrent events occur without coordination.
atomic
The abstraction that a step or sequence of steps are performed as a single unit without interruption or interference by other entities.
atomic transfer
Messages sent into an IPC channel are entered as a single, contiguous unit.
Audio/Video Distribution Transport Protocol
Abbreviated as AVDTP. A Bluetooth profile designed to provide low latency for the wireless connection of audio/video devices, such as headphones.
Authenticated Encryption with Attached Data
Abbreviated as AEAD. A digital signature feature added in TLS 1.3 to perform the message authentication code (MAC) and encryption calculations in parallel to avoid a particular ciphertext reuse attack.
authenticity
The security property that a message’s origin can be determined.
authoritative name server
A DNS server maintained by an organization to provide the definitive mapping of IP addresses within the organization’s network.
autonomous system
Abbreviated as AS. A network of hosts or subnetworks controlled by a single entity.
availability
One of the three primary security properties (along with confidentiality and integrity); the ability to provide service to legitimate users.
avalanche effect
A feature of cryptographic hash functions; changing a small number of bits in the input leads to significantly different outputs.
AVDTP
Abbreviation for Audio/Video Distribution Transport Protocol.
backbone
The collection of routers that form the core of the Internet.
banked cache
A cache design in which some portion is designated for storing instructions while another portion is designated for data; L1 cache in modern multicore processors is typically banked.
barrier
A synchronization primitive that requires a minimum number of threads to reach a common point before any are allowed to progress.
baseband
The lowest layer of a wireless protocol stack, providing the basic functionality of encoding binary data on radio waves.
batch
The act of grouping together a set of jobs to submit at one time, leading to their sequential execution.
behavioral model
Another name for dynamic model.
best effort service
The protocol feature that the system will attempt to provide a transmission service but cannot guarantee that it will be successful; often used to describe the unreliable transport service of UDP.
BGP
Abbreviation for Border Gateway Protocol.
blocked state
A process state in which the process is waiting on a particular event to occur.
blocking I/O
A form of input/output operation in which the process is temporarily paused (blocked) until the operation is performed.
Bluetooth profile
A generic Bluetooth application-layer protocol that device vendors can use in their products to ensure compatibility with other devices.
Bluetooth SIG
Abbreviation for Bluetooth Special Interest Group.
Bluetooth Special Interest Group
Abbreviated as Bluetooth SIG. The industry standards group that defines the specifications for the Bluetooth short-range wireless technology.
boot loader
A piece of software that is responsible for locating and initiating the execution of the kernel.
boot sequence
The procedures that a computer executes to begin execution when power is first turned on.
Border Gateway Protocol
Abbreviated as BGP. A network-layer control plane protocol that supports inter-AS routing at the gateways between networks.
bounded waiting
A synchronization property that guarantees any entity waiting on access to a shared resource will eventually do so; also known as fairness.
broadcast
The ability to send a message to all nodes in a network.
buffer cache
A kernel storage location for data recently retrieved from disk storage.
buffer overflow
A software error in which more data is read into a buffer than the space allocated would allow; this error is a common cause of exploitable software vulnerabilities.
Byzantine failure
The situation in a distributed system where a correct node may simultaneously appear correct to other correct nodes while also appearing faulty to other correct nodes.
Byzantine fault
Another name for Byzantine failure.
Byzantine Generals Problem
A classical distributed systems problem that proves that it is impossible to guarantee that consensus can be achieved if more than 1/3 of the nodes are faulty.
CA
Abbreviation for certificate authority.
canonical name
A DNS record that maps an alias to its definitive domain name.
carrier signal
A light or radio signal that is transmitted at a fixed amplitude and frequency.
CDN
Abbreviation for content delivery network.
centralized P2P index
A centralized database in a P2P network that maintains a full mapping of which nodes store which objects; used, for example, in the Napster file sharing system.
certificate authority
Abbreviated as CA. An organization responsible for validating information stored in a cryptographic certificate.
Chord
An early and influential structured P2P network in which nodes are arranged in a circle.
churn
The network property, typically a concern in P2P systems, that nodes join and leave the network frequently; can lead to poor performance or lost data.
CIDR
Abbreviation for Classless Inter-Domain Routing.
Cigarette Smokers Problem
A classical synchronization problem that demonstrates a scenario that cannot be solved using only a semaphore’s increment and decrement operations; all possible solutions have deadlock as a possible outcome.
ciphertext
The output of an encryption procedure that scrambles data in a secure way so that the original message cannot be determined.
circuit switching
A network technology in which hosts take turns transmitting information into a dedicated network; contrasted with packet switching.
circular wait
The situation in which multiple threads or processes each have control of one or more resources while waiting to gain access to the resources held by the other(s); one of the four requirements (along with hold and wait, mutual exclusion, and no preemption) for deadlock.
Classless Inter-Domain Routing
Abbreviated as CIDR. An IPv4 notation for subnetworks by referring to a group of addresses; the address ends in a series of zeroes and /n, where n indicates the number of trailing bits that can be either a 1 or 0 in any of the addresses.
client/server architecture
A system architecture in which multiple, independent clients request service from a single, centralized server.
cluster system
A type of multiprocessing system that is created by linking multiple, typically low-cost, independent computers on a closed, high-speed network; each node has independent processors and memory systems, and they communicate via message passing on the network.
collision
The property that a hash function produces the same result for two (or more) different inputs; cryptographic hash functions are designed to make finding collisions difficult.
complexity
A system characteristic that is created by entities providing feedback into the system that lead to unpredictable effects.
concurrency
The ability for multiple entities to make progress toward a goal within a single period of time; creates the appearance of parallel execution (which may be real or illusory).
condition variable
A synchronization primitive that can be used to wait until another thread indicates that a particular event has occurred or a desired condition has been achieved.
confidentiality
One of the three primary security properties (along with availability and integrity); the property that unauthorized reading of data is not permitted.
congestion
The state that occurs when there is too much traffic on a network, often leading to delays and dropped packets.
connection-oriented protocol
A protocol, such as TCP, that relies on both endpoints maintaining state information about a virtual connection between the hosts.
connectionless protocol
A protocol, such as UDP, in which each message is sent as a stand-alone entity with no logical or persistent state.
consensus protocol
A distributed system protocol that aims for all correct nodes to agree to the same value of a state variable.
content delivery network
Abbreviated as CDN. An Internet service that stores copies of popular data in several locations distributed throughout the world, providing faster access to local copies.
content provider
An organization that provides a service on the Internet.
context switch
The change from one process to another, defined by replacing the virtual memory image that is accessible by the CPU.
control plane
The portion of the network layer that focuses on exchanging information between routers to determine paths between and through networks.
control program
One of the primary roles of the kernel, which is to handle errors and access violations in a safe manner.
A small file used in HTTP to maintain a persistent state or login information.
cooperative multitasking
An early form of multiprogramming in which a process maintained control of the CPU until it voluntarily relinquished control.
CPL
Abbreviation for current privilege level.
CRC
Abbreviation for cyclic redundancy check.
critical section
A sequence of instructions that must be executed as an atomic unit to avoid timing-related errors.
cryptographic hash function
A one-way mathematical function that converts any sequence of bytes into a fixed-size numeric value; designed to prevent anyone from discovering the original data or to find other data that produces the same result.
cryptographic key
A numeric value that an encryption or decryption routine combines with a piece of data to scramble or recover the message.
cryptographic signature
A cryptographic technique that allows an entity, potentially untrusted, to claim verifiable authorship of a message.
cryptography
The study of mathematical techniques that can be used to add security features to information.
current privilege level
Abbreviated as CPL. A CPU internal configuration parameter that controls what software instructions are allowed to be executed.
cyclic redundancy check
Abbreviated as CRC. An error-detection technique commonly used in network protocols.
data parallelism
A parallel programming strategy in which the same operation is applied to multiple pieces of data.
data plane
The portion of the network layer that focuses on assigning addresses to hosts.
datagram
A structured network communication message that does not assume the presence of reliable data transfer.
deadlock
The permanent blocking of multiple processes that are simultaneously waiting on each other.
demultiplexing
The transport-layer service of directing incoming data to the intended process.
denial-of-service
A type of attack on the availability of a service.
detached thread
An independent thread of execution that can no longer be joined by the parent thread that created it.
DHCP
Abbreviation for Dynamic Host Configuration Protocol.
DHE
Abbreviation for Diffie-Hellman exchange.
DHT
Abbreviation for distributed hash table.
Diffie-Hellman exchange
Abbreviated as DHE. A cryptographic protocol that allows two entities to securely establish a private common session key with no prior shared information.
Dijkstra’s algorithm
A graph theory algorithm for determining the least-cost path from one node to another; requires information about the cost between all nodes in the graph.
Dining Philosophers Problem
A classical synchronization problem that provides a metaphor for how deadlock can occur.
distance vector routing
A recursive protocol strategy in which local information is used to dynamically compute the route from one node to another in a graph.
distributed hash table
Abbreviated as DHT. A data structure that is widely used in structured P2P network systems to provide efficient searching for and retrieval of objects.
distributed P2P index
A database strategy used in structured P2P network systems, in which the information about object locations is distributed among all the nodes in the network.
distributed system
A system that is comprised of multiple, independent computer systems, often located across physically remote distances.
divide-and-conquer algorithm
An algorithmic strategy in which a collection of data is repeatedly broken into smaller collections until the problem becomes trivial to solve.
DNS
Abbreviation for Domain Name System.
Domain Name System
Abbreviated as DNS. A distributed Internet database that maps human-readable domain names to IP addresses.
dual booting
Configuring a system with multiple OS images so that the OS to be used is selected during the boot sequence.
Dynamic Host Configuration Protocol
Abbreviated as DHCP. A protocol that allows a host to be configured dynamically for a local network when it first joins.
dynamic IP address
An IP address that is assigned to a host when it joins a network.
dynamic model
A system model that emphasizes changes to the system over time.
dynamic programming
A style of programming in which a larger problem is solved by applying local information to a smaller solved problem.
effect
An observable result of a transition from one system state to another.
embarrassingly parallel
The observation that a problem has an obvious parallel solution.
emergent property
Unanticipated system properties that result from the normal functioning of a system, in contrast to properties that are intended by design.
encryption
A cryptographic technique in which a message (plaintext) combined with a key to produce a scrambled message (ciphertext) to hide the original information; designed to be reversible by a corresponding decryption routine that converts the ciphertext into the plaintext.
end-to-end communication
The networking abstraction that two processes are communicating directly to each other as if they exist on the same host.
environment variable
A configuration parameter that can be passed from a parent process to a child process without changing the program interface.
ephemeral port
A randomly assigned port number in the upper range of possible values.
Ethernet
A family of link- and physical-layer protocols that provide wired connectivity.
event
A meaningful change in the state of a system or an entity such as a process.
event-driven architecture
A system architecture that emphasizes detecting and responding to pre-defined events.
exception
An internal event that disrupts the normal flow of a process, caused by the execution of a CPU instruction.
fairness
A synchronization property that guarantees any entity waiting on access to a shared resource will eventually do so; also known as bounded waiting.
fiber
A one-to-one threading model used by Windows and the .NET framework; unlike POSIX, related fibers use cooperative multiprogramming instead of preemptive.
fiber-optic wire
A type of wire made from glass that allows the controlled transmission and modulation of light signals.
FIFO
A first-in, first-out message-passing IPC in which bytes are sent and retrieved as unstructured streams. Also known as a named pipe.
file descriptor
An integer used by the kernel to identify a file, such as an IPC channel.
firmware
A reconfigurable hardware component that can persistently store small programs.
flow control
The TCP service that the transmission rate of data is reduced based on the capacity of the other host.
Flynn’s taxonomy
A classification of hardware architectures based on their ability to support multiple instructions and/or multiple pieces of data in parallel.
fork/join pattern
A parallel programming implementation pattern in which a single thread creates a collection of helper threads for parallel computation, then all threads are joined before the main thread continues processing.
formal model
A description of a system using a mathematical specification language.
forwarding
Propagating a network packet from one device to another without modification.
fragmentation
The network- and link-layer service in which a large packet is broken down into smaller packets based on the requirements of lower network layers.
frame
A structured link-layer network message.
frequency modulation
Manipulating the frequency of a carrier signal to encode binary data.
function pointer
A C programming language technique in which a pointer variable is used to store the address of a function rather than another variable or data structure.
GAP
Abbreviation for Generic Access Profile.
gateway router
A router that connects one autonomous system to another.
Generic Access Profile
Abbreviated as GAP. A default Bluetooth profile that can be used for applications that do not have pre-defined characteristics.
GFS
Abbreviation for Google File System.
Go channel
A Go programming language technique for message passing communication between threads or processes.
Google File System
Abbreviated as GFS. A distributed file system that strives to provide high-speed and high-availability access to large quantities of data.
Goroutine
A Go programming language thread.
Green threads
An early threading model used in Java; a single kernel thread was shared by all threads in the application.
Gustafson’s law
The mathematical formulation that there is a maximum speedup factor that can be achieved by any general performance improvement to a system.
Hands-Free Protocol
Abbreviated as HFP. A Bluetooth profile used to connect a cell phone to a headset or automobile.
HDP
Abbreviation for Health Device Protocol.
header
A structured collection of bytes attached to the beginning of a network message with metadata used by network protocols.
Health Device Protocol
Abbreviated as HDP. A Bluetooth profile used for medical devices; operates as an application layer that uses MCAP for a common transport layer.
HFP
Abbreviation for Hands-Free Protocol.
HID
Abbreviation for Human Interface Device.
hold and wait
A system property that allows a thread or process to hold mutually exclusive access to one resource while waiting on another; one of the four requirements (along with circular wait, mutual exclusion, and no preemption) for deadlock.
hop
A logical distance metric that indicates a single link in a network.
host
A computer or similar device that forms an end-point of a network.
Human Interface Device
Abbreviated as HID. A Bluetooth profile used for standard computer peripherals, such as a wireless mouse or keyboard.
ICANN
Abbreviation for Internet Corporation for Assigned Names and Numbers.
IEEE 802.11
The working group that defines the specification for Wi-Fi; also used to refer to the collection of Wi-Fi standards themselves.
IEEE 802.15.4
The working group that defines the specification for low-power, short-range wireless devices, including sensor networks and the Zigbee protocol stack; also used to refer to the collection of standards themselves.
IEEE 802.3
The working group that defines the specification for Ethernet; also used to refer to the collection of Ethernet standards themselves.
IETF
Abbreviation for Internet Engineering Task Force.
implicit threading
A programming language feature in which the execution environment, rather than the programmer, takes the responsibility for creating and managing threads.
information theoretic security
The cryptographic property that an adversary cannot determine the plaintext message for a ciphertext, even with infinite time and resources; not achievable (or needed) in practice; contrasted with semantic security.
inode
An on-disk data structure that identifies the location of data and contains the file metadata, such as permissions.
integrity
One of the three primary security properties (along with availability and confidentiality); the property that unauthorized modifications are not permitted.
integrity (consensus protocol)
The characteristic that, if all correct nodes propose the correct value in a consensus protocol, then any correct node will propose that value.
interface abstraction
The characteristic that describes how much detail of a system is revealed by how it is used.
interleaved
A semantic model for concurrent execution in which instructions from multiple entities are executed one at a time rather than parallel, but the system switches back and forth between the entities in a nondeterministic fashion.
Internet
An interconnected, world-wide network of multiple computer networks that are each independently owned and operated.
Internet Corporation for Assigned Names and Numbers
Abbreviated as ICANN. An international non-profit organization responsible for controlling the root level of DNS.
Internet Engineering Task Force
Abbreviated as IETF. The part of ISOC that is responsible for defining standards and protocols used to create the Internet.
Internet layer
The middle layer of the Internet protocol stack, defining logical locations within the Internet and routing paths between hosts.
Internet model
A layered architecture model to describe the role of major protocols used in the Internet.
Internet of Things
Abbreviated as IoT. The system created by connecting non-computational physical devices, such as household appliances, to the Internet.
Internet Protocol
Abbreviated as IP. A network-layer protocol that assigns a logical location (address) to a host on the Internet.
Internet Society
Abbreviated as ISOC. An international non-profit organization responsible for the development and leadership of the Internet.
interprocess communication
Abbreviated as IPC. A collection of techniques that allow processes to exchange information with the help of the kernel.
interrupt
An external event that disrupts the normal flow of a process, caused by a hardware component indicating that service is needed.
IoT
Abbreviation for Internet of Things.
IP
Abbreviation for Internet Protocol.
IP masquerading
Technique used by NAT in which a router replaces a host’s IP address in a packet with the router’s; allows several devices on a private network to share a single Internet-facing IP address.
IPC
Abbreviation for interprocess communication.
ISOC
Abbreviation for Internet Society.
Java Runnable interface
A Java interface that classes can implement for multithreading; requires the class to implement the run() method that serves as the entry point for a thread.
Java Thread class
A Java class that classes can extend for multithreading; requires the class to implement the run() method that serves as the entry point for a thread.
job
A term used to describe a single execution of a computer program from start to finish.
join
The act of one thread waiting on one of its child threads to complete.
kernel
The most privileged software component in a computer system that controls access to shared resources and provides initial responses to system events.
kernel mode
The CPU configuration in which all instructions can be executed, resulting from setting the CPL to the highest privilege level.
key exchange protocol
A cryptographic protocol designed to allow two entities to securely agree to a shared session key, even if the entities have no prior knowledge of each other.
key pair
A single combination of a public key and its corresponding private key.
key schedule
A sequence of secret cryptographic keys derived from a single key; used in encryption algorithms (such as AES) that iteratively apply the same manipulations, but with a different key each time.
keyed cryptographic hash function
A cryptographic technique in which a message is combined with a key prior to performing a hash calculation.
L2CAP
Abbreviation for Logical Link Control and Adaptation Protocol.
Lamport timestamp
A technique for creating a logical clock in a distributed system.
LAN
Abbreviation for local area network.
latency
The time that elapses from the beginning of a task until its completion.
layered architecture
A system architecture in which entities can only interact with those directly above and below in a defined hierarchy.
level of abstraction
The characteristic that describes how much detail is included in a model.
light-weight process
Abbreviated as LWP. A many-to-many threading model used in Solaris; a run-time threading library dynamically mapped running process-level threads to a set of virtual processors that corresponded to kernel threads.
lightswitch
A synchronization programming pattern for locks and semaphores in which the first thread to enter a critical section performs a specific initial action and the last to leave performs a specific closing action.
The second-lowest layer of the Internet protocol stack, creating the logical point-to-point links between devices connected within a network.
Abbreviated as LM/LC. The second lowest layer in the Bluetooth wireless protocol stack, responsible for managing and controlling the baseband.
A protocol strategy in which all routers initially exchange information about the network structure prior to determining optimal routing paths.
livelock
A situation in which multiple processes are simultaneously preventing each other from progressing, but the processes are repeatedly changing state in an unproductive fashion.
liveness
A synchronization property that guarantees some entity will eventually be able to continue execution toward a goal; also known as progress.
LM/LC
Abbreviation for Link Manager/Link Controller.
local area network
Abbreviated as LAN. A network of computer systems operated by a single independent organization.
local P2P index
A P2P location-mapping strategy in which each node maintains information only about objects that it stores or has recently accessed; used in open, unstructured networks such as Bittorrent.
lock
A synchronization primitive that provides mechanism to gain mutually exclusive access to a resource.
logical clock
A distributed system technique for ordering events that is not dependent on real-time measurements.
Abbreviated as L2CAP. The middle Bluetooth layer that provides multiplexing service for application profiles to access the LM/LC layer; provides services comparable to the link layer in the 5-layer Internet model.
loop parallelism
A parallel programming strategy in which multiple iterations of a loop can be executed in parallel and will achieve the same result as if executed sequentially.
loopback address
The IP address that refers to the current host.
LWP
Abbreviation for light-weight process.
MAC
Abbreviation for message authentication code. Also used as an abbreviation for media access control address.
MAC address
Abbreviation for media access control address.
MAC-then-Encrypt
Abbreviated as MtE. A cryptographic technique that can be used to establish a message’s authenticity by encrypting the output of a message’s cryptographic hash; used in TLS 1.2 but replaced in TLS 1.3, due to vulnerability to a ciphertext reuse attack.
manager/worker
A task parallelism implementation strategy in which one thread is designated as a manager that distributes tasks to other worker threads as needed.
MANET
Abbreviation for mobile ad hoc network.
map/reduce pattern
A parallel programming implementation pattern in which a problem is broken down into small, independent problems that are distributed to nodes; the results of the parallel computations are then merged as needed.
maximum transmit unit
Abbreviated as MTU. The largest size of transmission message that a physical device will allow.
MCAP
Abbreviation for Multichannel Adaptation Protocol.
media access control address
Abbreviated as MAC address. A link-layer address used to identify the unique hosts connected within a local network segment.
memory-mapped file
A range of memory addresses that are linked to a file, possibly stored on disk.
Merkle-Damgård construction
A method for constructing cryptographic hash functions; used in the SHA-2 family.
message authentication code
Abbreviated as MAC. The result of applying a keyed cryptographic hash function to a message.
message passing
One of two standard IPC models; there is low overhead to set up a communication channel, but each data exchange requires a system call and imposes a performance cost.
message queue
A form of message-passing IPC in which structured messages are delivered as a single unit.
metadata
Information about a file or message that is not considered part of the file or message itself; can include information such as size, permissions, user identities, access times, or other related data.
MIMD
The multiple instruction, multiple data classification of Flynn’s taxonomy.
MIMO
Abbreviation for Multiple input and multiple output.
MISD
The multiple instruction, single data classification of Flynn’s taxonomy.
mobile ad hoc network
Abbreviated as MANET. A network of mobile computing devices that is designed to be short-lived and to require minimal configuration.
mode switch
Changing the CPL between kernel and user mode.
model
A simplified representation of a system.
monitor
An early piece of software responsible for setting up and executing jobs; the monitor is an early stage of the evolution of the kernel.
monitor (synchronization)
A software construct in which shared data is encapsulated into a structure and access to the data is only permitted through an interface of functions (or methods) that use a lock to ensure mutually exclusive access to the entire structure.
MtE
Abbreviation for MAC-then-Encrypt.
MTU
Abbreviation for maximum transmit unit.
Multichannel Adaptation Protocol
Abbreviated as MCAP. A common Bluetooth transport layer used for medical devices that use the HDP profile.
multicore
A type of multiprocessing hardware in which a processor contains more than one unit that can execute instructions independently and in parallel.
multiple input and multiple output
Abbreviated as MIMO. Wi-Fi technology that uses multiple antennas to support the simultaneous transmission and receipt of wireless information.
multiplexing (networking)
The transport-layer service that allows multiple processes to share the ability to send data to the network.
multiplexing (semaphore)
The practice of using a semaphore to provide concurrent access to a resource, but with a maximum number of allowed instances.
multiprocessing
The ability for a computer system to execute instructions in parallel.
multiprogramming
A kernel execution strategy in which multiple processes are loaded into memory, with the processes taking turns executing instructions on the CPU for a short time.
multitasking
A synonym for multiprogramming.
multithreading
The software ability to create multiple concurrent threads of execution.
mutex
A synonym for lock; a POSIX thread synchronization primitive that can be used to provide mutually exclusive access to a critical section.
mutual exclusion
At most one entity (such as a thread) has access to a resource or critical section at a given time; also known as safety.
mutual exclusion (deadlock condition)
The system property that a resource can be held by at most one thread or process at a time; one of the four requirements (along with circular wait, hold and wait, and no preemption) for deadlock.
name server
A DNS server that translates a human-readable domain name into an IP address.
named pipe
A POSIX pipe that is identified using a pipe, in contrast to anonymous pipes created with the pipe() system call.
named semaphore
A POSIX semaphore that is identified using a file name, in contrast to unnamed semaphores created using the sem_init() system call.
NAT
Abbreviation for network address translation.
National Institute of Standards and Technologies
Abbreviated as NIST. Part of the U.S. government that is responsible for defining standards for cryptography and other technologies.
A Linux socket that allows application processes to communicate directly with a kernel service.
network address translation
Abbreviated as NAT. Local network technique that extends the number of devices that can use IPv4 by sharing a common Internet-facing IP address among several hosts on a private network.
network core
The collection of routers and switches that create the internal connections within a network or the Internet.
network edge
The collection of hosts at the outer-most end-points of a network, including laptops and other user-focused devices.
Network Time Protocol
Abbreviated as NTP. A distributed system protocol that aims to configure the system clocks of nodes to a common real time value.
NIST
Abbreviation for National Institute of Standards and Technologies.
no preemption
The system property that no thread may disrupt another thread’s claim to a resource, such as a lock or semaphore; one of the four requirements (along with circular wait, hold and wait, and mutual exclusion) for deadlock.
non-uniform memory access
Abbreviated as NUMA. The characteristic of memory systems in which accessing different ranges of addresses can require different amounts of time.
nondeterminism
An unpredictable ordering of events.
NTP
Abbreviation for Network Time Protocol.
NUMA
Abbreviation for non-uniform memory access.
OBEX
Abbreviation for Object Exchange.
Object Exchange
Abbreviated as OBEX. A Bluetooth profile for exchanging files and objects between connected devices.
octet
A sequence of eight bits; normally a synonym for byte, although a byte does not require exactly eight bits.
one-time pad
A cryptographic technique in which every bit of plaintext is combined with a randomly chosen 1 or 0; achieves information-theoretic security, but is not practical to use.
Open Shortest Path First
Abbreviated as OSPF. A network-layer control plane protocol that uses link-state routing based on Dijkstra’s algorithm to determine routing paths within an autonomous system.
OpenMP
A multiprocessing library for C, C++, and Fortran that provides implicit threading.
operating system
Abbreviated as OS. The collection of system software that provides a platform for running applications; the kernel is the software component that provides the foundation of the OS structure.
OS
Abbreviation for operating system.
OSPF
Abbreviation for Open Shortest Path First.
overlay network
A logical network, such as a P2P system, that consists of nodes that are distributed throughout an underlying network, such as the Internet.
P2P architecture
Abbreviation for peer-to-peer architecture.
packet
A structured network message, especially one at the network-layer of the Internet.
packet loss
The failure of a packet to be delivered to its intended host.
packet sniffer
A program that receives a copy of network packets intended for other processes.
packet switching
A network technology in which hosts transmit small, structured packets into a network immediately rather than waiting for dedicated control of the network; contrasted with circuit switching.
parallelism
The simultaneous execution of instructions or calculations.
Paxos
A family of consensus protocols for distributed systems.
payload
The portion of a network message that contains the data used at the next layer higher.
PBFT
Abbreviation for Practical Byzantine Fault Tolerance.
peer-to-peer architecture
Abbreviated as P2P architecture. A variant of a client/server architecture in which each entity acts as both a client and a server as needed.
peering agreement
Business and financial arrangements between Tier 1 ISPs to facilitate the exchange of Internet data between networks.
persistent connection
In HTTP, a logical connection between multiple requests and responses that allow the hosts to maintain a single TCP session.
Peterson’s solution
An algorithmic solution to the critical section problem; impractical in modern systems due to the design of processor architectures and compilers.
phase shift keying
Manipulating the phase of a carrier signal to encode binary data.
physical layer
The lowest layer of the Internet model, encoding bits for transmission across a physical medium.
physical memory
A hardware component that can be used to store information; RAM is one form of physical memory.
PID
Abbreviation for process identifier.
pipe
A first-in, first-out message-passing IPC in which bytes are sent and retrieved as unstructured streams.
pipe-and-filter architecture
A system architecture defined by a unidirectional flow of information through a sequence of entities that can modify and process the information.
pipelining
A parallel programming algorithm design strategy in which a procedure is broken down into multiple sequential steps that allow for parallel execution.
plaintext
The meaningful data provided as input to an encryption routine.
port
A network end-point.
port number
A 16-bit unsigned integer used to identify a process on a host.
Portable Operating System Interface
Abbreviated as POSIX. A cross-platform specification supported by UNIX operating systems and those considered UNIX-like, such as Linux. The X in the name originally denoted that the interface was “based on UNIX.”
POSIX
Abbreviation for Portable Operating System Interface.
POSIX thread library
Abbreviated as pthreads. A C programming language library that provides cross-platform support for multithreading.
Practical Byzantine Fault Tolerance
Abbreviated as PBFT. A distributed replication service that provides reliable service to stored data, provided no more than 1/3 of nodes fail.
pragmatics
One of three aspects of semiotics that focuses on the relationship between symbols and the entity interpreting the symbol.
pre-shared key
Abbreviated as PSK. A key exchange technique used in TLS; both entities are configured with a key that can be used to securely encrypt and transmit a session key.
preemptive multitasking
A multiprogramming strategy in which processes are granted a time-limited access to the CPU and interrupted when that time limit expires.
privileged instruction
Hardware instruction that can affect the full system rather than just the current process; privileged instructions cannot be executed in user mode.
process
A logical instance of a program during its execution; processes are distinguished by having a unique and isolated view of the virtual memory image that can be accessed.
process identifier
Abbreviated as PID. A number used by the kernel to identify a process.
processing delay
The time required for a switch or router to read network headers and determine how to process a packet.
Producer-Consumer Problem
A classical synchronization problem that provides well-known proven solutions for controlling access to a shared queue.
progress
A synchronization property that guarantees some entity will eventually be able to continue execution toward a goal; also known as liveness.
propagation delay
The time required for bits to traverse the physical medium between devices in a network.
protocol
A precise specification of the structure and intended meaning of communication messages.
pseudo-header
A sequence of bytes used in TCP and UDP to compute a checksum.
PSK
Abbreviation for pre-shared key.
pthreads
Abbreviation for POSIX thread library.
public key cryptography
A form of encryption that uses separate keys (one public, one private) for encryption and decryption.
pull model
A thread pool execution strategy in which threads access a common pool and select a task.
push model
A thread pool execution strategy in which one thread is responsible for assigning tasks from the common pool.
quantum
The maximum amount of continuous CPU time granted to a process in multiprogramming.
query flooding
A search strategy used in unstructured P2P network systems in which requests are forwarded from one node to its neighbors until the desired object’s location is found.
queueing delay
The time that a network packet must wait in a queue prior to transmission.
race condition
A situation where the result of a computation depends on the timing of events during a particular instance of execution; an error that results from nondeterministic system design or programming.
raw socket
A socket for writing data directly to the link layer without processing by the transport or network layers; used in protocols, such as ICMP, that can be used to monitor the behavior and performance of the network itself.
reactive
A system characteristic that indicates the primary purpose is to respond to events rather than to cause them to occur.
Readers-Writers Problem
A classical synchronization problem that highlights the difficulty of providing fair access to a critical section between two types of threads that perform asymmetric actions.
receive window
A field in the TCP header that is used to indicate a maximum amount of data that should be sent in response to the current segment; used to create the flow control service.
recursive splitting
Another name for divide-and-conquer algorithm.
redundancy
The practice of using multiple instances to serve as back-up copies if needed.
reentrant
A software property that the execution of a function can be safely interrupted and restarted by a separate thread without causing an error in the original execution.
release
The act of using a lock’s interface to relinquish mutually exclusive access to a critical section.
reliable transport
A communication protocol service, provided by TCP, in which lost packets will be retransmitted in an effort to overcome intermittent network failures.
rendezvous
A synchronization programming pattern for semaphores in which two threads must reach a common point before either can progress; can be generalized as a barrier.
replication
Storing the same data on multiple nodes in a network, allowing each to serve as backups in case of intermittent failures or attacks.
replication
A distributed system service in which multiple copies of data are stored to increase the availability of the resource.
Request for Comment
Abbreviated as RFC. The standard format for documents that define the protocols used in the Internet.
request-response protocol
A simple protocol in which one entity issues a request and the exchange is completed with the response from the other entity.
resident monitor
An early form of the kernel, in which the software for handling common events was loaded as part of the software job.
resource manager
One of the primary roles of the kernel, which is to provide shared access to system resources such as hardware peripherals.
retransmission timeout
Abbreviated as RTO. The amount of time a host will wait until declaring a packet to be lost in TCP.
RFC
Abbreviation for Request for Comment.
RFCOMM
A Bluetooth profile that can be used as a generic serial port.
ring
A term used in the x86 family of processors as a synonym for the CPL; ring 0 is known as kernel mode and ring 3 is user mode.
RIP
Abbreviation for Routing Information Protocol.
root name server
One of several servers that form the top-most layer of the DNS hierarchy; root name servers are primarily responsible for identifying the IP addresses of top-level domains.
round-trip time
Abbreviated as RTT. The amount of time between the sending of a TCP segment and when the corresponding acknowledgement is received.
router
A device that acts as a connection between two, possibly heterogeneous, networks.
routing
Identifying the path between nodes in a network or between networks.
Routing Information Protocol
Abbreviated as RIP. A network-layer control plane protocol that uses dynamic programming to perform distance vector routing within an autonomous system.
RSA cryptosystem
A public-key encryption technology designed by Ron Rivest, Adi Shamir, and Len Adleman based on modular exponentiation.
RTO
Abbreviation for retransmission timeout.
RTT
Abbreviation for round-trip time.
Rust closure
A Rust programming language construct that acts like an anonymous function.
safety
At most one entity (such as a thread) has access to a resource or critical section at a given time; also known as mutual exclusion.
scale
A system characteristic that refers to how the system behaves as the number of entities increases significantly.
scarcity of resources
A system characteristic that describes how resource limitations can pose constraints on the system design.
scheduling
The multiprogramming kernel responsibility to select which process to execute in user mode whenever an interrupt or exception occurs.
Search-Insert-Delete Problem
A variant of the readers-writers problem that illustrates how synchronization design techniques can be applied to common data structures.
security vs. usability
A common design tradeoff that arises from the fact that making a system more secure can make it more difficult to use.
segment
A structured transport-layer network message.
semantic security
The cryptographic property that an adversary has only a negligible probability to determine the plaintext message for a ciphertext, given limited time and resources; contrasted with information theoretic security.
semantics
One of three aspects of semiotics that focuses on the intended meaning of symbols.
semaphore
An integer with atomic operations for incrementing and decrementing the value; if the result of decrementing the value is negative, the current process becomes blocked until another process increments the value.
semiotics
The study of the use and interpretation of symbols.
sequence model
A type of UML diagram that can be used to illustrate the order of messages exchanged between entities and the corresponding responses.
sequence number
An integer used in TCP to identify the order of a segment; a particular segment’s sequence number is the previous segment’s sequence number plus the size of the previous segment’s payload.
session
A finite sequence of messages between entities until one or both parties determine that the exchange is complete.
session key
A randomly generated symmetric key used to encrypt and decrypt messages in a single session; should never be reused in future sessions to prevent eavesdropping attacks.
SHA-2
A family of cryptographic hash functions published by NIST to replace the insecure SHA-1 family; based on the Merkle-Damsgård construction technique.
SHA-3
A family of cryptographic hash functions published by NIST as an alternative—not a replacement—to the SHA-2 family; based on the sponge construction technique.
shared memory
One of two standard IPC models; there is a significant performance cost to set up the shared region, but all subsequent data exchanges are immediate and do not require system calls.
signal
A pre-defined event that can be sent to another process to disrupt its normal execution.
signaling (synchronization)
A synchronization programming pattern for semaphores in which one thread can alert another that an event has occurred; often replaced with condition variables in modern usage.
SIMD
The single instruction, multiple data classification of Flynn’s taxonomy.
SISD
The single instruction, single data classification of Flynn’s taxonomy.
smoothed round-trip time
Abbreviated as SRTT. A rolling average of the RTT calculations; helps to prevent overreactions to outlier measurements by considering the history of previous results.
SMP
Abbreviation for symmetric multiprocessing.
socket
A form of message-passing IPC that is primarily used for network communication.
space/time tradeoff
A common compromise to use more space for faster execution or slower execution for less memory usage.
speedup factor
A numerical factor that quantifies how much faster one implementation is than another.
speedup in latency
An improvement in the amount of time required for a computation by executing some portion of it in parallel.
spinlock
A synchronization primitive that provides the same functionality of a lock; uses busy-waiting instead of blocking when the spinlock has previously been acquired by another thread.
sponge construction
A method for constructing cryptographic hash functions; used in the SHA-3 family.
SRTT
Abbreviation for smoothed round-trip time.
star topology
A network topology in which a single node forms the center that other devices connect to individually.
starvation
The situation where a non-deadlocked thread is persistently prevented from accessing a critical section due to unfortunate timing or priority levels.
state
A significant and meaningful configuration of a system.
state machine
A system that executes by changing from one state to another.
state model
A type of UML diagram that can be used to illustrate how an entity’s state changes in response to events.
state space explosion
The phenomenon that increasing the number of states in a system leads to exponential growth in the number of possible transitions, making it infeasible to build a comprehensible model.
stateless protocol
A protocol in which none of the communicating parties keep state information between messages.
static IP address
A persistently configured IP address that is not dependent on the network configuration.
static model
A system model that focuses on the persistent features of a system that do not change over time.
strong scaling
A characteristic of a problem in which the difficulty of the problem does not increase with the number of entities operating in parallel.
structural model
Another name for static model.
structured P2P network
A style of P2P network in which nodes are arranged in a logical structure, such as a circle, to support predictable routing and increased availability of objects through replication.
subdomain
A domain name—ending in the organization’s authoritative domain name—that is typically used to add logical structure to the organization’s servers.
subnet
A smaller network that is part of a larger network, identified by a common range of network addresses.
subnet mask
A bitmask that can be applied to any address in a subnet to determine a common routing prefix.
suspended state
A process state in which the process has been indefinitely paused by the kernel, system administrator, or the user executing the process.
switch
A device that provides a link-layer connection between two homogeneous networks.
symmetric key cryptography
A form of encryption that uses a single key for both encryption and decryption.
symmetric multiprocessing
Abbreviated as SMP. A type of multiprocessing system that consists of multiple processors with a shared memory resource in a single computer.
SYN flood
A denial-of-service attack in which one or more hosts repeatedly initiate a TCP handshake with a server with SYN packets to cause the server to exhaust its memory resources, preventing legitimate requests from establishing connections.
synchronization
The act of controlling the timing of concurrent threads or processes.
synchronization primitive
A programming language construct that provides atomic operations for basic synchronization techniques.
synchronization problem
An easily understood scenario that illustrates common challenges that arise in concurrent systems.
synchronous
A style of communication in which the timing of sending and receiving are closely linked, forcing senders to wait until a message has been received.
syntax
One of three aspects of semiotics that focuses on the rules that define how symbols must be linked to create valid messages.
system
An integrated collection of entities and their interactions.
system architecture
A static model of a system that illustrates how entities can interact with each other.
system call
A request from a process for the kernel to perform an action.
System V
The specification that defines the requirements for an operating system to be considered UNIX.
systems theory
The rigorous study of systems and their properties.
task parallelism
A parallel programming strategy in which different threads are assigned different tasks to perform.
task queue
A data structure that stores the tasks to be performed by a thread pool.
TCP
Abbreviation for Transmission Control Protocol.
TCP handshake
A three-step protocol to establish a connection with a TCP server; the client initiates the procedure with a SYN packet, then the server responds with a SYN-ACK packet, and the client completes the handshake with an ACK packet.
termination (consensus protocol)
The characteristic that all correct nodes will eventually determine a value to propose.
Therac-25
A radiation therapy machine that is a commonly cited example of a race condition that can lead to catastrophic and fatal results.
thread
A coherent and independent execution sequence of software instructions.
thread pool
A parallel programming execution strategy in which a collection of threads are created at the start of the process and persist until completion; threads will perform parallel computations when required and may sit idle at other times.
thread-safe
A software property that a function uses appropriate synchronization techniques to prevent race conditions, allowing multiple threads to call the function concurrently in a safe manner.
throughput
The amount of work that can be accomplished in a given amount of time.
Tier 1 Internet service provider
One of several organizations that provide mutually beneficial Internet service by routing data cooperatively between each other’s clients.
TLD
Abbreviation for top-level domain.
TLS
Abbreviation for Transport-Layer Security.
TLS handshake
A multistep procedure in which hosts exchange security configuration parameters to establish a common set of cryptographic protocols and keys for secure communication.
top-level domain
Abbreviated as TLD. One of several standard domain name extensions, such as “.com” or “.co.uk”, that can indicate the type of service or origin of an organization.
transition
A change from one system state to another.
Transmission Control Protocol
Abbreviated as TCP. A transport-layer protocol that provides reliable data transfer, flow control, and congestion control.
transmission delay
The time required to encode binary data into modulated radio or light signals within a communication medium.
transport layer
The second-highest layer of the Internet model, providing logical process-to-process (also called end-to-end) communication across a network.
Transport-Layer Security
Abbreviated as TLS. A suite of cryptographic protocols that facilitate secure communication of transport-layer segments; the successor of the deprecated Secure Sockets Layer (SSL).
trap instruction
A hardware instruction executed during a system call that results in a mode switch and jump to a portion of the kernel code.
turnstile
A synchronization programming pattern for semaphores in which several threads wait for an event, then each thread unblocks exactly one more after the first is unblocked.
twisted-pair wire
A type of cable wiring, typically made of copper, used in Ethernet networks.
UDP
Abbreviation for User Datagram Protocol.
ULA
Abbreviation for unique local address.
UML
Abbreviation for Unified Modeling Language.
unified cache
A cache design in which all portions can store both instructions and data.
Unified Modeling Language
Abbreviated as UML. A formal language that is widely used to define and model several aspects of computer systems and software design.
uniform resource identifier
Abbreviated as URI. A standard format for designating the location of an object on the Internet.
uniprogramming
A kernel execution strategy in which programs are executed one at a time in a sequential order.
unique local address
Abbreviated as ULA. An IPv6 address that can be used to create a private network without public registration.
UNIX domain socket
A socket that provides a form of local IPC.
UNIX file abstraction
A uniform interface model in which all devices are treated as a file, which simply refers to an abstract sequence of bytes without assumed structure.
unnamed semaphore
A POSIX semaphore that is created as an in-memory kernel object, in contrast to named semaphores created as file system objects.
unreliable transport
The transport-layer service that provides no guarantees that a message will be successfully delivered and no additional attempts will be made if the first fails.
unstructured P2P network
A type of P2P network in which nodes and object locations do not have a pre-defined logical structure, thus requiring expensive dynamic searches for objects.
URI
Abbreviation for uniform resource identifier.
User Datagram Protocol
Abbreviated as UDP. A transport-layer protocol that provides only unreliable transport; used in multimedia applications and network-centric protocols such as DNS and DHCP.
user mode
The CPU configuration used by normal software applications, in which privileged instructions cannot be executed.
utilization
The ratio that describes how much a resource was actually used compared to the potential amount that it could have been used.
vector clock
A technique for creating a logical clock in a distributed system.
virtual memory
The logical, linear memory address space visible to a process.
visual model
A pictorial representation of a system intended to convey information in an intuitive manner that can be easily understood by people.
weak scaling
A characteristic of a problem in which increasing the number of parallel entities increases the complexity of the problem, but parallelism improves the amount of work that can be done.
well-known port
One of several designated port numbers that are used for common Internet services.
Wi-Fi
The common name for wireless technologies based on the IEEE 802.11 standards that allow portable computing devices, such as laptops and cell phones, to access the Internet through a physical close access point.
Wi-Fi Alliance
A non-profit organization responsible for defining specifications and certifying compatibility of Wi-Fi devices.
wireless mesh network
A wireless network topology in which router nodes can forward data through multiple possible paths.
X.509 certificate
A standard, verifiable data structure for exchanging public key and identity information.
Zigbee
A wireless protocol stack that can be used to build a wireless mesh network; commonly used in low-power sensor networks and the Internet of Things.
Zigbee Alliance
The industry standards group that defines the specifications for the Zigbee short-range wireless technology.
«  10.9. Files   ::   Contents   ::   11.2. Bibliography  »

Contact Us License