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

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

 

ZASTOSOWANIE SYSTEMU OPERACYJNEGO QNX W WERSJI 4.2 DO TWORZENIA ROZPROSZONYCH SYMULATORÓW SZKOLENIOWYCH.

Opracował: mgr inż. Piotr Stanisław MICHAŁOWSKI

INSTYTUT TECHNICZNY WOJSK LOTNICZYCH
Warszawa

Celem pracy jest przedstawienie wymagań stawianych systemowi operacyjnemu używanemu do konstrukcji rozproszonego symulatora szkoleniowego, oraz przedstawienie metody jego realizacji za pomocą systemu operacyjnego QNX.. System został omówiony na podstawie symulatora dla systemu obrony powietrznej. W pracy przedstawione są mechanizmy systemu QNX, które wspomagają tworzenie takiego systemu. Pokazana została przykładowa struktura pojedynczego węzła systemu i podział na współbieżne zadania przykładowego modułu symulacji radaru.

1. Dlaczego rozproszony szkoleniowy system symulacyjny należy do klasy systemów czasu rzeczywistego i co w tym przypadku oznacza pojęcie czasu rzeczywistego?

Systemem czasu rzeczywistego nazywamy taki system komputerowy, którego działanie odbywa się równolegle z przebiegiem procesu zewnętrznego. Głównymi funkcjami takich systemów są: kontrola, sterowanie i terminowa reakcja na zachodzące w procesie zdarzenia.

W systemach symulacyjnych pojęcie czasu rzeczywistego związane jest z krokiem symulacji. Związek ten zostanie omówiony tu na przykładzie symulacyjnego systemu szkoleniowego dla systemu obrony powietrznej. Symulator ten jest klasycznym systemem czasu rzeczywistego, ponieważ musi on współdziałać z elementami realnego systemu i szybkość symulacji musi być zgodna z szybkością przebiegu procesów fizycznych. Współdziałanie symulatora z systemem rzeczywistym polega na wymianie danych i sterowania. Każdy symulowany proces fizyczny posiadający charakter ciągły (np. ruch samolotu w przestrzeni powietrznej) musi być symulowany ze ściśle określonym krokiem czasowym, którego wartość jest zdefiniowana w założeniach systemu przez jego projektantów. Wielkość kroku czasowego musi być kompromisem pomiędzy dokładnością odwzorowania pracy danego obiektu fizycznego a złożonością obliczeniową (kosztami) jego symulacji.

Symulowane procesy fizyczne w omawianym systemie możemy podzielić ze względu na szybkość ich przebiegu na trzy rodzaje:

  • procesy szybkozmienne (np. sygnały radarowe), dla których krok symulacji jest rzędu części mikrosekundy i dlatego nieopłacalne jest ich obrabianie bezpośrednio w komputerze, symulacja tego typu procesów odbywa się w specjalizowanych urządzeniach zewnętrznych;
  • procesy średniozmienne (np. lot samolotu), gdzie krok symulacji jest rzędu sekundy i symulacja realizowana jest za pomocą odpowiedniego programu komputerowego;
  • procesy wolnozmienne (np. ruch chmur), których krok symulacji jest rzędu kilku minut i symulacja jest realizowana w komputerze.

Przedstawiony powyżej podział ilustruje sposób, w jaki szybkość zachodzenia zdarzeń w procesie fizycznym determinuje metodę i miejsce jego symulacji. Odwzorowanie rzeczywistej szybkości przebiegu zdarzeń jest szczególnie ważne w przypadku systemów szkoleniowych, albowiem celem treningu jest wyrobienie prawidłowych reakcji u osób szkolonych w warunkach rzeczywistego tempa zmian procesów zewnętrznych sprzężonych z obiektami systemu rzeczywistego.

2. Jakimi cechami powinien charakteryzować się system operacyjny, aby mógł zostać wykorzystany do stworzenia systemu symulatora?

