Lecture 6: HLL VM - I
|
|
|
- Rose Craig
- 9 years ago
- Views:
Transcription
1 CSCI-GA Virtual Machines: Concepts & Applications Lecture 6: HLL VM - I Mohamed Zahran (aka Z) [email protected] Disclaimer: Many slides of this lecture are based on the slides of authors of the textbook from Elsevier. All copyrights reserved.
2 What are we talking about? Traditional process VMs are afterthoughts How about if we design a special guest ISA/system interface: With portability as the main goal define an abstract interface that can be supported by all conventional OSes. Reflects important features of specific HLL or class of HLLs. Simplifies compilation This is why we call them HLL VMs
3 HLL VM is similar to Process VM BUT ISA defined for user-mode programs only ISA not designed for real hardware Only to be executed on virtual processor Referred to as virtual-isa or V-ISA System interface is a set of standardized APIs
4 HLL VMs from language/compiler perspective Goal: complete platform independence for applications Virtual instruction set + libraries Instead of ISA and OS interface HLL Program HLL Program Compiler front-end Compiler Intermediate Code Object Code ( ISA ) Memory Image Compiler back-end Loader Portable Code ( Virtual ISA ) Virt. Mem. Image Host Instructions VM loader VM Interpreter/Translator Traditional HLL VM
5 P-Code VM Popularized HLL VMs Provided highly portable version of Pascal Consists of Primitive libraries Machine-independent object file format A set of byte-oriented pseudo-codes Virtual machine definition of pseudo-code semantics 5
6 P-Code VM function value MP Instruction set Stack oriented Stack Frame is part of VM definition MP: Mark Pointer EP: Extreme Pointer NP: New Pointer SP: Stack Pointer MP EP NP stack frame stack frame heap constant area static link dynamic link previous EP return address parameters locals operand stack mark stack SP EP lodi 0 3 // load variable from current frame (nest 0 depth), // offset 3 from top of mark stack. ldci 1 // push constant 1 addi // add stri 0 3 // store variable back to location 3 of current frame
7 P-Code VM Advantages Porting is simplified Don t have to develop compilers for all platforms VM implementation is smaller/simpler than a compiler VM provides concise definition of semantics Through interpretation, startup time is reduced Generic I/O and Memory interface Tended to be least common denominator Relatively weak I/O capabilities
8 Modern HLL VMs Superficially similar to P-code scheme Stack-oriented ISA Standard libraries Network Computing Environment Untrusted software (this is the internet, after all) Robustness (generally a good idea) object-oriented programming Bandwidth is a consideration Good performance must be maintained Two major examples Java VM Microsoft Common Language Infrastructure (CLI)
9 Modern HLL VMs Compiler forms program files (e.g. class files) Standard format Program files contain both code and metadata Machine Independent Program File Metadata Loader Virtual Machine Implementation Internal Data Structures Machine Dependent Interpreter Code Translator Native Code
10 Terminology Java Virtual Machine Architecture CLI Analogous to an ISA Java Virtual Machine Implementation CLR (Common Language Runtime) Analogous to a computer implementation Java bytecodes Microsoft Intermediate Language (MSIL), CIL, IL The instruction part of the ISA Java Platform.NET framework ISA + Libraries; a higher level ABI
11 4 Characteristics of HLL VMs Security Robustness Networking Performance
12 Security A key aspect of modern network-oriented VMs Must protect: Local files and resources Runtime from user process The program runs in a sandbox at the host machine. It is managed by the VM runtime. The ability to load an untrusted application and run it in a managed secure fashion is a very big challenge! Public File application VMM User Process Remote System Network Local System Other File Accessible Local File Other Local File Sandbox Boundary
13 Protection Sandbox Remote resources Protected by remote system Local resources Protected by security manager VM software Protected via static/dynamic checking class file class file class file Network, File System lib. method loaded method loaded method lib. method loaded method class file loaded method loaded method local file local file native method standard libraries trusted native method loaded method security agent trusted Emulation Engine trusted loader trusted
14 Robustness: Object-Orientation Objects Data carrying entities Dynamically allocated Must be accessed via pointers or references Methods Procedures that operate on objects Class A type of object and its associated methods Object created at runtime is an instance of the class Data associated with a class may be dynamic or static OO programming paradigm has become the model of choice for modern HLL VMs. Both Java and CLI are designed to support OO software.
15 Networking The application must use the available bandwidth (scarce) efficiently Application loaded incrementally dynamic linking Improves program startup-time
16 Performance Of course we sacrifice some performance for the sake of portability Yet, we can use the techniques we learned so far (and some more as we proceed) to ensure good performance.
17 Java Virtual Machine (JVM) Source:
18 Data items Types are defined, but not implementation details Reference types (pointers): number of bits needed is not part of Java ISA. Primitive types, e.g. int, char, byte, short, long, float, double, Another primitive type: ReturnAddress (not in Java HLL but in Java ISA) Exact sizes of data types are not given Only the range of values that can be held e.g. byte is between 128 and +127
19 Objects and Arrays Objects: Logical structure, defined by programmer, to carry data Composed of primitive data types and references Array Fixed number of elements All elements must be of the same type If the elements are references then they must all point to objects of the same type
20 Data Storage Types Global the main memory where globally declared variables reside Local temporary storage for variables local to a method Operand holds variables while they are being operated on by functional instructions Allocated on the stack
21 Data Storage Types All storage is divided into cells or slots A cell/slot usually holds a single data item Actual amount of bits needed for cell/slot is implementation dependent
22 Stack Arguments Locals Operands In that order As each method is called, a stack frame is allocated. Locals Operands Arguments Locals Operands Of fixed size determined at compile time Arguments Locals Operands
23 Global Memory Method area for holding code Global storage area for holding arrays and objects managed as a heap of unspecified size with respect to JVM architecture Can contain both static and dynamic objects
24 Heap Objects are created on heap Each application has only one Each application has its own JVM instructions allocate objects on heap No instruction to release memory Garbage collection is part of implementation Object representation is implementation dependent
25 Constant Pool ISA allows constants to be expressed in the instruction as immediate operands But some constants: are used by several instructions are of different ranges So: Constant data associated with a program is placed in a block called constant pool Instructions access them by indexing constant pool Constant pool then: defined as part of the ISA Exact size of constants is specified Does not change with program execution
26 Putting is All Together: Memory Hierarchy in JVM CONSTANT POOL HEAP Array index Object Instruction stream opcode operand operand opcode opcode operand opcode operand operand opcode opcode operand opcode opcode operand index index implied implied STACK FRAME Locals Operands Object Object
27 Network Friendliness Support dynamic class file loading on demand Load only classes that are needed Spread loading out over time Compact instruction encoding Use stack-oriented ISA (as in Pascal)
28 Garbage Collected Heap Objects are created and float in memory space Tethered by references In architecture, memory is unbounded in size In reality it is limited Garbage creation During program execution, many objects are created then abandoned (become garbage) Collection Due to limited memory space, Garbage should be collected so memory can be re-used Forcing programmer to explicitly free objects places more burden on programmer Can lead to memory leaks, reducing robustness To improve robustness, have VM collect garbage automatically
29 Instruction Set Stack based Defined for class file, not memory image Bytecodes One byte opcode Zero or more operands Opcode indicates how many Can take operands from Instruction Current constant pool Current frame local variables Values on operand stack Distinguish storage types and computation types opcode opcode index opcode index1 index2 opcode data opcode data1 data2 index into constant pool or into local storage
30 Implied Registers Program Counter Local variable pointer Operand stack pointer Current frame pointer Constant pool base
31 Instruction Types Pushing constants onto the stack Moving local variable contents to and from the stack Managing arrays Generic stack instructions (dup, swap, pop & nop) Arithmetic and logical instructions Conversion instructions Control transfer and function return Manipulating object fields Method invocation Miscellaneous operations Monitors
32 Data Movement All data movement takes place through stack CONSTANT POOL GLOBAL STORAGE STACK FRAME Instruction stream opcode operand operand opcode opcode operand locals operand stack ALU
33 Bytecode Example PC instruction 0: iconst_2 //pushes constant 2 onto operand stack 1: aload_0 //pushes local variable 0 onto the stack 2: getfield #2; //object ref on the stack, entry 2 on constant pool gives descr 5: iconst_0 6: iaload 7: aload_0 8: getfield #2; 11: iconst_1 12: iaload 13: iadd 14: imul 15: ireturn
34 Stack Tracking Operand stack at any point in program have: Same number of operands Of same types In same order Regardless of control flow path getting there Helps with static type checking by the loader
35 Formal ISA Specification Magic number and header Binary Classes Major regions preceded by counts Constant pool Interfaces Field information Methods Attributes Magic Number Version Information Const. Pool Size Constant Pool Access Flags This Class Super Class Interface Count Interfaces Field count Field Information Methods count Methods Attributes Count Attributes
36 Binary Classes Holds all constant values and references used by the methods that are to follow. Provides access information, example: whether public whether interface Given as indices in the constant pool Magic Number Version Information Const. Pool Size Constant Pool Access Flags This Class Super Class Interface Count Interfaces Field count Field Information Methods count Methods Attributes Count Attributes
37 Binary Classes Contains a number of references to the superinterfaces to this class Given as indices in the constant pool The constant pool entries are references to the interfaces Contains the specifications of the fields declared in this class The information regarding each method, as well as the methods themselves (encoded as bytecode) Contains detailed information regarding the previous sections Magic Number Version Information Const. Pool Size Constant Pool Access Flags This Class Super Class Interface Count Interfaces Field count Field Information Methods count Methods Attributes Count Attributes
38 A Note About: Garbage Collection Garbage: objects that are no longer accessible Examples: A Global Heap B D, G, H Root Set C D... E F G H
39 Garbage Collection A large topic on its own Mark and sweep Start with root set of references On stack, static objects, constant pool Trace and mark all reachable objects Sweep through heap, collecting marked objects Keep free space in linked list Advantage: Fast Does not require moving object/pointers Disadvantage: Discontiguous free space, fragmentation Allocate new objects from best-fit free list 39
40 Compacting Collector Make free space contiguous Involves multiple passes through heap A lot of object movement => many pointer updates free A B C D E F G H free A B C E G
41 Copying Collector Divide heap into halves Collect when one half full Copy into unused half during sweep phase + Reduces passes through heap - Wastes half of heap unused free A B C D E F free A B C E G unused G H
42 Generational Collector Divide heap into halves tenured and nursery Collect nursery more frequently Move long-lived objects into tenured half Objects have either very long or very short lives
43 JVM Bytecode Emulation Interpretation Simple, fast startup, but slow Just-In-Time (JIT) Compilation Compile each method when first touched Simple, static optimizations Hot-Spot Compilation Find frequently executed code Apply more aggressive optimizations on that code Typically phased with interpretation or JIT Dynamic Compilation Based on Hot-Spot compilation Use runtime information to optimize More later
44 So JVM is: An abstract entity that gives meaning to class files Has many concrete implementations Hardware Interpreter JIT compiler Persistence An instance is created when an application starts Terminates when the application finishes
45 Conclusions HLL VM is built with portability as main goal: Building a loader and JIT compiler is easier than building a full-fledged compiler API and not ABI
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
picojava TM : A Hardware Implementation of the Java Virtual Machine
picojava TM : A Hardware Implementation of the Java Virtual Machine Marc Tremblay and Michael O Connor Sun Microelectronics Slide 1 The Java picojava Synergy Java s origins lie in improving the consumer
1 The Java Virtual Machine
1 The Java Virtual Machine About the Spec Format This document describes the Java virtual machine and the instruction set. In this introduction, each component of the machine is briefly described. This
Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters
Interpreters and virtual machines Michel Schinz 2007 03 23 Interpreters Interpreters Why interpreters? An interpreter is a program that executes another program, represented as some kind of data-structure.
The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. [email protected] Oct 2003 Presented to Gordon College CS 311
The Java Virtual Machine and Mobile Devices John Buford, Ph.D. [email protected] Oct 2003 Presented to Gordon College CS 311 Objectives Review virtual machine concept Introduce stack machine architecture
General Introduction
Managed Runtime Technology: General Introduction Xiao-Feng Li ([email protected]) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime
Chapter 7D The Java Virtual Machine
This sub chapter discusses another architecture, that of the JVM (Java Virtual Machine). In general, a VM (Virtual Machine) is a hypothetical machine (implemented in either hardware or software) that directly
Introduction to Virtual Machines
Introduction to Virtual Machines Introduction Abstraction and interfaces Virtualization Computer system architecture Process virtual machines System virtual machines 1 Abstraction Mechanism to manage complexity
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
language 1 (source) compiler language 2 (target) Figure 1: Compiling a program
CS 2112 Lecture 27 Interpreters, compilers, and the Java Virtual Machine 1 May 2012 Lecturer: Andrew Myers 1 Interpreters vs. compilers There are two strategies for obtaining runnable code from a program
Instruction Set Design
Instruction Set Design Instruction Set Architecture: to what purpose? ISA provides the level of abstraction between the software and the hardware One of the most important abstraction in CS It s narrow,
02 B The Java Virtual Machine
02 B The Java Virtual Machine CS1102S: Data Structures and Algorithms Martin Henz January 22, 2010 Generated on Friday 22 nd January, 2010, 09:46 CS1102S: Data Structures and Algorithms 02 B The Java Virtual
The Java Virtual Machine (JVM) Pat Morin COMP 3002
The Java Virtual Machine (JVM) Pat Morin COMP 3002 Outline Topic 1 Topic 2 Subtopic 2.1 Subtopic 2.2 Topic 3 2 What is the JVM? The JVM is a specification of a computing machine Instruction set Primitive
Jonathan Worthington Scarborough Linux User Group
Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.
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
Habanero Extreme Scale Software Research Project
Habanero Extreme Scale Software Research Project Comp215: Java Method Dispatch Zoran Budimlić (Rice University) Always remember that you are absolutely unique. Just like everyone else. - Margaret Mead
University of Twente. A simulation of the Java Virtual Machine using graph grammars
University of Twente Department of Computer Science A simulation of the Java Virtual Machine using graph grammars Master of Science thesis M. R. Arends, November 2003 A simulation of the Java Virtual Machine
Fachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert
Ubiquitous Computing Ubiquitous Computing The Sensor Network System Sun SPOT: The Sun Small Programmable Object Technology Technology-Based Wireless Sensor Networks a Java Platform for Developing Applications
- Applet java appaiono di frequente nelle pagine web - Come funziona l'interprete contenuto in ogni browser di un certo livello? - Per approfondire
- Applet java appaiono di frequente nelle pagine web - Come funziona l'interprete contenuto in ogni browser di un certo livello? - Per approfondire il funzionamento della Java Virtual Machine (JVM): -
Instruction Set Architecture (ISA)
Instruction Set Architecture (ISA) * Instruction set architecture of a machine fills the semantic gap between the user and the machine. * ISA serves as the starting point for the design of a new machine
The Design of the Inferno Virtual Machine. Introduction
The Design of the Inferno Virtual Machine Phil Winterbottom Rob Pike Bell Labs, Lucent Technologies {philw, rob}@plan9.bell-labs.com http://www.lucent.com/inferno Introduction Virtual Machine are topical
Virtual Machines. Virtual Machines
Virtual Machines Virtual Machines What is a virtual machine? Examples? Benefits? 1 Virtualization Creation of an isomorphism that maps a virtual guest system to a real host: Maps guest state S to host
Restraining Execution Environments
Restraining Execution Environments Segurança em Sistemas Informáticos André Gonçalves Contents Overview Java Virtual Machine: Overview The Basic Parts Security Sandbox Mechanisms Sandbox Memory Native
C# and Other Languages
C# and Other Languages Rob Miles Department of Computer Science Why do we have lots of Programming Languages? Different developer audiences Different application areas/target platforms Graphics, AI, List
System Structures. Services Interface Structure
System Structures Services Interface Structure Operating system services (1) Operating system services (2) Functions that are helpful to the user User interface Command line interpreter Batch interface
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
Java Programming. Binnur Kurt [email protected]. Istanbul Technical University Computer Engineering Department. Java Programming. Version 0.0.
Java Programming Binnur Kurt [email protected] Istanbul Technical University Computer Engineering Department Java Programming 1 Version 0.0.4 About the Lecturer BSc İTÜ, Computer Engineering Department,
CSCI E 98: Managed Environments for the Execution of Programs
CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office
Multi-core Programming System Overview
Multi-core Programming System Overview Based on slides from Intel Software College and Multi-Core Programming increasing performance through software multi-threading by Shameem Akhter and Jason Roberts,
Memory Allocation. Static Allocation. Dynamic Allocation. Memory Management. Dynamic Allocation. Dynamic Storage Allocation
Dynamic Storage Allocation CS 44 Operating Systems Fall 5 Presented By Vibha Prasad Memory Allocation Static Allocation (fixed in size) Sometimes we create data structures that are fixed and don t need
Caml Virtual Machine File & data formats Document version: 1.4 http://cadmium.x9c.fr
Caml Virtual Machine File & data formats Document version: 1.4 http://cadmium.x9c.fr Copyright c 2007-2010 Xavier Clerc [email protected] Released under the LGPL version 3 February 6, 2010 Abstract: This
Instruction Set Architecture
Instruction Set Architecture Consider x := y+z. (x, y, z are memory variables) 1-address instructions 2-address instructions LOAD y (r :=y) ADD y,z (y := y+z) ADD z (r:=r+z) MOVE x,y (x := y) STORE x (x:=r)
Chapter 4 Lecture 5 The Microarchitecture Level Integer JAVA Virtual Machine
Chapter 4 Lecture 5 The Microarchitecture Level Integer JAVA Virtual Machine This is a limited version of a hardware implementation to execute the JAVA programming language. 1 of 23 Structured Computer
Memory management basics (1) Requirements (1) Objectives. Operating Systems Part of E1.9 - Principles of Computers and Software Engineering
Memory management basics (1) Requirements (1) Operating Systems Part of E1.9 - Principles of Computers and Software Engineering Lecture 7: Memory Management I Memory management intends to satisfy the following
CS412/CS413. Introduction to Compilers Tim Teitelbaum. Lecture 20: Stack Frames 7 March 08
CS412/CS413 Introduction to Compilers Tim Teitelbaum Lecture 20: Stack Frames 7 March 08 CS 412/413 Spring 2008 Introduction to Compilers 1 Where We Are Source code if (b == 0) a = b; Low-level IR code
Stack Allocation. Run-Time Data Structures. Static Structures
Run-Time Data Structures Stack Allocation Static Structures For static structures, a fixed address is used throughout execution. This is the oldest and simplest memory organization. In current compilers,
The Hotspot Java Virtual Machine: Memory and Architecture
International Journal of Allied Practice, Research and Review Website: www.ijaprr.com (ISSN 2350-1294) The Hotspot Java Virtual Machine: Memory and Architecture Prof. Tejinder Singh Assistant Professor,
CHAPTER 7: The CPU and Memory
CHAPTER 7: The CPU and Memory The Architecture of Computer Hardware, Systems Software & Networking: An Information Technology Approach 4th Edition, Irv Englander John Wiley and Sons 2010 PowerPoint slides
Chapter 3: Operating-System Structures. Common System Components
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1
Lecture 1 Introduction to Android
These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy
Let s put together a Manual Processor
Lecture 14 Let s put together a Manual Processor Hardware Lecture 14 Slide 1 The processor Inside every computer there is at least one processor which can take an instruction, some operands and produce
Java's garbage-collected heap
Sponsored by: This story appeared on JavaWorld at http://www.javaworld.com/javaworld/jw-08-1996/jw-08-gc.html Java's garbage-collected heap An introduction to the garbage-collected heap of the Java
An Overview of Stack Architecture and the PSC 1000 Microprocessor
An Overview of Stack Architecture and the PSC 1000 Microprocessor Introduction A stack is an important data handling structure used in computing. Specifically, a stack is a dynamic set of elements in which
Lecture 32: The Java Virtual Machine. The Java Virtual Machine
The University of North Carolina at Chapel Hill Spring 2002 Lecture 32: The Java Virtual Machine April 12 1 The Java Virtual Machine Java Architecture Java Programming Language Java Virtual Machine (JVM)
Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.
Handout 1 CS603 Object-Oriented Programming Fall 15 Page 1 of 11 Handout 1 Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Java
KITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php [email protected] [email protected] Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
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
Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C
Embedded Systems A Review of ANSI C and Considerations for Embedded C Programming Dr. Jeff Jackson Lecture 2-1 Review of ANSI C Topics Basic features of C C fundamentals Basic data types Expressions Selection
CS5460: Operating Systems
CS5460: Operating Systems Lecture 13: Memory Management (Chapter 8) Where are we? Basic OS structure, HW/SW interface, interrupts, scheduling Concurrency Memory management Storage management Other topics
Garbage Collection in the Java HotSpot Virtual Machine
http://www.devx.com Printed from http://www.devx.com/java/article/21977/1954 Garbage Collection in the Java HotSpot Virtual Machine Gain a better understanding of how garbage collection in the Java HotSpot
Chapter 6, The Operating System Machine Level
Chapter 6, The Operating System Machine Level 6.1 Virtual Memory 6.2 Virtual I/O Instructions 6.3 Virtual Instructions For Parallel Processing 6.4 Example Operating Systems 6.5 Summary Virtual Memory General
Lecture 7: Machine-Level Programming I: Basics Mohamed Zahran (aka Z) [email protected] http://www.mzahran.com
CSCI-UA.0201-003 Computer Systems Organization Lecture 7: Machine-Level Programming I: Basics Mohamed Zahran (aka Z) [email protected] http://www.mzahran.com Some slides adapted (and slightly modified)
Hardware/Software Co-Design of a Java Virtual Machine
Hardware/Software Co-Design of a Java Virtual Machine Kenneth B. Kent University of Victoria Dept. of Computer Science Victoria, British Columbia, Canada [email protected] Micaela Serra University of Victoria
Section 1.4. Java s Magic: Bytecode, Java Virtual Machine, JIT,
J A V A T U T O R I A L S : Section 1.4. Java s Magic: Bytecode, Java Virtual Machine, JIT, JRE and JDK This section clearly explains the Java s revolutionary features in the programming world. Java basic
Computer Organization and Architecture
Computer Organization and Architecture Chapter 11 Instruction Sets: Addressing Modes and Formats Instruction Set Design One goal of instruction set design is to minimize instruction length Another goal
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
Sources: On the Web: Slides will be available on:
C programming Introduction The basics of algorithms Structure of a C code, compilation step Constant, variable type, variable scope Expression and operators: assignment, arithmetic operators, comparison,
İSTANBUL AYDIN UNIVERSITY
İSTANBUL AYDIN UNIVERSITY FACULTY OF ENGİNEERİNG SOFTWARE ENGINEERING THE PROJECT OF THE INSTRUCTION SET COMPUTER ORGANIZATION GÖZDE ARAS B1205.090015 Instructor: Prof. Dr. HASAN HÜSEYİN BALIK DECEMBER
An Overview of Java. overview-1
An Overview of Java overview-1 Contents What is Java Major Java features Java virtual machine Java programming language Java class libraries (API) GUI Support in Java Networking and Threads in Java overview-2
Advanced compiler construction. General course information. Teacher & assistant. Course goals. Evaluation. Grading scheme. Michel Schinz 2007 03 16
Advanced compiler construction Michel Schinz 2007 03 16 General course information Teacher & assistant Course goals Teacher: Michel Schinz [email protected] Assistant: Iulian Dragos INR 321, 368 64
Java Virtual Machine Locks
Java Virtual Machine Locks SS 2008 Synchronized Gerald SCHARITZER (e0127228) 2008-05-27 Synchronized 1 / 13 Table of Contents 1 Scope...3 1.1 Constraints...3 1.2 In Scope...3 1.3 Out of Scope...3 2 Logical
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design
Virtual Machines. Adapted from J.S. Smith and R. Nair, VIRTUAL MACHINES, Morgan-Kaufmann 2005. Teodor Rus. [email protected]
Virtual Machines Adapted from J.S. Smith and R. Nair, VIRTUAL MACHINES, Morgan-Kaufmann 2005 Teodor Rus [email protected] The University of Iowa, Department of Computer Science Introduction to System Software
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
X86-64 Architecture Guide
X86-64 Architecture Guide For the code-generation project, we shall expose you to a simplified version of the x86-64 platform. Example Consider the following Decaf program: class Program { int foo(int
12. Introduction to Virtual Machines
12. Introduction to Virtual Machines 12. Introduction to Virtual Machines Modern Applications Challenges of Virtual Machine Monitors Historical Perspective Classification 332 / 352 12. Introduction to
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
Java Garbage Collection Basics
Java Garbage Collection Basics Overview Purpose This tutorial covers the basics of how Garbage Collection works with the Hotspot JVM. Once you have learned how the garbage collector functions, learn how
Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java
Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java Oxford University Press 2007. All rights reserved. 1 C and C++ C and C++ with in-line-assembly, Visual Basic, and Visual C++ the
Instrumentation Software Profiling
Instrumentation Software Profiling Software Profiling Instrumentation of a program so that data related to runtime performance (e.g execution time, memory usage) is gathered for one or more pieces of the
HVM TP : A Time Predictable and Portable Java Virtual Machine for Hard Real-Time Embedded Systems JTRES 2014
: A Time Predictable and Portable Java Virtual Machine for Hard Real-Time Embedded Systems JTRES 2014 Kasper Søe Luckow 1 Bent Thomsen 1 Stephan Erbs Korsholm 2 1 Department of Computer Science Aalborg
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
Java Virtual Machine, JVM
Java Virtual Machine, JVM a Teodor Rus [email protected] The University of Iowa, Department of Computer Science a These slides have been developed by Teodor Rus. They are copyrighted materials and may not
The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1
The Java Series Java Essentials I What is Java? Basic Language Constructs Slide 1 What is Java? A general purpose Object Oriented programming language. Created by Sun Microsystems. It s a general purpose
Motorola 8- and 16-bit Embedded Application Binary Interface (M8/16EABI)
Motorola 8- and 16-bit Embedded Application Binary Interface (M8/16EABI) SYSTEM V APPLICATION BINARY INTERFACE Motorola M68HC05, M68HC08, M68HC11, M68HC12, and M68HC16 Processors Supplement Version 2.0
Suh yun Ki m (KIS T) (KIS [email protected]
Suhyun Kim (KIST) [email protected] Overview Introduction Types of Application Virtualization Remote Execution Only & Only Comparison Summary Virtualization It s Hot! Microsoft acquires Connectix Corp. EMC
Practical Performance Understanding the Performance of Your Application
Neil Masson IBM Java Service Technical Lead 25 th September 2012 Practical Performance Understanding the Performance of Your Application 1 WebSphere User Group: Practical Performance Understand the Performance
C Compiler Targeting the Java Virtual Machine
C Compiler Targeting the Java Virtual Machine Jack Pien Senior Honors Thesis (Advisor: Javed A. Aslam) Dartmouth College Computer Science Technical Report PCS-TR98-334 May 30, 1998 Abstract One of the
Compiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding
Compiling Object Oriented Languages What is an Object-Oriented Programming Language? Last time Dynamic compilation Today Introduction to compiling object oriented languages What are the issues? Objects
a storage location directly on the CPU, used for temporary storage of small amounts of data during processing.
CS143 Handout 18 Summer 2008 30 July, 2008 Processor Architectures Handout written by Maggie Johnson and revised by Julie Zelenski. Architecture Vocabulary Let s review a few relevant hardware definitions:
More on Pipelining and Pipelines in Real Machines CS 333 Fall 2006 Main Ideas Data Hazards RAW WAR WAW More pipeline stall reduction techniques Branch prediction» static» dynamic bimodal branch prediction
Organization of Programming Languages CS320/520N. Lecture 05. Razvan C. Bunescu School of Electrical Engineering and Computer Science bunescu@ohio.
Organization of Programming Languages CS320/520N Razvan C. Bunescu School of Electrical Engineering and Computer Science [email protected] Names, Bindings, and Scopes A name is a symbolic identifier used
Crash Course in Java
Crash Course in Java Based on notes from D. Hollinger Based in part on notes from J.J. Johns also: Java in a Nutshell Java Network Programming and Distributed Computing Netprog 2002 Java Intro 1 What is
Chapter 3 Operating-System Structures
Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual
CS101 Lecture 26: Low Level Programming. John Magee 30 July 2013 Some material copyright Jones and Bartlett. Overview/Questions
CS101 Lecture 26: Low Level Programming John Magee 30 July 2013 Some material copyright Jones and Bartlett 1 Overview/Questions What did we do last time? How can we control the computer s circuits? How
CSC 8505 Handout : JVM & Jasmin
CSC 8505 Handout : JVM & Jasmin Note: This handout provides you with the basic information about JVM. Although we tried to be accurate about the description, there may be errors. Feel free to check your
1. Overview of the Java Language
1. Overview of the Java Language What Is the Java Technology? Java technology is: A programming language A development environment An application environment A deployment environment It is similar in syntax
Stack machines The MIPS assembly language A simple source language Stack-machine implementation of the simple language Readings: 9.1-9.
Code Generation I Stack machines The MIPS assembly language A simple source language Stack-machine implementation of the simple language Readings: 9.1-9.7 Stack Machines A simple evaluation model No variables
2 Introduction to Java. Introduction to Programming 1 1
2 Introduction to Java Introduction to Programming 1 1 Objectives At the end of the lesson, the student should be able to: Describe the features of Java technology such as the Java virtual machine, garbage
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions Slide 1 Outline Principles for performance oriented design Performance testing Performance tuning General
Chapter 2 System Structures
Chapter 2 System Structures Operating-System Structures Goals: Provide a way to understand an operating systems Services Interface System Components The type of system desired is the basis for choices
Armed E-Bunny: A Selective Dynamic Compiler for Embedded Java Virtual Machine Targeting ARM Processors
2005 ACM Symposium on Applied Computing Armed E-Bunny: A Selective Dynamic Compiler for Embedded Java Virtual Machine Targeting ARM Processors Mourad Debbabi Computer Security Research Group CIISE, Concordia
OPERATING SYSTEM - MEMORY MANAGEMENT
OPERATING SYSTEM - MEMORY MANAGEMENT http://www.tutorialspoint.com/operating_system/os_memory_management.htm Copyright tutorialspoint.com Memory management is the functionality of an operating system which
Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.
Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures
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
CPU Organization and Assembly Language
COS 140 Foundations of Computer Science School of Computing and Information Science University of Maine October 2, 2015 Outline 1 2 3 4 5 6 7 8 Homework and announcements Reading: Chapter 12 Homework:
Under the Hood: The Java Virtual Machine. Lecture 24 CS 2110 Fall 2011
Under the Hood: The Java Virtual Machine Lecture 24 CS 2110 Fall 2011 Compiling for Different Platforms Program written in some high-level language (C, Fortran, ML,...) Compiled to intermediate form Optimized
