M4: Uncovering Services Provided by the Operating System Flashcards
Control registers
Registers in the CPU that are used to store control
information on state of program execution, for example, the 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 call 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 device that is not ready
TRAP call
a series of assembly instructions leading to he privilege bit being flipped in the CPU to switch it from operating in user mode to kernel mode
CPU cache
stores copies 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 device or software condition
Interrupt identifier
used by the OS to map the interrupt notification to the
appropriate handler for the event
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
Segmentation faults (C programming):
a failure that occurs when the program
attempts to access a restricted portion or 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.
Pointer (C programming):
store the addresses or memory locations of variables
Dereferencing (C programming)
use the address value from the 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 operating system 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 scheduler that decides which process to run next.
Interrupt Service Routine
whenever a hardware interrupt arrives, it is delivered
to the operating system 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.
Hardware interrupt ID:
a unique identifier assigned to each hardware interrupt.
The interrupt service handler uses this to decide how to handle the specific interrupt.
Custom handlers
signal handlers that provided in user space and is
customized by the application for handling the particular signal.
Default handlers:
signal handlers that are default in the operating system
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 operating system and not delivered to the process until it is explicitly unblocked.
Example HW interrupts
- Clock PUlse: Time is up
- INput: e.g. Keyboard, HW signal
- Illegal Instruction
Signals for which Default Handlers cannot be overwritten
SIGKILL
SIGSTOP
Are Signal Handlers Pre-emptible
Pre-emptible = signal handler A is running, new signal received, signal handler A stopped and new signal handler is run.
Pre-emption depends. If it is for the same signal type, not, signals processed one at a time per thread. If different and higher priority, then pre-emptible
To avoid preemption, use signal blocking in handler
Are Signal Mask Process Dependent
Yes. OS needs to keep track, which signals for which process are currently allowed, not blocked. And if not blocked, shall custom or default handler take care
Advantages of process abstranction
The process abstraction allows the operating system to isolate the resources and context required to perform different tasks
Interrupts are only initiated by currently running processes.
Interrupts can be initiated by hardware, e.g. clock ticks, completion of I/O requests.