Term
|
Definition
The CPU must wait for data to be moved from main memory to registers, or from a cache to registers. |
|
|
Term
|
Definition
A medium-speed amount of memory between main memory and registers that reduces time spent stalling. |
|
|
Term
|
Definition
Used for memory protection, holds the smallest legal physical memory address. |
|
|
Term
|
Definition
Used for memory protection, holds the size of the range. |
|
|
Term
|
Definition
Memory used in programs are symbolic and are bound to physical addresses through address binding. |
|
|
Term
Compile-Time Address Binding |
|
Definition
Can only be done if you know where the process will reside in memory, and this produces absolute code. Generally not used, since code must be recompiled if the program needs to run elsewhere. |
|
|
Term
Load-Time Address Binding |
|
Definition
Compiler generates relocatable code that allows the addresses of memory to be decided when the program is loaded into memory, but cannot be moved during execution. |
|
|
Term
Execution-Time Address Binding |
|
Definition
Done if the process can be moved during execution, most common method. |
|
|
Term
|
Definition
Code that has the memory symbols bound to physical addresses. |
|
|
Term
|
Definition
Code that allows the memory symbols to be bound to physical memory when the process is loaded. |
|
|
Term
|
Definition
The set of all logical address generated by a program. |
|
|
Term
|
Definition
The address generated by the CPU, also the one that the programmer and user think about. |
|
|
Term
|
Definition
The set of all physical addresses that hardware has access to. |
|
|
Term
|
Definition
The address loaded into the memory register. |
|
|
Term
|
Definition
The piece of hardware that translates a logical address into a physical one. |
|
|
Term
|
Definition
Turning a logical address into a physical one. Done by the MMU. |
|
|
Term
|
Definition
The base register and this are equivalent. In simple address translation schemes this is added to the logical address to get the physical address. |
|
|
Term
|
Definition
Linking all the library routines at compile time. Application code and library routines all loaded into a single load image. |
|
|
Term
|
Definition
Linking when a section of code is executed that requires library code. A stub, which points to where to find the routine, is put in the place of the actual code in the run time image. |
|
|
Term
|
Definition
Having only one copy of a library in memory at a time, so that dynamically linked processes don't all have a copy of the same library in memory. |
|
|
Term
|
Definition
Taking a process out of memory and putting it into backing store so that another process can be brought in. |
|
|
Term
|
Definition
Where swapped out processes reside. Large and reasonably fast. |
|
|
Term
Contiguous Memory Allocation |
|
Definition
A process gets consecutive blocks of memory allocated to it. |
|
|
Term
|
Definition
The chunks of memory that can be allocated to processes all have a constant size. |
|
|
Term
Variable-Sized Partitioning |
|
Definition
The chunks of memory that can be allocated to processes do not all have a constant size. |
|
|
Term
Dynamic Memory Allocation |
|
Definition
Giving processes memory as they need it during execution time. |
|
|
Term
Hole (in memory allocation) |
|
Definition
A chunk of available memory. |
|
|
Term
|
Definition
Finding the first hole that a process can fit into. |
|
|
Term
|
Definition
Finding the smallest hole that a process can fit into. |
|
|
Term
|
Definition
Finding the largest hole that a process can fit into. |
|
|
Term
|
Definition
When there are small chunks of memory that are too small to be used for anything useful as a result of dynamic memory allocation. |
|
|
Term
|
Definition
The commonly true idea that if you have an n-sized chunk of memory, eventually another n/2 of it will be lost to fragmentation. |
|
|
Term
|
Definition
When a process is allocated more memory than it needs, since the chunk it is put into may leave only a very small amount of memory behind that cannot be used for anything. |
|
|
Term
|
Definition
Moving processes in memory around to reduce external fragmentation and create more useful memory. |
|
|
Term
|
Definition
A memory-management scheme that allows physical address space of a process to be noncontiguous. Logical addresses have a page number and offset that is used to determine that physical address. |
|
|
Term
|
Definition
Blocks of logical memory. |
|
|
Term
|
Definition
Fixed-sized blocks of physical memory. |
|
|
Term
|
Definition
The page number that is used as an index into a page table. |
|
|
Term
|
Definition
The distance from that start of a frame that the physical address for a logical address is. |
|
|
Term
|
Definition
Contains the base address of each page in physical memory. |
|
|
Term
|
Definition
Contains information about which frames are mapped. |
|
|
Term
|
Definition
A pointer to the page table. |
|
|
Term
Page-Table Length Register |
|
Definition
Indicates the size of the page table to verify that the address is in the valid range for a process. |
|
|
Term
Translation Look-Aside Buffer |
|
Definition
Associative, high-speed memory that allows very fast translations. |
|
|
Term
|
Definition
A hit is when the desired page is in the TLB, and a miss is when it's not. |
|
|
Term
|
Definition
The percentage of times that a particular page number is found in the TLB. |
|
|
Term
|
Definition
Clearing the TLB whenever the process switches, in order to ensure that the executing process does not use the wrong translation information. |
|
|
Term
|
Definition
Data stored in the TLB to show which pages belong to which processes. |
|
|
Term
Effective Memory-Access Time |
|
Definition
How long you can expect a memory translation to take, on average. It is equal to a weighted average of the time needed to retrieve a value from the TLB and from memory. |
|
|
Term
|
Definition
A bit that shows if a page is valid of invalid for a particular process. Signifies if a page is in the processes logical address space. |
|
|
Term
|
Definition
If the page table is too large to fit into a single frame, then this is used. The page table itself is also broken into pages, and then another page table is made to point to these parts of the page table. |
|
|
Term
|
Definition
A common approach for handling address spaces larger than 32 bits. Each entry in the hash table has a linked list of elements that hash the the same location. Has three fields, virtual page number, value of the mapped page frame, and a pointer to the next element in the linked list. |
|
|
Term
|
Definition
One entry for each frame of memory. Each entry is the virtual address of the page stored in that real memory location with information about which process owns that page. Makes shared memory very difficult or impossible. |
|
|