Mówisz, że nikt z nas pwnie nie spotkał się z systemem czasu rzeczywistego? A ja Ci podam przykład: sterowanie światłami ulicznymi.
zgoda, ale nie dlatego, że tam musi tak być, tylko dla tego, że nikt nie wpadł na genialny pomysł tworzenia kolosa. Zrobili coś z "małym" prockiem i dlatego wyszedł system czasu rzeczywistego. Natomiast w praktyce tak by nie musiało być. Tak się składa, że nawet windows mógłby brać na siebie sterowanie całym miastem (światłami). Przecież to jedynie sekwencja, więc tutaj to raczej logika decyduje o rozwiązaniu (o czym pisałem wcześniej - system czasu rzeczywistego widać też w monitorze, drukarce, telewizorze, zegarku itd. a to dla tego, że tam nie robi się cudów).
w określeniu "system czasu rzeczywistego" nie jest nigdzie powiedziane, że czasy reakcji mają być nano/mikrosekundowe.
Wiem, ale twoje dalsze spostrzeżenie jest także ważne :). Natomiast ja nigdzie tego nie powiedziałem, że tak być musi, ale skoro nie musi to mamy windowsa :). To jeden z najważniejszych czynników. Gdyby nie on to każdy system można byłoby nazwać systemem czasu rzeczywistego, nawet PCty jako całość i windows jako system operacyjny czasu rzeczywistego. Tam liczy się naprawdę wydajność i jak słusznie zauwazyłeś (co zresztą napisałem również i ja wcześniej) większość systemów czasu rzeczywistego oparta jest o procki z oprogramowaniem nie będącym systemem operacyjnym.
RR - nie za bardzo Cię rozumiem. To jest forum programistyczne gdzie w większości użytkownikami są programiści wysokopoziomowi.
Właśnie. Programiści wysokopoziomowi. I tutaj właśnie jest brak waszej podstawowej wiedzy w zakresie elektroniki (bo nie da się ukryć że systemy czasu rzeczywistego i systemy operacyjne czasu rzeczywistego to w większości przypadków znajdują zastosowanie w elektronice). Prawda jest taka, że programowanie wysokopoziomowe i system czasu rzeczywistego ma się tak, jak windows vista do kompów z prockami 486. Jedno drugiemu w zasadzie przeczy. Nie tworzy się systemu czasu rzeczywistego, po to by dla zabawy oprogramować go w języku bardzo wysokiego poziomu takiego jak Java. Systemy czasu rzeczywistego mają konkretne cele, nie mają być proste w utworzeniu (i zazwyczaj nie są) tylko dobre, przemyślane.
Czasami się mówi, że ktoś zrobił coś sztuka dla sztuki np. kiedy zrobił jakieś urządzenie, które faktycznie działa świetnie, ale wszystko pracuje na maksa (np. kod zamiast w C został napisany w ASM, procek dzięki temu można było zwolnić itp). Faktycznie to jest sztuka dla sztuki, ale w takich przypadkach są plusy - koleś nauczył się optymalizacji, bo potrafi zrobić wielkie rzeczy, zmniejszone zostały koszty itp. Natomiast kiedy ktoś tworzy to samo przy pomocy całego system czasu rzeczywistego instalując tam np. linuksa i pisząc wszystko w javie (hipotetycznie), to jest dopiero sztuka dla sztuki, przerost formy nad treścią. Czemu to ma służyć? Żeby pokazać że się da? I co z tego że się da, jak to jedynie ciekawostka, koszt duży itd. Póki co na tym świecie liczy się tworzenie małych rzeczy, bo każdy głupi wie, że autko dobre można zrobić z silnikiem 8 litrów. Ale nie taki jest cel. Liczy się by osiągnąć maksymalne wyniki z możliwie małym silnikiem. To jest dość charakterystyczna cecha systemów czasu rzeczywistego.
Nic więc dziwnego, że jak powstaje temat o systemach czasu rzeczywsitego to chodzi o ujęcie wysokopoziomowe.
Ja też nie widzę w tym nic dziwnego. Niewiedza po prostu wymaga douczenia się :). A prawda jest taka, że jak wcześniej wspomniałem system czasu rzeczywistego i programowanie wysokopoziomowe to żart :). Nie po to się tworzy coś co ma być w zasadzie na maksa zoptymalizowane, by ta optymalizacja była w czymś takim jak Java. Zresztą pomyśl logicznie.
Jak powiedziałem, popytajcie elektroników, to inny świat. Z perspektywy programistów wysokopoziomowych wydaje się, że to dobry tok myślenia, ale tak nie jest. Stajecie przed głupim problemem i okazuje się, że łatwiej jest napisać rozwiązanie w ASM niż w Javie :), bo elektronicy dali takie ograniczenia projektując system, że szok. Może się nawet okazać, że mimo ASMa nadal będziecie musieli optymalizować :P. Tak, tak... to jest właśnie taki świat mimo że to XXI wiek. Wierzcie mi lub nie, ale od paru lat siedzę w elektronice. Trochę wiem w tym temacie i odkąd się tym zajmuje spotkałem wiele różnych urzędzeń (przemysłowych, domowych itp) i naprawdę tylko niewielki odsetek (telefony komórkowe, modemy itp) zawierał w ogóle system operacyjny. Reszta jak zawierała procki to z całą pewnością były pozbawione systemu operacyjnego.
Na dowód swoich twierdzeń - proszę, 3 linki jakie udało mi się znaleźć o javie na elektrodzie (java i uP).
http://www.elektroda.pl/rtvforum/viewtopic.php?p=4084055&highlight=#4084055
http://www.elektroda.pl/rtvforum/viewtopic.php?p=3035659&highlight=#3035659
http://www.elektroda.pl/rtvforum/viewtopic.php?p=2038487&highlight=#2038487
http://forum.mikrokontrolery.net/viewtopic.php?p=3112
http://forum.mikrokontrolery.net/viewtopic.php?t=149&highlight=java
Jak widać wszystkie 3 wątki nie zostały zbyt mocno rozwinięte, a pytania zadawały osoby nie bardzo orientujące się w temacie. Mimo, że jest java na AVRka to jak to wspomniał koleś, zazwyczaj procki są mniejsze lub bardziej obciążone...
Na zakończenie tematu, bo wydaje mi się, że to koniec, powiem, że dawniej jak zaczynałem, czytałem artykuł o programowaniu uP i w ogóle o systemach mikroporocesorowych (RAM, ROM, uP, peryferia). Tam pięknie zostało napisane, że do większości urządzeń wystarczają niewielkie procesory o niewielkich możliwościach, a tam gdzie możliwości potrzebne są duże, tam wszystko się maksymalnie optymalizuje. I ja się pod tym podpisuje :).
Koniec wykładu :).