05.08.2014 Views

here - Stefan-Marr.de

here - Stefan-Marr.de

here - Stefan-Marr.de

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.1. VM Support for Concurrent and Parallel Programming<br />

The first question refers to the general set of concepts for concurrent and<br />

parallel programming that is supported by a subject, i. e., the VM un<strong>de</strong>r investigation.<br />

Note, the question refers explicitly to language runtime systems instead<br />

of VMs. Thus, the analysis inclu<strong>de</strong>s concepts provi<strong>de</strong>d by the corresponding<br />

standard library as well. Hence, a wi<strong>de</strong>r range of concepts is covered and it<br />

becomes possible to <strong>de</strong>termine how the concepts that are directly provi<strong>de</strong>d<br />

by the VM are used.<br />

To answer the second question, each concept is assigned to one of the following<br />

four categories:<br />

Implicit Semantics Concepts like the memory mo<strong>de</strong>ls guaranteed by the JVM<br />

and the CLI, or the global interpreter lock semantics used by Python, are<br />

realized by the combined un<strong>de</strong>rlying infrastructure instead of a single<br />

mechanism. Thus, overall semantics of the system implicitly supports<br />

the concept by coordinating a wi<strong>de</strong> range of mechanisms.<br />

Instruction Set Architecture (ISA) Concepts that are either supported by a<br />

specific set of opco<strong>de</strong>s, or concepts which are realized by the structures<br />

which the VM operates on are classified as being part of the instruction<br />

set architecture (ISA). Examples are opco<strong>de</strong>s to acquire and release<br />

locks, as well as flags in a method hea<strong>de</strong>r that require the VM to acquire<br />

an object’s lock before executing that method.<br />

Primitive Concepts that require direct access to VM internals but do not fit<br />

into the ISA are typically realized by so-called primitives. They are routines<br />

provi<strong>de</strong>d as part of the runtime, implemented in the implementation<br />

language of the VM. Common examples are thread-related operations.<br />

Library Other concepts can be <strong>de</strong>livered as an integral part of the language<br />

runtime system, but are implemented entirely in terms of other abstractions<br />

provi<strong>de</strong>d by the VM, i. e., without requiring new primitives for<br />

their implementation.<br />

Appendix A documents the outline of the questionnaire for this survey in<br />

Lst. A.1. The appendix also inclu<strong>de</strong>s an example of a completed questionnaire<br />

in Lst. A.2.<br />

3.1.1.2. Survey Subjects<br />

Based on the goal of this dissertation, which is improvementing concurrent<br />

and parallel programming support for multi-language VMs, the focus of this<br />

41

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!