Module 4: Uncovering Services Provided by the OS Flashcards
control registers
registers in the CPU that are used to store control information on state of program execution (e.g. program counter and stack pointer)
data registers
registers in the CPU that are used to store the intermediate data used when executing instructions
system call
executed in kernel mode and thus requires a context switch
provide an interface for the user to interact with the OS and request functionality
each system call has a number, which is used by the system call dispatcher to lookup the code associated with the invoked system call
blocked queue
a process is placed on the blocked queue, maintained by the OS, if it is waiting for some condition to be true before it is able to proceed in its execution; one example is a process waiting for a response from an I/O devices that is not ready
TRAP call
a series of assembly instructions leading to the privilege bit being flipped in the CPU to switch it from operating in user mode to kernel mode
CPU cache
stores copies of the data that is frequently accessed by this processor
disk operation
an operation requiring a response from the external disk memory
interrupt
a notification to the OS for an event that requires servicing; the interrupt may originate from a hardware devices or software condition
interrupt identifier
used by the OS to map the interrupt notification to the appropriate handler for the event
segmentation faults
a failure that occurs when the program attempts to access a restricted portion of memory, or read/write illegally (e.g. write to a read-only location of memory)
this is a means of notifying the OS of the illegal action and results in memory protection for the machine
disk device driver
device drivers are used as an interface between the hardware and software to allow the operating system to ignore the specific details of the hardware component being used
interrupt handler
a function that is run whenever a particular type of interrupt is invoked and received by a process
pointer
store the addresses or memory locations of variables
dereferencing
use the address value from a pointer to access the data in the memory location
hardware interrupts
interrupts that are generated at the hardware level, typically in response to an external event such as a clock tick or completion of a disk request
clock pulse
all motherboards usually come with its own clock. every clock tick generates a pulse which is delivered to the OS in order to advance current time and invoke the scheduler
illegal instruction
a hardware instruction that is disallowed, for example, an instruction that cannot be run due to lack of privileges or an instruction that touches memory location that is not available to the current process
scheduler
a piece of software that resides in the OS that decides which process to run next
interrupt service routine
whenever a hardware interrupt arrives, it is delivered to the OS where there is a piece of software called the interrupt service routine that decides how to handle the interrupt. this is analogous to the signal handler
custom handlers
signal handlers that are provided in user space and are customized by the application for handling the particular signal
default handlers
signal handlers that are default in the OS
signal relaying
sending one signal from one process to another through the kernel
preemptible signal handlers
when a signal handler is running and a new signal arrives, rather than complete running the signal, if the handler is “preemptible”, it means we can stop the current handler and deal with the signal first
signal blocking
a signal being buffered and delayed at the OS and not delivered to the process until it is explicitly unblocked