Fact-checked by Grok 2 weeks ago

Popek and Goldberg virtualization requirements

The Popek and Goldberg virtualization requirements are a set of formal criteria established in 1974 to determine whether a third-generation can efficiently support , enabling the creation of that closely emulate the underlying with minimal overhead. These requirements, developed by Gerald J. Popek and Robert P. Goldberg, focus on the behavior of processor instructions under a virtual machine monitor (VMM), which is software that generates an isolated, resource-controlled duplicate of the real machine while ensuring identical functionality and only minor speed degradation. In their seminal paper, and model a typical third-generation featuring and modes, a relocation-bounds register for , and mechanisms for handling invalid operations. They classify instructions into three categories to analyze feasibility: The core of their framework is encapsulated in two key theorems. Theorem 1 states that a VMM for a given is possible every sensitive is privileged, ensuring that the VMM can trap and emulate all operations affecting control or resources without compromising or . Theorem 2 extends this to recursive , positing that such a exists if the is virtualizable and admits a timing-independent VMM, allowing virtual machines to themselves host VMMs. These requirements have profoundly influenced the design of virtualizable systems, highlighting why architectures like the satisfy them while others, such as the VAX, require additional techniques like for practical .

Background and Definitions

Historical Context

Virtualization concepts originated in the 1960s with IBM's development of the CP-40 system, a research project launched in 1964 to enable time-sharing on the IBM System/360 mainframe. This initiative addressed the growing demand for efficient resource utilization in computing environments by allowing multiple users to interact with the system as if each had dedicated access. CP-40 laid the groundwork for virtual machines, simulating independent computing environments on shared hardware. Building on CP-40, released CP-67 in May 1966 for the System/360 Model 67, which incorporated and matured the concept of into a practical system for . CP-67 enabled the secure execution of multiple operating system instances on a single physical machine, isolating workloads to prevent failures in one from impacting others and supporting diverse applications like OS/360 testing. This approach highlighted the essential role of a as a software layer overseeing and enforcement of isolation. The success of systems like CP-67 contrasted with challenges in other third-generation architectures, such as the DEC , where empirical attempts revealed that software-based incurred substantial performance penalties due to the need for extensive and intervention. These inefficiencies motivated a shift toward hardware-assisted mechanisms to minimize overhead while maintaining security and isolation for multiple OS instances. In response, Gerald J. Popek and Robert P. Goldberg published their seminal paper, "Formal Requirements for Virtualizable Third Generation Architectures," in the July 1974 issue of Communications of the ACM (Volume 17, Issue 7, pages 412–421). The work aimed to provide precise criteria for evaluating whether a computer's architecture could support efficient virtual machine systems without relying on cumbersome software techniques.

Virtual Machine Monitor Definition

A Virtual Machine Monitor (VMM), also known as a , is a software layer that creates and manages (VMs) by providing an efficient, isolated duplicate of the real computer system. This setup allows multiple guest operating systems to run concurrently on the underlying hardware, each perceiving a complete and independent machine environment. The concept emerged from early developments in the , where systems like the CP-40 demonstrated the feasibility of such monitors for multiprogramming. The VMM exhibits three essential properties as defined in the foundational framework: , control, and . ensures that any program executed within a VM produces effects identical to those on the bare , barring differences in timing or . control grants the VMM sole authority over allocation, preventing any guest from accessing unassigned resources and enabling secure partitioning among . requires that a substantial portion of the VM's instructions—those not requiring intervention—execute directly on the physical without VMM overhead, minimizing degradation. VMMs are classified into Type 1 (bare-metal) and Type 2 (hosted) variants. Type 1 VMMs run directly on the host , exerting full control without an intermediary operating system, which aligns with the and emphasis on architectures supporting efficient, direct . In contrast, Type 2 VMMs operate atop a host OS, introducing additional layers that may compromise and performance. By and emulating sensitive operations, the VMM enforces , protecting guest operating systems from interfering with one another or the underlying , thereby maintaining system integrity and security.

Core Theoretical Framework

Virtualization Theorems

