DocumentCode :
35423
Title :
NSTX-U Advances in Real-Time C++11 on Linux
Author :
Erickson, Keith G.
Author_Institution :
Plasma Phys. Lab., Princeton Univ., Princeton, NJ, USA
Volume :
62
Issue :
4
fYear :
2015
fDate :
Aug. 2015
Firstpage :
1758
Lastpage :
1765
Abstract :
Programming languages like C and Ada combined with proprietary embedded operating systems have dominated the real-time application space for decades. The new C++11 standard includes native, language-level support for concurrency, a required feature for any nontrivial event-oriented real-time software. Threads, Locks, and Atomics now exist to provide the necessary tools to build the structures that make up the foundation of a complex real-time system. The National Spherical Torus Experiment Upgrade (NSTX-U) at the Princeton Plasma Physics Laboratory (PPPL) is breaking new ground with the language as applied to the needs of fusion devices. A new Digital Coil Protection System (DCPS) will serve as the main protection mechanism for the magnetic coils, and it is written entirely in C++11 running on Concurrent Computer Corporation´s real-time operating system, RedHawk Linux. It runs over 600 algorithms in a 5 kHz control loop that determine whether or not to shut down operations before physical damage occurs. To accomplish this, NSTX-U engineers developed software tools that do not currently exist elsewhere, including real-time atomic synchronization, real-time containers, and a real-time logging framework. Together with a recent (and carefully configured) version of the GCC compiler, these tools enable data acquisition, processing, and output using a conventional operating system to meet a hard real-time deadline (that is, missing one periodic is a failure) of 200 microseconds.
Keywords :
C language; Linux; software engineering; Concurrent Computer Corporation; DCPS; Linux; NSTX-U; National Spherical Torus Experiment Upgrade; PPPL; Princeton Plasma Physics Laboratory; data acquisition; digital coil protection system; embedded operating system; language-level support; nontrivial event-oriented real-time software; real-time C++11; real-time atomic synchronization; real-time containers; real-time logging framework; Concurrent computing; Kernel; Linux; Message systems; Real-time systems; Timing; Computer languages; real-time systems; software design;
fLanguage :
English
Journal_Title :
Nuclear Science, IEEE Transactions on
Publisher :
ieee
ISSN :
0018-9499
Type :
jour
DOI :
10.1109/TNS.2015.2448106
Filename :
7181739
Link To Document :
بازگشت