Hardware Assisted Virtualization
|
|
|
- Randall Harrison
- 10 years ago
- Views:
Transcription
1 Hardware Assisted Virtualization G. Lettieri 21 Oct Introduction In the hardware-assisted virtualization technique we try to execute the instructions of the target machine directly on the host processor, as much as possible. If we are able to execute a large fraction of the target machine instructions in this way, we clearly obtain a large speedup w.r.t. the other techniques we have already examined. Hardware-assisted virtualization is only possible if the host machine understands a superset of the target machine instructions. In some cases, the target and and host machine have exactly the same architecture. As we have seen, this may make perfect sense when the motivations for the use of virtualization are related to cost, flexibility and security, rather than on the unavailability of the target machine hardware. In most cases, however, the two architectures are not exactly the same. To understand why, let us now consider some well known examples from computer architecture. 1.1 The virtual memory example In virtual memory the target machine is almost, but not exactly the same as the host machine we already have. Of course, the two machines may differ in the amount of installed memory, but this is not the only difference. Another difference between the host and target machines lies in the hardware (and maybe software) that is unique to the host and that is needed to build the virtual machine that emulates the target. For example, the host machine typically has an MMU (Memory Management Unit), but the target machine has no such thing. To focus these ideas, let us consider a simple example, again based on the Manchester Baby machine. The machine has only 32 words of memory, but the addr field in the instruction format is 13 bits wide, allowing for a maximum of 2 13 = 8196 addressable words. Let us imagine that we are in the 50s and we want a machine that is exactly the same as the Manchester Baby, only with a memory of 8196 words. We may build other 255 tube memory devices, plus all the logic to access them, but this is going to be very expensive, so we take another route. We regard the 8192-words Manchester Baby as our target 1
2 Figure 1: The magnetic drum memory of the CEP, It has a capacity of bit words. (credit: machine and we create a virtual machine that emulates it on the standard, 32- words Manchester Baby, with the addition of a magnetic drum memory. This is a relatively less expensive, but also much slower, memory than the Williams- Kilburn tubes (see Fig. 1.1 for an examples). The idea is to store all the memory of the target machine in the inexpensive drum. We organize this memory into 256 (8196/32) pages, each one consisting of 32 consecutive words. At any time, only one page is available in the 32-words tube memory of the Manchester Baby. Our virtual machine must swap pages between the tube and the drum as needed, in order to emulate the bigger memory of the target machine. To implement swapping, we choose to add another piece of hardware to the host Baby: an MMU, intercepting all accesses to main memory. Our MMU must contain an 8 bit register, P, that records which one of the possible 256 pages is currently stored in the tube. Whenever a memory operation is initiated at an address a (on 13 bits), the MMU must compare the most significant 8 bits of a with the contents of the P register: in case of match, the requested word is in the tube at address a mod 32; otherwise, a swap must be performed: the current content of 2
3 0 1 A CI a v M Figure 2: The target machine. the tube must be copied on the drum, the requested page must be copied from the drum to the tube, P must be updated accordingly. Now P matches the 8 most significant bits of a, and the memory access can be completed. The drum and the MMU are pieces of hardware that we have added in order to implement the virtual machine, but are not part of the target machine that our virtual machine emulates. The target machine has no drum and no MMU, it is just a Manchester Baby machine with a bigger tube memory. Let us try to formalize what we have done, using the framework we introduced in the first lecture. We need to define the states together with the state transition function for both the target and the virtual machine, and then we need to define the function that maps each virtual state to the corresponding target state. Then, we should check that interpretation is preserved at every step. We take a snapshots just before the fetch of a new instruction, like we did in the first lecture. The target state contains the state of the accumulator, A, the instruction pointer, CI, and the state of the whole 8192 words memory, which we can regard as a vector M, with elements M 0,..., M 8191 : T -state = A, CI, M. Also see Fig. 2, where we have also shown the address, a, coming from the control unit and going to the memory, and the data, v, returned by the memory during a read operation, or provided by the control or arithmetic unit during a write operation. The virtual states need to also show the current contents of the drum and the P register of the MMU. Memory is a vector M of just 32 words, M 0... M 31. For the drum, we assume that we can regard it as a vector D of 8182 words, D 0,..., D 8191 : V -state = A, CI, M, P, D. 3
4 A CI P a v M D Figure 3: The virtual machine. Fig. 3 shows the architecture of the virtual machine. Now we need an interp functions that maps a V -state to a T -state. First, let us define a interp M functions that just maps the memory subsystem part. If we are given M, P and D, then X = interp M (M, P, D) is the 8192-elements vector that represents the contents of the corresponding target memory. The elements of X are defined as follows: { M a mod 32 if P = a/32, X a = (1) otherwise, D a for all 0 a < Each word of the target machine is stored in the main memory, if the word is inside the page that is currently loaded; otherwise, the word is stored in the drum. The complete interp function can be defined as interp( A, CI, M, P, D ) = A, CI, interp M (M, P, D), i.e., the accumulator and instruction pointer are interpreted as themselves, while the memory is interpreted as above. We omit the definitions of the T -next and V -next functions. Intuitively, T -next(s), where s is any T -state, must return the state of the target machine after the execution of the instruction pointed to by CI in s. The same is true for V -next(s). Note that memory accesses in the virtual machine are as follows, where a is the requested memory address and ā = a/32 : 1. if ā = P, then the page currently loaded in the tube memory is the one containing the requested word. In this case there is an access to M a mod 32 (either for reading or writing) and the operation completes. 2. if ā P, the requested page is on the drum. The current contents of the tube memory are copied in drum locations 32P,..., 32P + 31 while 4
5 drum locations 32ā,..., 32ā + 31 are copied into the tube memory. The P register is updated with the ā value and the access is completed like in step 1 above. We can prove the following (we give only informal proofs, since we have not given the formal definition of T -next and V -next). Lemma 1. Let M be the state of the target machine memory and M, P, D the states of the virtual machine memory, MMU and drum, respectively. Assume that M = interp M (M, P, D) (*) and we start a read operation at address a in both memories. Then we obtain the same value v from both. Moreover, if M, M, P and D are the new states after the completion of the operation, it still holds that M = interp M (M, P, D ). Proof. Note that the read operation on the target machine memory returns M a and the memory is not changed, i.e., M = M. For the virtual machine memory we must consider two cases, where ā = a/32 : 1. if ā = P, the virtual machine memory returns M a mod 32. Since we are assuming (*), this is equal to M a by definition (1). Moreover, no state is changed, and therefore the interpreting relation is preserved. 2. If ā P the virtual machine memory will perform a swap, as explained above. At the end of the swap, the new state is M 0 = D 32ā,. M 31 = D 32ā+31, P = ā, D 32P = M 0,. D 32P+31 = M 31, D i = D i for 0 i < 32P or i 32(P + 1). The read operation will return the word M a mod 32 = D 32ā+a mod 32 = D 32 a/32 +a mod 32 = D a, but this is equal to M a by (*) and (1). Note that this time the state of virtual machine memory has changed, so we have to prove that M = interp M (M, P, D ) holds. This can be easily checked by using the equations above, hypothesis (*) and definition (1). 5
6 Lemma 2. Let M be the state of the target machine memory and M, P, D the states of the virtual machine memory, MMU and drum, respectively. Assume that M = interp M (M, P, D) and we start a write operation of word v at address a in both memories. If M, M, P and D are the new states after the completion of the operation, it still holds that M = interp M (M, P, D ). Proof. Exercise. With these two lemmas we can prove the following. Theorem 1. Let s be any T -state and t a V -state such that s = interp(t). Let s = T -next(s) and t = V -next(t). Then s = interp(t ). Proof. Starting from s, the target machine will try to fetch the instruction at address CI. The virtual machine, starting from t, will try to fetch the instruction at CI. Since s = interp(t), we know that CI = CI and, by Lemma 1, we know that both machines will read the same instruction. Moreover, by the same Lemma, the two memories will be left in an equivalent state. After fetching the instruction, the two machines will start to decode and execute them. Since their control and arithmetic unit is exactly the same (the two machines only differ in their memory subsystem), they will perform exactly the same actions until they will need to either read or write from memory. They will present their memories with exactly the same address and, in case of a write operation, also the same value to be written. Now we can apply either Lemma 2 or 1 again and see that the two machines will go into equivalent states even after this new memory operation. The two (identical) control and arithmetic units will again perform exactly the same actions until the point where they will need to fetch another instruction. It is clear that the new states at this point, t and s, will satisfy s = interp(t ). Why is this technique called hardware assisted virtualization? In this example we can see that we need help from the hardware to maintain the correspondence between the virtual machine state and the target state. Our problem, here, is that the host hardware is not exactly the same as the target one: we have a drum memory instead of the bigger tube memory. The target-machine programs will try to access the bigger tube memory, and have no knowledge of the drum. In emulation and binary translation we have the opportunity to change the target-machine program instructions before executing them (either when we interpret them or when we translate them). But now we are running the unmodified target-machine programs directly on the host hardware, so we need assistance from the host hardware itself to hide all the differences. In this example, it is the MMU (a part of the host hardware) that translates all the memory accesses generated by the target machine programs, so that they have the same effect as if they were completed on the target machine. In our formalization, the MMU takes care of updating that part of the V -state that differs from the T -state, so that the V -state continues to be equivalent to the T -state. Note that, in this simple example, we have assumed that all the virtual machine logic can be implemented in the MMU. This is feasible since the Baby 6
7 has just one physical page, so there is no need for complex data structures and algorithms. In a more realistic example, part of the virtual machine logic would be implemented in software: typically, the MMU only translates addresses for the pages that are loaded in memory, and raises an exception for all the other ones. The exception causes the execution of virtual machine software that, in this cases, implements the swapping. Note that, even when part of the virtual machine is software based, we still need help from the hardware: it is the hardware that must raise the exception that triggers the execution of the software module. Keep in mind that we always need to maintain the correspondence between the T -state and V -state. The hardware may be able to perform some of the necessary translation by itself; if it cannot, it must stop the execution and invoke the software. 1.2 The virtual processor example (multiprogramming) In multiprogramming we emulate a target machine which has a greater number of processors than the host machine. Each process runs on its own virtual processor, and virtual processors are multiplexed on the host machine physical processors. Let us assume that the target machine uses a shared memory model, otherwise we would have to virtualize the private memory of each target process as well. In the most simple case, the host machine has just one physical processor. Here, the T -state contains the registers of all virtual processors. The V -state state contains the registers of the physical processor and a set of data structures in the host memory, including: one data structure for each virtual processor, containing a copy of the virtual processors registers; one variable containing the identifier of the virtual processor that is currently running on the physical processor. Our virtual machine emulates one target processor at a time. This is obtained by loading the registers of the physical processor with the values stored in the virtual processor data structure and then letting the physical processor continue the execution. At some later time (maybe determined by a timer), execution is paused, the virtual processor data structure is updated with the current contents of the physical registers, a new virtual processor is selected for execution and so on. A complete definition of T -state, V -state and interp for a simple processor is left as an exercise. Why do we need hardware assistance to implement this virtual machine? Much like the virtual memory example, part of the virtual machine logic may be implemented in software. This is typically the case for the context switching, i.e., loading and unloading the physical processor registers. However, we still need help from the hardware to force the invocation of this software, e.g., with a timer based interrupt. But there is also another kind of help that we need: 7
8 the data structures that store the contents of the virtual processors must only be accessible to the software that implements the virtual machine, and not to the (target) software running on the virtual processors. Otherwise, one virtual processor would be able to read and write into the registers of another virtual processor, something that is not possible in the target machine. The standard solution is to introduce privilege levels in the host processor. The processor may run in one of at least two different privilege levels: in the system level it has access to all the memory, in the user level it has access to only a memory subset that does not include the virtual processors data structures. The timer interrupt switches the host processor to system level and causes a jump to the virtual machine software that performs the context switch. One special instruction, only available at system level, then causes the return to user mode. If there is an attempt to access the privileged memory while the processor is in user mode, the accesses is denied by the hardware. 2 Virtual machines When we talk of virtual machines, we want to virtualize a complete computing system, composed of full processors, memory and I/O peripherals. In the virtual memory and virtual processors examples we have virtualized only a part of the complete system. In particular, the virtual processor (multiprogramming) example only virtualizes part of a full processor namely, only the userspace visible part. In a virtual machine we want to emulate the full processor, since we want to run all the software that runs in the target machine: this includes the operating system software that, in the target machine, has access to the privileged registers and instructions of the processor. For the Intel x86 processor these would be the %cr3 register (pointer to the page directory), the %idtr register (pointer to the interrupt descriptor table),..., plus the instructions that manipulate them. It should be clear that we cannot directly execute any instruction of the target-machine programs that modifies any of these registers, since modifying them affects the state of the entire host machine. Each virtual machine will have its own virtual copy of these registers, and it is these copies that should be updated, not the host registers. At the same time, we want to execute target-machine instructions directly on the host hardware, as much as possible. Again, we need help from the hardware to handle these problematic instructions when they show up in the stream of target instructions. 2.1 Trap-and-emulate A special case of hardware assisted virtualization is when the target and host architecture is exactly the same, i.e., we emulate the full processor by reusing the hardware mechanisms that are already available, and nothing else. The idea is to use the two levels of privilege, user and system, and reserve the system level for the virtual machine monitor (the software that implements the virtual machine) and the user level for all the software running inside the virtual machine (i.e., 8
9 the software originally written for the target machine). The effect of this is that the target-machine system software will run at user privilege. This scheme may work if our processor raises an exception whenever a privileged instruction is used while running at user level: the virtual machine monitor may intercept the fault and emulate the effect of the privileged instruction on the virtual state. Non privileged operations, which typically are a large fraction of the stream of instructions, may be executed directly. This is called a trap-and-emulate virtual machine monitor. The trap-and-emulate virtual machine monitor can be implemented on some architectures but, unfortunately, not on the (original) Intel x86 processors. The problem is that some privileged operations do not raise an exception when executed at user level. One example is the popf instruction. This instruction pops one double-word from the stack and stores it in the EFLAGS register. This is a privileged operation since the EFLAGS register contains the IF flag, that, when zeroed, disables the external interrupts on the processor. Assume that the target system software, running inside our virtual machine, tries to execute this instruction. We would like to intercept the instruction so that we can disable the virtual interrupts of the virtual machine, and (of course) not the real interrupts of the host machine. Unfortunately, the x86 processor does not raise an exception in this case, but it simply does not updated the IF flag when the popf instruction is run at user level. Therefore, we obtain only a part of what we need: the host interrupts are not disabled, but also the virtual interrupts are not disabled, since the virtual machine monitor has no way to know that the system software was trying to disable the target machine interrupts. The former part is good, but the latter part is bad, since our V -state no longer matches the T -state: the target machine has disabled its interrupts, but our virtual machine has not. Other problems arise when the target system software tries to access the privileged registers, such as %cr3: writes from userspace cause an exception, but reads are allowed. Therefore, the software running inside the virtual machine may detect that it is not running on the target machine, by comparing what it writes with what it reads from %cr3: on the target machine the two things would match, but on the virtual machine they would most certainly not (since %cr3 contains the pointer to the page directory used by the host, not the one used by the virtual machine). VMware solved these (and many other) problems using hardware-assisted virtualization for all the target userspace software, and switching to binary translation for the target system software. Today, both AMD and Intel have added virtualization extensions to their processors, in order to allow for efficient hardware assisted virtualization implementations. 9
System Virtual Machines
System Virtual Machines Introduction Key concepts Resource virtualization processors memory I/O devices Performance issues Applications 1 Introduction System virtual machine capable of supporting multiple
kvm: Kernel-based Virtual Machine for Linux
kvm: Kernel-based Virtual Machine for Linux 1 Company Overview Founded 2005 A Delaware corporation Locations US Office Santa Clara, CA R&D - Netanya/Poleg Funding Expertise in enterprise infrastructure
x86 Virtualization Hardware Support Pla$orm Virtualiza.on
x86 Virtualization Hardware Support Pla$orm Virtualiza.on Hide the physical characteris.cs of computer resources from the applica.ons Not a new idea: IBM s CP- 40 1967, CP/CMS, VM Full Virtualiza.on Simulate
Distributed Systems. Virtualization. Paul Krzyzanowski [email protected]
Distributed Systems Virtualization Paul Krzyzanowski [email protected] Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5 License. Virtualization
Virtual machines and operating systems
V i r t u a l m a c h i n e s a n d o p e r a t i n g s y s t e m s Virtual machines and operating systems Krzysztof Lichota [email protected] A g e n d a Virtual machines and operating systems interactions
Virtualization. Pradipta De [email protected]
Virtualization Pradipta De [email protected] Today s Topic Virtualization Basics System Virtualization Techniques CSE506: Ext Filesystem 2 Virtualization? A virtual machine (VM) is an emulation
Virtualization Technology. Zhiming Shen
Virtualization Technology Zhiming Shen Virtualization: rejuvenation 1960 s: first track of virtualization Time and resource sharing on expensive mainframes IBM VM/370 Late 1970 s and early 1980 s: became
Virtualization. Explain how today s virtualization movement is actually a reinvention
Virtualization Learning Objectives Explain how today s virtualization movement is actually a reinvention of the past. Explain how virtualization works. Discuss the technical challenges to virtualization.
Operating Systems. Lecture 03. February 11, 2013
Operating Systems Lecture 03 February 11, 2013 Goals for Today Interrupts, traps and signals Hardware Protection System Calls Interrupts, Traps, and Signals The occurrence of an event is usually signaled
OPERATING SYSTEM - VIRTUAL MEMORY
OPERATING SYSTEM - VIRTUAL MEMORY http://www.tutorialspoint.com/operating_system/os_virtual_memory.htm Copyright tutorialspoint.com A computer can address more memory than the amount physically installed
(Refer Slide Time: 00:01:16 min)
Digital Computer Organization Prof. P. K. Biswas Department of Electronic & Electrical Communication Engineering Indian Institute of Technology, Kharagpur Lecture No. # 04 CPU Design: Tirning & Control
Hypervisors and Virtual Machines
Hypervisors and Virtual Machines Implementation Insights on the x86 Architecture DON REVELLE Don is a performance engineer and Linux systems/kernel programmer, specializing in high-volume UNIX, Web, virtualization,
Virtual Machines. COMP 3361: Operating Systems I Winter 2015 http://www.cs.du.edu/3361
s COMP 3361: Operating Systems I Winter 2015 http://www.cs.du.edu/3361 1 Virtualization! Create illusion of multiple machines on the same physical hardware! Single computer hosts multiple virtual machines
x86 ISA Modifications to support Virtual Machines
x86 ISA Modifications to support Virtual Machines Douglas Beal Ashish Kumar Gupta CSE 548 Project Outline of the talk Review of Virtual Machines What complicates Virtualization Technique for Virtualization
CS 695 Topics in Virtualization and Cloud Computing. More Introduction + Processor Virtualization
CS 695 Topics in Virtualization and Cloud Computing More Introduction + Processor Virtualization (source for all images: Virtual Machines: Versatile Platforms for Systems and Processes Morgan Kaufmann;
Uses for Virtual Machines. Virtual Machines. There are several uses for virtual machines:
Virtual Machines Uses for Virtual Machines Virtual machine technology, often just called virtualization, makes one computer behave as several computers by sharing the resources of a single computer between
Virtualization. Jia Rao Assistant Professor in CS http://cs.uccs.edu/~jrao/
Virtualization Jia Rao Assistant Professor in CS http://cs.uccs.edu/~jrao/ What is Virtualization? Virtualization is the simulation of the software and/ or hardware upon which other software runs. This
Virtualization. P. A. Wilsey. The text highlighted in green in these slides contain external hyperlinks. 1 / 16
Virtualization P. A. Wilsey The text highlighted in green in these slides contain external hyperlinks. 1 / 16 Conventional System Viewed as Layers This illustration is a common presentation of the application/operating
Outline. Outline. Why virtualization? Why not virtualize? Today s data center. Cloud computing. Virtual resource pool
Outline CS 6V81-05: System Security and Malicious Code Analysis Overview of System ization: The most powerful platform for program analysis and system security Zhiqiang Lin Department of Computer Science
A Unified View of Virtual Machines
A Unified View of Virtual Machines First ACM/USENIX Conference on Virtual Execution Environments J. E. Smith June 2005 Introduction Why are virtual machines interesting? They allow transcending of interfaces
Chapter 10: Virtual Memory. Lesson 08: Demand Paging and Page Swapping
Chapter 10: Virtual Memory Lesson 08: Demand Paging and Page Swapping Objective Learn demand paging, pages of data are only brought into the main memory when a program accesses them Learn swapping technique
FRONT FLYLEAF PAGE. This page has been intentionally left blank
FRONT FLYLEAF PAGE This page has been intentionally left blank Abstract The research performed under this publication will combine virtualization technology with current kernel debugging techniques to
VMkit A lightweight hypervisor library for Barrelfish
Masters Thesis VMkit A lightweight hypervisor library for Barrelfish by Raffaele Sandrini Due date 2 September 2009 Advisors: Simon Peter, Andrew Baumann, and Timothy Roscoe ETH Zurich, Systems Group Department
Memory Management Outline. Background Swapping Contiguous Memory Allocation Paging Segmentation Segmented Paging
Memory Management Outline Background Swapping Contiguous Memory Allocation Paging Segmentation Segmented Paging 1 Background Memory is a large array of bytes memory and registers are only storage CPU can
Full and Para Virtualization
Full and Para Virtualization Dr. Sanjay P. Ahuja, Ph.D. 2010-14 FIS Distinguished Professor of Computer Science School of Computing, UNF x86 Hardware Virtualization The x86 architecture offers four levels
Operating Systems Overview
Operating Systems Overview No single definition, but many perspectives: Role in an overall system: Intermediary between computer hardware and everything else User view: Provides an environment, preferably
Virtualization. Dr. Yingwu Zhu
Virtualization Dr. Yingwu Zhu What is virtualization? Virtualization allows one computer to do the job of multiple computers. Virtual environments let one computer host multiple operating systems at the
KVM: A Hypervisor for All Seasons. Avi Kivity [email protected]
KVM: A Hypervisor for All Seasons Avi Kivity [email protected] November 2007 Virtualization Simulation of computer system in software Components Processor: register state, instructions, exceptions Memory
KVM: Kernel-based Virtualization Driver
KVM: Kernel-based Virtualization Driver White Paper Overview The current interest in virtualization has led to the creation of several different hypervisors. Most of these, however, predate hardware-assisted
Operating Systems 4 th Class
Operating Systems 4 th Class Lecture 1 Operating Systems Operating systems are essential part of any computer system. Therefore, a course in operating systems is an essential part of any computer science
Exceptions in MIPS. know the exception mechanism in MIPS be able to write a simple exception handler for a MIPS machine
7 Objectives After completing this lab you will: know the exception mechanism in MIPS be able to write a simple exception handler for a MIPS machine Introduction Branches and jumps provide ways to change
Cloud^H^H^H^H^H Virtualization Technology. Andrew Jones ([email protected]) May 2011
Cloud^H^H^H^H^H Virtualization Technology Andrew Jones ([email protected]) May 2011 Outline Promise to not use the word Cloud again...but still give a couple use cases for Virtualization Emulation it's
Virtualization. Jukka K. Nurminen 23.9.2015
Virtualization Jukka K. Nurminen 23.9.2015 Virtualization Virtualization refers to the act of creating a virtual (rather than actual) version of something, including virtual computer hardware platforms,
Virtualization. Clothing the Wolf in Wool. Wednesday, April 17, 13
Virtualization Clothing the Wolf in Wool Virtual Machines Began in 1960s with IBM and MIT Project MAC Also called open shop operating systems Present user with the view of a bare machine Execute most instructions
MICROPROCESSOR. Exclusive for IACE Students www.iace.co.in iacehyd.blogspot.in Ph: 9700077455/422 Page 1
MICROPROCESSOR A microprocessor incorporates the functions of a computer s central processing unit (CPU) on a single Integrated (IC), or at most a few integrated circuit. It is a multipurpose, programmable
Traditional IBM Mainframe Operating Principles
C H A P T E R 1 7 Traditional IBM Mainframe Operating Principles WHEN YOU FINISH READING THIS CHAPTER YOU SHOULD BE ABLE TO: Distinguish between an absolute address and a relative address. Briefly explain
VMware and CPU Virtualization Technology. Jack Lo Sr. Director, R&D
ware and CPU Virtualization Technology Jack Lo Sr. Director, R&D This presentation may contain ware confidential information. Copyright 2005 ware, Inc. All rights reserved. All other marks and names mentioned
COS 318: Operating Systems. Virtual Machine Monitors
COS 318: Operating Systems Virtual Machine Monitors Kai Li and Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall13/cos318/ Introduction u Have
Operating Systems, 6 th ed. Test Bank Chapter 7
True / False Questions: Chapter 7 Memory Management 1. T / F In a multiprogramming system, main memory is divided into multiple sections: one for the operating system (resident monitor, kernel) and one
Virtualization. ! Physical Hardware. ! Software. ! Isolation. ! Software Abstraction. ! Encapsulation. ! Virtualization Layer. !
Starting Point: A Physical Machine Virtualization Based on materials from: Introduction to Virtual Machines by Carl Waldspurger Understanding Intel Virtualization Technology (VT) by N. B. Sahgal and D.
LSN 2 Computer Processors
LSN 2 Computer Processors Department of Engineering Technology LSN 2 Computer Processors Microprocessors Design Instruction set Processor organization Processor performance Bandwidth Clock speed LSN 2
Security Overview of the Integrity Virtual Machines Architecture
Security Overview of the Integrity Virtual Machines Architecture Introduction... 2 Integrity Virtual Machines Architecture... 2 Virtual Machine Host System... 2 Virtual Machine Control... 2 Scheduling
Kernel Virtual Machine
Kernel Virtual Machine Shashank Rachamalla Indian Institute of Technology Dept. of Computer Science November 24, 2011 Abstract KVM(Kernel-based Virtual Machine) is a full virtualization solution for x86
Chapter 1 Computer System Overview
Operating Systems: Internals and Design Principles Chapter 1 Computer System Overview Eighth Edition By William Stallings Operating System Exploits the hardware resources of one or more processors Provides
A3 Computer Architecture
A3 Computer Architecture Engineering Science 3rd year A3 Lectures Prof David Murray [email protected] www.robots.ox.ac.uk/ dwm/courses/3co Michaelmas 2000 1 / 1 6. Stacks, Subroutines, and Memory
MICROPROCESSOR AND MICROCOMPUTER BASICS
Introduction MICROPROCESSOR AND MICROCOMPUTER BASICS At present there are many types and sizes of computers available. These computers are designed and constructed based on digital and Integrated Circuit
A Hypervisor IPS based on Hardware assisted Virtualization Technology
A Hypervisor IPS based on Hardware assisted Virtualization Technology 1. Introduction Junichi Murakami ([email protected]) Fourteenforty Research Institute, Inc. Recently malware has become more
Virtualization. Types of Interfaces
Virtualization Virtualization: extend or replace an existing interface to mimic the behavior of another system. Introduced in 1970s: run legacy software on newer mainframe hardware Handle platform diversity
Intel s Virtualization Extensions (VT-x) So you want to build a hypervisor?
Intel s Virtualization Extensions (VT-x) So you want to build a hypervisor? Mr. Jacob Torrey February 26, 2014 Dartmouth College 153 Brooks Road, Rome, NY 315.336.3306 http://ainfosec.com @JacobTorrey
Lesson Objectives. To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization
Lesson Objectives To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization AE3B33OSD Lesson 1 / Page 2 What is an Operating System? A
ASSEMBLY PROGRAMMING ON A VIRTUAL COMPUTER
ASSEMBLY PROGRAMMING ON A VIRTUAL COMPUTER Pierre A. von Kaenel Mathematics and Computer Science Department Skidmore College Saratoga Springs, NY 12866 (518) 580-5292 [email protected] ABSTRACT This paper
Storage. The text highlighted in green in these slides contain external hyperlinks. 1 / 14
Storage Compared to the performance parameters of the other components we have been studying, storage systems are much slower devices. Typical access times to rotating disk storage devices are in the millisecond
kvm: the Linux Virtual Machine Monitor
Avi Kivity Qumranet [email protected] kvm: the Linux Virtual Machine Monitor Uri Lublin Qumranet [email protected] Yaniv Kamay Qumranet [email protected] Dor Laor Qumranet [email protected] Anthony
Computer Organization & Architecture Lecture #19
Computer Organization & Architecture Lecture #19 Input/Output The computer system s I/O architecture is its interface to the outside world. This architecture is designed to provide a systematic means of
A Study of Performance Monitoring Unit, perf and perf_events subsystem
A Study of Performance Monitoring Unit, perf and perf_events subsystem Team Aman Singh Anup Buchke Mentor Dr. Yann-Hang Lee Summary Performance Monitoring Unit, or the PMU, is found in all high end processors
matasano Hardware Virtualization Rootkits Dino A. Dai Zovi
Hardware Virtualization Rootkits Dino A. Dai Zovi Agenda Introductions Virtualization (Software and Hardware) Intel VT-x (aka Vanderpool ) VM Rootkits Implementing a VT-x based Rootkit Detecting Hardware-VM
150127-Microprocessor & Assembly Language
Chapter 3 Z80 Microprocessor Architecture The Z 80 is one of the most talented 8 bit microprocessors, and many microprocessor-based systems are designed around the Z80. The Z80 microprocessor needs an
The Microsoft Windows Hypervisor High Level Architecture
The Microsoft Windows Hypervisor High Level Architecture September 21, 2007 Abstract The Microsoft Windows hypervisor brings new virtualization capabilities to the Windows Server operating system. Its
Cloud Computing. Up until now
Cloud Computing Lecture 11 Virtualization 2011-2012 Up until now Introduction. Definition of Cloud Computing Grid Computing Content Distribution Networks Map Reduce Cycle-Sharing 1 Process Virtual Machines
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
Architecture of the Kernel-based Virtual Machine (KVM)
Corporate Technology Architecture of the Kernel-based Virtual Machine (KVM) Jan Kiszka, Siemens AG, CT T DE IT 1 Corporate Competence Center Embedded Linux [email protected] Copyright Siemens AG 2010.
CSC 2405: Computer Systems II
CSC 2405: Computer Systems II Spring 2013 (TR 8:30-9:45 in G86) Mirela Damian http://www.csc.villanova.edu/~mdamian/csc2405/ Introductions Mirela Damian Room 167A in the Mendel Science Building [email protected]
A single register, called the accumulator, stores the. operand before the operation, and stores the result. Add y # add y from memory to the acc
Other architectures Example. Accumulator-based machines A single register, called the accumulator, stores the operand before the operation, and stores the result after the operation. Load x # into acc
OPERATING SYSTEM SERVICES
OPERATING SYSTEM SERVICES USER INTERFACE Command line interface(cli):uses text commands and a method for entering them Batch interface(bi):commands and directives to control those commands are entered
Advanced Computer Architecture-CS501. Computer Systems Design and Architecture 2.1, 2.2, 3.2
Lecture Handout Computer Architecture Lecture No. 2 Reading Material Vincent P. Heuring&Harry F. Jordan Chapter 2,Chapter3 Computer Systems Design and Architecture 2.1, 2.2, 3.2 Summary 1) A taxonomy of
Central Processing Unit (CPU)
Central Processing Unit (CPU) CPU is the heart and brain It interprets and executes machine level instructions Controls data transfer from/to Main Memory (MM) and CPU Detects any errors In the following
Hardware accelerated Virtualization in the ARM Cortex Processors
Hardware accelerated Virtualization in the ARM Cortex Processors John Goodacre Director, Program Management ARM Processor Division ARM Ltd. Cambridge UK 2nd November 2010 Sponsored by: & & New Capabilities
6.828 Operating System Engineering: Fall 2003. Quiz II Solutions THIS IS AN OPEN BOOK, OPEN NOTES QUIZ.
Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.828 Operating System Engineering: Fall 2003 Quiz II Solutions All problems are open-ended questions. In
Basics in Energy Information (& Communication) Systems Virtualization / Virtual Machines
Basics in Energy Information (& Communication) Systems Virtualization / Virtual Machines Dr. Johann Pohany, Virtualization Virtualization deals with extending or replacing an existing interface so as to
CS5460: Operating Systems. Lecture: Virtualization 2. Anton Burtsev March, 2013
CS5460: Operating Systems Lecture: Virtualization 2 Anton Burtsev March, 2013 Paravirtualization: Xen Full virtualization Complete illusion of physical hardware Trap _all_ sensitive instructions Virtualized
Cloud Computing #6 - Virtualization
Cloud Computing #6 - Virtualization Main source: Smith & Nair, Virtual Machines, Morgan Kaufmann, 2005 Today What do we mean by virtualization? Why is it important to cloud? What is the penalty? Current
Lecture 25 Symbian OS
CS 423 Operating Systems Design Lecture 25 Symbian OS Klara Nahrstedt Fall 2011 Based on slides from Andrew S. Tanenbaum textbook and other web-material (see acknowledgements) cs423 Fall 2011 1 Overview
Full System Emulation:
Full System Emulation: Achieving Successful Automated Dynamic Analysis of Evasive Malware Christopher Kruegel Lastline, Inc. [email protected] 1 Introduction Automated malware analysis systems (or sandboxes)
Chapter 11 I/O Management and Disk Scheduling
Operating Systems: Internals and Design Principles, 6/E William Stallings Chapter 11 I/O Management and Disk Scheduling Dave Bremer Otago Polytechnic, NZ 2008, Prentice Hall I/O Devices Roadmap Organization
Operating System Organization. Purpose of an OS
Slide 3-1 Operating System Organization Purpose of an OS Slide 3-2 es Coordinate Use of the Abstractions he Abstractions Create the Abstractions 1 OS Requirements Slide 3-3 Provide resource abstractions
Elemental functions: Writing data-parallel code in C/C++ using Intel Cilk Plus
Elemental functions: Writing data-parallel code in C/C++ using Intel Cilk Plus A simple C/C++ language extension construct for data parallel operations Robert Geva [email protected] Introduction Intel
Operating System Components
Lecture Overview Operating system software introduction OS components OS services OS structure Operating Systems - April 24, 2001 Operating System Components Process management Memory management Secondary
Virtual vs Physical Addresses
Virtual vs Physical Addresses Physical addresses refer to hardware addresses of physical memory. Virtual addresses refer to the virtual store viewed by the process. virtual addresses might be the same
Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai 2007. Jens Onno Krah
(DSF) Soft Core Prozessor NIOS II Stand Mai 2007 Jens Onno Krah Cologne University of Applied Sciences www.fh-koeln.de [email protected] NIOS II 1 1 What is Nios II? Altera s Second Generation
Practical Protection of Kernel Integrity for Commodity OS from Untrusted Extensions
Practical Protection of Kernel Integrity for Commodity OS from Untrusted Extensions Xi Xiong The Pennsylvania State University [email protected] Donghai Tian The Pennsylvania State University Beijing
ARM Virtualization: CPU & MMU Issues
ARM Virtualization: CPU & MMU Issues Prashanth Bungale, Sr. Member of Technical Staff 2010 VMware Inc. All rights reserved Overview Virtualizability and Sensitive Instructions ARM CPU State Sensitive Instructions
Machine Virtualization: Efficient Hypervisors, Stealthy Malware
Machine Virtualization: Efficient Hypervisors, Stealthy Malware Muli Ben-Yehuda Technion & Hypervisor Technologies and Consulting Ltd Muli Ben-Yehuda (Technion & Hypervisor) Efficient Hypervisors, Stealthy
A Lab Course on Computer Architecture
A Lab Course on Computer Architecture Pedro López José Duato Depto. de Informática de Sistemas y Computadores Facultad de Informática Universidad Politécnica de Valencia Camino de Vera s/n, 46071 - Valencia,
OS Virtualization. CSC 456 Final Presentation Brandon D. Shroyer
OS Virtualization CSC 456 Final Presentation Brandon D. Shroyer Introduction Virtualization: Providing an interface to software that maps to some underlying system. A one-to-one mapping between a guest
Real-time Java Processor for Monitoring and Test
Real-time Java Processor for Monitoring and Test Martin Zabel, Thomas B. Preußer, Rainer G. Spallek Technische Universität Dresden {zabel,preusser,rgs}@ite.inf.tu-dresden.de Abstract This paper introduces
Chapter 5 Cloud Resource Virtualization
Chapter 5 Cloud Resource Virtualization Contents Virtualization. Layering and virtualization. Virtual machine monitor. Virtual machine. Performance and security isolation. Architectural support for virtualization.
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Question Bank Subject Name: EC6504 - Microprocessor & Microcontroller Year/Sem : II/IV
DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Question Bank Subject Name: EC6504 - Microprocessor & Microcontroller Year/Sem : II/IV UNIT I THE 8086 MICROPROCESSOR 1. What is the purpose of segment registers
Virtualization. 2010 VMware Inc. All rights reserved
Virtualization Based on materials from: Introduction to Virtual Machines by Carl Waldspurger Understanding Intel Virtualization Technology (VT) by N. B. Sahgal and D. Rodgers Intel Virtualization Technology
Introduction to Operating Systems. Perspective of the Computer. System Software. Indiana University Chen Yu
Introduction to Operating Systems Indiana University Chen Yu Perspective of the Computer System Software A general piece of software with common functionalities that support many applications. Example:
Exception and Interrupt Handling in ARM
Exception and Interrupt Handling in ARM Architectures and Design Methods for Embedded Systems Summer Semester 2006 Author: Ahmed Fathy Mohammed Abdelrazek Advisor: Dominik Lücke Abstract We discuss exceptions
Chapter 2 Logic Gates and Introduction to Computer Architecture
Chapter 2 Logic Gates and Introduction to Computer Architecture 2.1 Introduction The basic components of an Integrated Circuit (IC) is logic gates which made of transistors, in digital system there are
8051 MICROCONTROLLER COURSE
8051 MICROCONTROLLER COURSE Objective: 1. Familiarization with different types of Microcontroller 2. To know 8051 microcontroller in detail 3. Programming and Interfacing 8051 microcontroller Prerequisites:
CHAPTER 6 TASK MANAGEMENT
CHAPTER 6 TASK MANAGEMENT This chapter describes the IA-32 architecture s task management facilities. These facilities are only available when the processor is running in protected mode. 6.1. TASK MANAGEMENT
Hypervisors. Introduction. Introduction. Introduction. Introduction. Introduction. Credits:
Hypervisors Credits: P. Chaganti Xen Virtualization A practical handbook D. Chisnall The definitive guide to Xen Hypervisor G. Kesden Lect. 25 CS 15-440 G. Heiser UNSW/NICTA/OKL Virtualization is a technique
CS161: Operating Systems
CS161: Operating Systems Matt Welsh [email protected] Lecture 2: OS Structure and System Calls February 6, 2007 1 Lecture Overview Protection Boundaries and Privilege Levels What makes the kernel different
The basic CAP CPU consists of a microprogramming control unit, 4K 16-bit words of micro-control storage, and an 79
5 The Cambridge CAP Computer 5. I Introduction In 1970, Roger Needham and Maurice Wilkes at Cambridge University began a research project to construct a capabilitybased machine. In contrast to the Chicago
COS 318: Operating Systems. Virtual Machine Monitors
COS 318: Operating Systems Virtual Machine Monitors Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall10/cos318/ Introduction Have been around
Lecture 5. User-Mode Linux. Jeff Dike. November 7, 2012. Operating Systems Practical. OSP Lecture 5, UML 1/33
Lecture 5 User-Mode Linux Jeff Dike Operating Systems Practical November 7, 2012 OSP Lecture 5, UML 1/33 Contents User-Mode Linux Keywords Resources Questions OSP Lecture 5, UML 2/33 Outline User-Mode
Computer Systems Structure Main Memory Organization
Computer Systems Structure Main Memory Organization Peripherals Computer Central Processing Unit Main Memory Computer Systems Interconnection Communication lines Input Output Ward 1 Ward 2 Storage/Memory
