Skip to ContentGo to accessibility pageKeyboard shortcuts menu
OpenStax Logo

Key Terms

access control list (ACL)
list of rules that specifies which users are granted the access to a specific object or resource
access enforcement
part of the OS that is responsible for enforcing access controls and protecting authentication and authorization information
address space
set of addresses generated by programs as they reference instructions and data
address translation
stage of virtualization that occurs when the system needs to find a physical address in the memory that matches the virtual address
allocation
method that defines how data is stored in the memory by providing a set of requests for resources and identifying which processes should be given which resources to make the most efficient use of the resources
application programming interface (API)
set of rules and tools that allows different software applications to communicate with each other
authentication
process of checking to see if a user’s credentials match the credentials in a database of authorized users or in a data authentication server
authorization
process of determining the relationship between principals, operations, and objects by defining which principals can perform which operations on which objects
badge
logical access system that serves as a form of authentication
blocked state
when a process is waiting for an event to occur
cache-only memory architecture (COMA)
computer memory architecture where all memory is treated as cache, which allows for the dynamic allocation of data for optimized access and performance in multiprocessor environments
capability list
list of objects and operations for each user that defines the user rights and capabilities
cloud infrastructure
virtualized and scalable hardware resources delivered over the Internet as a service
concurrency
multiple activities and processes happening at the same time—in other words, the OS handling multiple tasks at once
concurrent processing
computing model that improves the performance when multiple processors execute instructions simultaneously
condition variable
synchronization mechanism that is used in conjunction with locks to allow threads to wait for certain conditions to become true
container
standardized unit of software that logically isolates an application enabling it to run independently of physical resources
context switch
procedure that a computer’s CPU follows to change from one task to another while ensuring that the tasks do not conflict
CPU state
consists of the program counter (PC), the stack pointer (SP), and general-purpose registers
critical section
piece of code that only one thread can execute at once; also, only one thread at a time will get into this section of code
deadlock
synchronization challenge that occurs when a set of threads are blocked forever, waiting for each other to release resources
demand paging
storage mechanism in which pages should only allocate in the memory if it is required from the execution process
device manager
layer in the layered OS architecture that handles devices and provides buffering
device register
interface view any device presents to a programmer where each I/O device appears in the physical address space of the machine as a few words
directory
set of files that contains all the required information about the files such as attributes, location, and ownership, which is managed by the OS
distributed file system (DFS)
file system that is distributed on multiple file servers or multiple locations that support network-wide sharing of files and devices
dual mode
OS structure that is responsible for separating the user mode from the system mode
dynamic linking
code is located and loaded when the program is first run
encryption
method that converts the data into secret code that hides the data’s true meaning
exception
error that occurs at runtime
exokernel
OS architecture that simplifies the operating system by making its core (kernel) really small and letting apps have more control over the computer’s hardware
fault containment
feature of an OS that prevents errors in one part of an application from affecting the whole system
fault recovery
feature of an OS that helps the system to fix itself or revert to a previous state after an error
fault tolerance
feature of an OS that allows the application to keep running even when errors occur
file
collection of related information that is stored on secondary/virtual storage; it’s the smallest storage unit from the user’s perspective
file system
responsible for defining file names, storing files to a storage device, and retrieving files from storage devices
file versioning
system that allows a file to exist in several versions at the same time, which gives the user complete control over file creation
first come, first served (FCFS)
scheduling algorithm that operates on a simple queue mechanism where the first process to request the CPU is the first to receive it (or the first element added to the queue is the first one to be removed); commonly used in resource scheduling and data buffering and also known as FIFO (first in, first out)
fragmentation
problem where the memory blocks cannot be allocated to the processes due to their small size and the blocks remain unused
frame buffer
portion of random access memory (RAM) containing a bitmap that drives a video display
full virtualization
memory virtualization approach that allows multiple operating systems to run concurrently on a single physical machine, fully isolated from each other, by emulating hardware resources through a hypervisor
general-purpose register (GPR)
extra register that is used for storing operands and pointers
graphical user interface (GUI)
visual interface that allows users to interact with electronic devices through graphical icons and visual indicators
guest modification
in the context of virtualization, altering the guest operating system or its configuration to improve compatibility, performance, or integration with the virtualization environment or hypervisor
guest operating system
complete operating system inside a virtual machine
hardware abstraction layer (HAL)
example of layering in modern OS that allows an OS to interact with a hardware device at a general or abstract level rather than going deep into a detailed hardware level; this improves readability
heap allocation
dynamic storage management approach that allocates the data in a tree-based data structure
heap data
tree-based data in process management
hypervisor
software layer between machine hardware and the operating systems that run on it
i-number
unique number given to an inode whenever an OS that uses inodes creates a new file, which, in effect, functions as the file’s name
inconsistency
situation that causes the system to produce errors or hardware failure
incremental backup
backup image containing the pages that have been updated from the time of the previous backup
inode
structure used by file system that contains metadata about a file or directory but not its name
inter-process communication (IPC)
mechanism that enables processes to exchange data among different processes running on an operating system
interrupt
signal to the processor from either software or hardware that indicate events that need immediate attention
isolation
ensures that the multiple programs that are running concurrently on the same CPU and memory operate independently without interfering with each other’s execution or data
layered OS architecture
OS architecture where the OS is implemented as a set of layers where each layer exposes an enhanced virtual machine to the layer above
lock
synchronization mechanism that is used to enforce mutual exclusion
mechanism
activities that enforce policies and often depend on the hardware on which the operating system runs
memory allocation
process of setting aside sections of memory in a program to be used to store variables and instances of structures and classes
memory deallocation
process of freeing the space corresponding to finished processes when that space is needed by the rest of the system
memory multiplexing
dividing the capacity of the communication channel into multiple logical channels
microkernel
OS architecture where the functionality and capabilities are added to a minimal core OS as plug-ins
monolithic design
OS architecture where the entire OS is working in kernel space
multitasking
approach toward achieving concurrency that makes it possible for the OS to run multiple processes at the same time using time slicing
mutual exclusion
program that prevents simultaneous access to a shared resource
non-privileged system program
program that can run only in the user mode
non-uniform memory access (NUMA)
computer memory architecture where memory access time varies depending on the memory’s location relative to a processor
operating system (OS)
core piece of software that typically manages the interconnection of hardware and software on a given computer
page fault
when the CPU demands a page, and this page is not present in the main memory
page fetching
process of bringing pages into memory
page manager
layer in the layered OS architecture that implements virtual memories for each process
page replacement
when one page in the DRAM is swapped to disk while the requested page is brought into DRAM
paging
storage mechanism that uses a page form in retrieving process from secondary or virtual memory to main memory
pipe
data communication method between two processes that uses a specific name and standard I/O operations, and thus allows for data transfer within a file system; sometimes called named pipe
policy
controls how to use a mechanism in specific situations, that is, choose what activities need to be done
primary memory
type of computer memory that is the initial point of access for a processor and serves as direct storage for the CPU
primary storage
holds data that can be directly accessed by the CPU with minimum or no delay and does not survive a power failure
privileged instruction
instruction provided by the CPU that can be executed only by the OS
privileged system program
program that can run only in the system mode
process
any program that is running on top of the OS
process control block (PCB)
data structure used by the operating system to store information about a process, including its state, process ID, registers, scheduling information, memory management details, and I/O status
process ID (PID)
unique identifier assigned by the operating system to each process running on a computer, used to track and manage process activities
process synchronization
when an OS manages the sharing of a system’s resources to avoid interference and errors
properties
characteristics that are considered when designing an OS
protection
general mechanism that is used throughout the OS for all resources that need to be protected, such as memory, processes, files, devices, CPU time, and network bandwidth
quota
amount of space to store files based on the available memory space
ready state
when a process is waiting for the CPU
recovery
process of resolving or receiving treatment to solve OS faults or errors
reliability
system’s ability to reduce faults and ensure that the information in the system survives OS crashes and hardware failures
replication
procedure that allows multiple copies of a file to exist in the network; this improves performance and availability
round-robin scheduling (RR)
scheduling algorithm that is widely used in time-sharing systems and is designed to ensure fairness among processes by giving each process an equal share of the CPU
running state
when a process is being executed by the CPU
secondary memory
type of computer memory that is nonvolatile and thus used for long-term storage, housing the operating system, applications, and data that need to persist even when the power is off
secondary storage
persistent memory that survives power failures most of the time such as spinning disks, SSDs, and USB drives
semaphore
data type that an OS uses to control access to a resource
sharing
multiple processes can use the same piece of data concurrently
shortest remaining processing time (SRPT)
scheduling algorithm that prioritizes processes based on the shortest amount of time left to complete their execution
shortest time to completion first (STCF)
scheduling algorithm that takes the best approach to minimize the waiting time, but it requires that the processor knows the processing time in advance; also called shortest job first (SJF)
stack allocation
dynamic storage management approach that uses linear data structure that follows last in, first out (LIFO)
stack pointer (SP)
register that indicates the location of the last item that was added to the stack
static data
data that does not change within the program
synchronization
way of coordinating multiple concurrent activities that are using shared state
system call
appears when the program requests a service from the kernel
system interrupt
manages the communication between the computer hardware and the system
thrashing
when a computer’s operating system becomes overwhelmed by the number of processes requesting memory
thread
smallest unit of execution within a process, allowing parallel tasks to run in the same memory space; it enables efficient and independent execution of sequences of instructions
time slice
short time frame that gets assigned to a process for CPU execution and facilitates multitasking
translation lookaside buffer (TLB)
small memory cache that speeds up the computer’s memory access by storing recent virtual-to-physical address translations; if the TLB has the address translation, it quickly retrieves data; if not, the computer must search more slowly through its memory
two-factor authentication
form of authentication that involves two factors: the system calls or texts a user’s phone for the traditional password during login, employing the cell phone as a key
uniform memory access (UMA)
computer memory architecture where access time to any memory location is the same across all processors
virtual machine (VM)
software that is created to run like a physical computer and that operates its own operating system and applications like a separate physical server
virtualization
allows a system to run different types of applications used by multiple users at a time on the same computer
working set size (WSS)
total amount of memory a process requires during a specific period of activity; it is measured as the set of pages or data blocks the process accesses
Citation/Attribution

This book may not be used in the training of large language models or otherwise be ingested into large language models or generative AI offerings without OpenStax's permission.

Want to cite, share, or modify this book? This book uses the Creative Commons Attribution License and you must attribute OpenStax.

Attribution information
  • If you are redistributing all or part of this book in a print format, then you must include on every physical page the following attribution:
    Access for free at https://openstax.org/books/introduction-computer-science/pages/1-introduction
  • If you are redistributing all or part of this book in a digital format, then you must include on every digital page view the following attribution:
    Access for free at https://openstax.org/books/introduction-computer-science/pages/1-introduction
Citation information

© Oct 29, 2024 OpenStax. Textbook content produced by OpenStax is licensed under a Creative Commons Attribution License . The OpenStax name, OpenStax logo, OpenStax book covers, OpenStax CNX name, and OpenStax CNX logo are not subject to the Creative Commons license and may not be reproduced without the prior and express written consent of Rice University.