Java Real-Time System

0

cześć,
Szukam informacji w jaki sposób mógłbym zacząć psica program w jako RTS, znalazłem instrukcje na stronie oracle natomiast wszystkie źródła zostały odcięte i aktualnie nie mam jak ich użyć. Czy jest jakaś inna droga do JRTS ?

link do strony oracle

1

Real time Java jako taka jest chyba martwa. (Nieoficjalnie).
Są jakieś rozwiązania typu jamaicavm, ale nie mam pojęcia jak sensowne i jak działa.
Pytanie czy faktycznie potrzebujesz real time? Why? Tu są często nieporozumienia.

0
jarekr000000 napisał(a):

Real time Java jako taka jest chyba martwa. (Nieoficjalnie).
Są jakieś rozwiązania typu jamaicavm, ale nie mam pojęcia jak sensowne i jak działa.
Pytanie czy faktycznie potrzebujesz real time? Why? Tu są często nieporozumienia.

cześć,
piszę pracę na studia, i porównuję jak działa RTM i dlaczego inny system nim być nie może.
heh ledwo co uporałem się z linuxem żeby był RT a teraz java...
znalazłem jeszcze taką firmę link do ptc, ale nie wiem czy to jest to czego szukam

1

hmm - nie jeste eksperte, ale ciekawi mnie
rozumiem, że zgłębiasz hard real time , bo wszelkie softy reszta to w zasadzie takie nie wiadomo co

co znaczy RTM?
możesz napisać o tym linuxie? użyłeś jakiegoś projektu real time linux?
w ogóle jaki sprzęt? bo obecna architektura PC to raczej odpada w real time

jakbym miał taki temat to najpierw szukałbym czegoś na Raspberry ... i w ten sposób trafiłem na ten link: https://real-time-java-on-the-raspberry-pi.readthedocs.io/en/latest/ (Fiji VM)

1

Ta Java to koniecznie?
Jesli nie to masz FreeRTOS: https://www.freertos.org/index.html
Do tego dokladasz C i jakis wspierany hardware i masz rozwiazanie.
Rasberry Pi moze byc zbyt skomplikowane bo to AFAIK "duzy ARM".

Edit: gdyby przyszlo Ci do glowy uzyc Rusta:
https://medium.com/coinmonks/running-rust-and-freertos-on-the-padi-iot-stamp-fb36c5ef4844

0

cześć,
myślę że hard real time ciężko będzie osiągnąć z racji ze nie ma specyfikacji w jakim czasie dane zadanie będzie się wykonywało (nie można określić maksymalnego nieprzekraczalnego czasu), więc traktuje to jako pseudo RTM (Real time machine), albo bardziej RTS (real time system).
Java tak bo to jedyny język, który w miarę rozumiem. Chciałbym zrobić taki pseudo system czasu rzeczywistego i porównać go z maszyna wirtualną androida i pokazać czemu ten system nie może być RT i na wzór pokazać taki pseudo "stworzony przeze mnie "

linux-RT:
Wpierw korzystałem z informacji znalezionych w necie typu stack ect.
następnie znalazłem stronę link, gdzie pokazane jest jak skonfigurtować linuxa paczki RT, ale i tutaj dużo błędów napotkałem i w końcu znalazłem komentarz, gdzie jest podane źródło i jak ściągnąć gotowy kompilat:
link do forum
a hardware to zwykły laptop lenovo

link do instrukcji jak przygotować stanowisko

2

Grząskie to zadanie. ale to może dlatego że się nie znam. Dużo zależy od tego jaki przykład systemu chcesz zbudować.

RTJava jest na tyle specyficzna, żę i tak może być Ci łatwiej ogarnąć C, które językiem jest beznadziejnym, ale do RT się nadaje.

Zaskoczyło mnie, że Android chyba nie ma nic do RT, a tak szybkie szukanie w google wskazuje - wręcz spodziewałem się, że prędzej niż na PC coś będzie.

W końcu budzik powinien czasem dzwonić :-)

0

Temat nie jest łatwy tak jak myślałem, ale liczyłem że skoro to java to źródeł wiedzy będzie od groma.
Być może nie cały Andek bo cała architektura nie jest stworzona pod bycie RT, ale sama maszyna wirtualna, nawet powstał system RTDroid, działa to na malinie.
Nie wiem w którą stronę popchnąć swoje działania

3

