Implementing Jalapeno in Java']Java

被引:67
|
作者
Alpern, B
Barton, JJ
Hummel, SF
Ngo, T
Shepherd, JC
Attanasio, CR
Cocchi, A
Lieber, D
Mergen, M
Smith, S
机构
[1] IBM Corp, Thomas J Watson Res Ctr, Yorktown Heights, NY 10598 USA
[2] Hewlett Packard Labs, Palo Alto, CA 94304 USA
关键词
D O I
10.1145/320385.320418
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Jalapeno is a virtual machine for Java(TM) servers written in Java. A running Java program involves four layers of functionality: the user code, the virtual-machine, the operating system, and the hardware. By drawing the Java / non-Java boundary below the virtual machine rather than above it, Jalapeno reduces the boundary-crossing overhead and opens up more opportunities for optimization. To get Jalapeno started, a boot image of a working Jalapeno virtual machine is concocted and written to a file. Later, this file can be loaded into memory and executed. Because the boot image consists entirely of Java objects, it can be concocted by a Java program that runs in essay JVM. This program uses reflection to convert the boot image into Jalapeno's object format. A special MAGIC class allows unsafe casts and direct access to the hardware. Methods of this class are recognized by Jalapeno's three compilers, which ignore their bytecodes and emit special-purpose machine code. User code will not be allowed to call MAGIC methods so Java's integrity is preserved. A small non-Java program is used to start up a boot image and as an interface to the operating system. Java's programming features - object orientation, type safety, automatic memory management - greatly facilitated development of Jalapeno. However, we also discovered some of the langauge's limitations.
引用
收藏
页码:314 / 324
页数:11
相关论文
共 50 条
  • [41] UML and JAVA']JAVA as Effective Tools for Implementing Algorithms in Computer Graphics
    Sukic, Camil
    Saracevic, Muzafer
    TEM JOURNAL-TECHNOLOGY EDUCATION MANAGEMENT INFORMATICS, 2012, 1 (02): : 111 - 116
  • [42] Implementing the Gaia Astrometric Global Iterative Solution (AGIS) in Java']Java
    O'Mullane, William
    Lammers, Uwe
    Lindegren, Lennart
    Hernandez, Jose
    Hobbs, David
    EXPERIMENTAL ASTRONOMY, 2011, 31 (2-3) : 215 - 241
  • [43] Implementing predictable scheduling in RTSJ-based Java']Java processor
    Chai, Zhilei
    Xu, Wenbo
    Tu, Shiliang
    Chen, Zhanglong
    COMPUTATIONAL SCIENCE - ICCS 2006, PT 1, PROCEEDINGS, 2006, 3991 : 1043 - 1046
  • [44] A case study of implementing home appliance middleware on Linux and Java']Java
    Ishikawa, H
    Tokunaga, E
    Nakajima, T
    2002 SYMPOSIUM ON APPLICATIONS AND THE INTERNET (SAINT) WORKSHOPS, PROCEEDINGS, 2002, : 31 - 34
  • [45] Implementing a distributed Web-based management system in Java']Java
    Ghlamallah, A
    Boutaba, R
    ITS '98 PROCEEDINGS - SBT/IEEE INTERNATIONAL TELECOMMUNICATIONS SYMPOSIUM, VOLS 1 AND 2, 1998, : 554 - 559
  • [46] SPOON: A library for implementing analyses and transformations of Java']Java source code
    Pawlak, Renaud
    Monperrus, Martin
    Petitprez, Nicolas
    Noguera, Carlos
    Seinturier, Lionel
    SOFTWARE-PRACTICE & EXPERIENCE, 2016, 46 (09): : 1155 - 1179
  • [47] Implementing Bandwidth Broker using COPS-PR in Java']Java
    Jha, S
    Hassan, M
    LCN 2001: 26TH ANNUAL IEEE CONFERENCE ON LOCAL COMPUTER NETWORKS, PROCEEDINGS, 2001, : 178 - 179
  • [48] Experiences implementing efficient Java']Java thread serialization, mobility and persistence
    Bouchenak, S
    Hagimont, D
    Krakowiak, S
    De Palma, N
    Boyer, F
    SOFTWARE-PRACTICE & EXPERIENCE, 2004, 34 (04): : 355 - 393
  • [49] Implementing a secure log file download manager for the Java']Java Card
    Markantonakis, C
    Xenitellis, S
    SECURE INFORMATION NETWORKS: COMMUNICATIONS AND MULTIMEDIA SECURITY, 1999, 23 : 143 - 159
  • [50] A tale of two directories: implementing distributed shared objects in Java']Java
    Herlihy, M
    Warres, MP
    CONCURRENCY-PRACTICE AND EXPERIENCE, 2000, 12 (07): : 555 - 572