search query: @keyword java / total: 192
reference: 17 / 192
« previous | next »
Author:Ruusu, Henna
Title:Coping with Concurrency: Data race detection and thread safety for Java
Rinnakkaisuuden haasteet; Kilpatilanteiden havaitseminen ja monisäikeisten Java-ohjelmien turvallisuus
Publication type:Master's thesis
Publication year:2010
Pages:vii + 55      Language:   eng
Department/School:Informaatio- ja luonnontieteiden tiedekunta
Main subject:Tietojenkäsittelyteoria   (T-79)
Supervisor:Heljanko, Keijo
Instructor:Heljanko, Keijo
OEVS:
Electronic archive copy is available via Aalto Thesis Database.
Instructions

Reading digital theses in the closed network of the Aalto University Harald Herlin Learning Centre

In the closed network of Learning Centre you can read digital and digitized theses not available in the open network.

The Learning Centre contact details and opening hours: https://learningcentre.aalto.fi/en/harald-herlin-learning-centre/

You can read theses on the Learning Centre customer computers, which are available on all floors.

Logging on to the customer computers

  • Aalto University staff members log on to the customer computer using the Aalto username and password.
  • Other customers log on using a shared username and password.

Opening a thesis

  • On the desktop of the customer computers, you will find an icon titled:

    Aalto Thesis Database

  • Click on the icon to search for and open the thesis you are looking for from Aaltodoc database. You can find the thesis file by clicking the link on the OEV or OEVS field.

Reading the thesis

  • You can either print the thesis or read it on the customer computer screen.
  • You cannot save the thesis file on a flash drive or email it.
  • You cannot copy text or images from the file.
  • You cannot edit the file.

Printing the thesis

  • You can print the thesis for your personal study or research use.
  • Aalto University students and staff members may print black-and-white prints on the PrintingPoint devices when using the computer with personal Aalto username and password. Color printing is possible using the printer u90203-psc3, which is located near the customer service. Color printing is subject to a charge to Aalto University students and staff members.
  • Other customers can use the printer u90203-psc3. All printing is subject to a charge to non-University members.
Location:P1 Ark Aalto     | Archive
Keywords:data race
race detection
Java
multithreading
rinnakkaisuus
Java
kilpatilanne
muistimalli
Abstract (eng): Concurrency in software entails many problems.
One of the crucial problems of concurrent programming is to cope with situations when more than one thread tries to access shared data fields.
If not properly handled, these situations can result in data races.
They, in turn, can lead to serious bugs.
Data races are often hard to find as concurrency makes it difficult to cover the program behaviour by conventional testing.

This study discusses Java multithreading and data race detection for multithreaded Java programs.
It offers some background information on these issues for LIME2 project (LightweIght formal Methods for distributed component-based Embedded systems) that extends a tool set developed in the earlier LIME project to work with multithreaded programs.

The Java memory model forms a basis for Java multithreading.
Thesis discusses its history, the formal specification and its impact on programming.
Small changes are made to LIME interface monitoring tool to make it thread-safe.
The tool is tested with a few simple multithreaded programs.

State-of-art in race detection for Java programs is reviewed and RACER, a promising data race detection tool, is evaluated.
Several issues were found that reduce its applicability in the LIME context.
It does not in its current version support Java annotations used in the LIME interface specifications.
RACER also finds false positives because it requires variable initialisations to happen when holding an appropriate lock, which is not usually needed.

The Thesis concludes with discussion on suitable data race detection methodology for LIME2.
Data race detection should be applied before running the LIME monitoring tool with a multithreaded program so that the LIME can assume the program is racefree.
Abstract (fin): Rinnakkaisuus tuo ohjelmointiin monia haasteita.
Eräs keskeinen ongelma ovat tilanteet, joissa useampi kuin yksi säie pyrkii yhtä aikaa käyttämään jaettua muuttujaa.
Jos tällaisia tilanteita ei käsitellä asianmukaisesti, ne johtavat ns. kilpatilanteisiin, jotka puolestaan voivat aiheuttaa vakavia virhetilanteita.
Kilpatilanteiden havaitseminen on usein vaikeaa, koska perinteiset testausmenetelmät eivät kata kaikkia mahdollisia rinnakkaisuutta sisältävän ohjelman käyttäytymisiä.

Tämä diplomityö käsittelee monisäikeisiä Java ohjelmia ja kilpatilanteiden havaitsemista niistä.
Työ tarjoaa taustatietoa LIME2-projektille (LightweIght formal Methods for distributed component-based Embedded systems), joka laajentaa aiemmassa LIME-projektissa kehitettyjä työkaluja monisäikeisten ohjelmien käsittelyyn.

Javan muistimalli määrittelee perustan monisäikeisten Java-ohjelmien toiminnalle.
Työ esittelee muistimallin historiaa, formaaleja määrittelyjä sekä mallin merkitystä ohjelmoinnille.
LIME-rajapintaseurantatyökaluun toteutettiin pieniä muutoksia, jotta se toimisi turvallisesti myös monisäikeisten Java-ohjelmien seurannassa.
Työkalua on testattu muutamalla useampisäikeisellä ohjelmalla.

Tutkielma esittelee kilpatilanteiden havaitsemisen menetelmiä ja arvioi lupaavalta vaikuttavaa työkalua nimeltä RACER.
Testeissä kuitenkin ilmeni useita seikkoja, jotka heikentävät sen soveltuvuutta käytettäväksi LIME:n yhteydessä.
RACER ei nykyisellään tue Javan uusimpien versioiden sallimia lisämerkintöjä, joiden avulla LIME-rajapintamäärittelyt on toteutettu.
RACER myös löytää olemattomia kilpatilanteita, koska se vaatii, että myös muuttujien alustuksen on tapahduttava käyttäen lukitusta, mikä ei yleensä ole tarpeen.

Kilpatilanteet on syytä etsiä ennen LIME-työkalujen käyttämistä, jotta LIME:n ei tarvitse ottaa huomioon Javan muistimallin kilpatilanteita sisältäville ohjelmille sallimia käyttäytymisiä.
ED:2010-09-01
INSSI record number: 40353
+ add basket
« previous | next »
INSSI