is associated with the operating system but are not necessarily part of the kernel
Back
Direct memory access
Front
allows data to be sent directly from an attached device, such as a disk drive, to the memory on the computer's motherboard
Back
context switch
Front
State save of the current process and state restore of a different process
Back
user mode
Front
non-privileged mode in which each process starts out; forbidden for these processes to access portions of memory that have been allocated to the kernel or to other programs
Back
Swapping
Front
processes are swapped in and out of main memory to the disk
Back
Asymmetric multiprocessing
Front
multiprocessor systems in which each processor is assigned a specific task
Back
Instruction register
Front
the part of a CPUs control unit that holds the instruction currently being executed or decoded
Back
kernel mode
Front
has root privileges, permission o access any memory space
Back
MMU (Memory Management Unit)
Front
a hardware component that handles all memory and caching operations associated with the processor; responsible for all aspects of memory management
Back
NVRAM
Front
nonvolatile RAM; DRAM with battery backup power; nonvolatile as long as the battery lasts
Back
Magnetic disk
Front
provides storage for programs and data using magnetic storage to store and retrieve digital information using one or more rigid and rapidly rotating disks
Back
Interrupt
Front
signals the occurrence of an event that needs immediate attention
Back
Minicomputer
Front
a computer of medium power, more than a microcomputer but less than a mainframe
Back
Volatile
Front
able to change
Back
Solid-state disks
Front
nonvolatile; faster than hard disks
Back
ROM
Front
read-only memory; non-volatile memory
Back
process control block
Front
The data structure used by the operating system to manage information about a process and its state
Back
Mainframe
Front
a large high-speed computer, especially one supporting numerous workstations or peripherals
Back
Symmetric multiprocessing
Front
multiprocessor system in which each processor performs all tasks including operating system functions and user processes.
Back
Multicore
Front
multiple processors on a single chip, which is faster than between chip communication and uses less power
Back
Virtual memory
Front
a technique that allows the execution of a process that is not completely in memory
Back
Hot-standby mode
Front
system only monitors the active server, in case the running server fails, than server in this mode takes over
Back
Middleware
Front
a set of software frameworks that provide additional services to application developers
Back
Nonvolatile storage
Front
does not lose its contents without power
Back
Kernel
Front
the operating system running at all times on the computer
Back
Firmware
Front
permanent software programmed into read-only memory
Back
Bootstrap program
Front
the initial program run when the computer starts which initializes all aspects of the system from CPU registers to device controllers to memory contents; must know how to load the OS and how to start executing that system
Back
Asymmetric clustering
Front
one system is in hot-standby mode while the other is running the application
Back
Workstations
Front
a personal minicomputer connected to networks of other personal computers and servers
Back
Response time
Front
the time taken for a circuit or measuring device, when subjected to a change in input signal, to change its state by a specified fraction of its total response to that change
Back
Physical memory
Front
an actual device holding memory
Back
RAM
Front
random access memory; any byte of memory can be accessed without touching the preceding bytes; retains data bits in its memory as long as power is being supplied (static)
Back
Interrupt driven
Front
if there are no interrupts, an OS will sit quietly waiting for something to happen
Back
Interrupt vector
Front
an array of addresses pointing to interrupt routines; this speeds up the handling of interrupts by providing an address book where the interrupt can quickly and accurately transfer to control to the appropriate interrupt service routine
Back
DRAM
Front
dynamic random access memory; needs to be periodically refreshed or it will lose its contents
Back
Moore's law
Front
predicted the number of transistors on an integrated circuit would double every eighteen months
Back
Servers
Front
manages access to a centralized resource or service in a network
Back
Logical memory
Front
a translation of memory to a physical device
Back
Symmetric clustering
Front
two or more hosts are running applications and are monitoring each other
Back
EEPROM
Front
electrically erasable programmable read-only memory; read-only memory whose contents can be erased and reprogrammed using a pulsed voltage
Back
program counter
Front
a register in a computer processor that contains the address of the instruction being executed at the current time
Back
System processes
Front
another term for system daemons
Back
Device driver
Front
used by device controllers to manage I/O; provides a uniform interface between the kernel and the controller
Back
Von Neumann Architecture
Front
modern computer structure consisting of four subsystems: memory, I/O, arithmetic logic unit, and control unit, and the stored program concept and sequential execution of instructions concept
Back
Multiprocessor systems
Front
Computer systems with two or more processors in close communication, sharing computer bus and sometimes the clock, memory and peripheral devices
Back
Trap (exception)
Front
a software-generated interrupt caused either by an error or by a specific request from a user program that an OS service be performed
Back
System daemons
Front
a computer program that runs as a background process rather than being under the direct control of an interactive user
Back
System call
Front
an operation that software calls to trigger an interrupt
Back
Monitor call
Front
another term for system call
Back
Secondary storage
Front
must be able to hold large quantities of data permanently (nonvolatile)
Back
Section 2
(50 cards)
bash
Front
bourne again shell
Back
green threads
Front
a thread system implemented entirely at user-level without any reliance on operating system kernel services, other than those designed for single-threaded processes
Back
CPU register
Front
Internal memory in the CPU. These store information that the arithmetic and logic units need to carry out the current instruction.
Back
race condition
Front
an erroneous condition where the output of a function depends on the temporal order of events
Back
client-server
Front
A network architecture in which a system is divided between server tasks performed on the instructions received from clients, requesting information.
Back
process
Front
an instance of a running program on a computer; a unit of activity characterized by a single sequential thread of execution, a current state, and an associate set of allocated system resources
Back
semaphore
Front
a variable or abstract data type used to control access to a common resource by multiple processes in a concurrent system
Back
stack
Front
first in last out
Back
process identifier (PID)
Front
Most operating systems (including UNIX, Linux, and Windows) identify processes according to a unique integer number
Back
two-level model
Front
A variation on the many-to-many model that multiplexes many user-level threads to a smaller or equal number of kernel threads but also allows a user-level thread to be bound to a kernel thread.
Back
multithreaded
Front
Describes a program that is designed to have parts of its code execute concurrently
Back
bounded buffer
Front
problem for concurrent programming, arises from a situation when there is a speed disparity between processes, so data must be buffered between them; the producer is most often faster than the consumer
Back
user thread
Front
managed without kernel support and can be implemented on OS's that don't support threads. faster and more efficient than the other kind
Back
shared memory
Front
the memory that can be simultaneously accessed by multiple processes
Back
ordinary pipes
Front
allow two processes to communicate in standard producer-consumer fashion: the producer writes to one end of the pipe (the write-end) and the consumer reads from the other end
parent/child relationship
Back
sh
Front
bourne shell
Back
orphan
Front
a process whose parent process has finished executing or terminated, this child process is then reclaimed by init
Back
sandboxing
Front
A form of software virtualization that lets programs and processes run in their own isolated virtual environment; in a browser, each tab & plugin run in its own address space, use IPC to communicate to main controller
Back
kernel thread
Front
The scheduler may decide to give more time to a processes that has a large number of these threads than a process that has a small number of threads, increasing efficiency
Back
bootstrap program
Front
A program stored in ROM that loads and initializes the operating system on a computer
Back
fork()
Front
returns 0 to indicate child process, returns the pid of the child to indicate parent process
Back
policy
Front
determines what will be done, more volatile
Back
csh
Front
C shell
Back
system calls
Front
the programmatic way in which a computer program requests a service from the kernel of the operating system it is executed on
Back
Cache management
Front
careful selection of the cache size and of a replacement policy can result in greatly increased performance
Back
Message passing
Front
in which packets of information in predefined formats are moved between processes by the operating system
Back
data parallelism
Front
distributing subsets of data across multiple processors
Back
Shared memory
Front
two or more processes read and write to a shared section of memory
Back
many-to-many model
Front
many kernel threads to many user threads
Back
Long-term scheduler/Job scheduler
Front
selects processes from this pool and loads then into memory for execution
Back
mechanism
Front
determines how to do something, less volatile
Back
one-to-one model
Front
one kernel thread to one user thread
Back
Caching
Front
faster storage system that keeps things on a temporary basis
Back
message passing
Front
allows multiple processes to read and write data to the message queue without being connected to each other. Messages are stored on the queue until their recipient retrieves them
Back
cascading termination
Front
The technique of terminating all child processes when a parent process terminates
Back
task parallelism
Front
threads working on shared data
Back
named pipes
Front
can be accessed without a parent-child relationship, can go two ways
Back
Short-term scheduler/CPU scheduler
Front
selects from among the processes that are ready to execute and allocates the CPU to one of them.
Back
nash
Front
not a shell
Back
WORM
Front
write once read many times
Back
system call interface
Front
the border between user mode and kernel mode that handles system calls
Back
mutex lock
Front
a program object that is created so that multiple program thread can take turns sharing the same resource
Back
ksh
Front
korne shell
Back
critical section
Front
a section of code that has a race-hazard in it, such that by preventing the interleaving of any other dependent code, the race condition will be avoided
Back
blocking
Front
a process waiting for some event, such as a resource becoming available or the completion of an I/O operation
Back
many-to-one model
Front
many user threads to one kernel thread
Back
Cache coherency
Front
a copy of A may exist simultaneously in several caches. Since the various CPUs can all execute in parallel, we must make sure that an update to the value of A in one cache is immediately reflected in all other caches where A resides.
Back
Context switch
Front
switching the CPU to another process requires performing a state save of the current process and a state restore of a different process
Back
zombie
Front
a process whose parent does not use the wait system call after a child dies to read its exit status
Back
Amdahl's law
Front
A system's speed is determined by its portion of code needed to be run serially
speedup <= 1 / (S + (1-S)/N)
Back
Section 3
(50 cards)
gdb
Front
GNU debugger
Back
cat
Front
concatenate files and print on the standard output
Back
|
Front
output of a command as an input to another command (pipe)
Back
mkdir
Front
make directory
Back
Types of System Calls
Front
process control
file management
device management
information maintenance
communications
Back
Shell Process Steps
Front
shell startup
cmd prompt
waits for input
parses input, interprets it
returns to cmd prompt
Back
OS Common Functionality
Front
Multiprogramming
Process management
memory management
storage management
protection and security
Back
CPU
Front
Central Processing Unit; the brain of the computer.
Back
vi
Front
text editor (visual editor)
Back
OS application layer
Front
the libraries that are needed to run programs in that OS
Back
man
Front
manual
Back
context-switch
Front
The exchange of register information that occurs when one process is removed from the CPU and another takes its place
Back
multitasking
Front
the OS is responsible for suspending running processes
Back
pwd
Front
print working directory
Back
&
Front
job control
Back
Non-Blocking I/O
Front
returns immediately, indicating that data was read, or that the device was not ready. The process does not block
Back
process isolation
Front
technique to prevent and protect a process from inadvertent or malicious modification of its state by another process
Back
<
Front
takes input from file
Back
Multiprogramming Problems
Front
Improper process synchronization
Failed mutual exclusion between processes
Non-deterministic process execution
Process deadlocks
Back
Process
Front
Unit of activity characterized by a single sequential thread of execution, a current state, and an associate set of allocated system resources
Back
ls
Front
list files in directory
Back
cut
Front
remove sections from each line of files
Back
IPC
Front
Inter Process Communication
Back
process silo
Front
grants each program the appearance of running on the hardware as if it were the only program on the system
Back
Thirteen Layers of an OS
Front
shell
user processes
directories
devices
file system
communications
virtual memory
local secondary sore
primitive processes
interrupts
procedures
instruction set
electronic circuits
Back
gdb watch
Front
watch for a variable change
Back
ash
Front
almquist shell
Back
OS scheduler
Front
handles the removal of the running process from the CPU and the selection of another process on the basis of a particular strategy; chooses the next runnable process
Back
cut --characters=LIST
Front
remove only these characters from a file
Back
mv
Front
move a file or directory
Back
ps
Front
list processes
Back
Kernel Startup Steps
Front
setup hardware for OS
enter protected mode
initialize internal structures
find and load its first program
Back
Process States
Front
New
Running
Waiting
Ready
Terminated
Back
Waiting
Front
process made a system call, result is not yet available
Back
thread
Front
a single stream of instructions being fetched by the processor
only has one process identifier, PCB, memory address space, PC
Back
valgrind
Front
Tool to find memory issues
Back
who
Front
show who is logged on
Back
gcc
Front
compilation of a C program
Back
rm
Front
remove file
Back
heap memory
Front
an area of memory used for dynamic allocations, meaning that blocks of memory can be allocated and freed in an arbitrary order and accessed multiple times
Back
whoami
Front
print your userid
Back
>
Front
redirects output to a text file, stderr, etc.
Back
multiple-processes
Front
an alternative to non-blocking I/O
A parent process can spawn new processes to handle the work loads
Parent manages the workers
Back
multiprogramming
Front
admitting multiple processes to run-queue and switching between them giving the appearance that more than one program is running at the same time
Back
Operating System
Front
Create a program environment that gives the illusion that there is one program running on the system, and that that program has full control of the system, and is independent (or partially so) from all other programs running on the system
Back
grep
Front
searches for a pattern in each file1 file2 file3
Back
OS user-interfaces
Front
command line, GUIs, and required frameworks
Back
computer components
Front
CPU
Memory
Storage
Busses
Controllers
Interface Boards
User Hardware
Back
less
Front
opposite of more
Back
data memory
Front
the register of a CPU that contains the data to be stored in the computer storage (e.g. RAM), or the data after a fetch from the computer storage.
Back
Section 4
(17 cards)
Parts of a Critical Section Solution
Front
Mutual Exclusion
Progress
Bounded Waiting
Back
DeMorgan's Theorem
Front
~(p ^ q) = ~p v ~q
Back
deterministic computing
Front
the state of the computation is closed over the function, input, and output - the entire state of the computation can be described, and from that state, the next state of the computation can exactly be described
Back
thread pools
Front
spawning many threads can overwhelm scheduling resources and drag down system performance, instead, a pool of available workers can be allocated
Back
implicit threading
Front
Creation and management of threads done by compilers and run-time libraries rather than programmers
Back
mergesort in parallel
Front
can be run in parallel, but math has to determine the optimum number of threads for the data size in question
Back
I/O bound process
Front
a process that spends more of tis time doing I/O than it spends doing computations
Back
critical race condition
Front
the order of events DOES change the eventual output state of the computation
Back
CPU bound process
Front
a process that generates I/O requests infrequently, using more of its time doing computations
Back
multithreaded programming issues
Front
simultaneous multithreading
dividing work
balancing workload
data dependencies
testing and debugging
Back
non-critical race condition
Front
the order of events does change the internal state of the computation; but not the final, eventual, output state of the computation
Happens in almost all concurrent code. The scheduling of cooperating process invariably creates different states of the computation - but they don't change the final output