Кіріспе
Нақты уақыт Java – Java бағдарламалау тілінде нақты уақыт жүйелерінің талаптарын қанағаттандыратын бағдарламаларды жазуға мүмкіндік беретін технологиялар жиынтығы. Java-ның күрделі жад басқаруы, жіптерді (threading) және бір мезгілдестікті (concurrency) тумамен қолдауы, типтік қауіпсіздік және салыстырмалы қарапайымдылығы оны көптеген салаларда пайдалануға сұраныс тудырды. Оның мүмкіндіктері нақты уақыттағы есептеу қажеттіліктерін қолдау үшін жетілдірілді: Нақты уақыт Java қатаң басымдыққа негізделген жіптер моделін қолдайды, себебі Java жіптері басымдықтарды қолдайды, Java құлыптау механизмдері басымдық инверсиясын болдырмау әдістерін, мысалы басымдықты мұралау немесе басымдық шегі протоколын қолдайды, сондай-ақ оқиғаларды өңдеуді де қамтиды. Нақты уақыт Java үшін ашық стандартты әзірлеудің алғашқы ұсынысын Келвин Нильсен жасады, ол сол кезде Айова штаты университетінің ғылыми қызметкері болған. Бұл туралы ACM хабарламаларында шолу мақаласы жарияланды. Осы алғашқы ұсыныстарға үлкен қызығушылық білдірілді, нәтижесінде Ұлттық Стандарттар және Технология институты (NIST) нақты уақыт Java үшін ашық стандартты құру мақсатында бірқатар кездесулер өткізді. Бірақ NIST-ке Java тіліне қатысты стандарттарды белгілеуге олардың құзыры жетпейтіні айтылды, себебі Java сауда белгісі болып тіркелген, ал технологиялар Sun Microsystems компаниясына тиесілі болды. Сондықтан NIST консенсус талаптарын жариялаумен айналысып, өз жұмысын аяқтады, оларды Sun Microsystems компаниясы болашақта стандарттау жұмыстарында қарастыра алатын еді. Java қауымдастығы құрылған кезде, алғашқы жұмыс нақты уақыт Java-ның JSR001 спецификациясын жасау болды. Java үшін жасалған нақты уақыт спецификациясының (RTSJ) бірнеше іске асырылымдары пайда болды, олардың ішінде Timesys, IBM-нің WebSphere Real Time, Sun Microsystems-тің Java SE Real Time Systems, PTC, Inc-тің PTC Perc немесе aicas-тың JamaicaVM-нің эталондық іске асырылымдары бар. RTSJ маңызды мәселелерді шешті: жіптер моделі үшін ең төменгі талаптарды міндеттеу (және басқа модельдерді VM-ге қосуға рұқсат беру) және қоқыс жинаудан (garbage collection) тыс жад аймақтарын, сондай-ақ қоқыс жинаушымен тоқтатылмайтын жіптерді қамтамасыз ету арқылы. Бұл аймақтар аймақтарға негізделген жад басқару арқылы басқарылады. Соңғы 2.0 нұсқасы құрылғыларға тікелей қол жеткізуді және детерминистік қоқыс жинауды да қолдайды.
Real time Java supports a strict priority based threading model,
because Java threads support priorities, Java locking mechanisms support priority inversion avoidance techniques, such as priority inheritance or the priority ceiling protocol, and
event handling. The initial proposal for an open standard for real time Java was put forth by Kelvin Nilsen, then serving as a research faculty member at Iowa State University. A follow on overview paper was published in the Communications of the ACM. The overwhelmingly positive response to these early proposals resulted in a series of meetings hosted by the National Institute of Standards and Technology in an effort to establish an open standard for real time Java. NIST was ultimately told that they were not the appropriate body to establish standards related to the Java language, as Java was trademarked, and the technologies were owned by Sun Microsystems. Therefore, NIST ended their efforts with publication of consensus requirements. that could be considered by future standardization efforts to be hosted by Sun Microsystems. When the Java Community was formed, the very first effort was the specification for real time Java, JSR001. A number of implementations of the resulting Real time specification for Java (RTSJ) have emerged, including a reference implementation from Timesys, IBM's WebSphere Real Time, Sun Microsystems's Java SE Real Time Systems, PTC Perc from PTC, Inc., or JamaicaVM from aicas. The RTSJ addressed the critical issues by mandating a minimum specification for the threading model (and allowing other models to be plugged into the VM) and by providing for areas of memory that are not subject to garbage collection, along with threads that are not preemptable by the garbage collector. These areas are instead managed using region based memory management. The latest specification, 2.0, supports direct device access and deterministic garbage collection as well.
Java үшін нақты уақыт спецификациясы
Java үшін нақты уақыт спецификациясы (RTSJ) — Java бағдарламалау тілінде нақты уақытты есептеу бағдарламалау мүмкіндігін қамтамасыз ететін интерфейстер мен мінез-құлықты жетілдірулер жиынтығы. RTSJ 1.0 Java қоғамдастығы процесінде JSR 1 ретінде әзірленді, ол 2001 жылдың қараша айында жаңа стандартты бекітті. RTSJ 2.0 JSR 282 аясында әзірленуде. Оның жобалық нұсқасы JCP бетінде қолжетімді. Қосымша ақпаратты Aicas-тан алуға болады.