Section 1

Preview this deck

Hardware Abstraction Layer (HAL)

Front

Star 0%
Star 0%
Star 0%
Star 0%
Star 0%

0.0

0 reviews

5
0
4
0
3
0
2
0
1
0

Active users

0

All-time users

0

Favorites

0

Last updated

6 years ago

Date created

Mar 1, 2020

Cards (91)

Section 1

(50 cards)

Hardware Abstraction Layer (HAL)

Front

A module in the operating system that hides the specifics of different hardware implementations. Above this layer, the operating system is portable

Back

efficiency

Front

The lack of overhead in implementing an abstraction.

Back

stack pointer

Front

A value denoting the most recently allocated address in a stack that shows where registers should be spilled or where old register values can be found.

Back

Interrupt handler

Front

A kernel procedure invoked when an interrupt occurs

Back

privileged instruction

Front

Instruction available in kernel mode but not in user mode.

Back

utilization

Front

The fraction of time a resource is busy.

Back

Program Counter (PC)

Front

The register that contains the address of the next instruction to be executed

Back

nested interrupts

Front

occur when an interrupt handler interrupts itself

Back

Batch Operating System

Front

An early type of operating system that efficiently ran a queue of tasks. While one program was running, another was being loaded into memory.

Back

Availability

Front

The percentage of time that a system is usable.

Back

Monolithic kernel

Front

An operating system design where most of the operating system functionality is linked together inside the kernel.

Back

Virtual Machine

Front

An execution context provided by an operating system that mimics a physical machine, e.g., to run an operating system as an application on top of another operating system.

Back

processor status register

Front

A hardware register containing flags that control the operating of the processor, including the privilege level.

Back

kernel execution mode

Front

The processor executes in an unrestricted mode that gives the operating system full control over the hardware.

Back

interrupt masking

Front

Where the hardware provides a privileged instruction to temporarily defer delivery of an interrupt until it is sage to do so.

Back

Host Operating System

Front

An operating system that provides the abstraction of a virtual machine, to run another operating system as an application.

Back

return from interrupt instruction

Front

The return value is the location of the interrupting program.

Back

Privacy

Front

Data stored on a computer is only accessible to authorized users.

Back

Security

Front

A computer's operation cannot be compromised by a malicious attacker.

Back

interrupt vector table

Front

A table of pointers in the operating system kernel, indexed by the type of interrupt, with each entry pointing to the first instruction of a handler procedure for that interrupt.

Back

Application Programming Interface (API)

Front

The system call interface provided by an operating system to applications.

Back

predictability

Front

Whether a system's response time is consistent over time.

Back

hardware timer

Front

A hardware device that can cause a processor interrupt after some delay, either in time or in instructions executed.

Back

Virtualization

Front

Provide an application with the illusion of resources that are not physically present.

Back

Response time

Front

The time for a task to complete, from when it starts until it is done.

Back

polling

Front

An alternative to hardware interrupts, where the processor waits for an asynchronous event to occur, by looping, or busy-waiting, until the event occurs.

Back

Open System

Front

A system whose source code is available to the public for modification and reuse, or a system whose interfaces are defined by a public standards process.

Back

system call interrupt

Front

A signal to hardware that changes the processor mode from user to kernel and starts executing in the kernel at a pre-defiled handler.

Back

Time-Sharing Operating System

Front

An operating system designed to support interactive use of the computer.

Back

Reliability

Front

A property of a system that does exactly what it is designed to do.

Back

Protection

Front

The isolation of potentially misbehaving applications and users so that they do not corrupt other applications or the operating system itself.

Back

Operating system kernel

Front

The kernel is the lowest level of software running on the system, with full access to all of the capabilities of the hardware.

Back

throughput

Front

The rate at which a group of tasks are completed.

Back

BIOS ROM

Front

A type of computer chip where instructions for starting up the computer are stored.

Back

microkernel

Front

An operating system design where the kernel itself is kept small, and instead most of the functionality of a traditional operating system kernel is put into a set of user-level processes, or servers, accessed from user applications via interprocess communication.

Back

bootstrap loader (bootloader)

Front

Program stored at a fixed position on disk (or flash RAM) to load the operating system into memory and start executing it.

Back

dynamically loadable device driver

Front

Software to manage a specific device, interface, or chipset, added to the operating system kernel after the kernel starts running

Back

Dual Mode Execution

Front

Hardware processor that has (at least) two privilege levels: one for executing the kernel with complete access to the capabilities of the hardware and a second for executing user code with restricted rights.

Back

Operating System

Front

A layer of software that manages a computer's resources for its users and their applications.

Back

user stack

Front

The stack for managing processes in user mode.

Back

Guest Operating System

Front

An operating system running in a virtual machine.

Back

Proprietary System

Front

A system that is under the control of a single company; it can be changed at any time by its provider to meet the needs of its customers.

Back

Principle of Least Privilege

Front

System security and reliability are enhanced if each part of the system has exactly the privileges it needs to do its job and no more.

Back

portability

Front

The ability of software to work across multiple hardware platforms.

Back

interrupt stack

Front

A region for holding the stack of the kernel's interrupt handler. When an interrupt, processor exception, or system call trap causes a context switch into the kernel, the hardware changes the stack pointer to point to the base of the kernel's interrupt stack.

Back

interrupt

Front

An asynchronous signal to the processor that some external event has occurred that may require its attention.

Back

exception

Front

A hardware event caused by user program behavior that causes a transfer of control to a kernel handler.

