Java w czasie rzeczywistym - Real time Java
Java czasu rzeczywistego to pojęcie obejmujące kombinację technologii, które umożliwiają programistom pisanie programów spełniających wymagania systemów czasu rzeczywistego w języku programowania Java .
Wyrafinowane zarządzanie pamięcią w Javie , natywna obsługa wątków i współbieżności, bezpieczeństwo typów i względna prostota stworzyły zapotrzebowanie na jej użycie w wielu domenach. Jego możliwości zostały ulepszone w celu obsługi potrzeb obliczeniowych w czasie rzeczywistym:
- Java w czasie rzeczywistym obsługuje model wątków oparty na ścisłym priorytecie ,
- ponieważ wątki Java obsługują priorytety, mechanizmy blokowania Java obsługują techniki unikania inwersji priorytetów , takie jak dziedziczenie priorytetów lub protokół górnego pułapu priorytetów oraz
- Obsługa zdarzeń.
Pierwotną propozycję otwartego standardu Java czasu rzeczywistego przedstawił Kelvin Nilsen, który następnie pełnił funkcję członka wydziału badawczego na Iowa State University. W CACM opublikowano kolejny przeglądowy artykuł . Zdecydowanie pozytywna odpowiedź na te wczesne propozycje zaowocowała serią spotkań organizowanych przez National Institute of Standards and Technology w celu ustanowienia otwartego standardu Java czasu rzeczywistego. Ostatecznie powiedziano NIST, że nie są one odpowiednim organem do ustanawiania standardów związanych z językiem Java, ponieważ Java była znakiem towarowym, a technologie były własnością firmy Sun Microsystems. Dlatego NIST zakończył swoje wysiłki publikacją wymagań konsensusu , które mogłyby zostać uwzględnione w przyszłych próbach standaryzacji, które mają być obsługiwane przez Sun Microsystems.
Kiedy utworzono społeczność Java , pierwszym wysiłkiem była specyfikacja języka Java czasu rzeczywistego, JSR001. Pojawiło się wiele wdrożeń wynikowej specyfikacji czasu rzeczywistego dla języka Java ( RTSJ ), w tym implementacja referencyjna z Timesys , IBM 's WebSphere Real Time, Sun Microsystems 's Java SE Real-Time Systems, PTC Perc z PTC, Inc . lub JamaicaVM z aicas .
RTSJ rozwiązał krytyczne problemy, wprowadzając minimalną specyfikację dla modelu wątków (i zezwalając na podłączenie innych modeli do maszyny wirtualnej) oraz zapewniając obszary pamięci , które nie podlegają wyrzucaniu elementów bezużytecznych, wraz z wątkami, których nie można wywłaszczyć śmieciarz. Te obszary są zamiast tego zarządzane przy użyciu zarządzania pamięcią opartego na regionach . Najnowsza specyfikacja, 2.0, obsługuje również bezpośredni dostęp do urządzeń i deterministyczne usuwanie elementów bezużytecznych.
Specyfikacja czasu rzeczywistego dla języka Java
Real-Time Specyfikacja Java (RTSJ) to zestaw interfejsów i subtelności zachowań, które umożliwiają w czasie rzeczywistym programowania komputerowego w języku programowania Java . RTSJ 1.0 został opracowany jako JSR 1 w ramach Java Community Process , który zatwierdził nowy standard w listopadzie 2001 r. RTSJ 2.0 jest rozwijany w ramach JSR 282. Wersja robocza jest dostępna na stronie JSR 282 JCP . Więcej informacji można znaleźć w RTSJ 2.0
Zobacz też
- Specyfikacja funkcjonalna
- Javolution - biblioteka Java zgodna z RTSJ
Bibliografia
Linki zewnętrzne
- Problemy z projektowaniem i wdrażaniem Java czasu rzeczywistego
- Dodanie funkcji czasu rzeczywistego do języka Java
- Wymagania dotyczące rozszerzeń czasu rzeczywistego dla platformy Java
- Specyfikacja czasu rzeczywistego dla języka Java 2.0 (RTSJ 2.0)
- JSR-282
- Specyfikacja czasu rzeczywistego dla języka Java (RTSJ)
- JSR-1
- IBM WebSphere Real Time w pełni zgodna maszyna wirtualna RTSJ SE
- JamaicaVM implementacja RTSJ SE z deterministycznym usuwaniem elementów bezużytecznych
- PTC Perc to maszyna wirtualna czasu rzeczywistego oparta na Java Standard Edition, ale z opatentowaną deterministyczną technologią zbierania śmieci zamiast RTSJ
- System czasu rzeczywistego Sun Java SE
- Apogee w czasie rzeczywistym Java z GC w czasie rzeczywistym (wycofane)
- Zestaw narzędzi do implementacji i testowania Timesys RTSJ
- jRate (Java Real-Time Extension) to rozszerzenie typu open source dla front-endu i środowiska wykonawczego kompilatora GNU GCJ, które dodaje obsługę większości funkcji wymaganych przez RTSJ.
- Międzynarodowe warsztaty na temat technologii Java dla systemów czasu rzeczywistego i systemów wbudowanych (JTRES 2005) JTRES 2006 JTRES 2007 JTRES 2008 JTRES 2009 JTRES 2010 JTRES 2011 JTRES 2012 JTRES 2013 JTRES 2014 JTRES 2015
- LJRT Lund oparty na Javie open source czasu rzeczywistego
- Ovm
- Fiji VM Java w czasie rzeczywistym
- Maszyny wirtualne Java w czasie rzeczywistym