Abstract
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.
Original language | English |
---|---|
Title of host publication | Proceedings of the 11th International Workshop on Java Technologies for Real-Time and Embedded Systems, JTRES 2013 |
Pages | 48-57 |
Number of pages | 10 |
DOIs | |
Publication status | Published - 15 Nov 2013 |
Event | 11th International Workshop on Java Technologies for Real-Time and Embedded Systems, JTRES 2013 - Karlsruhe, Germany Duration: 9 Oct 2013 → 10 Oct 2013 |
Conference
Conference | 11th International Workshop on Java Technologies for Real-Time and Embedded Systems, JTRES 2013 |
---|---|
Country/Territory | Germany |
City | Karlsruhe |
Period | 9/10/13 → 10/10/13 |
Keywords
- D.1.3 [Concurrent Programming]: Parallel programming
- D.2.11 [Software Architectures]: Patterns
- D.4.1 [Process Management]: Multiprocessing/ multiprogramming/multi-tasking