Chapter 9 Virtual Memory Chapter 9 Virtual Memory
- Slides: 70
Chapter 9: Virtual Memory
Chapter 9: Virtual Memory n Background n Demand Paging n Copy-on-Write n Page Replacement n Allocation of Frames n Thrashing n Memory-Mapped Files n Allocating Kernel Memory n Other Considerations n Operating-System Examples Operating System Concepts 9. 2 Silberschatz, Galvin and Gagne © 2005
Objectives n To describe the benefits of a virtual memory system n To explain the concepts of demand paging, page-replacement algorithms, and allocation of page frames n To discuss the principle of the working-set model Operating System Concepts 9. 3 Silberschatz, Galvin and Gagne © 2005
Background n Virtual memory – separation of user logical memory from physical memory. l Only part of the program needs to be in memory for execution l Logical address space can therefore be much larger than physical address space l Allows address spaces to be shared by several processes l Allows for more efficient process creation n Virtual memory can be implemented via: l Demand paging l Demand segmentation Operating System Concepts 9. 4 Silberschatz, Galvin and Gagne © 2005
Virtual Memory That is Larger Than Physical Memory Operating System Concepts 9. 5 Silberschatz, Galvin and Gagne © 2005
Virtual-address Space Operating System Concepts 9. 6 Silberschatz, Galvin and Gagne © 2005
Shared Library Using Virtual Memory Operating System Concepts 9. 7 Silberschatz, Galvin and Gagne © 2005
Demand Paging n Bring a page into memory only when it is needed l Less I/O needed l Less memory needed l Faster response l More users n Page is needed reference to it l invalid reference abort l not-in-memory bring to memory n Lazy swapper – never swaps a page into memory unless page will be needed l Swapper that deals with pages is a pager Operating System Concepts 9. 8 Silberschatz, Galvin and Gagne © 2005
Transfer of a Paged Memory to Contiguous Disk Space Operating System Concepts 9. 9 Silberschatz, Galvin and Gagne © 2005
Valid-Invalid Bit n With each page table entry a valid–invalid bit is associated (v in-memory, i not-in-memory) Initially valid–invalid bit is set to i on all entries n Example of a page table snapshot: n Frame # valid-invalid bit v v i …. i i page table n During address translation, if valid–invalid bit in page table entry is I page fault Operating System Concepts 9. 10 Silberschatz, Galvin and Gagne © 2005
Page Table When Some Pages Are Not in Main Memory Operating System Concepts 9. 11 Silberschatz, Galvin and Gagne © 2005
Page Fault n If there is a reference to a page, first reference to that 1. 2. 3. 4. 5. page will trap to operating system: page fault Operating system looks at another table to decide: l Invalid reference abort l Just not in memory page it in Get empty frame Swap page into frame Reset tables Set validation bit = v 6. Restart the instruction that caused the page fault Operating System Concepts 9. 12 Silberschatz, Galvin and Gagne © 2005
Pure Demand Paging n Pure demand paging: never bring a page into memory until it is required Costly if instruction references multiple addresses in several pages, but this is unlikely l Locality of reference (later) helps l n Hardware support for demand paging: l Page table (valid/invalid bits) l Secondary memory: holds pages not present in main memory (e. g. high-speed disk, known as swap device with swap space) n Restarting an instruction (decoding, fetching, executing) may be costly n Adding paging to an existing architecture to allow demand paging may be tricky if at all possible in some systems Operating System Concepts 9. 13 Silberschatz, Galvin and Gagne © 2005
Steps in Handling a Page Fault Operating System Concepts 9. 14 Silberschatz, Galvin and Gagne © 2005
Performance of Demand Paging n Page Fault Rate 0 p 1. 0 l if p = 0 no page faults l if p = 1, every reference is a fault n Effective Access Time (EAT) EAT = (1 – p) x memory access + p x (page fault overhead + swap page out + swap page in + restart overhead ) Operating System Concepts 9. 15 Silberschatz, Galvin and Gagne © 2005
Demand Paging Example n Memory access time = 200 nanoseconds n Average page-fault service time = 8 milliseconds n EAT = (1 – p) x 200 + p (8 milliseconds) = (1 – p x 200 + p x 8, 000 = 200 + p x 7, 999, 800 n If one access out of 1, 000 causes a page fault, then EAT = 8. 2 microseconds. This is a slowdown by a factor of 40 because of demand paging !! Operating System Concepts 9. 16 Silberschatz, Galvin and Gagne © 2005
Process Creation n Virtual memory allows other benefits during process creation: - Copy-on-Write - Memory-Mapped Files (later) Operating System Concepts 9. 17 Silberschatz, Galvin and Gagne © 2005
Copy-on-Write n Copy-on-Write (COW) allows both parent and child processes to initially share the same pages in memory If either process modifies a shared page, only then is the page copied n COW allows more efficient process creation as only modified pages are copied n Free pages are allocated from a pool of zeroed-out pages (technique known as zero-fill-on-demand) n vfork() on some UNIX systems: child uses parent’s address space without COW – tricky! l good for UNIX command-line shell interfaces, especially if exec() is called immediately after the fork. Operating System Concepts 9. 18 Silberschatz, Galvin and Gagne © 2005
Before Process 1 Modifies Page C Operating System Concepts 9. 19 Silberschatz, Galvin and Gagne © 2005
After Process 1 Modifies Page C Copy of page C Operating System Concepts 9. 20 Silberschatz, Galvin and Gagne © 2005
What happens if there is no free frame? n Page replacement – find some page in memory, but not really in use, swap it out l Algorithm to select victim frame (if no free frames exist) l performance – want an algorithm which will result in minimum number of page faults n Same page may be brought into memory several times Operating System Concepts 9. 21 Silberschatz, Galvin and Gagne © 2005
Page Replacement n Prevent over-allocation of memory by modifying page-fault service routine to include page replacement n Use modify (dirty) bit to reduce overhead of page transfers – only modified pages are written to disk n Page replacement completes separation between logical memory and physical memory – large virtual memory can be provided on a smaller physical memory Operating System Concepts 9. 22 Silberschatz, Galvin and Gagne © 2005
Need For Page Replacement Operating System Concepts 9. 23 Silberschatz, Galvin and Gagne © 2005
Basic Page Replacement 1. Find the location of the desired page on disk 2. Find a free frame: - If there is a free frame, use it - If there is no free frame, use a page replacement algorithm to select a victim frame; write victim frame to disk, update page & frame tables 3. Bring the desired page into the (newly) freed frame; update the page and frame tables 4. Restart the process Operating System Concepts 9. 24 Silberschatz, Galvin and Gagne © 2005
Page Replacement Operating System Concepts 9. 25 Silberschatz, Galvin and Gagne © 2005
Page Replacement Algorithms n Want lowest page-fault rate n Evaluate algorithm by running it on a particular string of memory references (reference string) and computing the number of page faults on that string n In all our examples, the reference string is 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 Operating System Concepts 9. 26 Silberschatz, Galvin and Gagne © 2005
Graph of Page Faults Versus The Number of Frames Operating System Concepts 9. 27 Silberschatz, Galvin and Gagne © 2005
FIFO Page Replacement Operating System Concepts 9. 28 Silberschatz, Galvin and Gagne © 2005
First-In-First-Out (FIFO) Algorithm n Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 n 3 frames (3 pages can be in memory at a time per process) n n 1 1 4 5 2 2 1 3 3 3 2 4 1 1 5 4 2 2 1 5 3 3 2 4 4 3 9 page faults 4 frames 10 page faults Belady’s Anomaly: more frames more page faults Operating System Concepts 9. 29 Silberschatz, Galvin and Gagne © 2005
FIFO Illustrating Belady’s Anomaly Operating System Concepts 9. 30 Silberschatz, Galvin and Gagne © 2005
Optimal Algorithm n Replace page that will not be used for longest period of time n 4 frames example 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 1 4 2 6 page faults 3 4 5 n How do you know this? n Used for measuring how well your algorithm performs Operating System Concepts 9. 31 Silberschatz, Galvin and Gagne © 2005
Optimal Page Replacement Operating System Concepts 9. 32 Silberschatz, Galvin and Gagne © 2005
Least Recently Used (LRU) Algorithm n Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 1 1 5 2 2 2 3 5 5 4 4 3 3 3 n Counter implementation l Every page entry has a counter; every time page is referenced through this entry, copy the clock into the counter l When a page needs to be changed, look at the counters to determine which are to change Operating System Concepts 9. 33 Silberschatz, Galvin and Gagne © 2005
LRU Algorithm (Cont. ) n Stack implementation – keep a stack of page numbers in a double link form: l Page referenced: 4 move it to the top 4 requires l 6 pointers to be changed No search for replacement Operating System Concepts 9. 34 Silberschatz, Galvin and Gagne © 2005
LRU Page Replacement Operating System Concepts 9. 35 Silberschatz, Galvin and Gagne © 2005
Use Of A Stack to Record The Most Recent Page References Operating System Concepts 9. 36 Silberschatz, Galvin and Gagne © 2005
LRU Approximation Algorithms n Reference bit l With each page associate a bit, initially = 0 l When page is referenced bit set to 1 l Replace the one which is 0 (if one exists) 4 We do not know the order, however n Second chance l Need reference bit l Clock replacement l If page to be replaced (in clock order) has reference bit = 1 then: 4 set reference bit 0 4 arrival time reset to current time 4 leave page in memory 4 replace next page (in clock order), subject to same rules l Circular queue used Operating System Concepts 9. 37 Silberschatz, Galvin and Gagne © 2005
Second-Chance (clock) Page-Replacement Algorithm Operating System Concepts 9. 38 Silberschatz, Galvin and Gagne © 2005
Counting Algorithms n Keep a counter of the number of references that have been made to each page n LFU Algorithm: replaces page with smallest count n MFU Algorithm: based on the argument that the page with the smallest count was probably just brought in and has yet to be used n Neither algorithm is common: l implementation is expensive l they do not approximate OPT replacement well Operating System Concepts 9. 39 Silberschatz, Galvin and Gagne © 2005
Allocation of Frames n Each process needs minimum number of pages n Example: IBM 370 – 6 pages to handle SS MOVE instruction: l instruction is 6 bytes, might span 2 pages l 2 pages to handle from l 2 pages to handle to n Two major allocation schemes l Equal allocation l Proportional allocation Operating System Concepts 9. 40 Silberschatz, Galvin and Gagne © 2005
Allocation of Frames n Equal allocation – For example, if there are 100 frames and 5 processes, give each process 20 frames. n Proportional allocation – Allocate according to the size of process Operating System Concepts 9. 41 Silberschatz, Galvin and Gagne © 2005
Priority Allocation n Use a proportional allocation scheme using priorities rather than size n If process Pi generates a page fault, l select for replacement one of its frames; or l select for replacement a frame from a process with lower priority number Operating System Concepts 9. 42 Silberschatz, Galvin and Gagne © 2005
Global vs. Local Allocation n Global replacement – process selects a replacement frame from the set of all frames; one process can take a frame from another n Local replacement – each process selects from only its own set of allocated frames Operating System Concepts 9. 43 Silberschatz, Galvin and Gagne © 2005
Thrashing n If a process does not have “enough” pages, the page-fault rate is very high. This leads to: l low CPU utilization l operating system thinks that it needs to increase the degree of multiprogramming l another process added to the system n Thrashing a process is busy swapping pages in and out n A process is thrashing if it is spending more time paging than executing! Operating System Concepts 9. 44 Silberschatz, Galvin and Gagne © 2005
Thrashing (Cont. ) Operating System Concepts 9. 45 Silberschatz, Galvin and Gagne © 2005
Demand Paging and Thrashing n Why does demand paging work? Locality model l A locality is a set of pages that are actively used together l A program is generally composed of several localities l Process migrates from one locality to another l Localities may overlap l Example of locality: a function; when function exists, process leaves this locality n Why does thrashing occur? size of locality > total memory size Operating System Concepts 9. 46 Silberschatz, Galvin and Gagne © 2005
Locality In A Memory-Reference Pattern Operating System Concepts 9. 47 Silberschatz, Galvin and Gagne © 2005
Working-Set Model n working-set window a fixed number of page references Example: 10, 000 instruction n WSSi (working set of Process Pi) = total number of pages referenced in the most recent (varies in time) l if too small will not encompass entire locality l if too large will encompass several localities l if = will encompass entire program n D = WSSi total demand for frames n m = total number of available frames n if D > m Thrashing n Policy if D > m, then suspend one of the processes Operating System Concepts 9. 48 Silberschatz, Galvin and Gagne © 2005
Working-set model = 10 -- WS changes with time -- WS is, therefore, an approximation of a program’s locality Operating System Concepts 9. 49 Silberschatz, Galvin and Gagne © 2005
Keeping Track of the Working Set n Approximate with interval timer + a reference bit n Example: = 10, 000 l Timer interrupts after every 5000 time units l Keep in memory 2 bits for each page l Whenever a timer interrupts copy and sets the values of all reference bits to 0 l If one of the bits in memory = 1 page in working set n Why is this not completely accurate? n Improvement = 10 bits and interrupt every 1000 time units n Becomes more costly Operating System Concepts 9. 50 Silberschatz, Galvin and Gagne © 2005
Page-Fault Frequency Scheme n Establish “acceptable” page-fault rate l If actual rate too low, process loses frame l If actual rate too high, process gains frame Operating System Concepts 9. 51 Silberschatz, Galvin and Gagne © 2005
Memory-Mapped Files n Memory-mapped file I/O allows file I/O to be treated as routine memory access by mapping a disk block to a page in memory n A file is initially read using demand paging. A page-sized portion of the file is read from the file system into a physical page. Subsequent reads/writes to/from the file are treated as ordinary memory accesses. n Simplifies file access by treating file I/O through memory rather than read() write() system calls n Also allows several processes to map the same file allowing the pages in memory to be shared Operating System Concepts 9. 52 Silberschatz, Galvin and Gagne © 2005
Memory Mapped Files Operating System Concepts 9. 53 Silberschatz, Galvin and Gagne © 2005
Memory-Mapped Shared Memory in Windows Operating System Concepts 9. 54 Silberschatz, Galvin and Gagne © 2005
Allocating Kernel Memory n Treated differently from user memory l Many operating systems do not subject kernel code or data to the paging system l Kernel must use memory conservatively to reduce waste n Often allocated from a free-memory pool l Kernel requests memory for structures of varying sizes l Some kernel memory needs to be contiguous (e. g. for hardware devices with memory-mapped I/O) Operating System Concepts 9. 55 Silberschatz, Galvin and Gagne © 2005
Buddy System n Allocates memory from fixed-size segment consisting of physically- contiguous pages n Memory allocated using power-of-2 allocator l Satisfies requests in units sized as power of 2 l Request rounded up to next highest power of 2 l When smaller allocation needed than is available, current chunk split into two buddies of next-lower power of 2 4 Continue until appropriate sized chunk available n Advantage: adjacent buddies can be combined to form larger segments (coalescing) n Disadvantage: fragmentation within allocated segments Operating System Concepts 9. 56 Silberschatz, Galvin and Gagne © 2005
Buddy System Allocator Operating System Concepts 9. 57 Silberschatz, Galvin and Gagne © 2005
Slab Allocator n Alternate strategy n Slab is one or more physically contiguous pages n Cache consists of one or more slabs n Single cache for each unique kernel data structure l Each cache filled with objects – instantiations of the data structure n When cache created, filled with objects marked as free n When structures stored, objects marked as used n If slab is full of used objects, next object allocated from empty slab l If no empty slabs, new slab allocated n Benefits include no fragmentation, fast memory request satisfaction Operating System Concepts 9. 58 Silberschatz, Galvin and Gagne © 2005
Slab Allocation Operating System Concepts 9. 59 Silberschatz, Galvin and Gagne © 2005
Other Issues -- Prepaging n Prepaging l To reduce the large number of page faults that occurs at process startup l Prepage all or some of the pages a process will need, before they are referenced l But if prepaged pages are unused, I/O and memory wasted l Assume s pages are prepaged and a fraction α of these pages is actually used: 4 Is cost of s * α saved page faults > or < than the cost of prepaging s * (1 - α) unnecessary pages? 4α near 0 prepaging loses 4α near 1 prepaging wins Operating System Concepts 9. 60 Silberschatz, Galvin and Gagne © 2005
Other Issues – Page Size n There is no single best page size n Page size selection must take into consideration: l fragmentation l table size l I/O overhead l Locality n Fragmentation & locality argue for small page size n Table size & I/O overhead argue for large page size Operating System Concepts 9. 61 Silberschatz, Galvin and Gagne © 2005
Other Issues – TLB Reach n TLB Reach - The amount of memory accessible from the TLB n TLB Reach = (TLB Size) X (Page Size) n Ideally, the working set of each process is stored in the TLB l Otherwise there is a high degree of page faults n Increase the Page Size l This may lead to an increase in fragmentation as not all applications require a large page size n Provide Multiple Page Sizes l This allows applications that require larger page sizes the opportunity to use them without an increase in fragmentation Operating System Concepts 9. 62 Silberschatz, Galvin and Gagne © 2005
Other Issues – Program Structure n Program structure l Int[128, 128] data; Each row is stored in one page l Program 1 for (j = 0; j <128; j++) for (i = 0; i < 128; i++) data[i, j] = 0; l 128 x 128 = 16, 384 page faults l Program 2 for (i = 0; i < 128; i++) for (j = 0; j < 128; j++) data[i, j] = 0; 128 page faults Operating System Concepts 9. 63 Silberschatz, Galvin and Gagne © 2005
Other Issues – I/O interlock n I/O Interlock – Pages must sometimes be locked into memory n Consider I/O - Pages that are used for copying a file from a device must be locked from being selected for eviction by a page replacement algorithm Operating System Concepts 9. 64 Silberschatz, Galvin and Gagne © 2005
Reason Why Frames Used For I/O Must Be In Memory Operating System Concepts 9. 65 Silberschatz, Galvin and Gagne © 2005
Operating System Examples n Windows XP n Solaris Operating System Concepts 9. 66 Silberschatz, Galvin and Gagne © 2005
Windows XP n Uses demand paging with clustering. Clustering brings in pages surrounding the faulting page. n Processes are assigned working set minimum and working set maximum n Working set minimum is the minimum number of pages the process is guaranteed to have in memory n A process may be assigned as many pages up to its working set maximum n When the amount of free memory in the system falls below a threshold, automatic working set trimming is performed to restore the amount of free memory n Working set trimming removes pages from processes that have pages in excess of their working set minimum Operating System Concepts 9. 67 Silberschatz, Galvin and Gagne © 2005
Solaris n Maintains a list of free pages to assign faulting processes n Lotsfree – threshold parameter (amount of free memory) to begin paging n Desfree – threshold parameter to increasing paging n Minfree – threshold parameter to being swapping n Paging is performed by pageout process n Pageout scans pages using modified clock algorithm n Scanrate is the rate at which pages are scanned. This ranges from slowscan to fastscan n Pageout is called more frequently depending upon the amount of free memory available Operating System Concepts 9. 68 Silberschatz, Galvin and Gagne © 2005
Solaris 2 Page Scanner Operating System Concepts 9. 69 Silberschatz, Galvin and Gagne © 2005
End of Chapter 9
- Page fault
- Virtual memory in memory hierarchy consists of
- Semantic knowledge
- Excplicit memory
- Long term memory vs short term memory
- Internal memory and external memory
- Primary memory and secondary memory
- Physical address vs logical address
- Which memory is the actual working memory?
- Eidetic memory vs iconic memory
- Symmetric shared memory architecture
- What is virtual ram
- Belady's anomaly example
- Virtual memory in os
- Paged segmentation
- Advantage
- Explain virtual memory in computer architecture
- Demand paging in virtual memory
- Virtual memory in os
- Process virtual address space
- Virtual memory os
- Virtual memory
- Virtual memory segmentation
- Virtual memory tlb
- Virtual memory os
- Virtual memory os
- Virtual memory is commonly implemented by
- Virtual memory
- Virtual memory os
- Process virtual address space
- Kai hierarchy
- Virtual memory
- Stack memory layout
- Lokalitas dan memori virtual
- Virtual memory
- Virtual memory
- Reddit tifu dataset
- Virtual address
- Virtual memory
- Virtual memory
- Virtual memory
- Virtual memory indirection
- Apa karakteristik dari memori virtual
- Implementasi virtual memory
- Shared virtual memory
- Virtual memory
- Virtual memory demand paging
- What is virtual memory
- Virtual memory address translation
- Virtual memory
- Nachos virtual memory
- Nachos virtual memory
- Virtual memory organization
- Virtual memory
- What are the characteristics of paging ?
- What is virtual memory
- Virtual memory areas
- Has virtual functions and accessible non-virtual destructor
- Chapter 10 memory and thought answers
- Chunking psychology definition
- Memory processing
- Bernstein memory of paper
- Baddeley et hitch
- Kf case study memory
- Wechsler memory scale scoring
- What is memory
- Memory partition
- Memory moment signpost
- All blocks
- Rote memory
- Memory design in vlsi