90 likes | 182 Views
Virtual Memory. Operating Systems Lecture # 8. Multi-tasking OS. 0x9000. OS. 0x8000. MS Word. 0x7000. Excel. 0x4000. Outlook. 0x0000. Virtual Memory. Protection A process should be able to reference its own “address space” Abstraction
E N D
Virtual Memory Operating Systems Lecture # 8
Multi-tasking OS 0x9000 OS 0x8000 MS Word 0x7000 Excel 0x4000 Outlook 0x0000
Virtual Memory • Protection • A process should be able to reference its own “address space” • Abstraction • Every process thinks it owns the entire RAM e.g. 0x0000 to 0x9000 • Makes it easier for the compiler to generate object (assembly) code
Virtual Memory • Virtual Memory manager translates the virtual (or fake) addresses Compiler Physical address Address Translation (MMU) Translate Virtual -> Actual RAM virtual address Assembly language Load Store CPU
Memory Manager Compiler Physical address Address Translation (MMU) RAM legal addr? Illegal? Assembly language Load Store virtual address Illegal Access Exception CPU Data
Virtual Memory • Virtual memory makes the compiler job much simpler • Sequential addresses • MMU maps and remaps the virtual addresses to actual memory • If some part of the memory is not used • Memory may be multiplexed between processes • Just as the process abstraction permits the CPU to be multiplexed between processes
Memory Translation Hardware provides two registers and an adder • Keep a base register to remap addresses • Add the current address to the base register address • Protection: Check against an upper bound
Memory Translation Process A 0x3000 0x9000 MMU process A Base: 0x4000 Bound:0x9000 read 0x2000 read 0x3000 0x4000 0x0000
Virtual Memory Physical Memory Virtual memory 0 MMU 0 0 OS 0 0