Midterm 1 Flashcards

1
Q

(Kernel) Module

A

Pieces of code that can be loaded and unloaded from the kernel as needed

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Aging

A

A solution to scheduling starvation that involves gradually increasing the priority of threads as they wait for CPU time.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Application program

A

A program designed for end-user execution, such as a word processor, spreadsheet, compiler, or Web browser

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Application Programming Interface (API)

A

A set of commands, functions, and other tools that can
be used by a programmer in developing a program

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Asymmetric Multiprocessing

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Asynchronous cancellation

A

Stopping a thread from running at any point

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Atomic

A

Cannot be interrupted by another instruction. If two instructions are called at the same time, both instructions get executed correctly

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Batch interface

A

A method for giving commands to a computer in which commands are entered into files, and the files are executed, without any human interaction.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Binary semaphore

A

A semaphore of values 0 and 1 that limits access to one resource (acting similarly to a mutex lock).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Block device

A

An I/O device that is randomly accessible, with block-size chunks being the smallest I/O unit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Blocking

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Blocking receive

A

A process must get a message before continuing

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Blocking send

A

The sent message must be read by another process before the current process can continue

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Bootstrap loader

A

The small program that loads the kernel as part of the bootstrap procedure

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Bounded buffer

A

A buffer with a fixed size

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Bounded buffer problem

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Bounded waiting

A

A practice that places limits on the time a thread or process is forced to wait for something.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

BSD UNIX

A

A UNIX derivative based on work done at the University of California at Berkeley (UCB).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Buffering

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Bus

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Busy waiting

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Byte

A

8 bits

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Cache Coherency

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Cache Mangement

A