Back

User execution mode

Front

The processor operates in a restricted mode that limits the capabilities of the executing process.

Back

Resource

Front

A physical or virtual entity that can be assigned to a user or application.

Back

Overhead

Front

The added resource cost of implementing an abstraction versus using the underlying hardware resources directly.

Back

Section 2

(41 cards)

heap

Front

Space to store dynamically allocated data structures.

Back

UNIX fork()

Front

creates a complete copy of the parent process. The child process sets up privileges, priorities, and I/O for the program that is about the be started by closing some files, opening others, reducing its priority if it is to run in the background, etc. Because the child runs the same code as the parent, it can be trusted to set up the context for the new program correctly. Takes no arguments and returns an integer

Back

thread join

Front

wait for thread to finish if it has not already done so; then return the value passed to thread_exit by that thread. Note that thread_join may be called only once for each thread

Back

scheduler activations

Front

A multiprocessor scheduling policy where each application is informed of how many processors it has been assigned and whenever the assignment changes.

Back

event-driven programming

Front

A coding design pattern where a thread spins in a loop; each iteration gets and processes the next I/O event.

Back

UNIX exec()

Front

brings the new executable image into memory and starts it running. Takes 2 arguments (the name of the program to run and an array of arguments to pass to the program)

Back

UNIX wait()

Front

pauses the parent until the child finishes, crashes, or is terminated. Parameterized with the process ID of the child.

Back

client/server design pattern

Front

two-way communication between processes, where the client sends requests to the server to do some task, and when the operation is complete, the server replies back to the client

Back

running list

Front

the set of threads running on a processor. Note: a thread that is running is not in the ready list.

Back

thread state

Front

Init, Ready, Running, Waiting, Finished, TCB is data structure that represents a thread's state

Back

thread scheduler

Front

Software that maps threads to processors by switching between running threads and threads that are ready but not running.

Back

program

Front

A set of instructions

Back

waiting list

Front

The set of threads that are waiting fora synchronization event or timer expiration to occur before becoming eligible to be run.

Back

child process

Front

process being created by the parent

Back

thread create

Front

create a new thread, storing information about it in thread. Concurrently with the calling thread, thread executes the function func with the argument arg

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

kernel stack

Front

The stack used to manage the memory while in kernel-mode.

Back

command interpreter

Front

a job control system implemented as a user-level process. When a user types a command to the shell, it creates a process to run the command

Back

parent process

Front

a process that creates another process

Back

system call library routine

Front

A system call is a procedure provided by the kernel that can be called from user level. Library routines are common functions that invoke system calls.

Back

involuntary thread context switch

Front

an interrupt or processor exception could invoke an interrupt handler. Interrupt hardware saves state of the running thread and executes the handler's code. Handler can decide that some other thread should run and then switch to it. Or, if current thread should continue running, handler restores the state of the interrupted thread and resumes execution

Back

stub function

Front

sets registers to pass appropriate system call identification and any parameters (eg size, address). Trap is an intentional interrupt.

Back

TCB (thread control block)

Front

the operating system data structure containing the current state of a thread

Back

asynchronous I/O

Front

A design pattern for system calls to allow a single-threaded process to make multiple concurrent I/O requests. When the process issues an I/O request, the system call returns immediately. The process later on receives a notification when the I/O completes.

Back

producer/consumer design pattern

Front

programs are structured to accept as input the output of other programs

Back

continuation

Front

A data structure used in event-driven programming that keeps track of task's current state and its next step

Back

fork/join concurrency

Front

a type of parallel programming where threads can be created (forked) to do work in parallel with a parent thread; a parent may asynchronously wait for a child thread to finish (join)

Back

finished list

Front

The set of threads that are complete but not yet de-allocated, e.g., because a join may read the return value from the thread control block.

Back

process

Front

The execution of an application program with restricted rights -- the abstraction for protection provided by the operating system kernel.

Back

processor sleep mode

Front

Low power mode for the processor where processes aren't running.

Back

time of check vs. time of use (TOCTOU)

Front

A security vulnerability arising when an application can modify the user memory holding a system call parameter (such as a file name), after the kernel checks the validity of the parameter, but before the parameter is used in the actual implementation of the routine. Often abbreviated TOCTOU.

Back

PCB (Process Control Block)

Front

A data structure that stores all the information the operating system needs about a particular process: e.g, where it is stored in memory, where its executable image is on disk, which user asked it to start executing, and what privileges the process has.

Back

voluntary thread context switch

Front

thread could call a thread library function that triggers a context switch. Most thread libraries provide a thread_yield call that lets the currently running thread voluntarily give up the processor to the next thread on the ready list. One thread explicitly yields the CPU to another

Back

thread context switch

Front

Suspend execution of a currently running thread and resume execution of some other thread.

Back

ready list

Front

The set of threads that are ready to be run but which are not currently running

Back

idle thread

Front

If no thread is ready, dispatcher will execute a special thread called this. Also has low priority

Back

thread

Front

A single execution sequence that represents a separately schedulable task.

Back

thread yield

Front

the calling thread voluntarily gives up the processor to let some other thread(s) run. The scheduler can resume running the calling thread whenever it chooses to do so

Back

thread metadata

Front

information for managing the thread

Back

multithreaded process

Front

A process with multiple threads.

Back

thread exit

Front

finish the current thread. Store the value ret in the current thread's data structure. If another thread is already waiting in a call to thread_join, resume it

Back