Nowe technologie Edukacja Kontakt O nas Dodaj do ulubionych Ustaw tę stronę jako startową

Artykuły dotyczące systemu QNX i jego zastosowań

 

QNX przyśpiesza!

Opracował: Wiesław Barcikowski

Wydział Cybernetyki
Wojskowa Akademia Techniczna


Na rynku systemów operacyjnych zapanowało ostatnio znaczne ożywienie. Wszyscy wielcy producenci prowadzą prace rozwojowe mające na celu stworzenie systemu operacyjnego nowej generacji. tradycyjna architektura oparta o monolityczne "megajądro" ustępuje nowoczesnej architekturze opartej o tzw. mikrojądro (ang. microkernel). Podejście obiektowe, model klient-serwer, technika wymiany komunikatów - to jest to co przykuwa uwagę projektantów uwagę projektantów nowych systemów operacyjnych.

Już wkrótce na rynku powitamy nowych konkurentów systemu Windows NT: WorkplaceOS (następca systemu OS/2 firmy IBM), SpringOS (następca systemu Solaris firmy Sun), nowy OSF, nowy system firmy Novell/USL, a także system Taligent będący efektem współpracy IBM i Apple. Wszystkie te systemy charakteryzują się architekturą opartą o mikrojądro. Wzorcem dla większości firm jest system operacyjny Mach z Carnegie-Mellon University. Systemy WorkplaceOS i OSF mają być wręcz zbudowane na bazie oryginalnego mikrojądra systemu Mach. W podobny sposób chce postąpić firma Novell/USL z tym, że nowy system ma bazować na mikrojądrze systemu Chorus, znanego produktu francuskiej firmy Chorus Systems. Inne firmy np. Sun, chcą oprzeć się całkowicie na własnym projekcie.

Skąd to zainteresowanie mikrojądrem?

Technika mikrojądra pozwala na większą przenośność i rozszerzalność systemu operacyjnego. Łatwiej jest również zapewnić większą niezawodność działania (prosta implementacja redundancji).Systemy operacyjne oparte o mikrojądro mogą być stosowane do zarządzania systemami rozproszonymi, co jest obecnie szczególnie istotne, gdyż jak uważają specjaliści, lata dziewięćdziesiąte będą dekadą sieci komputerowych i systemów rozproszonych.

Zapowiada się więc ciekawy wyścig.

W bezpośrednich zmaganiach peletonu producentów nie bierze udziału firma QNX Software Systems Ltd (QSSL) z Kanady - ona po prostu, mówiąc językiem kolarskim, dokonała ucieczki i jedzie na czele wyścigu z dużą (wieloletnią) przewagą. W 1982 roku firma QSSL wypuściła na rynek swój sztandarowy produkt: system operacyjny QNX, którego architektura już wówczas była oparta o mikrojądro. W chwili obecnej system QNX jest jednym z dwóch dostępnych na rynku systemów opartych o mikrojądro - tym drugim jest system CTOS firmy Unisys. Potwierdzenie tych informacji Czytelnik może znaleźć w artykule P. Varnhol'a: "Small Kernel Hits It Big" zamieszczonego w ramach specjalnego raportu "Advanced Operating Systems" w znanym czasopiśmie BYTE (January 1994). Tak więc, gdy inni producenci usiłują rozwiązać problemy podstawowe i wreszcie wypuścić na rynek system operacyjny oparty o mikrojądro, firma QSSL może spokojnie zająć się udoskonalaniem swego produktu.

Najnowsza wersja QNX 4.2 będąca efektem ponad dziesięcioletnich doświadczeń może uchodzić za rozwiązanie wzorcowe. Mikrojądro systemu QNX (rys.1) zajmuje zaledwie 8 kB (!), co pozwala na całkowite załadowanie go do wewnętrznej pamięci typu cache mikroprocesora INTEL 80486. Jakie to może mieć znaczenie dla szybkości działania, nie trzeba nikogo przekonywać, tym bardziej, że testy wyraźnie to potwierdzają.

