By the same authors

Safety-critical Java level 2: Motivations, example applications and issues

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Published copy (DOI)



Publication details

Title of host publicationProceedings of the 11th International Workshop on Java Technologies for Real-Time and Embedded Systems, JTRES 2013
DatePublished - 15 Nov 2013
Number of pages10
Original languageEnglish


Safety Critical Java defines three compliance levels: Level 0, Level 1 and Level 2. Applications that can be scheduled using cyclic-executive techniques can be implemented at Level 0. Applications that can use simple analysable fixed-priority scheduling can be implemented at Level 1. However, Level 2 also targets fixed-priority scheduling, so this cannot be used to decide whether to use Level 1 or Level 2. The SCJ specification is clear on what constitutes a Level 2 application in terms of its use of the defined API, but not the occasions on which it should be used. Hence, it is not clear what application requirements dictate a Level 2 solution. This paper broadly classifies the features that exist only at Level 2 into three groups: support for nested mission sequencers, support for managed threads, including the use of the Object.wait, Object.notify, HighResolutionTime. waitForObject and Services.delay methods, and support for global scheduling across multiple processors. In this paper we explore the first two groups to derive possible programming requirements that each group of features support. We identify several areas where the specification needs modifications in order to support fully these derived requirements. These include support for terminating managed threads, the ability to set a deadline on the transition between missions, and augmentation of the mission sequencer concept to support composibility of timing constraints.

    Research areas

  • D.1.3 [Concurrent Programming]: Parallel programming, D.2.11 [Software Architectures]: Patterns, D.4.1 [Process Management]: Multiprocessing/ multiprogramming/multi-tasking

Discover related content

Find related publications, people, projects, datasets and more using interactive charts.

View graph of relations