Midterm 1 Flashcards
(Kernel) Module
Pieces of code that can be loaded and unloaded from the kernel as needed
Aging
A solution to scheduling starvation that involves gradually increasing the priority of threads as they wait for CPU time.
Application program
A program designed for end-user execution, such as a word processor, spreadsheet, compiler, or Web browser
Application Programming Interface (API)
A set of commands, functions, and other tools that can
be used by a programmer in developing a program
Asymmetric Multiprocessing
A simple multiprocessor scheduling algorithm in which only one processor accesses the system data structures and others run user threads, reducing the need for data
sharing. A boss processor controls the system; the other processors either look to the boss for instruction or have predefined tasks.
Asynchronous cancellation
Stopping a thread from running at any point
Atomic
Cannot be interrupted by another instruction. If two instructions are called at the same time, both instructions get executed correctly
Batch interface
A method for giving commands to a computer in which commands are entered into files, and the files are executed, without any human interaction.
Binary semaphore
A semaphore of values 0 and 1 that limits access to one resource (acting similarly to a mutex lock).
Block device
An I/O device that is randomly accessible, with block-size chunks being the smallest I/O unit
Blocking
In interprocess communication, a mode of communication in which the sending process is blocked until the message is received by the receiving process or by a mailbox and the receiver blocks until a message is available. In I/O, a request that does not return until the I/O completes.
Blocking receive
A process must get a message before continuing
Blocking send
The sent message must be read by another process before the current process can continue
Bootstrap loader
The small program that loads the kernel as part of the bootstrap procedure
Bounded buffer
A buffer with a fixed size
Bounded buffer problem
Producers write to a buffer with a fixed capacity and consumers read from the buffer. Producers wait if the buffer is full and consumers wait if the buffer is empty
Bounded waiting
A practice that places limits on the time a thread or process is forced to wait for something.
BSD UNIX
A UNIX derivative based on work done at the University of California at Berkeley (UCB).
Buffering
Putting things in a buffer, a memory area that stores data being
transferred (e.g., between two devices or between a device and a process)
Bus
A communication system; e.g., within a computer, a bus connects various components, such as the CPU and I/O devices, allowing them to transfer data and commands
Busy waiting
A practice that allows a thread or process to use CPU time continuously while waiting for something. An I/O loop in which an I/O thread continuously reads status information while waiting for I/O to complete
Byte
8 bits
Cache Coherency
The coordination of the contents of caches such that an update to a value stored in one cache is immediately reflected in all other caches that hold that value.
Cache Mangement
The management of a cache’s contents
Caching
The use of temporary data storage areas to improve performance
Cancellation point
With deferred thread cancellation, a point in the code at which it is safe to terminate the thread.
Character-stream device
An I/O device that has a character (byte) as its smallest I/O unit and takes in a stream of characters
Child process
The process created when the parent process is forked
Client System
A computer that uses services from other computers (such as a web client).
Closed-Source
An operating system or other program available only in compiled binary code format.
Clustered System
A system that gathers together multiple CPUs. Clustered systems differ from multiprocessor systems in that they are composed of two or more individual system —or nodes— joined together
Command interpreter
The operating system component that interprets user commands and causes actions based on them.
CompareAndSwap operation
Compute-Server System
A server that provides an interface to which a client can send a request for an action (e.g., read data). In response, the server executes the action and sends the results to the client
Computing Core
Within a CPU, the component that executes instructions.
Condition variable
Variable in a monitor that tells the monitor to wait if it can’t continue. x.wait() to block and x.signal() to wake up another process
Condition variable signal operation
Wakes up a thread that is blocked
Condition variable wait operation
Blocks the monitor from the inside
Contention scope
If a thread has process contention scope it compete with other threads in the same process for the CPU. If the thread has system contention scope, it competes for the CPU with threads from other processes.
Context switch
The switching of the CPU from one process or thread to another; requires performing a state save of the current process or thread and a state restore of the other.
Control register
A device I/O register where commands are placed by the computer
Controller
A special processor that manages I/O devices.
Convoy effect
A scheduling phenomenon in which a number of threads wait for one thread to get off a core, causing overall device and CPU utilization to be suboptimal.
Counting semaphore
A semaphore that has a value between 0 and N, to control access to a resource with N instances.
CPU burst
Scheduling process state in which the process executes on CPU
CPU scheduler
Kernel routine that selects a thread from the threads that are ready to execute and allocates a core to that thread.
CPU utilization
How often a CPU runs a process
CPU-bound process
A process that spends more time executing on CPU than it does performing I/O.
CPU-I/O burst cycle
Processes alternate between waiting for I/O and running
Critical section
A section of code responsible for changing data that must only be executed by one thread or process at a time to avoid a race condition.
Critical section problem
The problem of only allowing one process/thread into a critical section at once
Data section
The data part of a program or process; it contains global variables
Data-in register
A device I/O register where data is placed to be sent to the device.
Data-out register
A device I/O register where data is placed by the device to be read by the computer.
Deadlock
The state in which two processes or threads are stuck waiting for an event that can only be caused by one of the processes or threads.
Default signal handler
The signal handler that receives signals unless a user-defined signal handler is provided by a process.
Deferred cancellation
A thread should only be cancelled at certain cancellation points (cancelling at an arbitrary point during execution could cause problems)
Degree of multiprogramming
The number of processes in memory
Deterministic modelling
A type of analytic evaluation that takes a particular predetermined workload and defines the performance of each algorithm for that workload.
Device driver
An operating system component that provides uniform access to various devices and manages I/O to those devices
Dining philosophers problem
Philosophers are sitting at a table and alternate between thinking and eating. They each need two chopsticks to eat and share each chopstick with the philosopher next to them. Only a certain number of philosophers can eat at once. There is a possibility of deadlock if each philosophers picks up a chopstick at the same time.
Direct communication
In interprocess communication, a communication mode in which each process that wants to communicate must explicitly
name the recipient or sender of the communication.
Direct-Memory access
A resource conserving and performance-improving operation for device controllers allowing devices to transfer large amounts of data directly to and from main memory
Dispatcher
The kernel routine that gives control of a core to the thread selected by the scheduler.
Double buffering
The copying of data twice (e.g., from a device to the kernel and then from the kernel to a process’s address space), or the
use of two buffers to decouple producers and consumers.
Dual Mode Operation
Allowing processes to run in either kernel mode or user mode
EEPROM
Electrically erasable programmable
read-only memory; a type of firmware.
Entry section
The section of code within a process that requests permission to enter its critical section.
Exception
A software-generated interrupt caused either by an error (such as division by zero or invalid memory access) or by a specific request from a user program than an operating-system service be performed
Exit section
The section of code within a process that cleanly exits the critical section.
Exponential average
Fault Tolerant
A system that can suffer a failure of any single component and still continue operation
File-Server System
A server that provides a file-system interface where clients can create, update, read, and delete fi les (e.g., a web server that delivers files to clients running web browsers)
Firmware
Software stored in ROM or EEPROM
for booting the system and managing low level hardware.
First come first served scheduling
The simplest scheduling algorithm. The thread that requests a core first is allocated the core first.
GNU General Public License (GPL)
A license agreement that codifies copylefting (allowing and requiring open sourcing of the associated programs); a common license under which free software is released
GNU/Linux
An open-source operating system composed of components contributed by the GNU foundation and Linus Torvalds, as well as many others
Graceful Degradation
The ability of a system to continue providing service proportional to the level of surviving hardware
Graphical user interface
A computer interface comprising a window system with a
pointing device to direct I/O, choose from menus, and make selections and, usually, a keyboard to enter text
Group ID
Similar to a user identifier, but used to identify a group of users to determine access rights.
Hard affinity
The situation in which an operating system allows a process’s threads to run on the same processor at all times (as opposed to being moved to various processors).
Hard real-time systems
Systems in which a thread must be serviced by its deadline; service after the deadline has expired is the same as no
service at all.
Hardware
The CPU, memory devices, input/output (I/O) devices, and any other physical components that are part of a computer.
Heap section
The section of process memory that is dynamically allocated during process run time; it stores temporary variables.
High Availability Service
Describes a service that will continue even if one or more systems in the cluster fail.
High Performance Computing
A computing facility designed for use with a large number of resources to be used by software designed for parallel operation
Homogenous / heterogeneous processors
Homogeneous- all processor cores are identical.
Heterogeneous- processor cores are different
I/O burst
Scheduling process state in which the CPU performs I/O.
I/O protection
User level code should not be able to talk directly to hardware, so all I/O instructions are privileged. If a user program tries to execute a privileged instruction, a trap is issued.
I/O-bound process
A process that spends more of its time doing I/O than doing computations
Indirect communication
Input/Output Devices
Devices that take in input or display output
Inter-process communication
Communication between processes.
Interactive Computer System
Describes a type of computing that provides direct communication between the user and the system