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