Podstawową cechą systemu operacyjnego wymaganą dla tego typu zastosowań jest wielozadaniowość. Pozwala ona nie tylko na optymalne wykorzystanie zasobów komputera, ale także pozwala na pewne odwzorowanie struktury systemu rzeczywistego w logiczną strukturę systemu informatycznego. Tworzenie systemu symulatora polega na wydzieleniu niezależnych od siebie części (zadań), które mogą lub powinny być realizowane współbieżnie. Każde zadanie zajmuje się symulacją pojedynczego procesu fizycznego. Komunikacja pomiędzy zadaniami jest ściśle określona i realizowana przy pomocy sprawnych mechanizmów zawartych w systemie. System operacyjny musi posiadać sprawne mechanizmy zarządzania procesami współbieżnymi to znaczy: możliwość nadawania zadaniom priorytetów, możliwość wywłaszczania zadań o niższym priorytecie przez zadania o priorytecie wyższym, kolejkowanie procesów, krótki czas przełączania zadań.

Jeśli oprócz powyżej opisanych mechanizmów zarządzania zadaniami system posiada:

  • możliwość bardzo szybkiej reakcji na asynchroniczne zdarzenia wyjątkowe,
  • obsługę synchronicznych zdarzeń programowanych,
  • asynchroniczną sterowaną przerwaniami obsługę operacji wejścia/wyjścia,
  • krótki czas obsługi przerwań,
  • możliwość sprawnego i dokładnego pomiaru czasu;

to system ten można zaliczyć do klasy systemów spełniających wymagania czasu rzeczywistego. Pojęcia związane z czasem rzeczywistym w systemie symulatora zostały przedstawione powyżej.

Inną bardzo ważną cechą, którą powinien posiadać system operacyjny jest jego wielodostępność. Związana jest ona z tym, iż system szkoleniowy posiada wielu użytkowników. W trakcie swojej pracy symulator szkoleniowy musi być użytkowany jednocześnie przez osoby szkolone, szkolące i nadzorujące przebieg ćwiczenia. Zasoby symulatora muszą być również dostępne dla zadań współdziałających z systemem fizycznym. Wielodostępność systemu operacyjnego musi zapewnić bezkolizyjną współpracę wyżej wymienionych osób. System musi czuwać nad zachowaniem reguł dostępu poszczególnych użytkowników do zasobów (programów, urządzeń i danych).

Z wielodostępem związane jest rozproszenie systemu polegające na realizacji jego funkcji na różnych komputerach połączonych ze sobą za pomocą sieci. Z punktu widzenia użytkownika nie powinno być istotne to, że pracuje on jednocześnie na wielu komputerach. Powinien widzieć on jeden duży, spójny system informatyczny. System taki powinien posiadać możliwość szybkiego i sprawnego przekazywania informacji. Realizacja rozproszonego symulatora pozwala na dołączenie do systemu komputerowego wielu urządzeń wejścia/wyjścia, które zapewniają sprawną wymianę danych i sterowania pomiędzy komputerami a symulowanym światem zewnętrznym. Rozproszony system operacyjny powinien posiadać sprawne mechanizmy obsługi sieci komputerowych (lokalnych i globalnych), które pozwalają na integrację terytorialnie oddalonych od siebie elementów symulatora.

Bardzo pożądaną cecha systemu operacyjnego jest jego otwartość. Pozwala ona na potencjalną współpracę symulatora z innymi systemami, które już istnieją lub powstaną w przyszłości.

3. Struktura systemu operacyjnego QNX i mechanizmy czasu rzeczywistego w nim zawarte.

System QNX zbudowany jest z trzech rodzajów procesów:

  • jądra,
  • procesów systemowych,
  • procesów użytkowych.

Jądro systemu posiada bardzo zredukowany zestaw funkcji i zajmuje się ono jedynie szeregowaniem procesów w systemie, zapewnieniem komunikacji pomiędzy poszczególnymi zadaniami, przejmowaniem przerwań systemu i kierowaniem ich do odpowiednich procesów. Zredukowanie funkcji jądra powoduje znaczne zwiększenie sprawności jego działania.

