Real-Time Java

Real-Time Java je kolekce programovacích rozhraní, která rozšiřuje technologii Java o tvrdé funkce v reálném čase . Tato specifikace v reálném čase pro Javu (RTSJ) byla vyvinuta jako Java Specification Request  1 jako součást Java Community Process a přijata jako standard v listopadu 2001. V současné době probíhají práce na rozšířené verzi RTSJ jako součásti JSR 282.

pozadí

Některé z vlastností, které se obvykle považují za silné stránky Javy, jako je odvoz odpadu neoddělitelně spjatý s jazykem , stejně jako nativní podpora vláken a souběžnosti , znemožnily přímé použití Javy v tvrdých systémech v reálném čase:

  • Java, stejně jako většina operačních systémů, pro které je Java nabízena, nepodporuje striktní model vláken založený na prioritách . Mechanismy zámku Java proto nepodporují žádné mechanismy zabraňující převrácení priority, jako jsou limity priority nebo dědičnost priority .
  • Chování určitých sběratelů paměti Java může způsobit neurčité pauzy ve výpočtech, a tím podkopávat všechny záruky Java programů v reálném čase.

K překonání těchto obtíží byla vyvinuta specifikace RTSJ ( Real-Time Specification for Java ) jako požadavek specifikace Java . V Javě umožňuje obcházení výše uvedených překážek zavedením odpovídajícího modelu vláken a umožněním rozšíření virtuálního stroje Java o další modely vláken. Kromě toho definuje speciální oblasti paměti, které nejsou vyčištěny konvenčním uvolňováním paměti, ale vlákny v reálném čase, které nelze pozastavit uvolněním paměti.

Aktuální implementace RTSJ umožňují vyvíjet tvrdé a měkké aplikace v reálném čase v Javě. Mezi nejznámější implementace patří referenční implementace od Timesys, IBM WebSphere Real Time, Sun Microsystems Java SE Real-Time Systems, Aonix PERC a JamaicaVM od aicas.

rozvoj

Program „Garbage first Garbage Collector“ (G1GC), který se standardně používá na serverech od verze Java 9, má cíle pro maximální délku pauz, které dosahuje až na vzácné výjimky. To umožňuje měkké aplikace v reálném čase v Javě.

Sběrači odpadků také již dlouhou dobu existují a používají algoritmy, jejichž chování v čase je předvídatelné, a proto také umožňují tvrdé aplikace v reálném čase v Javě.

literatura

  • Eric J. Bruno, Greg Bollella: Programování Java ™ v reálném čase s Java RTS . Prentice Hall, 2009, ISBN 978-0-13-714298-9 (anglicky, bvdep.com [přístup 6. prosince 2011]).
  • Peter C. Dibble: Programování platformy Java v reálném čase . Prentice Hall, 2002, ISBN 978-0-13-028261-3 (anglicky).
  • Andrew Wellings: Souběžné programování a programování v reálném čase v Javě . John Wiley & Sons, 2004, ISBN 978-0-470-84437-3 (anglicky).
  • Benjamin Brosgol, James Gosling, Peter Dibble, Steve Furr, David Hardin, Mark Turnbull: Specifikace v reálném čase pro Javu . Vyd.: Gregory Bollella. Addison-Wesley Longman, 2000, ISBN 0-201-70323-8 (anglicky).

webové odkazy

Individuální důkazy

  1. https://jcp.org/en/jsr/detail?id=282
  2. ^ [1] Odpadky První ladění sběratelů odpadků, Monica Beckwith, srpen 2013
  3. Algoritmus Metronome GC pro tvrdé Java aplikace v reálném čase; IBM; Citováno 12. června 2014
  4. [2] WebSphere v reálném čase na serveru WebSphere Application Server
  5. https://www.azul.com/products/components/pgc/
  6. [3] Z Garbage Collector - maximální doby pauzy pod milisekundou