The Popek and Goldberg virtualization requirements are encapsulated in two fundamental theorems that establish the conditions under which an (ISA) can support efficient virtual machine implementation via a virtual machine monitor (VMM). These theorems, introduced in their seminal paper, focus on the behavior of instructions in user mode versus supervisor mode, ensuring that the VMM can maintain and isolation without excessive overhead. Central to both theorems are the concepts of sensitive instructions and privileged instructions. Sensitive instructions are those whose execution could affect the integrity of the VMM or the allocation of processor resources to virtual machines, such as operations that modify registers or access protected memory. Privileged instructions, in contrast, are those that either change the processor's execution mode (e.g., from user to supervisor) or access resources restricted to supervisor mode, typically resulting in a if attempted in user mode. The first theorem, often associated with trap-based , asserts that a conventional product VMM—capable of hosting multiple with near-native performance—can be constructed for an if the set of sensitive instructions for that computer is a of the set of privileged instructions. Formally, it states: For any conventional third generation computer, a virtual machine monitor may be constructed if the set of sensitive instructions for that computer is a of the set of privileged instructions. This condition ensures that any attempt by a guest operating system to execute a sensitive operation automatically transfers control to the VMM, allowing it to intervene, validate the request, and emulate or execute the as needed without compromising security or . If this holds, the VMM achieves the properties of (virtual machines behave indistinguishably from physical machines) and (non-sensitive instructions execute directly without VMM involvement). The second theorem addresses recursive virtualization. It states that a conventional third generation computer is recursively virtualizable if it is virtualizable and a virtual machine monitor without any timing dependencies may be constructed for that computer. This allows a virtual machine to host its own VMM, enabling nested virtualization layers. This framework has profoundly influenced the design of virtualizable architectures, guiding evaluations of systems from mainframes to modern processors.

Instruction Classification

In the Popek and Goldberg model, instructions are classified into three categories—privileged, sensitive, and innocuous—based on their behavior relative to the processor's mode (user or supervisor) and their potential impact on system resources or state. This classification forms the foundation for determining whether an architecture supports efficient by ensuring that the virtual machine monitor (VMM) can maintain and . Privileged instructions are those that cause a when executed in mode but do not trap in mode and do not induce traps; they typically involve operations that directly affect the processor's state, such as mode switches. Sensitive instructions, which may or may not be privileged, are further subdivided into control-sensitive (those that modify the processor mode or ) and behavior-sensitive (those whose execution or outcome depends on the current mode or relocation registers, potentially leading to inconsistencies in a virtualized environment). Innocuous instructions, by contrast, exhibit identical behavior regardless of mode and have no side effects that could compromise the VMM or leak host state; examples include basic arithmetic operations that operate solely on registers without accessing memory or I/O. The process of involves systematically analyzing each in the instruction set for its effects as a function of the machine's state, particularly focusing on whether it references or alters virtualized resources like memory relocation or I/O ports. Formal criteria are applied to assess behavior: for instance, an instruction is evaluated to determine if its acceptance or result varies with privileges or if it could allow a guest to infer host . This analysis ensures that only innocuous instructions execute directly on the host without VMM intervention, while others are flagged for potential handling. Such categorization is derived directly from the abstract model of third-generation architectures, emphasizing behaviors that could undermine guest equivalence or host security. In VMM design, this plays a pivotal role by dictating which require trapping to the VMM for or to preserve the of a standard machine for the guest. Privileged and sensitive must be intercepted to prevent unauthorized access to host resources, thereby upholding the efficiency and correctness of the layer. For example, a sensitive involving generic I/O might need VMM to virtualize device access without exposing host peripherals. This approach operationalizes the model's theorems, particularly by requiring that the set of sensitive be a of privileged ones to enable a trap-based VMM without excessive overhead.

Implementation Approaches

Trap-Based Virtualization