Oprócz wspomnianego jądra w skład systemu QNX wchodzą także procesy systemowe:

  • administrator procesów współbieżnych, zajmuje się on powoływaniem i usuwaniem zadań oraz inicjowaniem działania czasomierzy;
  • administrator sieci, którego zadaniem jest komunikacja pomiędzy węzłami i obsługa łączy;
  • administrator systemu plików, zajmuje się on obsługą zbiorów w pamięci masowej;
  • administrator urządzeń, który przygotowuje strumienie danych wejściowych i wyjściowych dla urządzeń zewnętrznych;
  • sterowniki urządzeń, które inicjują i kończą działania urządzeń, oraz przechwytują i obsługują zgłaszane przerwania.

Poszczególne zadania użytkowe i systemowe komunikują się ze sobą wyłącznie za pomocą określonych w systemie funkcji standardowych, które są zaimplementowane w jądrze. Odwołania do zadań systemowych mają formę wiadomości zawierających żądania wykonanie określonych funkcji. W systemie QNX istnieje możliwość nawiązania komunikacji pomiędzy zadaniami znajdującymi się na dowolnych węzłach sieci. Dzięki temu każde zadanie posiada dostęp do wszystkich elementów sieci. Jedynie zadania sterujące pracą urządzeń muszą być umieszczane na tym samym węźle sieci, ponieważ komunikują się z nimi za pomocą lokalnych kolejek wiadomości.

System QNX posiada zaimplementowany mechanizm priorytetów, za pomocą którego można określać pilność wykonywania procesów współbieżnych. Każdy proces w systemie posiada dynamicznie nadawany priorytet w zakresie 0 - 31 dla zadań superużytkownika lub 0 - 19 dla pozostałych.

W systemie QNX zostały wbudowane trzy algorytmy szeregowania zadań o tym samym priorytecie:

  • algorytm FIFO, wybiera on zadanie czekające w najdłużej w stanie aktywności, a następnie wykonuje je do zawieszenia lub zakończenia;
  • algorytm karuzelowy, jest on podobny do poprzedniego, lecz zadanie wykonywane jest przez określony kwant czasu a następnie wybierane jest kolejne z zadań aktywnych;
  • algorytm adaptacyjny, wykonywanie zadań odbywa się z podziałem czasowym podobnie jak w przypadku algorytmu karuzelowego z tym, iż zadania po każdym przekroczonym kwancie czasowym mają obniżany o 1 priorytet, który jest następnie podnoszony o jeden (nigdy powyżej priorytetu początkowego) po każdej sekundzie oczekiwania na wykonanie.
  • Algorytm szeregowania może być przyporządkowywany do zadania w sposób dynamiczny.

Najważniejszymi mechanizmami systemu QNX są mechanizmy komunikacji między zadaniami współbieżnymi. W systemie QNX wersja 4.2 występują następujące mechanizmy wymiany informacji pomiędzy procesami:

  • spotkania, są one realizowane poprzez synchroniczną wymianę pary informacji (schemat wiadomość-odpowiedź), która jest realizowana za pomocą sekwencji wywołań trzech funkcji systemowych Send()-Receive()-Reply();
  • obiektów proxy, metoda ta polega na przywiązaniu tego obiektu do zadania, które staje się jego właścicielem i określenia stałej wiadomości zawartej w buforze proxy, pobudzenie proxy przez dowolny proces powoduje wysłanie zbuforowanej informacji do procesu właściciela (komunikacja z użyciem proxy nie powoduje zawieszenia procesu wywołującego);
  • sygnały, jest to podstawowy środek informowania zadań o błędach i anormalnych stanach powstających podczas obliczeń, niektóre z nich mogą być wysyłane jedynie przez procesy systemowe QNX;
  • potoki, jednokierunkowe bufory komunikacyjne magazynujące i przekazujące informacje między zadaniami;
  • bloki pamięci wspólnej (mechanizm dostępny od wersji 4.2).

