What is a VM? Categories of Virtual Machines. Process Virtual Machine 11/17/2010

Similar documents
Last class: OS and Architecture. OS and Computer Architecture

Last class: OS and Architecture. Chapter 3: Operating-System Structures. OS and Computer Architecture. Common System Components

Chapter 3: Operating-System Structures

Chapter 3: Operating-System Structures

OS and Computer Architecture. Chapter 3: Operating-System Structures. Common System Components. Process Management

Introduction to Java. Lecture 1 COP 3252 Summer May 16, 2017

Chapter 3: Operating-System Structures

What are some common categories of system calls? What are common ways of structuring an OS? What are the principles behind OS design and

CHAPTER 16 - VIRTUAL MACHINES

Learning Outcomes. Extended OS. Observations Operating systems provide well defined interfaces. Virtual Machines. Interface Levels

CSCI 8530 Advanced Operating Systems. Part 19 Virtualization

Operating Systems 4/27/2015

Introduction to Java Programming

COMP 3400 Mainframe Administration 1

Lecture 5: February 3

From High Level to Machine Code. Compilation Overview. Computer Programs

Reserves time on a paper sign-up sheet. Programmer runs his own program. Relays or vacuum tube hardware. Plug board or punch card input.

! Software ( kernel ) that runs at all times. ! OS performs two unrelated functions: Maria Hybinette, UGA. user! 1! Maria Hybinette, UGA. user! n!

Virtualization. Dr. Yingwu Zhu

Operating System Structure

Operating Systems CS3502 Spring 2018

2 Introduction to Java. Introduction to Programming 1 1

Virtualization. Pradipta De

CMSC 430 Introduction to Compilers. Fall Language Virtual Machines

Fiji VM Safety Critical Java

Chapter 2: Operating-System Structures

Originally prepared by Lehigh graduate Greg Bosch; last modified April 2016 by B. Davison

Full file at

OPERATING SYSTEMS UNIT - 1

Chapter 2: System Structures. Operating System Concepts 9 th Edition

CHAPTER 16 - VIRTUAL MACHINES

Lecture 4: Extensibility (and finishing virtual machines) CSC 469H1F Fall 2006 Angela Demke Brown

The Challenges of X86 Hardware Virtualization. GCC- Virtualization: Rajeev Wankar 36

Module 3: Operating-System Structures. Common System Components

HCIM SUMMER WORKSHOP Introduction to C#

Virtual Machine Systems

NON SCHOLAE, SED VITAE

1. Introduction. Java. Fall 2009 Instructor: Dr. Masoud Yaghini

CSE 237B Fall 2009 Virtualization, Security and RTOS. Rajesh Gupta Computer Science and Engineering University of California, San Diego.

z/vm 6.3 Installation or Migration or Upgrade Hands-on Lab Sessions

Module 3: Operating-System Structures

Spring 2017 :: CSE 506. Introduction to. Virtual Machines. Nima Honarmand

An Introduction to Software Engineering. David Greenstein Monta Vista High School

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Xamarin. MS (IT), 4 th Sem. HOD, Dept. Of IT, HOW DOES XAMARIN WORKS?

CSE Computer Security

Chapter 2: Operating-System Structures. Operating System Concepts Essentials 8 th Edition

OS Virtualization. Why Virtualize? Introduction. Virtualization Basics 12/10/2012. Motivation. Types of Virtualization.

Chapter 2: System Structures

An overview of virtual machine architecture

Chapter 2: Operating-System

Virtual Machines Glenn Story Copyright (c) Last Updated April 16, 2011

Virtual Machines. Part 1: 54 years ago. Operating Systems In Depth VIII 1 Copyright 2018 Thomas W. Doeppner. All rights reserved.

Operating- System Structures

Virtual Machine Monitors!

Types of Virtualization. Types of virtualization

High-Level Language VMs

Chapter 2: Operating-System Structures

Module 1: Virtualization. Types of Interfaces

Chapter 2. Operating-System Structures

Run-time Program Management. Hwansoo Han

ELEC 377 Operating Systems. Week 1 Class 2

Japan Linux Symposium Daisuke Numaguchi Tetsuo Handa Giuseppe La Tona NTT DATA CORPORATION

Operating System: Chap2 OS Structure. National Tsing-Hua University 2016, Fall Semester

Outline. Introduction to Java. What Is Java? History. Java 2 Platform. Java 2 Platform Standard Edition. Introduction Java 2 Platform

