Memory Protection in the Java Virtual Machine
|
|
- Dulcie Lane
- 7 years ago
- Views:
Transcription
1 1 / 31 Memory Protection in the Java Virtual Machine Philip W. L. Fong Department of Computer Science University of Calgary Calgary, Alberta, Canada CPSC 525/625 (Fall 2016)
2 Requirement Evolution Useful software: Users want new features. Requirement evolution 2 / 31
3 Requirement Evolution Useful software: Users want new features. Requirement evolution Supporting requirement evolution software extensions plug-in architecture scripting languages 2 / 31
4 Dynamic Loading of Software Extension (1) 3 / 31
5 Dynamic Loading of Software Extension (2) Code fragment: with free variables 4 / 31
6 Dynamic Loading of Software Extension (3) Linking free variables to local resources 5 / 31
7 Essence of Code Mobility Essence of Code Mobility Running a code fragment (i.e., with free variables) in an environment owned by code consumer. 6 / 31
8 Code Mobility 2 types of code mobility: Weak mobility: migration of code only 7 / 31
9 Code Mobility 2 types of code mobility: Weak mobility: migration of code only 1 Code-on-Demand (consumer initiated) 7 / 31
10 Code Mobility 2 types of code mobility: Weak mobility: migration of code only 1 Code-on-Demand (consumer initiated) 2 Remote Evaluation (producer initiated) 7 / 31
11 Code Mobility 2 types of code mobility: Weak mobility: migration of code only 1 Code-on-Demand (consumer initiated) 2 Remote Evaluation (producer initiated) Strong mobility: migration of code and data 1 Process Migration (code + state) 7 / 31
12 Motivations of Code Mobility 1 Real-time interaction with remote resources 8 / 31
13 Motivations of Code Mobility 1 Real-time interaction with remote resources 2 Reduction of communication traffic 8 / 31
14 Motivations of Code Mobility 1 Real-time interaction with remote resources 2 Reduction of communication traffic 3 Customization and extension of code-consumer capability 8 / 31
15 Motivations of Code Mobility 1 Real-time interaction with remote resources 2 Reduction of communication traffic 3 Customization and extension of code-consumer capability 4 Avoiding distribution of state 8 / 31
16 Security Challenges for Code Mobility Host security protecting host from applications 9 / 31
17 Security Challenges for Code Mobility Host security protecting host from applications Application security protecting applications from host 9 / 31
18 Aspects of Host Security Memory protection Access control 10 / 31
19 Focus of This Lecture Question How is the Java platform designed to achieve memory protection? 11 / 31
20 Outline 1 Memory Protection by Abstract Interpreter 2 Structure of the JVM, Class File Format, Bytecode Instructions 3 Class Loading, Bytecode Verification, and Symbol Resolution 12 / 31
21 13 / 31 Memory Protection by Abstract Interpreter The Java Virtual Machine C.java Compiler (javac) C.class JVM (java) Java source language JVM bytecode
22 2 Protection Features 1 Restricted expressiveness 2 Dynamic checking 14 / 31
23 Restricted Expressiveness JVM bytecode is a strongly typed intermediate representation 15 / 31
24 Restricted Expressiveness JVM bytecode is a strongly typed intermediate representation unsafe instructions cannot be expressed 15 / 31
25 Restricted Expressiveness JVM bytecode is a strongly typed intermediate representation unsafe instructions cannot be expressed no pointer arithmetic: cannot forge illegal pointer 15 / 31
26 Restricted Expressiveness JVM bytecode is a strongly typed intermediate representation unsafe instructions cannot be expressed no pointer arithmetic: cannot forge illegal pointer no type confusion: encapsulation is real 15 / 31
27 Dynamic Checking untrusted code interacts with the CPU through the mediation of the JVM 16 / 31
28 Dynamic Checking untrusted code interacts with the CPU through the mediation of the JVM screen out or detect dangerous actions 16 / 31
29 Dynamic Checking untrusted code interacts with the CPU through the mediation of the JVM screen out or detect dangerous actions null pointer dereferencing out-of-bound array access illegal type-cast 16 / 31
30 More on Encapsulation Encapsulation is actually enforced at run-time Private fields & methods are truly inaccessible 17 / 31
31 More on Encapsulation Encapsulation is actually enforced at run-time Private fields & methods are truly inaccessible Contrast with C++ class C { private: int secret; } class D { private: int exposed; } D* attack = (D*) C_ptr; 17 / 31
32 More on Encapsulation Encapsulation is actually enforced at run-time Private fields & methods are truly inaccessible Contrast with C++ class C { private: int secret; } class D { private: int exposed; } D* attack = (D*) C_ptr; To protect the SecurityManager class i.e., the reference monitor for Java 17 / 31
33 Outline 1 Memory Protection by Abstract Interpreter 2 Structure of the JVM, Class File Format, Bytecode Instructions 3 Class Loading, Bytecode Verification, and Symbol Resolution 18 / 31
34 Structure of the JVM Run-time stack Structure of stack frames local variable array (fixed size): analogous to registers operand stack (fixed size) current class & method program counter 19 / 31
35 Structure of the JVM Run-time stack Structure of stack frames local variable array (fixed size): analogous to registers operand stack (fixed size) current class & method program counter Method area code segment in Unix terminology inaccessible by Java references 19 / 31
36 Structure of the JVM Run-time stack Structure of stack frames local variable array (fixed size): analogous to registers operand stack (fixed size) current class & method program counter Method area code segment in Unix terminology inaccessible by Java references Heap dynamic memory allocation object creation garbage collected no need to worry about forgetting to deallocate add to memory safety 19 / 31
37 Structure of the JVM Run-time stack Structure of stack frames local variable array (fixed size): analogous to registers operand stack (fixed size) current class & method program counter Method area code segment in Unix terminology inaccessible by Java references Heap dynamic memory allocation object creation garbage collected no need to worry about forgetting to deallocate add to memory safety Run-time constant pools i.e., symbol tables one for each loaded class 19 / 31
38 Classfile Format one class file for each declared type (class/interface) symbolic names for class, fields, methods access flags for class, fields, methods (e.g., public, protected, private) symbolic references to super class and super interfaces method argument and return type sizes of local variable array and operand stack bytecode exceptions thrown by this method constant pool in class file and in bytecode, symbolic references to declared types constant pool is a symbol table for these external references 20 / 31
39 Lesson Lesson All source-level typing information is preserved in the class file format. 21 / 31
40 Bytecode Instructions iadd aload invokevirtual iastore checkcast 22 / 31
41 Highlight Highlight The assumed types of operands in local variable array and operand stack, and the assumed sizes of the latter two must be honored. Ensuring the above is the responsiblity of bytecode verification. 23 / 31
42 Outline 1 Memory Protection by Abstract Interpreter 2 Structure of the JVM, Class File Format, Bytecode Instructions 3 Class Loading, Bytecode Verification, and Symbol Resolution 24 / 31
43 Class Loading Classes are loaded into the JVM in an incremental manner laziness speeds up application start-up time 25 / 31
44 Class Loading Classes are loaded into the JVM in an incremental manner laziness speeds up application start-up time Class loading involves more than downloading the class file from a remote host creating an internal representation of the class in the JVM 25 / 31
45 Class Loading Classes are loaded into the JVM in an incremental manner laziness speeds up application start-up time Class loading involves more than downloading the class file from a remote host creating an internal representation of the class in the JVM bytecode verification 25 / 31
46 Class Loading Classes are loaded into the JVM in an incremental manner laziness speeds up application start-up time Class loading involves more than downloading the class file from a remote host creating an internal representation of the class in the JVM bytecode verification initialization calling the static initializer method of the class 25 / 31
47 Bytecode Verification Basic well-formedness checks 26 / 31
48 Bytecode Verification Basic well-formedness checks Static type checking based on source-level typing information 26 / 31
49 Bytecode Verification Basic well-formedness checks Static type checking based on source-level typing information Because JVM bytecode is an unstructured language (i.e., with goto ), type checking involves a non-trivial data flow analysis. 26 / 31
50 Bytecode Verification Basic well-formedness checks Static type checking based on source-level typing information Because JVM bytecode is an unstructured language (i.e., with goto ), type checking involves a non-trivial data flow analysis. Symbolically simulates the execution of bytecode to ensure / 31
51 Bytecode Verification Basic well-formedness checks Static type checking based on source-level typing information Because JVM bytecode is an unstructured language (i.e., with goto ), type checking involves a non-trivial data flow analysis. Symbolically simulates the execution of bytecode to ensure... when a value is loaded from local variable array to the operand stack (or store from operand stack to local variable array), the right type of data will be there 26 / 31
52 Bytecode Verification Basic well-formedness checks Static type checking based on source-level typing information Because JVM bytecode is an unstructured language (i.e., with goto ), type checking involves a non-trivial data flow analysis. Symbolically simulates the execution of bytecode to ensure... when a value is loaded from local variable array to the operand stack (or store from operand stack to local variable array), the right type of data will be there local variable array and operand stack are large enough to hold all data 26 / 31
53 Symbol Resolution Symbolic references in constant pools are incrementally resolved into pointers 27 / 31
54 Symbol Resolution Symbolic references in constant pools are incrementally resolved into pointers Induces more class loading 27 / 31
55 Symbol Resolution Symbolic references in constant pools are incrementally resolved into pointers Induces more class loading Some additional type checking occurs at this stage 27 / 31
56 Class Loader To implement namespace partitioning at run-time same symbolic class name defined (i.e., loaded) in 2 different class loaders represent 2 distinct types 28 / 31
57 Class Loader To implement namespace partitioning at run-time same symbolic class name defined (i.e., loaded) in 2 different class loaders represent 2 distinct types to support application separation each application is loaded by a different class loader 28 / 31
58 Class Loader Hierarchy Class loaders are hierarchically organized parent-child relationship 29 / 31
59 Class Loader Hierarchy Class loaders are hierarchically organized parent-child relationship If a class name cannont be resolved in a child class loader (i.e., namespace) then JVM will recursively attempt to resolve it in the parent class loader 29 / 31
60 Class Loader Hierarchy Class loaders are hierarchically organized parent-child relationship If a class name cannont be resolved in a child class loader (i.e., namespace) then JVM will recursively attempt to resolve it in the parent class loader Root class loader (most trusted, for bootstrapping) 29 / 31
61 Class Loader Hierarchy Class loaders are hierarchically organized parent-child relationship If a class name cannont be resolved in a child class loader (i.e., namespace) then JVM will recursively attempt to resolve it in the parent class loader Root class loader (most trusted, for bootstrapping) When a constant pool entry is resolved, it is resolved in the class loader that loaded the class 29 / 31
62 Class Loader Hierarchy Class loaders are hierarchically organized parent-child relationship If a class name cannont be resolved in a child class loader (i.e., namespace) then JVM will recursively attempt to resolve it in the parent class loader Root class loader (most trusted, for bootstrapping) When a constant pool entry is resolved, it is resolved in the class loader that loaded the class To support class sharing (e.g., java.lang.string) 29 / 31
63 Class Loader Hierarchy Class loaders are hierarchically organized parent-child relationship If a class name cannont be resolved in a child class loader (i.e., namespace) then JVM will recursively attempt to resolve it in the parent class loader Root class loader (most trusted, for bootstrapping) When a constant pool entry is resolved, it is resolved in the class loader that loaded the class To support class sharing (e.g., java.lang.string) A form of dynamic binding 29 / 31
64 History The 1st JVM specification got the class loader part wrong Identify a class only by its class name 30 / 31
65 History The 1st JVM specification got the class loader part wrong Identify a class only by its class name Could lead to type confusion 30 / 31
66 History The 1st JVM specification got the class loader part wrong Identify a class only by its class name Could lead to type confusion E.g., impersonating the Security Manager 30 / 31
67 History The 1st JVM specification got the class loader part wrong Identify a class only by its class name Could lead to type confusion E.g., impersonating the Security Manager Illustrate why English is a terrible specification language 30 / 31
68 History The 1st JVM specification got the class loader part wrong Identify a class only by its class name Could lead to type confusion E.g., impersonating the Security Manager Illustrate why English is a terrible specification language The 2nd edition of the JVM specification had it fixed. 30 / 31
69 Mini Quiz What techniques are employed to achieve memory protection in the JVM? 31 / 31
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
More informationHabanero 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
More informationJava Programming. Binnur Kurt binnur.kurt@ieee.org. Istanbul Technical University Computer Engineering Department. Java Programming. Version 0.0.
Java Programming Binnur Kurt binnur.kurt@ieee.org Istanbul Technical University Computer Engineering Department Java Programming 1 Version 0.0.4 About the Lecturer BSc İTÜ, Computer Engineering Department,
More informationCloud 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
More informationLecture 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)
More informationRestraining 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
More information- 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): -
More information02 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
More informationUniversity 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
More informationGeneral Introduction
Managed Runtime Technology: General Introduction Xiao-Feng Li (xiaofeng.li@gmail.com) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime
More informationUnder 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
More information1 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
More informationChecking Access to Protected Members in the Java Virtual Machine
Checking Access to Protected Members in the Java Virtual Machine Alessandro Coglio Kestrel Institute 3260 Hillview Avenue, Palo Alto, CA 94304, USA Ph. +1-650-493-6871 Fax +1-650-424-1807 http://www.kestrel.edu/
More informationThe Java Virtual Machine and Mobile Devices. John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311
The Java Virtual Machine and Mobile Devices John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311 Objectives Review virtual machine concept Introduce stack machine architecture
More informationlanguage 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
More informationChapter 1 Fundamentals of Java Programming
Chapter 1 Fundamentals of Java Programming Computers and Computer Programming Writing and Executing a Java Program Elements of a Java Program Features of Java Accessing the Classes and Class Members The
More informationChapter 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
More informationMemory 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
More informationJava and Java Virtual Machine Security
Java and Java Virtual Machine Security Vulnerabilities and their Exploitation Techniques by Last Stage of Delirium Research Group http://lsd-pl.net Version: 1.0.0 Updated: October 2nd, 2002 Copyright c
More informationJonathan 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.
More informationThe C Programming Language course syllabus associate level
TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming
More informationInterpreters 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.
More informationJVM Tool Interface. Michal Pokorný
JVM Tool Interface Michal Pokorný JVM TI Inspect & control execution on JVM (profiling, debugging, monitoring, thread analysis, coverage, ) Higher-level interface: Java Platform Debugger Architecture JVM
More informationC# 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
More informationGlossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
More informationCSC 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
More informationCSCI 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
More informationC 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
More informationWebSphere v5 Administration, Network Deployment Edition
WebSphere v5 Administration, Network Deployment Edition Loading Java Classes Web Age Solutions, Inc. 2003 6-32 Class Loader A class loader is a Java class that loads compiled Java byte code of other classes.
More informationLecture 18-19 Data Types and Types of a Language
Lecture 18-19 Data Types and Types of a Language April 29, 2014 Data Types and Types of a Language Data, Data Types and Types Type: Generalities Type Systems and Type Safety Type Equivalence, Coercion
More informationThe 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
More informationMobile 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
More informationThe 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
More informationenterprise professional expertise distilled
Oracle JRockit The Definitive Guide Develop and manage robust Java applications with Oracle's high-performance Java Virtual Machine Marcus Hirt Marcus Lagergren PUBLISHING enterprise professional expertise
More informationStack 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,
More informationSemantic Analysis: Types and Type Checking
Semantic Analysis Semantic Analysis: Types and Type Checking CS 471 October 10, 2007 Source code Lexical Analysis tokens Syntactic Analysis AST Semantic Analysis AST Intermediate Code Gen lexical errors
More informationCompiling 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
More informationMonitoring, Tracing, Debugging (Under Construction)
Monitoring, Tracing, Debugging (Under Construction) I was already tempted to drop this topic from my lecture on operating systems when I found Stephan Siemen's article "Top Speed" in Linux World 10/2003.
More informationInstrumentation 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
More informationMonitors and Exceptions : How to Implement Java efficiently. Andreas Krall and Mark Probst Technische Universitaet Wien
Monitors and Exceptions : How to Implement Java efficiently Andreas Krall and Mark Probst Technische Universitaet Wien 1 Outline Exceptions in CACAO Exception implementation techniques CACAO s implementation
More informationISOLATION, RESOURCE MANAGEMENT AND SHARING IN THE KAFFEOS JAVA RUNTIME SYSTEM
ISOLATION, RESOURCE MANAGEMENT AND SHARING IN THE KAFFEOS JAVA RUNTIME SYSTEM by Godmar Back A dissertation submitted to the faculty of The University of Utah in partial fulfillment of the requirements
More informationComp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages. Corky Cartwright Swarat Chaudhuri November 30, 20111
Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages Corky Cartwright Swarat Chaudhuri November 30, 20111 Overview I In OO languages, data values (except for designated non-oo
More informationReal-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
More informationJava Interview Questions and Answers
1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write and compile the java
More informationMemory management. Announcements. Safe user input. Function pointers. Uses of function pointers. Function pointer example
Announcements Memory management Assignment 2 posted, due Friday Do two of the three problems Assignment 1 graded see grades on CMS Lecture 7 CS 113 Spring 2008 2 Safe user input If you use scanf(), include
More informationInside the Java Virtual Machine
CS1Bh Practical 2 Inside the Java Virtual Machine This is an individual practical exercise which requires you to submit some files electronically. A system which measures software similarity will be used
More informationC++ INTERVIEW QUESTIONS
C++ INTERVIEW QUESTIONS http://www.tutorialspoint.com/cplusplus/cpp_interview_questions.htm Copyright tutorialspoint.com Dear readers, these C++ Interview Questions have been designed specially to get
More informationSecurity Architecture and Verification of Java Bytecode
Security Architecture and Verification of Java Bytecode Ankit Tyagi, Abhishek Anand, Archana Bharti, Rashi Kohli Scholar, Department of Computer Science and Engineering, Amity University, Greater Noida,
More informationReal Time Programming: Concepts
Real Time Programming: Concepts Radek Pelánek Plan at first we will study basic concepts related to real time programming then we will have a look at specific programming languages and study how they realize
More informationHardware/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 ken@csc.uvic.ca Micaela Serra University of Victoria
More informationHomeland Security Red Teaming
Homeland Security Red Teaming Directs intergovernmental coordination Specifies Red Teaming Viewing systems from the perspective of a potential adversary Target hardening Looking for weakness in existing
More informationChecking Access to Protected Members in the Java Virtual Machine
Vol. 4, No. 8, 2005 Checking Access to Protected Members in the Java Virtual Machine Alessandro Coglio, Kestrel Institute, Palo Alto, California, USA This paper studies in detail how to correctly and efficiently
More informationBypassing Browser Memory Protections in Windows Vista
Bypassing Browser Memory Protections in Windows Vista Mark Dowd & Alexander Sotirov markdowd@au1.ibm.com alex@sotirov.net Setting back browser security by 10 years Part I: Introduction Thesis Introduction
More informationChapter 5 Names, Bindings, Type Checking, and Scopes
Chapter 5 Names, Bindings, Type Checking, and Scopes Chapter 5 Topics Introduction Names Variables The Concept of Binding Type Checking Strong Typing Scope Scope and Lifetime Referencing Environments Named
More informationJava 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
More informationHVM 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
More informationBuilt-in Concurrency Primitives in Java Programming Language. by Yourii Martiak and Mahir Atmis
Built-in Concurrency Primitives in Java Programming Language by Yourii Martiak and Mahir Atmis Overview One of the many strengths of Java is the built into the programming language support for concurrency
More informationpicojava 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
More informationThe 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,
More informationKITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php info@kitestechnology.com technologykites@gmail.com Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
More informationJava and Java Virtual Machine security vulnerabilities and their exploitation techniques
Java and Java Virtual Machine security vulnerabilities and their exploitation techniques by Last Stage of Delirium Research Group http://lsd-pl.net Version: 1.0 Updated: September 3 rd, 2002 Copyright
More informationRE-TRUST Design Alternatives on JVM
RE-TRUST Design Alternatives on JVM ( - Italy) paolo.falcarin@polito.it http://softeng.polito.it/falcarin Trento, December, 19 th 2006 Tamper-Detection Tamper-detection goals Detect malicious modifications
More informationAdvanced 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 Michel.Schinz@epfl.ch Assistant: Iulian Dragos INR 321, 368 64
More informationMonitoring Java enviroment / applications
Monitoring Java enviroment / applications Uroš Majcen uros@quest-slo.com Java is Everywhere You Can Expect More. Java in Mars Rover With the help of Java Technology, and the Jet Propulsion Laboratory (JPL),
More informationStack 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
More informationJava and Real Time Storage Applications
Java and Real Time Storage Applications Gary Mueller Janet Borzuchowski 1 Flavors of Java for Embedded Systems Software Java Virtual Machine(JVM) Compiled Java Hardware Java Virtual Machine Java Virtual
More informationComputer Information Systems (CIS)
Computer Information Systems (CIS) CIS 113 Spreadsheet Software Applications Prerequisite: CIS 146 or spreadsheet experience This course provides students with hands-on experience using spreadsheet software.
More informationLast 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
More informationPluggable Type Systems. Gilad Bracha
Pluggable Type Systems Gilad Bracha The Paradox of Type Systems Type systems help reliability and security by mechanically proving program properties Type systems hurt reliability and security by making
More informationLecture 17: Mobile Computing Platforms: Android. Mythili Vutukuru CS 653 Spring 2014 March 24, Monday
Lecture 17: Mobile Computing Platforms: Android Mythili Vutukuru CS 653 Spring 2014 March 24, Monday Mobile applications vs. traditional applications Traditional model of computing: an OS (Linux / Windows),
More informationA Java Virtual Machine Architecture for Very Small Devices
A Java Virtual Machine Architecture for Very Small Devices Nik Shaylor Sun Microsystems Research Laboratories 2600 Casey Avenue Mountain View, CA 94043 USA nik.shaylor@sun.com Douglas N. Simon Sun Microsystems
More informationEffective Java Programming. efficient software development
Effective Java Programming efficient software development Structure efficient software development what is efficiency? development process profiling during development what determines the performance of
More information1. 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
More informationThe 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
More informationChapter 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
More informationSecurity Issues of the Sandbox inside Java Virtual Machine (JVM) Mohammad Shouaib Hashemi
Security Issues of the Sandbox inside Java Virtual Machine (JVM) Mohammad Shouaib Hashemi Bachelor s Thesis Business Information Technology 2010 Abstract Degree Program in Business Information Technology
More informationJava in sicherheits-kritischen Systemen: Das HIJA-Profil
Java in sicherheits-kritischen Systemen: Das HIJA-Profil... Korrektheitsnachweis für (echtzeit-) Java Anwendungen Dr. Fridtjof Siebert Director of Development, aicas GmbH Java Forum, Stuttgart, 7. Juli
More informationScoping (Readings 7.1,7.4,7.6) Parameter passing methods (7.5) Building symbol tables (7.6)
Semantic Analysis Scoping (Readings 7.1,7.4,7.6) Static Dynamic Parameter passing methods (7.5) Building symbol tables (7.6) How to use them to find multiply-declared and undeclared variables Type checking
More informationHow To Port A Program To Dynamic C (C) (C-Based) (Program) (For A Non Portable Program) (Un Portable) (Permanent) (Non Portable) C-Based (Programs) (Powerpoint)
TN203 Porting a Program to Dynamic C Introduction Dynamic C has a number of improvements and differences compared to many other C compiler systems. This application note gives instructions and suggestions
More informationJava Virtual Machine, JVM
Java Virtual Machine, JVM a Teodor Rus rus@cs.uiowa.edu The University of Iowa, Department of Computer Science a These slides have been developed by Teodor Rus. They are copyrighted materials and may not
More informationVirtual Machine Security
Virtual Machine Security CSE497b - Spring 2007 Introduction Computer and Network Security Professor Jaeger www.cse.psu.edu/~tjaeger/cse497b-s07/ 1 Operating System Quandary Q: What is the primary goal
More informationPTC System Monitor Solution Training
PTC System Monitor Solution Training Patrick Kulenkamp June 2012 Agenda What is PTC System Monitor (PSM)? How does it work? Terminology PSM Configuration The PTC Integrity Implementation Drilling Down
More informationReplication on Virtual Machines
Replication on Virtual Machines Siggi Cherem CS 717 November 23rd, 2004 Outline 1 Introduction The Java Virtual Machine 2 Napper, Alvisi, Vin - DSN 2003 Introduction JVM as state machine Addressing non-determinism
More informationHandout 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
More informationCIS 551 / TCOM 401 Computer and Network Security. Spring 2005 Lecture 4
CIS 551 / TCOM 401 Computer and Network Security Spring 2005 Lecture 4 Access Control: The Big Picture Objects - resources being protected E.g. files, devices, etc. Subjects - active entities E.g. processes,
More informationSemester Review. CSC 301, Fall 2015
Semester Review CSC 301, Fall 2015 Programming Language Classes There are many different programming language classes, but four classes or paradigms stand out:! Imperative Languages! assignment and iteration!
More informationCode Sharing among Virtual Machines
Code Sharing among Virtual Machines Grzegorz Czajkowski 1, Laurent Daynès 1, and Nathaniel Nystrom 2 1 Sun Microsystem Laboratories, 2600 Casey Avenue, Mountain View CA 94043, USA, Grzegorz.Czajkowski@sun.com,
More informationCSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014
CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages Nicki Dell Spring 2014 What is a Programming Language? A set of symbols and associated tools that translate (if necessary) collections
More informationProgramming Languages
Programming Languages In the beginning To use a computer, you needed to know how to program it. Today People no longer need to know how to program in order to use the computer. To see how this was accomplished,
More informationKAIST Cyber Security Research Center SAR(Security Analysis Report) Date. August 31, Modified
Document # Type Attack Trend Technical Analysis Specialty Analysis Title Date Modified Java Applet Vulnerability Analysis (CVE-2012-4681) August 25, KAIST Graduate School 2012 of Information Security Author
More informationEXTENDING JAVA VIRTUAL MACHINE TO IMPROVE PERFORMANCE OF DYNAMICALLY-TYPED LANGUAGES. Yutaka Oiwa. A Senior Thesis
EXTENDING JAVA VIRTUAL MACHINE TO IMPROVE PERFORMANCE OF DYNAMICALLY-TYPED LANGUAGES Java by Yutaka Oiwa A Senior Thesis Submitted to the Department of Information Science the Faculty of Science the University
More information2) Write in detail the issues in the design of code generator.
COMPUTER SCIENCE AND ENGINEERING VI SEM CSE Principles of Compiler Design Unit-IV Question and answers UNIT IV CODE GENERATION 9 Issues in the design of code generator The target machine Runtime Storage
More informationCode and Process Migration! Motivation!
Code and Process Migration! Motivation How does migration occur? Resource migration Agent-based system Details of process migration Lecture 6, page 1 Motivation! Key reasons: performance and flexibility
More informationLecture 11 Doubly Linked Lists & Array of Linked Lists. Doubly Linked Lists
Lecture 11 Doubly Linked Lists & Array of Linked Lists In this lecture Doubly linked lists Array of Linked Lists Creating an Array of Linked Lists Representing a Sparse Matrix Defining a Node for a Sparse
More informationCIS 551 / TCOM 401 Computer and Network Security
CIS 551 / TCOM 401 Computer and Network Security Spring 2007 Lecture 3 1/18/07 CIS/TCOM 551 1 Announcements Email project groups to Jeff (vaughan2 AT seas.upenn.edu) by Jan. 25 Start your projects early!
More informationDATA STRUCTURES USING C
DATA STRUCTURES USING C QUESTION BANK UNIT I 1. Define data. 2. Define Entity. 3. Define information. 4. Define Array. 5. Define data structure. 6. Give any two applications of data structures. 7. Give
More informationJAVA 2 Network Security
JAVA 2 Network Security M A R C O PISTOIA DUANE F. RELLER DEEPAK GUPTA MILIND NAGNUR ASHOK K. RAMANI PTR, UPPER http://www.phptr.com PRENTICE HALL SADDLE RIVER, NEW JERSEY 07458 Contents Foreword Preface
More informationJava Card. Smartcards. Demos. . p.1/30
. p.1/30 Java Card Smartcards Java Card Demos Smart Cards. p.2/30 . p.3/30 Smartcards Credit-card size piece of plastic with embedded chip, for storing & processing data Standard applications bank cards
More informationTEACHING COMPUTER PROGRAMMING WITH PROGRAM ANIMATION
TEACHING COMPUTER PROGRAMMING WITH PROGRAM ANIMATION Theodore S. Norvell and Michael P. Bruce-Lockhart Electrical and Computer Engineering Faculty of Engineering and Applied Science Memorial University
More information