Trap-based virtualization, as defined in the and framework, relies on mechanisms to ensure that sensitive s executed by a virtual machine (VM) are intercepted and mediated by the virtual machine monitor (VMM). In this approach, when a operating system or application attempts to execute a sensitive while running in mode, the processor's protection mechanisms trigger an exception or , transferring control to the VMM operating in supervisor mode. The VMM then inspects the , determines its intent, emulates its effects if necessary to maintain and , and resumes execution of the VM. This process ensures transparent without the guest being aware of the underlying . The flow of operations in trap-based follows a structured sequence: the guest VM issues a sensitive , which causes an immediate due to its privileged nature; control is handed to the VMM's routine; the VMM validates the instruction's legitimacy, simulates any required changes (such as or transitions) within the guest's virtualized environment, and finally returns control to the guest at the point following the trapped . This interception mechanism is contingent on the architecture satisfying the conditions of 1 from Popek and Goldberg, which stipulates that every sensitive must be privileged. Sensitive instructions are those that either alter the processor or affect in a way that could compromise the VMM's control—such as control-sensitive instructions that modify addressing or handling, or behavior-sensitive instructions whose outcomes depend on privileged . By requiring all such instructions to when executed in , the theorem guarantees that the VMM retains authority over critical operations, preventing direct access by the guest. For architectures where the set of sensitive instructions is a of the privileged instructions, trap-based is feasible. The framework ensures efficiency, as all innocuous instructions—those neither sensitive nor privileged—execute directly on the underlying without any VMM intervention or . Trap-based virtualization offers significant advantages in efficiency and performance for architectures satisfying Theorem 1. The majority of non-sensitive instructions execute natively on the without VMM intervention, minimizing overhead and allowing VMs to operate at near-native speeds for routine computations. This approach provides a secure, identical to multiple guest VMs, enabling effective resource sharing while the VMM maintains through selective . Overall, it supports efficient of the physical machine among competing VMs with minimal distortion to the guest's perceived system behavior.

Emulation-Based Virtualization

Emulation-based virtualization addresses instruction set architectures (ISAs) that violate Theorem 1 in the and framework, where sensitive instructions are not a of privileged instructions and thus fail to trap automatically to the virtual machine monitor (VMM). In such cases, the original framework proposes a hybrid virtual machine monitor (HVM), which interprets all instructions executed in virtual supervisor mode to simulate sensitive operations, provided that user-sensitive instructions are privileged (as per their Theorem 3). This enables the VMM to maintain control and resource isolation despite architectural limitations. Later techniques extend this approach for full virtualization on non-virtualizable architectures, involving the VMM intercepting sensitive but unprivileged instructions through methods such as or dynamic code rewriting. scans and modifies guest code blocks, replacing problematic instructions with equivalent sequences that either trap to the VMM for emulation or directly achieve the desired effect in the . Dynamic rewriting similarly alters the instruction stream on-the-fly to simulate outcomes like mode changes or resource accesses without altering the guest's perceived behavior. These methods ensure that the VMM can emulate the instruction's impact while preserving the illusion of direct hardware execution for the guest operating system. A key challenge in this approach is the elevated overhead from software-based , as each intercepted requires VMM processing, potentially slowing execution compared to native operation. Additionally, the VMM must meticulously track and update the guest's internal state—such as simulated modes or registers—to avoid inconsistencies that could compromise or correctness. Accurate state maintenance is critical, as errors in emulation could expose host resources or disrupt guest functionality. The Popek and Goldberg framework supports efficiency in such systems by allowing all innocuous instructions—those neither sensitive nor privileged—to execute directly on the underlying without any VMM intervention or . This condition ensures that only a minority of instructions necessitate , allowing the statistically dominant portion of the guest's workload to run at near-native speeds and reducing the overall performance penalty. Practical techniques often combine partial , targeting only violative sensitive instructions for software while leveraging for privileged ones, with specialized handling for common operations. For instance, shadow page tables provide an emulation strategy for : the VMM maintains a duplicate set of that map guest virtual addresses directly to host physical addresses, intercepting and translating guest updates to keep the shadow structure synchronized without full support. This hybrid use of and optimizes resource handling in imperfect ISAs.

Architectural Analysis

Early Mainframe Architectures