Distributed Systems COMP 212. Lecture 18 Othon Michail

Computer Security. 05. Confinement. Paul Krzyzanowski. Rutgers University. Spring 2018

CSE543 - Computer and Network Security Module: Virtualization

Unit 5: Distributed, Real-Time, and Multimedia Systems

CSE543 - Computer and Network Security Module: Virtualization

Advanced Computer Architecture

CSE543 - Computer and Network Security Module: Virtualization

z/vm Introduction 3/10/2014

Virtualization. Michael Tsai 2018/4/16

CSCI 6730 / 4730 Operating Systems. Key Questions in System Design. Review: What is An Operating System? Key Points

Chapter 2: Operating-System Structures. Chapter 2: Operating-System Structures. Objectives. Operating System Services

Chapter 2: Operating-System Structures

TDDI04, K. Arvidsson, IDA, Linköpings universitet Operating System Structures. Operating System Structures Overview. Operating System Services

Chapter 2: Operating-System Structures

System z Virtualization and Linux Workshop Bootcamp System z Hardware / Architecture

CPS221 Lecture: Operating System Functions

Operating-System Structures

CMSC 430 Introduction to Compilers. Spring Intermediate Representations and Bytecode Formats

Assoc. Prof. Dr. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved.

Unit 2 : Computer and Operating System Structure

Novell Open Enterprise Server 2: Deploying Virtualized NetWare on Linux *

for Kerrighed? February 1 st 2008 Kerrighed Summit, Paris Erich Focht NEC

Virtualization and memory hierarchy

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

Chapter 5 C. Virtual machines

LIA. Large Installation Administration. Virtualization

Memory Layout for a Simple Batch System

Virtualization. Virtualization

CS 470 Spring Virtualization and Cloud Computing. Mike Lam, Professor. Content taken from the following:

Virtual Machines. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

Four Components of a Computer System

COMPUTER ARCHITECTURE. Virtualization and Memory Hierarchy

The Architecture of Virtual Machines Lecture for the Embedded Systems Course CSD, University of Crete (April 29, 2014)

6.828: OS/Language Co-design. Adam Belay

IcedRobot. The GNUlization of Android. Mario Torre David Fu. With the collaboration of Mark Wielaard and Roman Kennke

Transcription:

What is a VM? Virtual Machines COMP755 An efficient, isolated duplicate of a real machine Current use includes virtual machines which have no direct correspondence to any real hardware Categories of Virtual Machines Process virtual machine Runs a program System virtual machine Provides a complete system platform which supports the execution of a complete operating system Process Virtual Machine Provides a platform independent programming environment tthat t abstracts bt t away details dtil of the underlying hardware or operating system Allows a program to execute in the same way on any platform. Runs as a normal application inside an OS Generally starts and terminates with an application program 1

Java Virtual Machine The Java Virtual Machine (JVM) provides an architecture t independent d environment tfor executing Java programs. There are JVM available for many different platforms. Java was originally created by Sun Microsystems. There are now many sources for a JVM. Traditional Program Creation Libraries Source Code Compiler Object File Linker Executable OS Program Load Traditional Java Programs Modern Virtual Machines Source Code Compiler Source Code Compiler Bytecode Libraries Bytecodes Java Virtual Machine Bytecode Libraries Bytecodes Virtual Machine JIT machine language 2

Virtual Machine Advantages Architecture independent bytecodes can be executed in a Virtual Machine on any architecture Bytecodes can be compiled into machine language for any machine Compilers can generate code that can be sent over the network to be executed anywhere Virtual Machines provide additional services Java Virtual Machine Services Program safety verification Garbage collection Array bounds checking Enforce security restrictions Java Security Java applications can do just about anything Java applets (which usually run in a browser) cannot access client files cannot execute many of the System functions, such as exit cannot connect to sites other than the one from which it was downloaded Java Policies The basic responsibility of a Policy object is to determine whether access to a protected resource is permitted Java encapsulates a security policy in the java.security.policy class Policies are kept in a.policy file, either the default or a user created.policy file Policy files can be created using the GUI policytool utility 3

