03/11/2010

October Reading List

The list of papers, books, and other articles that caught my attention during the last month.

Papers:
Books:
Others:

22/10/2010

oSCJ News

Recently, there has been a lot of activity around the oSCJ project, here is a short summary.

We currently develop several new features in parallel:
  • SCJ benchmarks - we have added a set of new SCJ programs to compare performance and memory usage of the SCJ memory management againts real-time garbage collection algorithms
  • SCJ Annotations - soon, our annotation checker will be extended to cover a full-scale of different allocation scenarios to guarantee memory safety of the applications running on oSCJ. Furthermore, this feature will allow us to disable the runtime scope checks in the underlying VM, achieving 5-10% speed-up!
  • SCJ library extensions - as JSR-302 is nearing to its completion, we extend the set of supported features.
Also, the installation and running of oSCJ is now super-easy! First, you can get an academic version of FijiVM - our major platform for running oSCJ. Just contact us so we can send you the Fiji VM distribution!

Installation procedure:
$ wget fivm.tar.gz
$ untar fivm.tar.gz 
cd fivm 
$ hg clone https://scj-jsr302.googlecode.com/hg/ scj

and then compile FijiVM, which will also compile the oSCJ as well:
$ autoreconf -i 
$ ./configure
$ make 

To update oSCJ:
$ cd fivm/scj
$ hg pull
$ hg update 

For your better orientation in the distribution directory, here is a structure of the distribution directory
fivm/                 fivm/scj
  ...
  lib/                this is where "scj.jar" is 
  scj/
    oSCJ/             oSCJ root dir
      doc/              Documenation 
      examples/         oSCJ examples and benchmarks dir
        minicdx/          our CDx benchmark implemented in SCJ
        hello/            SCJ helloworld example
        ...
      scj/              oSCJ library implementation
        ri/               SCJ library source codes
        ...
      tools/            our SCJ tools
        checker/          Static Checker for SCJ
        tck/              TCK for SCJ
  scjruntime/
 


See our oSCJ Code base for the most recent updates.

18/10/2010

Azul@Purdue Project

Recently, our team acquired a revolutionary Azul appliance platform. I had a great opportunity to play with this exciting hardware a little when installing and running the first helloworld programs both in Java and C. This was the first time ever that this machine was used in an academic institution. Here is some more info:

Azul appliance is built around the Vega 3 chip and is a unique virtualization platform that features 54 cores pre processor giving users the power to run up to 800 Java threads in parallel.  Futhermore, the appliance offers ~700GB of memory while running a concurrent GC that achieves garbage collection without any pauses in the host application.


Find more at our webpage: http://sss.cs.purdue.edu/projects/azul/

26/09/2010

Garbage Collection and Real-time Garbage Collection Introduction

Here are some documents and slides you may find useful when studying Garbage Collection and Real-time Garbage Collection:

First, look at SUN's
Memory Management in the Java HotSpotTM Virtual Machine. Its from 2006 but contains a very nice introduction to GC, even parallel and small-pause collection algorithms are mentioned.

An another introduction slides are:
GC Introduction Presentation

When looking at performance of GCs, look at a nice study
Myths & Realities The Performance Impact of Garbage Collection from Steve Blackburn, Perry Cheng and Kathryn McKinley.

For interesting implementation details, I recommend:

16/09/2010

Static Checker for SCJ: Paper and its Presentation

Presentation of our Static SCJ Checker is now available online:


The paper itself can be downloaded from JTRES2010 webpage.

15/08/2010

Developing Safety-Critical Java Applications with oSCJ

Read our oSCJ paper:
Developing Safety-Critical Java Applications with oSCJ

Abstract:
We present oSCJ, an implementation of the draft of Safety Critical Java (SCJ) specification. SCJ is designed to make Java amenable to writing mission- and safety-critical software. It does this by defining a subset of the Real-time Specification for Java that trades expressiveness for verifiability. 

This paper gives a high-level description of our implementation of the first compliance level of the SCJ speci- fication, a library called oSCJ, and reports on performance evaluation on the Ovm real-time Java virtual machine. We compare SCJ to C on both a real-time operating system on the RTEMS/LEON3 platform and Linux on a x86. Our results suggest that a high-degree of predictability and competitive performance can indeed be achieved.

The paper will be presented at JTRES'10 in Prague.

Download the paper in [PDF].