Operating Systems(3) Flashcards
Symbolic Addresses
Addresses located in a program. Variables, for example.
Relocatable Addresses
Calculated from a reference point, and is generated at compile time. (Example: Base + offset)
Physical Addresses
Location is somewhere directly in memory hardware.
Logical Addresses
An address made by the CPU (the offset in calculations).
Single Partition Batch
The OS is in low memory, user is in high. (OS is to the left, user is to the right) Code complies to physical addresses directly. Processes and OS are protected from each other.
Multiple Fixed Partition
Memory is divided into “n” equal sized partitions. N is the degree is multi-programming. When a partition is free, the OS selects a process from input queue and loads it into the partition. IT IS NOT USELESS!! Benefits: Time-sharing, multiprogramming
Dynamic Partition
Fills “holes” (unoccupied memory) that can hold a process. If none exists, the OS waits until a process is completed to fill it, or skips down the input queue to find a process to fit in. BENEFITS: The size of partitions is no longer limited.
Internal Fragmentation
A small slot of free memory left over when a process is put into a memory slot.
External Fragmentation
The sum of the memory of the holes is enough to satisfy a request, but is not contiguous.
Contiguous Memory vs Paging
Continuous memory includes the partition methods, and yet external and internal fragmentation can happen. Paging, the processes where small sections of memory are linked together, does not have any external fragmentation and very little internal.
Contiguous
(In reference to memory management): uninterrupted and sequential. Example, most logical addresses!
Translation Look aside Buffer
A fast piece of associative memory for storing frequently accessed page tables. Faster access of addresses in memory.
Optimal Paging Algorithm
Looks at future page requests in the page stream and selects the page used furthest in the future to eject. It is not used by modern OS’s however, bc it is too hard to predict pages in advance.
Locality of Reference
A fact known about the PC- that it stays in a local region for a while and continues making its way slowly and sequentially. This is important to paging because it is what allows the allocation scheme to function the way it does. It does not have to go back and retrieve a page a lot, allowing for less page faults. Ex: Looping, no function calls to bounce around the program.
Dirty Bit
Indicates if a page has been changed since it has been accessed by memory. If set, the page needs to be written back to the disk before being ejected.
Pure Demand Paging
The page of code where the processes’ entry point is located is loaded. Pages are only loaded as page-faults occur.
Compile Address Binding
Batch systems and Arduino boards use this, bc they have to generate physical addresses automattically.
Load Binding
Multi-programmed batch’s use this with relocatable code, and the program is loaded into physical memory when it has the physical address.
Execution Binding
Modern-day OS systems use this, and all logical addresses are generated.
Dynamic Loading
Method of running a program that is larger than memory. A function by function check to see if a routine is located in memory or not.
Overlays
Divides the program into pieces that will fit into memory, and we use the overlay to help manage the memory.