Jednym z parametrów charakteryzujących system operacyjny jest szybkość przełączania procesów , lub inaczej, tzw. czas zmiany kontekstu (ang. context-switch time). Im ten czas jest krótszy, tym system może pracować bardziej efektywnie i szybciej reagować na zewnętrzne zdarzenia. Jest to szczególnie istotne w systemach czasu rzeczywistego. Na rys.2 przedstawione zostało porównanie czasów zmiany kontekstu różnych systemów operacyjnych. Pomiary zostały przeprowadzone za pomocą dostępnego w sieci Internet specjalnego testu bazującego na przełączaniu procesów za pomocą standardowych funkcji POSIX 1003.1: kill() i sigsuspend(). System QNX pracujący na mikroprocesorze Pentium/60MHz okazał się szybszy niż inni uznani konkurenci pracujący w znacznie szybszych procesorach (np. HP-RT w komputerze HP-747x/100MHz). Okazało się nawet, że mikroprocesor INTEL 80486DX/33MHz pracujący pod kontrolą systemu QNX oferuje lepszy czas zmiany kontekstu niż procesor ALPHA/150 MHz (komputer DEC 3000) zarządzany systemem operacyjnym OSF czy IBM RISC 6000/62MHz pod kontrolą systemu AIX 3.2.

Zmiana kontekstu dokonana za pomocą specjalnych funkcji czasu rzeczywistego systemu QNX trwa jeszcze krócej: zaledwie 4 mikrosekundy (!!) dla mikroprocesora PENTIUM/60MHz. Na rys.3 przedstawione zostały podstawowe parametry czasowe systemu QNX istotne w zastosowaniach czasu rzeczywistego (i nie tylko):

Tcs - czas zmiany kontekstu,

Til - opóźnienie reakcji na przerwanie,

Tsl - opóźnienie wznowienia nowego procesu po obsłudze przerwania.

Wysoka szybkość działania cechuje nie tylko podstawowe moduły systemu QNX takie jak mikrojądro czy zarządca procesów (ang. Process Manager). Najnowszy produkt typu GUI (ang. Graphical User Interface) został nie bez przyczyny nazwany Photon . Szybkość działania tego systemu graficznego zobrazowania jest rewelacyjna: animacja obiektów na ekranie realizowana jest szybciej niż odświeżanie obrazu monitora!. Aby nie zużywać niepotrzebnie mocy obliczeniowej procesora, Photon dostosowuje swoją szybkość działania do częstotliwości pracy monitora. Oprócz dużej szybkości działania drugą cechą systemu QNX jest małe zapotrzebowanie na pamięć operacyjną . System Photon zajmuje zaledwie 256 kB i może być używany we wbudowanych systemach sterowania (stąd druga nazwa: Embedded Window System) oferując jednocześnie bibliotekę funkcji graficznych zgodną z systemem X-Window.

Trzecią cechą systemu QNX jest przezroczystość sieci oraz możliwość realizacji przetwarzania rozproszonego . Opis rewelacyjnego rozwiązania sieci lokalnej nazwanego FLEET (ang. Fault-Tolerant, Load-Balancing, Efficient, Extensible, Transparent) przedstawiony został w Gazecie Targowej wydanej z okazji Komputer-Expo'93. Przezroczystość sieci w połączeniu ze specjalnymi możliwościami systemu Photon pozwala nawet na "przeciąganie" okien między różnymi fizycznymi ekranami należącymi do różnych fizycznych węzłów sieci (!!!).

Kluczem do takiej elastyczności działania systemu QNX jest jego architektura oparta o mikrojądro i technikę przesyłania komunikatów (ang. message-passing). System składa się z oddzielnych modułów podłączonych jakby do "magistrali komunikatów" (ang. message bus) i współpracujących ze sobą zgodnie z modelem klient-serwer. Rozszerzenie możliwości systemu polega po prostu na dołączeniu nowego modułu do magistrali komunikatów. Jak widać na rys.4, firma QSSL "wyposażyła" system QNX we wszystkie niezbędne moduły (TCP/IP, X-Windows, DOS, itp.), czyniąc z niego w pełni dojrzały system operacyjny. Oczywiście nie zaniedbano podstawowych elementów pozwalających na określenie : system czasu rzeczywistego (POSIX 1003.4, Data Acquisition Manager, Embedded Windowing, itp.).

Można się więc zgodzić z hasłem reklamowym firmy QNX Software Systems: We Work in Real Time - tak, oni pracują w Czasie Rzeczywistym !