System QNX posiada rozbudowane możliwości sieciowe, implementuje on warstwę fizyczną i warstwę łącza według modelu ISO. Warstwa fizyczna oparta jest na standardach ARCNET, ETHERNET lub Token Ring. Możliwe jest używanie wielu standardów w jednym systemie komputerowym. Łącza jednego rodzaju mogą być dublowane. Wszystkie usługi sieciowe realizowane są z protokołem sieciowym, który gwarantuje poprawność przesyłania danych. Współpraca dwóch zadań znajdujących się na różnych węzłach rozpoczyna się od powołania kanału wirtualnego, który znajduje się pod stałym nadzorem systemu operacyjnego. Kontrola systemu QNX polega na:

  • sprawdzaniu poprawności działania sprzętu komunikacyjnego za pomocą wysyłanych komunikatów diagnostycznych;
  • sprawdzaniu poprawności przesyłania informacji i inicjowania retransmisji w przypadku błędu.

System QNX posiada mechanizmy sprawnej obsługi czasomierzy, które dostarczają procesom dokładny czas lub pełnią rolę budzików. Czasomierze mogą wstrzymywać wykonywanie zadania lub przesyłać do niego sygnał albo proxy.

System zapewnia sprawną obsługę przerwań sprzętowych, zadanie obsługujące przerwanie jest o nim powiadamiane za pomocą proxy.

Powyżej przedstawione cechy systemu operacyjnego QNX upraszczają proces konstruowania i implementacji systemów czasu rzeczywistego.

4. Tworzenie symulatora szkoleniowego dla systemu obrony powietrznej z wykorzystaniem mechanizmów systemu operacyjnego QNX.

Struktura symulatora jest terytorialnie rozproszona w kształcie drzewa. Jest ona pewnym odwzorowaniem systemu fizycznego na system informatyczny. Komunikacja pomiędzy poszczególnymi węzłami drzewa odbywa się za pomocą zwyczajnych linii telefonicznych z użyciem modemów. Współpraca pomiędzy węzłami wymaga czasowej synchronizacji, która realizowana jest względem niemieckiego radiowego zegara atomowego DCF 77 za pomocą specjalnych urządzeń zainstalowanych na każdym węźle drzewa.

Połączenia pomiędzy modułami oznaczają kanały przepływu danych, zostały one zrealizowane za pomocą podwójnej lokalnej sieci komputerowej opartej na standardzie Ethernet. System operacyjny QNX zawiera wbudowane mechanizmy obsługi sieci komputerowych. Z punktu widzenia użytkownika systemu nie jest istotne, czy korzystamy z sieci lokalnej czy globalnej. Mechanizmy sieciowe są przez system ukryte i odwołujemy się do nich za pomocą funkcji standardowych. Tego typu podejście do sieci jest możliwe, ponieważ system QNX zapewnia obsługę pierwszej i drugiej warstwy sieciowego modelu ISO.

Przy tworzeniu symulatora bardzo często wykorzystywana jest wielozadaniowość systemu QNX. Współbieżne procesy w pojedynczym module możemy podzielić na pięć podstawowych grup:

  • właściwe procesy wykonawcze, realizują one podstawowe funkcje danego modułu symulatora;
  • procesy zarządzania i kontroli, ich zadaniem jest nadzór nad pracą i synchronizacją procesów wykonawczych ;
  • procesy komunikacji sieciowej, których rola polega na zapewnieniu sprawnej kontroli przepływu danych po sieciach lokalnych i rozległych;
  • procesy obsługi urządzeń zewnętrznych, zapewniają one współpracę ze sprzętowymi elementami składowymi symulatora (np. z generatorem sygnałów radiolokacyjnych);
  • procesy zobrazowania informacji i komunikacji z użytkownikami symulatora.

W przypadku modułu symulującego sytuację radiolokacyjną procesami wykonawczymi są zadania SYMULATOR RADARU NR n. Ich rola polega na odbieraniu komend sterujących przebiegiem symulacji (pochodzą one z zewnętrznego modułu sterującego) od procesu STEROWANIE SYMULACJĄ, aktualnych położeń obiektów powietrznych (generowanych w zewnętrznym module symulacji obiektów powietrznych) od procesu ODCZYT DANYCH O OBIEKTACH POWIETRZNYCH, oraz z procesu STEROWNIK GSR informacji i sygnałów z urządzenia zewnętrznego GENERATORA SYGNAŁÓW RADIOLOKACYJNYCH. Dane te są następnie obrabiane za pomocą specjalnych algorytmów symulacji i przekształcane do postaci zrozumiałej dla generatora.

