140 likes | 347 Vues
This overview explores the history and significance of virtualization in computing, highlighting key concepts such as process abstraction, virtual memory, and simultaneous multithreading (SMT). We examine how CPUs can be time-multiplexed to create multiple logical CPUs from a single physical CPU and discuss components like the Memory Management Unit (MMU) and page fault mechanisms. The principles of temporal and spatial locality are emphasized in optimizing memory references. We also touch on the modern applications of virtualization, including Virtual Machines and technologies like VMware and VirtualPC.
E N D
Virtualization Illusion History of Computing = History of Virtualization • e.g., process abstraction, virtual memory, cache memory, virtual machine, simultaneous multithreading (SMT),…(the list goes on)
Virtualization Example: Process abstraction Source: http://bwrc.eecs.berkeley.edu/CIC/die_photos/21164.gif CPU Time Multiplexing of physical CPU within the operating system (OS) using timer circuit/interrupt + = CPU CPU Single physical CPU Multiple logical CPUs
Virtualization Example: Virtual Memory Dedicated (virtual) Memory for each process + = Hard Disk DRAM
Two Aspects of Virtualization • Functionality • Hardware: MMU (memory management unit) and exception mechanism (“page fault”) • Software: virtual memory management routines based on page tables, one for each process, in the operating system (OS) • Performance • Optimizing regular memory references • Temporal locality (locality in time) • If an item is referenced, it will tend to be referenced again soon. • Spatial locality (locality in space) • If an item is referenced, items whose addresses are close by will tend to be referenced soon. • Optimizing page table references • TLB (Translation Look-aside Buffer)
Typical Workload Pattern Source: Glass & Cao (1997 ACM SIGMETRICS)
Virtualization Example: Cache Memory New Memory Technology (Performance: SRAM) (Cost: DRAM) + = SRAM DRAM
Virtualization Example: Virtual Machine Thin software layer below operating system Linux Windows XP = + . . . e.g., VMware, VirtualPC, Connectix Virtual PC