The management of a cache’s contents

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Caching
The use of temporary data storage areas to improve performance
26
Cancellation point
With deferred thread cancellation, a point in the code at which it is safe to terminate the thread.
27
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
28
Child process
The process created when the parent process is forked
29
Client System
A computer that uses services from other computers (such as a web client).
30
Closed-Source
An operating system or other program available only in compiled binary code format.
31
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
32
Command interpreter
The operating system component that interprets user commands and causes actions based on them.
33
CompareAndSwap operation
34
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
35
Computing Core
Within a CPU, the component that executes instructions.
36
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
37
Condition variable signal operation
Wakes up a thread that is blocked
38
Condition variable wait operation
Blocks the monitor from the inside
39
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.
40
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.
41
Control register
A device I/O register where commands are placed by the computer
42
Controller
A special processor that manages I/O devices.
43
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.
44
Counting semaphore
A semaphore that has a value between 0 and N, to control access to a resource with N instances.
45
CPU burst
Scheduling process state in which the process executes on CPU
46
CPU scheduler
Kernel routine that selects a thread from the threads that are ready to execute and allocates a core to that thread.
47
CPU utilization
How often a CPU runs a process
48
CPU-bound process
A process that spends more time executing on CPU than it does performing I/O.
49
CPU-I/O burst cycle
Processes alternate between waiting for I/O and running
50
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.
51
Critical section problem
The problem of only allowing one process/thread into a critical section at once
52
Data section
The data part of a program or process; it contains global variables
53
Data-in register
A device I/O register where data is placed to be sent to the device.
54
Data-out register
A device I/O register where data is placed by the device to be read by the computer.
55
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.
56
Default signal handler
The signal handler that receives signals unless a user-defined signal handler is provided by a process.
57
Deferred cancellation
A thread should only be cancelled at certain cancellation points (cancelling at an arbitrary point during execution could cause problems)
58
Degree of multiprogramming
The number of processes in memory
59
Deterministic modelling
A type of analytic evaluation that takes a particular predetermined workload and defines the performance of each algorithm for that workload.
60
Device driver
An operating system component that provides uniform access to various devices and manages I/O to those devices
61
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.
62
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.
63
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
64
Dispatcher
The kernel routine that gives control of a core to the thread selected by the scheduler.
65
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.
66
Dual Mode Operation
Allowing processes to run in either kernel mode or user mode
67
EEPROM
Electrically erasable programmable read-only memory; a type of firmware.
68
Entry section
The section of code within a process that requests permission to enter its critical section.
69
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
70
Exit section
The section of code within a process that cleanly exits the critical section.
71
Exponential average
72
Fault Tolerant
A system that can suffer a failure of any single component and still continue operation
73
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)
74
Firmware
Software stored in ROM or EEPROM for booting the system and managing low level hardware.
75
First come first served scheduling
The simplest scheduling algorithm. The thread that requests a core first is allocated the core first.
76
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
77
GNU/Linux
An open-source operating system composed of components contributed by the GNU foundation and Linus Torvalds, as well as many others
78
Graceful Degradation
The ability of a system to continue providing service proportional to the level of surviving hardware
79
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
80
Group ID
Similar to a user identifier, but used to identify a group of users to determine access rights.
81
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).
82
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.
83
Hardware
The CPU, memory devices, input/output (I/O) devices, and any other physical components that are part of a computer.
84
Heap section
The section of process memory that is dynamically allocated during process run time; it stores temporary variables.
85
High Availability Service
Describes a service that will continue even if one or more systems in the cluster fail.
86
High Performance Computing
A computing facility designed for use with a large number of resources to be used by software designed for parallel operation
87
Homogenous / heterogeneous processors
Homogeneous- all processor cores are identical. Heterogeneous- processor cores are different
88
I/O burst
Scheduling process state in which the CPU performs I/O.
89
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.
90
I/O-bound process
A process that spends more of its time doing I/O than doing computations
91
Indirect communication
92
Input/Output Devices
Devices that take in input or display output
93
Inter-process communication
Communication between processes.
94
Interactive Computer System
Describes a type of computing that provides direct communication between the user and the system
95
Interrupt
A hardware mechanism that enables a device to notify the CPU that it needs attention.
96
Interrupt priority level
Prioritization of interrupts to indicate handling order
97
Interrupt vector
An operating-system data structure indexed by interrupt address and pointing to the interrupt handlers. A kernel memory data structure that holds the addresses of the interrupt service routines for the various devices
98
Interrupt-handler routine
An operating system routine that is called when an interrupt signal is received.
99
Interrupt-request line
The hardware connection to the CPU on which interrupts are signaled
100
Job Pool
The location where jobs are kept on disk while waiting for main memory to become available
101
Job Scheduling
The task of choosing which jobs to load into memory and execute.
102
Kernel
The operating system component running on the computer at all times after system boot
103
Kernel Mode
A CPU mode in which all instructions are enabled. The kernel runs in this mode
104
Kernel threads
Threads running in kernel mode
105
Layered approach (to OS structure)
A kernel architecture in which the operating system is separated into a number of layers (levels); typically, the bottom layer (layer 0) is the hardware, and the highest (layer N) is the user interface.
106
Load ballancing
The movement of jobs or network packets between various components (say, computers in a network) to distribute the load or route around failures. Load balancing attempts to keep the workload evenly distributed across all processors in an SMP system.
107
Local Area Network (LAN)
A network that connects computers within a room, a building, or a campus.
108
Magnetic Disk
A storage location using magnetic tape to store data
109
Mainframe
The largest class of computers (along with supercomputers), hosting hundreds of users and many and/or large jobs
110
Many-to-many model
Smaller number of kernel level threads mapped to more user level threads
111
Many-to-one model
Lots of user level threads executed via a single kernel thread
112
Maskable interrupt
Describes an interrupt that can be delayed or blocked (such as when the kernel is in a critical section).
113
Memory
Volatile storage within a computer system
114
Memory barrier
Computer instructions that force any changes in memory to be propagated to all other processors in the system.
115
Memory model
Computer architecture memory guarantee, usually either strongly ordered or weakly ordered.
116
Memory stall
An event that occurs when a thread is on CPU and accesses memory content that is not in the CPU’s cache. The thread’s execution stalls while the memory content is fetched.
117
Memory-mapped I/O
A file-access method in which a file is mapped into the process memory space so that standard memory access instructions read and write the contents of the fi le; an alternative to the use of read() and write() calls
118
Message passing
In interprocess communication, a method of sharing data in which messages are sent and received by processes. Packets of information in predefi ned formats are moved between processes or between computers.
119
Microkernel
An operating-system structure that removes all nonessential components from the kernel and implements them as system and userlevel programs.
120
Minicomputer
A mid-sized computer, smaller than a mainframe but larger (in resources and users) than a workstation.
121
Mode Bit
A CPU status bit used to indicate the current mode: kernel (0) or user (1)
122
Monitor
A high-level language synchronization construct that protects variables from race conditions.
123
Muliprogramming
A technique that increases CPU utilization by organizing jobs (code and data) so that the CPU always has a job to execute.
124
Multi-threaded process
A term describing a process or program with multiple threads of control, allowing multiple simultaneous execution points
125
Multicore processor
Multiple processing cores within the same CPU chip
126
Multilevel feedback queue scheduling algorithm
A scheduling algorithm that allows a process to move between queues.
127
Multiprocessor System
Systems that have two or more hardware processors (CPU cores) in close communication, sharing the computer bus and sometimes the clock, memory, and peripheral devices.
128
Mutual exclusion
A property according to which only one thread or process can be executing code at once.
129
Network
In the simplest terms, a communication path between two or more systems.
130
New (process state)
A process starts in the new state when it is created, before it is ready to run
131
Non-blocking send
A process/thread will try to send a message multiple times if needed, instead of blocking
132
Non-preemptive scheduler
The scheduler does not stop a process from running if it has started
133
Non-voluntary (context switch)
The CPU forces a context switch if a process doesn't give up the CPU automatically
134
Nonmaskable interrupt
An interrupt that cannot be delayed or blocked (such as an unrecoverable memory error)
135
Nonvolatile Storage
Storage in which data will not be lost in a power outage or similar event
136
NVRAM
DRAM with battery or other backup power, rendering it nonvolatile
137
One-to-many model
One user level thread to many kernel level threads
138
Open Source Operating Systems
An operating system or other program available in source-code format rather than as compiled binary code.
139
Operating System
A program that manages a computer’s hardware, provides a basis for application programs, and acts as an intermediary between the computer user and the computer hardware
140
Parallelization
The process of dividing a program into separate components that run in parallel on individual cores in a computer or computers in a cluster.
141
Parent process
A process that creates a child process
142
Peterson's solution
A solution to the critical sections problem that used to work but does not work anymore. It has busy waiting, has to be extended for each additional thread, and might not actually work.
143
Polling
An I/O loop in which an I/O thread continuously reads status information waiting for I/O to complete.
144
Preemptive scheduler
The scheduler will stop a process from running if another process is ready to run and has higher priority
145
Priority inheritance
A low priority process briefly gets high priority if a high priority process needs the lower priority process in order to run
146
Priority inversion
When a low or medium priority level process doesn't run, so it prevents a higher priority process from running
147
Priority scheduling
A scheduling algorithm in which a priority is associated with each thread and the free CPU core is allocated to the thread with the highest priority.
148
Privileged Instruction
Instructions that can execute only if the CPU is in in kernel mode
149
Process
A program loaded into memory and executing.
150
Process contention scope
Threads compete for the CPU with other threads from the same process
151
Process context
The current running process and its state
152
Process control block
A per-process kernel data structure containing many pieces of information associated with the process.
153
Process dispatch
The dispatcher plugs in the state of a given process during a context switch
154
Process scheduler
A scheduler that selects an available process (possibly from a set of several processes) for execution on a CPU.
155
Process scheduling
Choosing which processes will run and in what order they will run
156
Process state
Information about the process such as what code its running and the values of variables
157
Process synchronization
Coordination of access to data by two or more threads or processes.
158
Processor affinity
A kernel scheduling method in which a process has an affinity for (prefers) the processor on which it is currently running.
159
Program counter
A CPU register indicating the main memory location of the next instruction to load and execute.
160
Programmable interval timer
A hardware timer provided by many CPUs.
161
Programmed I/O
A method of transferring data between a CPU and a peripheral device in which data are transferred one byte at a time
162
Progress
Processes make progress when they are not in starvation or deadlock
163
Pthreads
The POSIX standard (IEEE 1003.1c) defining an API for thread creation and synchronization (a specification for thread behavior, not an implementation).
164
Pull migration
Migration that occurs when an idle processor pulls a waiting thread from a busy processor
165
Push migration
Migration in which a task periodically checks the load on each processor and, if it finds an imbalance, evenly distributes the load by moving (or pushing) threads from overloaded to idle or less busy processors.
166
Queueing models
Mathematical models of process behavior used to derive expected performance
167
Race condition
When the correctness of the program depends on the timing of execution
168
Random Access Memory (RAM)
Rewritable memory, also called main memory. Most programs run from RAM, which is managed by the kernel
169
Read-Only Memory (ROM)
A storage device whose contents are not modifiable.
170
Readers-writers problem
Synchronization problem
171
Ready (process state)
When a process is waiting to execute
172
Ready queue
The set of processes ready and waiting to execute.
173
Real Time Operating System
Systems used when rigid time requirements have been placed on the operation of a processor or the flow of data; often used as control devices in dedicated applications.
174
Remainder section
Whatever code remains to be processed after the critical and exit sections.
175
Resource Utilization
The amount of a given resource (hardware or software) that is being used
176
Response time
The amount of time it takes the system to respond to user action
177
Round-robin scheduling
Each process gets a chance to run after a certain amount of time
178
Running (process state)
When a process is running on the CPU
179
Secondary Storage
A storage system capable of holding large amounts of data permanently; most commonly, HDDs and NVM devices.
180
Semaphore
An integer variable that, apart from initialization, is accessed only through two standard atomic operations: wait() and signal().
181
Semaphore signal/release operation
Increments the semaphore
182
Semaphore wait/acquire operation
Waits until the semaphore has a positive value, decrements, then proceeds
183
Server System
A system providing services to other computers (e.g., a web server).
184
Shared memory (for communication)
In interprocess communication, a section of memory shared by multiple processes and used for message passing.
185
Shell
One of the command interpreters on a system with multiple command interpreters to choose from.
186
Short-term scheduler
Decides which processes execute next on the CPU
187
Shortest remaining time scheduling
A scheduling algorithm that gives priority to the thread with the shortest remaining time until completion.
188
Signal and wait (in a monitor)
Wait by blocking inside the monitor
189
Signal-and-continue (in a monitor)
Wake up a blocked thread
190
Single-Processor System
A system with only one processor
191
Single-threaded process
A process or program that has only one thread of control (and so executes on only one core at a time).
192
Soft affinity
An operating system’s policy of attempting to keep a process running on the same processor but not guaranteeing that it will do so.
193
Soft real-time systems
Systems that provide no guarantee as to when a critical real-time thread will be scheduled; they guarantee only that the thread will be given preference over noncritical threads
194
Software interrupt/trap
An interrupt/trap that stops software from running temporarily
195
Solaris
A UNIX derivative that is the main operating system of Sun Microsystems (now owned by Oracle Corporation). There is an active open source version called Illumos
196
Spinlock
A locking mechanism that continuously uses the CPU while waiting for access to the lock.
197
Spooling
Using spools, or buffers that holds output for a device (such as a printer) that cannot accept interleaved data streams
198
Stack section
The section of process memory that contains the stack; it contains activation records and other temporary data.
199
Starvation
200
state restore (in context switch)
Copying a process’s context from its saved location to the CPU registers in preparation for continuing the process’s execution.
201
Status register
A device I/O register in which status is indicated.
202
Symmetric Multiprocessing (SMP)
Multiprocessing in which each processor performs all tasks, including operating-system tasks and user processes. Also, a multiprocessor scheduling method in which each processor is self-scheduling and may run kernel threads or user-level threads.
203
System boot
Load a boot loader from secondary storage, bootstrap loader copies kernel into memory and starts executing it, kernel initializes data structures, kernel mode starts running system utilities
204
System Call
Software-triggered interrupt allowing a process to request a kernel service
205
System program
A program associated with the operating system but not necessarily part of the kernel
206
Target thread (for cancellation)
The thread being cancelled
207
Tertiary Storage
A type of storage that is slower and cheaper than main memory or secondary storage; frequently magnetic tape or optical disk
208
Text section
The executable code of a program or process
209
Thread cancellation
Termination of a thread before it has completed.
210
Thread library
A programming library that provides programmers with an API for creating and managing threads.
211
Thread pool
A number of threads created at process startup and placed in a pool, where they sit and wait for work.
212
Thread scheduling
Deciding which thread will run at what time
213
Throughput
Generally, the amount of work done over time. In scheduling, the number of threads completed per unit time.
214
Time quantum
The amount of time a thread runs in round robin scheduling before another thread starts running
215
Time Sharing
A practice in which the CPU executes multiple jobs by switching among them, but the switches occur so frequently that the users can interact with the processes.
216
Timer Interrupt
An interrupt sent when a process has been using the CPU for too long
217
Trap
A software interrupt. The interrupt can be caused either by an error (e.g., division by zero or invalid memory access) or by a specific request from a user program that an operating-system service be performed.
218
Turnaround time
The amount of time from when a process enters the queue to when it finishes running
219
Unbounded buffer
A buffer with no practical limit on its memory size.
220
UNIX signal
One process sends a signal to another process. Signal handler is dispatched when the signal is received (upcall)
221
Upcall
A threading method in which the kernel sends a signal to a process thread to communicate an event.
222
Upcall handler
A function in a process that handles upcalls.
223
User ID
A unique numerical user identifier.
224
User interface
A method by which a user interacts with a computer.
225
User Mode
A CPU mode for executing user processes in which some instructions are limited or not allowed
226
User threads
Threads running in user mode
227
User-defined signal handler
The signal handler created by a process to provide non-default signal handling.
228
Variable Timer
A timer that can be set to different amounts of time
229
Virtual machine
The abstraction of hardware allowing a virtual computer to execute on a physical computer. Multiple virtual machines can run on a single physical machine (and each can have a different operating system).
230
Volatile Storage
Storage whose content can be lost in a power outage or similar event
231
Voluntary (context switch)
A process/thread gives up the CPU so another process can run
232
von Neumann Architecture
The structure of most computers, in which both process instructions and data are stored in the same main memory
233
Waiting (process state)
When a process is waiting for I/O
234
Waiting time
The amount of time a process spends waiting to run
235
Wide Area Network (WAN)
A network that links buildings, cities, or countries.
236
Word
A unit made up of one or more bytes. For example, a computer that has 64-bit registers and 64-bit memory addressing typically has 64-bit (8-byte) words
237
Workstation
A powerful personal computer (PC) for engineering and other demanding workloads