Zadanie STEROWANIE SYMULACJĄ pełni rolę kontrolującą nad współdziałaniem procesów wykonawczych i zadania ZOBRAZOWANIA I OBSŁUGI UŻYTKOWNIKA.

Proces STEROWNIK GSR zajmuje się przekazywaniem informacji pomiędzy systemem symulatora a urządzeniem generatora.

GENERATOR SYGNAŁÓW RADIOLOKACYJNYCH jest specjalizowanym urządzeniem obliczeniowym, którego rola polega na symulowaniu procesów szybkozmiennych.

Zadaniami zapewniającymi współpracę systemu z siecią lokalną są procesy ODCZYT DANYCH O OBIEKTACH POWIETRZNYCH (z modułu symulującego obiekty powietrze) i ODBIÓR KOMEND STERUJĄCYCH (z modułu sterującego symulacją). Ich rola polega na zrównolegleniu obliczeń i przesyłania informacji po sieci lokalnej.

Wymiana informacji pomiędzy procesami wewnątrz modułu odbywa się za pomocą obszarów pamięci wspólnej. Procesy posiadające dostęp do danego obszaru mogą zapisywać i odczytywać z niego odpowiednie informacje. Proces, który dokonał zapisu informacji do pamięci wspólnej, informuje pozostałe procesy używające tego obszaru za pomocą wysłania proxy. Odpowiednie nadawanie procesom priorytetów i algorytmu szeregowania FIFO pozwalają na wzajemne wykluczanie się zadań w trakcie dostępu do pamięci dzielonej. Metoda synchronizacji polega na tym, iż procesowi na czas używania pamięci wspólnej nadajemy priorytet wyższy niż pozostałym użytkownikom tego obszaru, a jego algorytm kolejkowania zmieniamy na FIFO. Postępowanie to zapewnia wzajemnie wykluczający się dostęp do pamięci dzielonej. Wymiana danych za pomocą pamięci dzielonej pozwala na zaoszczędzenie miejsca w pamięci komputera (nie ma buforów komunikacyjnych) i zmniejszona jest też liczba przesłań danych. Klasyczny mechanizm spotkań wykorzystywany jest jedynie do komunikacji sieciowej. Informacje o sytuacjach wyjątkowych przesyłane są w systemie za pomocą sygnałów.

Krok czasowy realizowany jest za pomocą czasomierzy wbudowanych w system QNX, rozdzielczość zegara wynosi 500 mikrosekund.

5. Podsumowanie.

Celem pracy było przedstawienie mechanizmów zawartych w systemie operacyjnym QNX, które są związane z tworzeniem szkoleniowych symulacyjnych systemów czasu rzeczywistego dla system obrony powietrznej. Opisane zostały wymagania, jakie powinien spełniać system operacyjny, aby można go było użyć do konstruowania tego typu. systemu. W końcowej części pracy przedstawiony został związek pomiędzy mechanizmami systemu QNX, metodą tworzenia symulatora i jego strukturą zadaniową. Pokazana została struktura pojedynczego węzła symulatora i modułu symulacji radaru.

6. Literatura:

  1. BARCIKOWSKI W. PIELA J. : Analiza porównawcza systemów czasu rzeczywistego pod kątem wykorzystania w systemach szkolenia WLiOP. Opracowanie ITWL 1992.
  2. DODGE E. : QNX-Big picture. QNX News 4TH QUARTER 1993.
  3. KOLNICK F. : The QNX Operating System - Programming with Messages in a Distributed Environment. Basic Computer Systems Inc. 1989.
  4. SACHA K. : Systemy czasu rzeczywistego. Oficyna Wydawnicza Politechniki Warszawskiej 1993.
  5. QNX 4.1 Operating System - Utilities Reference. Quantum Software Systems 1992.
  6. Shared memory in QNX Version 4.20. QNX Software Systems 1993.