JVM Disadvantages There are differences in how the underlying systems work Performance might not be as good as native code Dalvik - Android Virtual Machine Creates environment to execute phone applications Interpretively executes Java programs After the Java program is compiled, the Java jar file is converted to a new format called Dex (Dalvik EXecutable) Android applications are written in Java, but they call libraries written in C Framework Common Language Runtime Programming language independent C, C++, C#, J#, Visual Basic Cross language integration, especially crosslanguage inheritance Garbage collection Microsoft Visual Studio will generate CLR code that is executed in the.net environment. Microsoft Intermediate Language Microsoft intermediate language (MSIL) is generated by.netcompilers CPU independent set of instructions that can be efficiently converted to native code Converted to CPU specific code, by a just in time (JIT) compiler or by the Native Image Generator before execution Code verification determines if the code is type safe 4

Java Lawsuits Sun/Oracle have sued to keep Java to their specifications In 1997 Microsoft released a JVM with IE that had several changes; some improvements and some to avoid competition with MS software In 2010 Oracle sued Google claiming the Dalvik virtual machine violated Oracle Java patents System Virtual Machines A system virtual machine provides a simulated environment that supports guest OS The VM simulates the bare hardware The guest OS might not know it is running in a simulated environment Advantages of System VMs Multiple OS environments can co exist on the same computer, in strong isolation from each other The virtual machine can provide an instruction set architecture that is somewhat different from that of the real machine Fewer Computers Many servers often have low utilization One computer may have sufficient recourses to run multiple servers It is often possible to run multiple server applications on one computer Running server applications in different virtual machines provides isolation should one of them fail 5

Being Green Fewer computers saves Money Space Maintenance Electricity Cooling Disadvantages of System VMs A virtual machine is less efficient than a real machine because it accesses the hardware indirectly Page faults can be challenging to support Types of System VM The virtual machine system is often called the hypervisor The hypervisor can be booted onto the native hardware or it can run as an application under a host OS Thehypervisor hypervisor can provide the guest OS access to real devices or simulated devices. VM Isolation VMs are commonly used to simultaneously run two or more server systems on the same computer While it may be possible to run the two server applications under the same OS on the same computer, the failure of one server may impact the other. With VM the failure of one guest system will not impact the others. 6

How VM does it The guest OS runs at user level User level instructions of the guest OS are executed on the hardware as usual When the guest OS executes a privileged instruction, the hardware interrupts. The hypervisor then simulates the action of the privileged instruction. VM challenges Virtual memory can be a challenge for virtual machines. When a guest OS applications gets a page fault, should the guest OS service the interrupt or should the hypervisor. Thehypervisor hypervisor controls how much real memory the guest OS has. Some VM systems configure the guest OS as having a very large amount of real memory. Emulators An emulator program can simulate the hardware execution. The simulated system does not need to be identical to the native hardware. Particularly useful for developing software for a hardware platform that is not yet available. VMware Architecture 7

IBM VM/370 IBM/370 was a system virtual machine created din 1972 for IBM mainframes Current version is z/vm, and is still widely used Provided virtual machines to simultaneously run a range of different OS Control Program control program or hypervisor called CP Runs on the physical hardware, and creates the virtual machine environment Performs the system's resource sharing, including device management, dispatching, virtual storage management, and other traditional operating system tasks Virtual Machines under VM/370 Each VM user is provided with a separate virtual it machine having its own address space, virtual devices The virtual machine has virtual devices including minidisks which are files on the CP that look like small disk drives to the VM Guest OS Possibilities Conversational Monitor System (CMS) Mainstream IBM OS specialized VM subsystem providing services to CMS users such as spooling, inter process communications, and specialized device support Non IBM OS such as Linux Another copy of VM. 8

Conversational Monitor System (CMS) Lightweight, single user operating system. Its interactiveenvironment environment is comparable to that of a single user PC Runs as a single user OS under VM/370 Historically not a strategic IBM OS CMS User Interface Users boot CMS in their virtual machine Each account has an OS that will boot automatically when the user logs on Provides a command line interface with full screen applications Typicallyused anibm3270 terminal IBM 3270 terminal IBM s block concept of communication Local lbuffer storage Some minor processing capabilities Generally dealt with an entire screen of data at a time Handled dediting tasks locally, ll and then transmitted a set of fields (or the entire page) at once when the ENTER key was pressed. VM / CP Interface Users could configure their virtual machine Communicated with CP via the non virtualized DIAG (diagnose) instruction The virtual machines had virtual card readers, card punches and printers To send email to another user, your virtual card punch was connected to another users virtual card reader 9

REXX REXX was an IBM scripting language It runs under CMS and in the primary CMS editor Xedit Many of the CMS standard applications were just REXX macros Users could edit the macros 10