| Term 
 | Definition 
 
        | Rewriting a JMP instruction at the end of one program's interrupt handler to jump to the old handler |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | Allows relatively slow devices to get attention from a processor in a timely manner without polling. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | Two branches: Shared irq and interrupt. The shared irq allows the interrupt vector to be shared by other handlers, but only if all of the handlers agree to share. The shared interrupt flag keeps all interrupts masked on the processor throughout the handler's execution, and should only be used for short handlers. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | Keeps track of info pertaining to interrupt vectors in this array. |  | 
        |  | 
        
        | Term 
 
        | Removing interrupt handler |  | Definition 
 | 
        |  | 
        
        | Term 
 | Definition 
 
        | Links the interface used by the hardware to the calling convention used when compiling do_IRQ |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | Executed by the do_IRQ function. Set to stack. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | a data structure used to wrap a single handler function used as a soft interrupt handler. |  | 
        |  | 
        
        | Term 
 | Definition 
 | 
        |  | 
        
        | Term 
 | Definition 
 | 
        |  | 
        
        | Term 
 | Definition 
 | 
        |  | 
        
        | Term 
 | Definition 
 | 
        |  | 
        
        | Term 
 | Definition 
 
        | fist checks whether or not an interrupt of any type, either hard or soft, is already being executed by the processor. If so, function terminates. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | you can assign values to macros and increment them. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | Repeatedly attempts to obtain a lock by atomically reading a bit from memory and replacing that bit with a 0 (using either an instruction with a LOCK prefix or a special atomic instruction). |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | The insertion of a level of indirection between the memory address space seen by a program and the address space of the actual memory in the system. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | Addresses seen by the program |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | same as virtual addresses |  | 
        |  | 
        
        | Term 
 | Definition 
 | 
        |  | 
        
        | Term 
 
        | Memory management unit (MMU) |  | Definition 
 
        | The hardware that translates virtual addresses to physical addresses. |  | 
        |  | 
        
        | Term 
 | Definition 
 | 
        |  | 
        
        | Term 
 | Definition 
 
        | A level of virtual memory that prevents the memory used by the second program to be used by the first. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | Allows libraries to share without modifying code through library code placement in physical memory and mapping to two or more programs. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | Occurs when a system without virtual memory attempts to run more than one program at a time. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | Changing the absolute addresses used by each program back to their original location. |  | 
        |  | 
        
        | Term 
 
        | Current privilege level (CPL) |  | Definition 
 
        | Part of the processor state. Holds the present marker of privilege |  | 
        |  | 
        
        | Term 
 
        | request privilege level (RPL) |  | Definition 
 
        | In charge of accesses made to code or data, and allows code executing on behalf of less privileged code to have the hardware check to the necessary privileges for certainty rather than making all checks in software. |  | 
        |  | 
        
        | Term 
 
        | descriptor privilege level (DPL) |  | Definition 
 
        | Associated with each memory location accessed. If either the CPL or RPL is greater than the DPL, the processor generates an exception, preventing illegal access. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | A contiguous portion of an address space, such as the 32-bit space of physical addresses. |  | 
        |  | 
        
        | Term 
 
        | Global Descriptor Table (GDT) |  | Definition 
 
        | Used by any program, this table is held in a 48-bit register with a 16-bit limit. |  | 
        |  | 
        
        | Term 
 
        | Local Descriptor Table (LDT) |  | Definition 
 
        | Used within a program. Similar setup to the GDT. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | Used to cache the values stored in the GDT or LDT.  These are bits that are not directly accessible to the ISA. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | Intended to hold information pertaining to an individual program. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | When a page exists but it is not in physical memory, just present on a disk. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | Data kept on this disk comes from data that is in use, but had to be moved out of memory to make room for more data or another program. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | An encoding used for the page table, and it holds a single page to be mapped to physical memory. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | An array of page table entries that stores the mapping from virtual to physical memory of a disk. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | Organized set of page tables, with each page table represented by a page directory entry (PDE), which can indicate that the page table does not exist, or that it's not in physical memory. |  | 
        |  | 
        
        | Term 
 
        | Page Directory Base Register (PDBR) |  | Definition 
 
        | Aka Control Register 3 (CR3), this register holds the physical address of the page directory. |  | 
        |  | 
        
        | Term 
 
        | Translation lookaside buffers (TLBs) |  | Definition 
 
        | Additional hardware to cache the results of a translation. Maps a 20-bit virtual address for a program into a 20-bit physical address. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | When the access (load or store) needs a translation, even though no TLB holds the necessary mapping for an address. Control of TLB then moves to hardware or OS. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | Discarded; usually referring to translations. Occurs when the value of the PDBR is changed |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | a component that transparently stores data so that future requests for that data can be served faster |  | 
        |  |