Java w czasie rzeczywistym
Java czasu rzeczywistego to ogólny termin określający kombinację technologii, która umożliwia programistom pisanie programów spełniających wymagania systemów czasu rzeczywistego w języku programowania Java .
zarządzanie pamięcią Javy , 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 dziedzinach. Jego możliwości zostały ulepszone w celu obsługi potrzeb obliczeniowych w czasie rzeczywistym:
- Java w czasie rzeczywistym obsługuje ścisły model wątków oparty na priorytetach ,
- blokowania Java obsługują techniki unikania inwersji priorytetów , takie jak dziedziczenie priorytetów lub protokół sufitu priorytetów oraz
- Obsługa zdarzeń.
Wstępna propozycja otwartego standardu dla Javy czasu rzeczywistego została przedstawiona przez Kelvina Nilsena, wówczas pracującego jako członek wydziału badawczego na Iowa State University. Kolejny dokument przeglądowy został opublikowany w CACM . Przytłaczająco pozytywna reakcja na te wczesne propozycje zaowocowała serią spotkań zorganizowanych przez National Institute of Standards and Technology w celu ustanowienia otwartego standardu dla języka Java w czasie rzeczywistym. NIST został ostatecznie poinformowany, że nie jest odpowiednim organem do ustanawiania standardów związanych z językiem Java, ponieważ Java jest znakiem towarowym, a technologie są własnością Sun Microsystems. Dlatego NIST zakończył swoje wysiłki publikacją konsensusu wymagań , które mogą być brane pod uwagę w ramach przyszłych działań standaryzacyjnych, które mają być hostowane przez firmę Sun Microsystems.
Kiedy powstała społeczność Java , pierwszym wysiłkiem była specyfikacja Javy czasu rzeczywistego, JSR001. Pojawiło się wiele implementacji wynikowej specyfikacji czasu rzeczywistego dla Java ( RTSJ ), w tym implementacja referencyjna z Timesys , WebSphere Real Time firmy IBM , Java SE Real-Time Systems firmy Sun Microsystems , PTC Perc z PTC, Inc . , lub JamaicaVM z aicas .
RTSJ rozwiązał krytyczne problemy, narzucając minimalną specyfikację dla modelu wątkowego (i umożliwiając 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łaszczać przez śmieciarz. Zamiast tego obszary te są 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 wyrzucanie elementów bezużytecznych.
Specyfikacja czasu rzeczywistego dla języka Java
Specyfikacja czasu rzeczywistego dla języka Java (RTSJ) to zestaw interfejsów i udoskonaleń behawioralnych, które umożliwiają programowanie komputerów w czasie rzeczywistym 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źć na stronie RTSJ 2.0
Zobacz też
- Specyfikacja funkcjonalna
- Javolution — biblioteka Java zgodna z RTSJ
Linki zewnętrzne
- Zagadnienia w projektowaniu i wdrażaniu języka Java w czasie rzeczywistym
- Dodawanie możliwości w czasie rzeczywistym do Javy
- Wymagania dotyczące rozszerzeń w czasie rzeczywistym 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 z RTSJ SE maszyna wirtualna
- JamaicaVM implementacja RTSJ SE z deterministycznym wyrzucaniem elementów bezużytecznych
- PTC Perc to maszyna wirtualna czasu rzeczywistego oparta na Javie Standard Edition, ale z opatentowaną technologią deterministycznego zbierania elementów bezużytecznych zamiast RTSJ
- System czasu rzeczywistego Sun Java SE
- Apogee Java w czasie rzeczywistym z GC w czasie rzeczywistym (wycofane)
- Zestaw narzędzi do wdrażania i testowania Timesys RTSJ
- jRate (Java Real-Time Extension) rozszerzenie open-source kompilatora GNU GCJ front-end i system wykonawczy, które dodaje obsługę większości funkcji wymaganych przez RTSJ.
- International Workshop on Java Technologies for Realtime and Embedded Systems (JTRES 2005) JTRES 2006 JTRES 2007 JTRES 2008 JTRES 2009 JTRES 2010 JTRES 2011 JTRES 2012 JTRES 2013 JTRES 2014 JTRES 2015
- Otwarte źródło czasu rzeczywistego oparte na LJRT Lund Java
- Owm
- Fidżi VM w czasie rzeczywistym Java
- Maszyny wirtualne Java działające w czasie rzeczywistym