Early mainframe architectures from the late 1960s and early 1970s, such as the DEC PDP-10 and IBM System/370, played a pivotal role in testing and validating the Popek and Goldberg virtualization theorems by demonstrating both successes and limitations in supporting virtual machine monitors (VMMs). The PDP-10, a 36-bit word-addressable system, exemplifies an architecture that fails the primary virtualization theorem, which requires all sensitive instructions to be privileged. Sensitive instructions are those that can alter system control or resource allocation, such as control-sensitive operations affecting processor mode or behavior-sensitive ones impacting memory protection. In the PDP-10, instructions like JRST 1—used to jump and restore to user mode—are control-sensitive because they can change the processor state without trapping, yet they execute in user mode without privilege checks, allowing a guest OS to bypass the VMM. However, all user-sensitive instructions on the PDP-10 are privileged, enabling a hybrid VMM (HVMM) where the monitor runs in user mode and emulates executive-mode instructions, including the problematic sensitive ones, to achieve near-equivalence in behavior. Memory protection operations, such as SETM (set memory bounds) and SETPB (set page bounds), are classified as privileged, trapping appropriately to the VMM for resource control in hybrid setups. In contrast, the architecture satisfies the and requirements for full Type I , as all sensitive instructions are privileged, ensuring that attempts to execute them in user mode to the VMM without overhead for the majority of the instruction set. This design allows trap-based VMMs like VM/370 to run unmodified operating systems with high , maintaining the three essential VMM properties: ( behavior matches native execution), (VMM manages all physical resources), and (most instructions execute directly on ). For instance, channel-based I/O instructions, such as SIO (Start I/O) for initiating data transfer via control units, are sensitive due to their impact on peripheral but are privileged, to the VMM for and as needed to prevent interference. While the original theorems abstract away detailed I/O modeling, the System/370's handling of such instructions aligns with the lemma, requiring the VMM to mediate access to devices like tape drives or printers. Later enhancements like PR/SM (Processor Resource/System Manager) built on this foundation, providing hardware-assisted logical partitioning for multiple isolated environments, further leveraging the virtualizable . These early mainframes demonstrated the practical viability of virtualization concepts well before the rise of microprocessor-based systems like x86 in the late 1970s. The System/370's adherence to the s enabled pioneering VMM implementations, such as CP-67 on the predecessor System/360 Model 67 and its evolution into VM/370, which supported concurrent execution of multiple OS instances for and testing, influencing subsequent designs. The PDP-10's hybrid approach, though not fully trap-based, highlighted the need for in non-virtualizable architectures and inspired refinements like the secondary virtualization , which relaxes conditions for supervisor-sensitive instructions. Together, they validated the theorems' utility in classifying architectures and guiding VMM development during the third-generation computing era.

32-Bit Microprocessor Architectures

The MC68000, a seminal 32-bit introduced in , demonstrates limited compatibility with the Popek and Goldberg virtualization requirements due to its handling of sensitive instructions. Specifically, the architecture includes an unprivileged sensitive instruction, MOVE from SR, which permits user-mode execution to read the full , including supervisor mode bits, interrupt levels, and controls, thereby allowing a guest operating system to potentially detect the presence of a virtual monitor (VMM). This violation of the requirement that all sensitive instructions be privileged necessitates software of the instruction to maintain , as hardware cannot be relied upon for interception. Consequently, on the MC68000 demands full CPU rather than efficient trap-and-emulate mechanisms, increasing overhead for virtual implementations. In contexts involving emulated address translation—since the base MC68000 lacks a (MMU)—additional sensitive operations related to mode switching and further complicate direct , reinforcing the need for comprehensive software intervention. The successor MC68010 addressed this by making MOVE from SR privileged and introducing MOVE from CCR for user-accessible condition codes only, but the original design's flaws underscored early challenges in microprocessor support. The architecture, commonly known as x86 and originating from the 80386 in 1985, is categorized as a instruction set architecture () under the and classification, featuring multiple sensitive unprivileged instructions that preclude classical -based . Notable examples include POPF, which alters system flags such as the enable flag (IF) without generating a trap in user mode, and SIDT, which discloses the descriptor table's physical address, enabling guest code to infer host configuration. In contrast, instructions like HLT, which halts the , are privileged and thus trap appropriately to the VMM. These unprivileged violators, totaling around 17 in the Pentium-era , arise from design choices prioritizing and complex addressing in the CISC paradigm. To overcome these limitations, early virtualization solutions such as employed techniques to dynamically rewrite non-virtualizable guest instructions, avoiding excessive trapping and enabling unmodified x86 operating systems to run efficiently under a VMM. The inherent complexity of x86's segmented memory model and evolving feature set perpetuated the need for such software-based "hacks," distinguishing 32-bit microprocessors from more virtualization-friendly mainframe designs and influencing subsequent architectural evolutions.

Modern 64-Bit Architectures

