Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТУЖ.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
196.85 Кб
Скачать

2.Java– тура уақыт жүйесі

Real-time құрылғыларын құру үшін Java не үшін керек??

  • Жалпы, «Java не үшін қажет?» деген сұрақ жауабы жоғарыда айтылған сұраққа жауап бола алады.

  • Қарапайым приложенияларды ассемблер/С/С++ те құру, өңдеу және қолдау көресте білу қиынға соғады.

  • Тура уақыттағы операциялық жүейлердің қолдану аясы артуда, сонымен қатар, оларға деген талаптар көбейді.

  • Көлемі жағынан, күрделілігі жағынан талаптар артуда.Ал енді Java тоқтала кетсек:

Java-ны болжау мүмкін бе?

  • Үстірт болатын шектеулер.

  • Керек емес информацияны жинау.(сборка мусора)

  • «Heap» құрамындағы объетілердің құрылуына уақыттың тәуелділігі.

  • “Just-in-time” компиляциясы.

  • Класстардың динамикалық жүктелуі.

  • Приоритеттердің инверсиясы болуы мүмкін.

  • Жадыға тура бағыттың болмауы.

  • Іс әрекет жүйелеуші системаның біркелкі жұмыс істемеуі.

Real-Time specification for Java

  • JSR-001 және JSR-282

  • Real-time программасынының жұмыс істеу барысын Javaтехнологиялырымен іске асуын қадағалайды.

  • АРІ және семантикалық өзгерістерді Javaплатформасындасуреттейді.

  • Үлкен дәрежелі айнымалы абстракцияларды ұсынады.

  • Кодты 100% Java-да жазу мүмкіндігі.

Java Real-Time System

  • RTSJ-ны Sun Microsystems компаниясымен іске қосу

  • Java SE 5 кері байланыс бар.

  • Java RTS 2.1

  • JavaSE 5u13-те негізделген.

  • Solaris (SPARC және х86/х64) Linux x86(SuSe, RHEL)

  • Solaris, Linux-тың RT-ядросының Real-time мүмкіндіктерін пайдаланады.

  • Real-time Garbage Collector орындайды.

RTSJ негізгі мүмкіндіктері.

  • Жоспарлау және диспечерлау

  • Scheduable объектерін басқару

  • Синхрондау

  • Приориттетердің инверсиясын жою

  • Жадыны басқару

  • Қосалқы heap-жады

  • Асинхронды мүмкіндіктер мен жағдайлар

  • Тура уақыттағы уақыт, таймерлер.

Артықшылықтары

  • RTSJ платформасы приоритеты жоғары тапсырмалардың орындалуын жылдамдатыды

  • Приоритеті жоғары тапсырыстар ағыны, аз приоритетті тапсырысты ағымдарды ығыстырады.

  • RTSJ системасы ең аз дегенде 28 деңгейлі басымдылықты талап етеді.

  • Ағымдар арасындағы ауысу саясаты қатаң ережелер арқылы жүзеге асады

  • Блогтанунға дейін орындалу, FIFO, тапсырмалар диспечерін ығыстырады.

  • Тапсырмалар орындалу тәртібі қолданушыға белгілі болады.

RTSJ басымдылықтарында инверсияны жою.

  • Басымдылықтарды мұрагерлеу. (шартты түрде)

  • Блокты ұстап тұрған ағым басымдылығы, уақытша блокталынған ағым басымдылығына ие болады

  • Кодтың өзгеруін талап етпейді

  • Priority Ceiling Protocol (керек етпейді)

  • Әрбір блоктауға максималды басымдылық ағымы тағайындалады.

  • Ағымға берілетін блоктың оның босағанына дейін тағайындалады.

Жадыны басқару

  • С/С++: жадыны басқару ауыртпалықтар программистқа жүктеледі.

  • Malloc(), free()

  • Кемшіліктері: ақпараттың жоғалуы, белгісіз көрсеткіштер.

  • Java SE: жадыны басқару автоматтандырылған.

  • Приложениялардың жұмысына белгісіздік әкеледі, GC-қа бақылау жоқ.

  • RTSJ: heap жадының сыртына жазылады, сондықтан GC жұмыс жасамайды.

RTSJ жадысының обылыстары.

enter(Runnable r)

memoryConsumed()

memoryRemaining()

newArray(...)

newInstance(...)