the popek and goldberg virtualization requirements are a set of conditions sufficient for a computer architecture to support system virtualization efficiently. they were introduced by gerald j. popek and robert p. goldberg in their 1974 article "formal requirements for virtualizable third generation architectures". even though the requirements are derived under simplifying assumptions, they still represent a convenient way of determining whether a computer architecture supports efficient virtualization and provide guidelines for the design of virtualized computer architectures. == vmm definition == system virtual machines are capable of virtualizing a full set of hardware resources, including a processor (or processors), memory and storage resources and peripheral devices. a virtual machine monitor (vmm, also called hypervisor) is the piece of software that provides the abstraction of a virtual machine. there are three properties of interest when analyzing the environment created by a vmm:rogier dittner, david rule, the best damn server virtualization book period, syngress, 2007, isbn 1-59749-217-5, p. 19 ; equivalence / fidelity : a program running under the vmm should exhibit a behavior essentially identical to that demonstrated when running on an equivalent machine directly. ; resource control / safety : the vmm must be in complete control of the virtualized resources. ; efficiency / performance: a statistically dominant fraction of machine instructions must be executed without vmm intervention. in the terminology of popek and goldberg, a vmm must present all three properties. in the terminology used in the reference book of smith and nair (2005), vmms are typically assumed to satisfy the equivalence and resource control properties, and those additionally meeting the performance property are called efficient vmms.smith and nair, p. 387 popek and goldberg describe the characteristics that the instruction set architecture (isa) of the physical machine must possess in order to run vmms which possess the above properties. their analysis derives such characteristics using a model of "third generation architectures" (e.g., ibm 360, honeywell 6000, dec pdp-10) that is nevertheless general enough to be extended to modern machines. this model includes a processor that operates in either system or user mode, and has access to linear, uniformly addressable memory. it is assumed that a subset of the instruction set is available only when in system mode and that memory is addressed relative to a relocation register. i/o and interrupts are not modelled. == virtualization theorems == to derive their virtualization theorems, which give sufficient (but not necessary) conditions for virtualization, popek and goldberg introduce a classification of instructions of an isa into 3 different groups: ; privileged instructions : those that [[trap (computi
Computer_architecture Virtualization_software