Modern 64-bit architectures have incorporated design principles that more directly align with the Popek and Goldberg virtualization requirements, enabling efficient trap-based virtual machine monitors (VMMs) through enhanced privilege mechanisms and hardware support for sensitive operations. The IA-64 architecture (Itanium), co-developed by Intel and HP, was explicitly designed with virtualization in mind, featuring four privilege levels (PL0 to PL3) that facilitate ring compression: the VMM operates at PL0, the guest OS at PL1, and applications at PL3. This structure ensures that all sensitive instructions—those affecting system resources like protection registers (e.g., region registers for memory isolation) and processor status—are privileged relative to the guest's privilege level, causing them to trap to the VMM without behavioral changes across rings. Consequently, IA-64 supports native trap-based virtualization, minimizing emulation overhead and satisfying the theorems' conditions for equivalence and safety. The SPARC architecture, in its versions 8 and 9, satisfies the Popek and Goldberg criteria for classical virtualization, with most sensitive instructions (e.g., those accessing ancillary system registers or address space identifiers) classified as privileged and trapping appropriately in non-supervisor modes. The Total Store Order (TSO) memory model simplifies virtualization by ensuring sequential consistency for loads and stores, reducing the complexity of emulating memory operations across guest and host contexts. However, certain trap-handling instructions and window management operations require emulation in a full VMM to maintain equivalence, as they exhibit ring-dependent behavior. Extensions in UltraSPARC implementations, such as improved trap prioritization and hypervisor-specific modes, enhance efficiency by reducing the frequency of emulations and supporting nested trapping for better isolation. PowerPC Book E variants, targeted at systems, achieve full virtualizability by designating sensitive instructions—including TLB management operations like tlbwe (TLB write entry)—as privileged, ensuring they trap to the when executed in . This design contrasts with earlier 32-bit PowerPC issues, where unprivileged access to certain control registers necessitated extensive ; in Book E, privilege checks enable direct execution of non-sensitive code while trapping others for or . Such features underpin systems like PowerVM, which leverages these traps for efficient resource partitioning without compromising performance. Recent hardware virtualization extensions in 64-bit architectures retroactively fulfill Popek and Goldberg requirements even for previously challenging designs; for instance, Intel's VT-i for and analogous VT-x for introduce virtual machine control structures that enforce trapping on all sensitive operations, allowing transparent VMM operation.

Practical Considerations

Performance Implications

The performance implications of the Popek and Goldberg virtualization requirements primarily stem from the overhead associated with handling sensitive instructions in virtual machine monitors (VMMs). For architectures meeting the requirements (Type I ISAs), trap-based virtualization allows most non-sensitive instructions to execute directly at near-native speed, with overhead limited to traps on sensitive instructions, which incur context switch costs typically around 1000 cycles per on modern processors. In contrast, Type II ISAs, which violate the requirements by having sensitive instructions that do not trap, necessitate or , introducing higher instruction-level overhead due to the complexity of simulating non-trapping behaviors, often resulting in 10-20% slowdowns for affected workloads. VM rates further amplify this, as frequent traps—such as those from privileged operations or page faults—can lead to measurable performance degradation proportional to the product of frequency and handling latency. Empirical data from early implementations highlight these trade-offs. On the , which largely satisfies the Popek and Goldberg conditions, VM/370 achieved approximately 95% efficiency in CPU utilization for many workloads through trap-and-emulate mechanisms, demonstrating that compliant architectures enable efficient virtualization with minimal intervention for non-sensitive code paths. Prior to hardware assists like VT-x, x86 emulation in software VMMs (e.g., via binary translation to handle non-trapping sensitive instructions) imposed overheads such as 4% slowdown on integer benchmarks like SPECint 2000, though specific operations like time-stamp counter reads could take over 2000 cycles due to trap-and-emulate cycles. These metrics underscore how the requirements promote low-overhead for Type I ISAs, where direct execution dominates, versus the elevated costs of in non-compliant designs. Mitigation strategies focus on reducing trap frequency and handling costs while preserving the equivalence and resource control mandated by the requirements. Hardware assists, such as those in System/370-XA's Virtual Machine Assist, eliminate the need for software of certain instructions, boosting by up to 35% by allowing direct execution and minimizing VM exits. approaches, which modify guest software to explicitly notify the VMM of sensitive operations, trade full equivalence for efficiency gains, reducing overhead by avoiding traps altogether in environments. These techniques align with the Popek and Goldberg goals by enabling VMMs to maintain control while approaching native , particularly as evolution has integrated more assists to handle common exit sources like updates without software intervention.

