Called the shell, user interface to the OS. A user or system administrator can run application and OS utility programs and manage system resources.
Called a job control language. A set of commands and syntax requirements. User must know the language's syntax and semantics to issue commands.
Contains thousands of reusable components that provide functions ranging from file and folder manipulation to accessing I/O devices, starting and stopping programs, and creating, moving, and resizing GUI windows.
A request to execute a service-layer function. Application programs and utility programs perform most of their functions by executing service calls.
OS portion that manages resources and interacts directly with computer hardware. Includes resource allocation layer and interface programs called device drivers for each hardware device in the computer.
OS support for running multiple programs simultaneously. Uses elaborate procedures to share resources between processes and users and prevent them from interfering with one another.
A computer's physical devices and associated system software.
Resources that are apparent to a program or user as allocated by the OS.
An OS that enables dividing a single physical computer or cluster into multiple virtual machines.
Uses VMs as small virtual servers hosted by a hypervisor running on a larger machine.
Are installed much like OSs but provide only minimal OS-type functions, such as the capability to start and stop VMs and manage physical resources on behalf of VMs.
Are installed as an application in another OS.
Unit of executing software that's managed independently by the OS and can request and receive hardware resources and OS services.
Process Control Block
OS keeps track of each process by creating and updating a data structure for each active processes.
Called a process list. Often searched by OS components. A list of PCBs.
To create other processes and communicate with them.
Newly created process
Child processes of a single parent are collectively called this.
A group of processes descended from a common ancestor.
A portion of a process that can be schedules and executed independently. Can execute concurrently on a single processor or simultaneously on multiple processors.
Thread Control Block
The OS keeps track of thread-specific information in this.
Also called thread list. All active TCBs are organized into a data structure called this.
A process or program that divides itself into multiple threads.
Also called interleaved execution. Threads sharing a single CPU by using small time slices.
Idle, pending availability of a CPU.
Act of giving control of a CPU to a ready thread.
A thread retains control of a CPU until the thread or its parent process terminates normally or an interrupt occurs.
Suspended thread remains on the stack until interrupt processing is completed.
The decision-making process the OS uses to determine which ready thread moves to the running state.
OS portion that makes scheduling decisions.
A thread can be removed involuntarily from the running state.
Generated at regular intervals of between several dozen and several thousand CPU cycles.
Determines which ready thread should be dispatched to the CPU according to one or more of the following methods: first come first served, explicit priority, or shortest time remaining.
First Come First Served
The scheduler always dispatches the ready thread that has been waiting the longest.
Assigns a priority level to each process or thread.
Shortest Time Remaining
Chooses the next thread to be dispatched based on the expected amount of CPU time needed to complete the process.
Guarantees a minimum amount of CPU time to a thread if the thread makes an explicit real-time scheduling request when it's created.
Execute instructions to process a single transaction, retrieve and store data from an I/O device, or retrieve and analyze one set of process variables.
The assignment of specific memory addresses to system software, application programs, and data.
Most Significant Byte
The leftmost byte in a byte sequence.
Least Significant Byte
The rightmost byte in a byte sequence.
Highest numbered storage byte that can be represented.
The actual number of memory bytes that are physically installed in the machine. Can be smaller than addressable memory.
All portions of the program and OS are loaded into sequential locations in memory.
The difference between the first address in physical memory and the address of the first process instruction.
Uses memory address operands that refer to actual physical memory locations.
Also called relative addressing. Computing physical memory addresses automatically.
The register holding the offset value.
Also called address resolution. The process of determining the physical memory address that corresponds to a memory reference.
Occurs when memory partitions allocated to a single process or purpose are scattered throughout physical memory.
Relocate all programs in memory periodically in a process called this.
Noncontiguous Memory Allocation
Uses small fixed-size partitions, usually no larger than 64KB to simplify the discussion and figures in this section.
Virtual Memory Management
Divides a program into partitions called pages.
A smaller fixed-size portion of a program, normally between 1 and 4KB.
Each memory page is called this.
A reference to a page held in a memory.
A reference to a page held in secondary storage.
Store information about page locations, allocated page frames, and secondary storage space.
Called Swap file or page file. A secondary storage region is reserved for the task of storing pages not held in memory.
A page currently in memory.
Refers to protecting memory allocated to one program from unauthorized access by another program.
Also called distributed processing. Distributing parts of an information system across many computer systems and locations.
Method of organizing software to provide and access distributed information and computing resources.
Uses the communication interface to request resources, and the server responds to these requests.
Also called three-tier architecture. Divides application software into the data layer, business logic layer, and view layer.
Manages stored data, usually in databases.
Business Logic Layer
Carries out the rules and procedures of business processing.
Accepts user input and formats and displays processing results.
Also called n-tier architectures. Architectures having more than three layers.
Describes software that glues together parts of a client/server or multitier application.
The roles of client and server are combined into a single application or group of related applications.
Software implementing the transport, internet, and network interface layers.
A user or system administrator must know the server and resource names to create this.
Also called network transparency. A Web browser should access resources on remote machines in the same manner it accesses resources on the local machine.
The resource locator maintains this, which contains the names and locations of known resources and services.
A resource user asks for a resource, and it it isn't found in the local resource registry, the resource locator searches for it in external locations.
A region of shared memory through which multiple processes executing on the same machine can exchange data. Commonly used for communication between OS components, for queueing requests to an OS service, and for exchanging messages between components in a large program.
A pipe with a name that's permanently placed in a file system directory and the capability to communicate between processes on different computers.
Remote Procedure Call
A protocol in which a process on one machine can call a process one another machine.
Distributed Computing Environment
Standard for distributed OS services defined by the Open Group. Covers network directory services, file sharing services, RPC, remote thread execution, system security, and distributed resource management.