Chapter 8 Virtual Memory · Real memory Main memory, the actual RAM, where a process executes Virtual memory is a storage allocation scheme in which secondary memory can be addressed as though it were part of main memory Size is limited by the amount of secondary memory available Virtual address is the address assigned to a location in virtual memory
1 Chapter 8 Virtual Memory • Real memory – Main memory, the actual RAM, where a process executes • Virtual memory is a storage allocation scheme in which secondary memory can be addressed as though it were part of main memory – Size is limited by the amount of secondary memory available • Virtual address is the address assigned to a location in virtual memory
Keys to virtual Memory 1)Memory references are logical addresses that are dynamically translated into physical addresses at run time a process may be swapped in and out of main memory, occupying different regions at different times during execution 2) A process may be broken up into pieces (pages or segments) that do not need to be located contiguously in main memory
2 Keys to Virtual Memory 1) Memory references are logical addresses that are dynamically translated into physical addresses at run time – A process may be swapped in and out of main memory, occupying different regions at different times during execution 2) A process may be broken up into pieces (pages or segments) that do not need to be located contiguously in main memory
Breakthrough in Memory Management If both of those two characteristics are present then it is not necessary that all of the pages or all of the segments of a process be in main memory during execution If the next instruction and the next data location are in memory then execution can proceed
3 Breakthrough in Memory Management • If both of those two characteristics are present, – then it is not necessary that all of the pages or all of the segments of a process be in main memory during execution. • If the next instruction and the next data location are in memory then execution can proceed
Execution of a process os brings into main memory a few pieces of the program Resident set: portion of process that is in main memory EXecution proceeds smoothly as long as all memory references are to locations that are in the resident set An interrupt(memory access fault is generated when an address is needed that is not in main memor
4 Execution of a Process • OS brings into main memory a few pieces of the program – Resident set: portion of process that is in main memory • Execution proceeds smoothly as long as all memory references are to locations that are in the resident set • An interrupt (memory access fault) is generated when an address is needed that is not in main memory
Execution of a process OS places the process in a blocking state Piece of process that contains the logical address is brought into main memory OS issues a disk l/o Read request Another process is dispatched to run while the disk lo takes place An interrupt is issued when disk l/o complete which causes OS to place the affected process in the Ready state
5 Execution of a Process • OS places the process in a blocking state • Piece of process that contains the logical address is brought into main memory – OS issues a disk I/O Read request – Another process is dispatched to run while the disk I/O takes place – An interrupt is issued when disk I/O complete which causes OS to place the affected process in the Ready state
mplications of this new strategy More efficient processor utilization More processes may be maintained in main memory because only load in some of the pieces of each process More likely a process will be in the ready state at any particular time A process may be larger than main memory This restriction in programming is lifted OS automatically loads pieces of a process into main memory as required
6 Implications of this new strategy • More efficient processor utilization – More processes may be maintained in main memory because only load in some of the pieces of each process – More likely a process will be in the Ready state at any particular time • A process may be larger than main memory – This restriction in programming is lifted – OS automatically loads pieces of a process into main memory as required
Thrashing A condition in which the system spends most of its time swapping pieces rather than executing instructions It happens when OS frequently throws out a piece just before it is used To avoid this, OS tries to guess, based on recent history, which pieces are least likely to be used in the near future
7 Thrashing • A condition in which the system spends most of its time swapping pieces rather than executing instructions. • It happens when OS frequently throws out a piece just before it is used • To avoid this, OS tries to guess, based on recent history, which pieces are least likely to be used in the near future
Principle of locality Program and data references within a process tend to cluster only a few pieces of a process will be needed over a short period of time It is possible to make intelligent guesses about which pieces will be needed in the future, which avoids thrashing This suggests that virtual memory may work efficiently
8 Principle of Locality • Program and data references within a process tend to cluster → only a few pieces of a process will be needed over a short period of time • It is possible to make intelligent guesses about which pieces will be needed in the future, which avoids thrashing • This suggests that virtual memory may work efficiently
Performance of processes in vm environment Iw-iundumrenhraal Eau During the lifetime of the 也H L process, references are confined to a subset of pages 吗M邮 Execution time Figure 8.1 Hging Behavior
9 Performance of Processes in VM Environment • During the lifetime of the process, references are confined to a subset of pages
Support Needed for Virtual Memory Hardware must support paging and segmentation OS must be able to manage the movement of pages and/or segments between secondary memory and main memory 10
10 Support Needed for Virtual Memory • Hardware must support paging and segmentation • OS must be able to manage the movement of pages and/or segments between secondary memory and main memory