Relevance to Contemporary Systems

The Popek and Goldberg virtualization requirements continue to underpin the design of contemporary hypervisors, particularly through hardware-assisted mechanisms that enable efficient -based virtualization. For instance, the (KVM) and hypervisors leverage VT-x and Secure Virtual Machine (SVM) extensions to satisfy the requirements by introducing dedicated processor modes and rings that sensitive instructions without overhead. These extensions ensure that virtual machines operate with to physical , allowing unmodified operating systems to run securely under the hypervisor. Similarly, VMware's ESXi hypervisor combines support with techniques for legacy compatibility on older x86 systems lacking full extension coverage, thereby maintaining equivalence in environments where pure trapping is infeasible. Extensions to the original theory have emerged to address practical limitations in modern deployments, such as and nested virtualization. In , paravirtualization modifies the guest operating system—particularly in the privileged Dom0 domain—to explicitly handle virtualization-sensitive operations, relaxing the strict equivalence requirement while improving performance on architectures that partially meet the criteria. This approach, which requires minimal guest modifications (less than 2% of code changes in early implementations), has been widely adopted for server environments. Nested virtualization, enabled by extensions like VT-x's EPT and AMD's NPT, allows hypervisors to run within virtual machines, supporting multi-tenant cloud scenarios; for example, AWS's System offloads traditional functions to dedicated hardware accelerators, enhancing isolation and scalability for nested setups in data centers. The original 1974 paper by and omitted considerations for multi-core processors, GPU virtualization, and non-x86 architectures, gaps that contemporary systems have addressed through architectural evolutions. Modern multi-core x86 designs extend the requirements to handle concurrent execution across cores via per-core trapping, while techniques like SR-IOV enable direct device assignment, bypassing mediation for sensitive I/O operations. On architectures, the introduction of Exception Level 2 (EL2) in ARMv7 and ARMv8 provides a mode that supports trap-based , allowing efficient VMM construction similar to x86 rings and enabling widespread adoption in mobile and . Similarly, the RISC-V ISA's Extension (H-extension), ratified in 2021, introduces a virtual mode (VS-mode) and two-stage memory translation, enabling trap-based compliant with Popek and Goldberg principles for open-source and systems as of 2025. The theorems have had a profound impact on industry standards, serving as the foundational framework for Intel VT-x and AMD-V, which were explicitly designed in the mid-2000s to make x86 architectures fully virtualizable. This hardware support has enabled secure multi-tenancy in post-2010s data centers, powering cloud providers like AWS, , and Google Cloud by reducing virtualization overhead to near-native levels and facilitating the scale-out of virtualized infrastructures. Without these extensions, efficient system virtualization on commodity hardware would remain challenging, underscoring the enduring influence of the requirements on contemporary computing ecosystems.