Próbując do tego użyć Javy robisz sobie tylko krzywdę.
Zrobisz prawie-jak-RTOS, który nie wiadomo co pokazuje z przymrużeniem oka.

Jak chcesz w miarę łatwo to zrobić to możesz użyć Arduino Uno + FreeRTOS & C++ - jest to taki zestaw który wygląda na niezbyt wymagający a robisz coś co ma faktyczny sens.

Hardware:

Poradniki:

0
vpiotr napisał(a):

Próbując do tego użyć Javy robisz sobie tylko krzywdę.
Zrobisz prawie-jak-RTOS, który nie wiadomo co pokazuje z przymrużeniem oka.

Jak chcesz w miarę łatwo to zrobić to możesz użyć Arduino Uno + FreeRTOS & C++ - jest to taki zestaw który wygląda na niezbyt wymagający a robisz coś co ma faktyczny sens.

Hardware:

Poradniki:

cześć,
to są fajne pomysły, ale myślę ze nie podjedzie bo gdzie tu połączenie z Andkiem. Wydaje mi się że muszę uderzyć, albo w stronę Real-Time Java on Raspberry Pi albo JamaicaVM link do producenta, jeszcze nic na ten temat nie wiem, ale opis wydaje się być chyba moją droga ratunku.

ps. miłego długiego weekendu

0

cześć,
chciałbym się jeszcze was podpytać, gdyż wybrałem Jamaica i spełnia moje oczekiwania, natomiast chciałbym was się podpytać. Chcę stworzyć główny wątek który będzie wykonywał jakąś operacje i on będzie przerywany przez wątek RT. Pytanie co może być głównym wątkiem, który trwa chwilę i jakim procesem go przerwać, bo zwykła iteracja nie jest jakimś wielkim obciążeniem dla procesora. Czy macie jakieś pomysły ? Może ściąganie w bitecode jakiegoś dużego obrazu ?

1

Pół roku temu pisałem inżynierkę "Zastosowanie języka Java do realizacji systemu sterowania o miękkich wymaganiach czasowych" i powiem z własnego doświadczenia, że nie warto w to brnąć głęboko bo jest to stosunkowo trudny temat i mało jest o tym informacji. Swoją pracę napisałem w skrócie tak: w pierwszych kilku rozdziałach streściłem najważniejsze rozdziały RTSJ(thread scheduling, RT GC, memory management, synchronization). Dość spory problem miałem z tłumaczeniem niektórych pojęć, ponieważ temat Real Time Java nie jest zbyt popularny w polskojęzycznej literaturze, a niektóre pojęcia słabo brzmiały przetłumaczone na język polski. W kolejnym rozdziale opisałem protokoły komunikacyjne, które można wykorzystać, bądź nie, do komunikacji w systemach czasu rzeczywistego (UDP, Modbus TCP, TCP, OPC itd.). W kolejnym rozdziale opisałem jakie są systemy czasu rzeczywistego (QNX, RTLinux, Nucleus RTOS ThreadX). Mimo wszystko korzystałem z Windowsa i go też opisałem oraz dlaczego słabo się nadaje do rozwiązań RT. Potem opisałem trochę JDK (GC, JIT itd.). Na końcu porównałem prędkość obliczenia pierwiastka kwadratowego za pomocą metody Herona dla różnego n za pomocą różnych języków programowania (w tym oczywiście Java). Kolejne rozdziały dotyczyły już fizycznej realizacji projektu. W pierwszym etapie było to sterowanie obiektem zaimplementowanym w Matlabie za pomoca programu w Javie i wizualizacja całego procesu sterowania na stronie internetowej (komunikacja WebSocket). W drugim etapie napisałem program do sterowania fizycznym obiektem w postaci 3 zbiorników kaskadowych o różnych kształtach, połączonych ze sobą sterowalnymi elektrycznie zaworami, do których przytwierdzone były również zawory sterowane ręczne symulujące zakłócenia. Sterowanie polegało na podaniu odpowiedniego sygnału na pompę, która wtłaczała wodę do zbiornika znajdującego się na samej górze oraz odpowiednim wysterowaniu kąta otwarcia zaworów elektrycznych.
Jeśli studiujesz kierunek związany z elektroniką, automatyką itp. to polecam znaleźć jakiś obiekt rzeczywisty (jeśli masz taką możliwość), żeby można było przetestować działanie Javy "na żywo" bo samo modelowanie jest, w moim przekonaniu, dość nudne jak się ma do wyboru coś namacalnego.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.