References

  1. [1]
    [PDF] Formal Requirements for Virtualizable Third Generation Architectures
    This paper develops a model of a third-generation-like computer system and uses formal techniques to derive conditions for virtual machine support.
  2. [2]
    Formal requirements for virtualizable third generation architectures
    Formal requirements for virtualizable third generation architectures. Authors: Gerald J. Popek. Gerald J. Popek. Univ. of Calfifornia, Los Angeles. View Profile.
  3. [3]
    What Is Virtualization? | IBM
    The emergence of virtualization technology dates back to 1964 when IBM launched CP-40, a time-sharing research project for the IBM System/360. CP-40 later ...
  4. [4]
    [PDF] A Brief Review of Its 40 Year History - IBM z/VM
    Many people associate z/VM with the CP-67 which was tied to the S/360 Model 67 and introduced virtual memory in May 1966, the same year the. Monkees released I' ...
  5. [5]
    [PDF] Virtual Machines and Binary Translation
    May 4, 2016 · • High-level instruction set interface designed for binary translation ... • All sensitive instructions must be privileged. – Those that ...
  6. [6]
    [PDF] Virtualization
    Apr 4, 2014 · Goldberg. Formal requirements for virtualizable third generation architectures. Communications of the ACM, 17(7):4122421, July 1974.
  7. [7]
    [PDF] Formal Requirements for Virtualizable Third Generation Architectures
    Gerald J. Popek. Robert P. Goldberg. • Alma Maters: o NYU, Nuclear Engineering o Harvard, Applied Math. • Notable Works: o “Popek and Goldberg.
  8. [8]
    PDP-10 virtual machines - ACM Digital Library
    However, by simulating all executive-mode instructions and in rare cases user-mode instructions, a “hybrid” virtual machine may be constructed. ... Popek G ...
  9. [9]
    [PDF] Comparing and Contrasting Virtualization Technologies - IBM
    Virtualization. Page 11. Popek and Goldberg. In 1974, Gerald Popek and Robert Goldberg released an article titled “Formal. Requirements for Virtualizable Third.
  10. [10]
    [PDF] Survey of Virtual Machine Research - cs.wisc.edu
    Popek, G. J., and R. P. Goldberg. "Formal Requirements for. Virtualizable Third Generation Architectures." Communi- cations of the ACM, Vol. 17, No. 7, 1974 ...Missing: inefficiencies | Show results with:inefficiencies
  11. [11]
    [PDF] Optimized Paravirtualization - USENIX
    The Itanium (IA-64) processor was introduced in 1999, beginning a family of ... Goldberg, “Formal. Requirements for Virtualizable Third Generation.
  12. [12]
    [PDF] Intel Virtualization Technology Specification for the Intel Itanium ...
    The IA-32 version of Intel Virtualization Technology is referred to as VT-x and documentation on VT-x can be found in the Intel Virtualization Technology ...
  13. [13]
    Tailor-made Virtualization Monitor Design for CPU Virtualization on ...
    The proposed virtualization mechanism uses a set of software traps to implement the hypercalls that emulate the behavior of sensitive instructions. The ...
  14. [14]
    [PDF] Efficient Virtualization on Embedded Power ArchitectureRG Platforms
    While the Power Architec- ture meets the Popek-and-Goldberg virtualization requirements for traditional trap-and-emulate style virtualization, the performance.
  15. [15]
    [PDF] TA68: Performance Aspects of x86 Virtualization - CSE, IIT Delhi
    1'st generation hardware assist for instructions (Intel VT-x, AMD-V). 2'nd ... Overhead = trap frequency * average trap cost. Trap sources: Privileged ...
  16. [16]
    [PDF] A Comparison of Software and Hardware Techniques for x86 ...
    Complex operations like context switches call out to the runtime, causing measurable overhead due both to the callout and the emulation work. Finally ...
  17. [17]
    [PDF] Survey of System Virtualization Techniques - Computer Science (CS)
    Mar 8, 2004 · IA-32 (x86) is the most dominate computer architecture today. IA-32 ... Popek and R. P. Goldberg, “Formal requirements for virtualizable.<|control11|><|separator|>
  18. [18]
    [PDF] Hardware and Software Support for Virtualization
    resources appropriately among the virtual machines. Popek and Goldberg formalized the relationship between a virtual machine and hypervisor. (which they call ...
  19. [19]
    [PDF] ECE 574 – Cluster Computing Lecture 23
    Apr 16, 2019 · Popek and Goldberg virtualization requirements. Formal requirements ... virtual vendor string. • Supported by KVM, Xen, VMware, etc.
  20. [20]
    Paravirtualization (PV) - Xen Project Wiki
    Apr 20, 2015 · Paravirtualization (PV) is an efficient and lightweight virtualization technique introduced by the Xen Project team, later adopted by other virtualization ...
  21. [21]
    Reinventing virtualization with the AWS Nitro System
    Sep 14, 2020 · The first infrastructure platform to offload virtualization functions to dedicated hardware and software.
  22. [22]
    [PDF] ARM Virtualization: Performance and Architectural Implications
    Although ARM hardware virtualization support incurs higher overhead on VM-to-hypervisor transitions for. Type 2 hypervisors than x86, we show that both types of.
  23. [23]
    Virtualization host extensions - Arm Developer
    Virtualization Host Extensions (VHE) on Arm processors, supported by DynamIQ, enable efficient EL2 execution by adding a second region and ASID support, ...
  24. [24]
    [PDF] Virtualization
    Apr 10, 2009 · Recent variants of the x86 ISA meet Popek & Goldberg requirements. − Intel VT-x (2005), AMD-V (2006). VT-x introduces two new operating modes: − ...