Urządzenia I systemy automatyki I pomiarów spis treści


ZASTOSOWANIE SYSTEMÓW OPERACYJNYCH CZASU RZECZYWISTEGO



Pobieranie 135.3 Kb.
Strona2/5
Data29.04.2016
Rozmiar135.3 Kb.
1   2   3   4   5

3. ZASTOSOWANIE SYSTEMÓW OPERACYJNYCH CZASU RZECZYWISTEGO


System operacyjny jest programem integrującym sprzętowe i programowe zasoby komputera oraz tworzącym środowisko dla przygotowania i wykonania programów aplikacyjnych. System operacyjny czasu rzeczywistego (RTOS – Real Time Operating System) jest to taki system, który gwarantuje wykonanie zadania w nieprzekraczalnym czasie. System operacyjny czasu rzeczywistego ma ściśle zdefiniowane, stałe ograniczenia czasowe. Przetwarzanie danych musi zakończyć się przed upływem określonego czasu – w przeciwnym razie system nie spełnia wymagań. Na przykład opóźnienie dotarcia do robota rozkazu, aby wstrzymał ruch ramienia, może spowodować uszkodzenie obrabianego wyrobu, np. zgniecenie montowanej karoserii samochodu. Ścisłe ograniczenia czasowe nie występują natomiast w komputerach obliczeniowych oraz przeznaczonych dla celów biurowych i dla internetowych hobbystów.

System operacyjny czasu rzeczywistego, zastosowany w komputerowym urządzeniu lub systemie przemysłowym musi spełniać szereg wymagań:



  • zapewniać dużą niezawodność pracy, odporność ma awarię sprzętu i oprogramowania,

  • zajmować niewielką przestrzeń w pamięci RAM i na dysku,

  • posiadać architekturę modularną, ułatwiającą konfigurowanie sprzętu i oprogramowania,

  • umożliwiać komunikację z innymi blokami systemu, takimi jak urządzenia wykonawcze, które często są oddalone przestrzennie i wyposażone we własne systemy operacyjne i oprogramowanie,

  • umożliwiać pracę sieciową.

Ograniczenia czasowe wpływają na ogół na dobór środków, wykorzystywanych przez systemy czasu rzeczywistego. W systemach tych w trakcie wykonywania zadania program oraz dane są z reguły przechowywane w pamięci o krótkim czasie dostępu.

Do niedawna systemy operacyjne były stosowane głównie w komputerach, między innymi komputerach osobistych, oraz systemach informatycznych i systemach sterowania. Takimi bardzo rozpowszechnionymi systemami operacyjnymi są systemy DOS i Windows 95. Nie są to systemy czasu rzeczywistego, aczkolwiek ze względu na ich powszechność i przystosowanie do bogatego oprogramowania użytkowego są wykorzystywane przy mniej odpowiedzialnych zadaniach, np. rejestrowania procesów fizycznych takich jak przemiany fazowe podczas nagrzewania próbki materiału, w celu późniejszej analizy tego procesu.

W ostatnich latach kładzie się silny nacisk także na rozwój systemów operacyjnych dla mikrokontrolerów jednoukładowych. Mikrokontrolery można określić jako układy mikroprocesorowe zorientowane na sterowanie i w związku z tym wyposażone w liczniki, interfejsy, przetworniki itp. Stosowanie systemów operacyjnych w mikrokontrolerach jest spowodowane między innymi rozwojem mocy obliczeniowej mikrokontrolerów. Innym powodem jest dążenie do szybkiego tworzenia aplikacji. Dzięki systemom operacyjnym programista jest zwolniony z części pracy. Łatwiej też o koordynację pracy kilku programistów, pracującym nad tą samą aplikacją.

Oprogramowanie większości spotykanych na rynku sterowników PLC o bardziej rozbudowanych możliwościach funkcyjnych zostało zbudowane na bazie systemów operacyjnych. W aplikacjach na mikrokontrolery 8-bitowe, np. z rodziny 8051, celowość stosowania systemu operacyjnego czasu rzeczywistego nie jest w pełni uzasadniona, głównie ze względu na wielkość aplikacji, ograniczonych zasobami mikrokontrolera oraz wysoka ceną tych systemów. Dla aplikacji dla mikrokontrolerów 16-bitowych i 32-bitowych stosowanie systemów operacyjnych czasu rzeczywistego jest natomiast w pełni uzasadnione.

Przyjmuje się kilka kryteriów porównawczych dla systemów czasu rzeczywistego. Są to głównie:


  • czas przełączania zadania (Context or Task Swich Time),

  • czas utajnienia przerwania (Interrupt Latency), to znaczy czas po którym rozpoczyna się realizacja żądanego zadania,

Niektóre firmy dostarczają dla różnych mikrokontrolerów RTOS o tej samej nazwie. Nie są one fizycznie identyczne, lecz dostarczają takich samych usług na różnych platformach. Dzięki temu aplikacje napisane w C lub C++ można przenosić pomiędzy różnymi platformami bez dużego nakładu pracy. Wymagana jest jedynie rekompilacja programów za pomocą kompilatora dla danej platformy. Dzieje się temu, że coraz większy nacisk kładzie się na standaryzacje mechanizmów i usług, świadczonych przez systemu operacyjne. Dzięki komunikacji z użytkownikiem zgodnie ze standardem POSIX możliwe jest nawet przenoszenie aplikacji pomiędzy systemami RTOS różnych firm po prostych modyfikacjach.

Przykładem systemu operacyjnego, który może być stosowany zarówno w mikrokontrolerze 32-bitowym MPC860 jak i w sieci złożonej przez komputery klasy PC jest system operacyjny czasu rzeczywistego QNX.



System QNX jest systemem operacyjnym czasu rzeczywistego, przeznaczonym głównie do pracy w sieci, której węzłami są komputery PC. Należy do rodziny UNIX oraz spełnia wymagania standardu POSIX. Umożliwia on tworzenie programów użytkowych, złożonych z wielu współbieżnych procesów. Składa się on z:

  • Jądra, które pełni rolę egzekutora. Jądra systemów operacyjnych czasu rzeczywistego są z reguły niewielkie, zaś zakres zadań ograniczony. Zadania jądra systemu QNX obejmują:

  • szeregowanie procesów,

  • realizacja komunikacji między procesami,

  • przyjmowanie zgłoszeń przerwań.

  • Menadżerów systemowych, wykonujących procesy systemowe. Składają się one z :

  • menadżera procesów (Process Manager), który nadzoruje tworzenie i usuwanie procesów, rejestrację nazw procesów i odmierzanie czasu,

  • menadżera plików (Filesystem Manager), który organizuje system plików w pamięciach dyskowych, taśmowych i na dyskach optycznych,

  • menadżera urządzeń (Device Manager), który formatuje strumienie danych pomiędzy procesami i urządzeniami zewnętrznymi,

  • sterowników urządzeń (Device Drivers), które inicjują i kończą działanie urządzeń zewnętrznych oraz obsługują zgłaszane przerwania,

  • menadżera sieci (Network Manager), który obsługuje łącza sieciowe oraz komunikację węzłów sieci.

Wszystkie procesy, zarówno użytkowe jaki i systemowe, komunikują się za pomocą funkcji, realizowanych przez jądro systemu.


Procesy systemowe pełnią rolę serwerów, obsługujących żądania innych procesów (architektura client-server). Odwołania procesów, kierowane do serwerów mają postać wiadomości, przenoszących żądania wykonania pewnych usług, np. utworzenie nowego procesu, odczytania lub zapisania pliku dyskowego.
W systemie QNX procesy mogą być wykonywane w różnych węzłach lub korzystać z zasobów innych węzłów.
Sesja użytkownika

Zgłoszenie użytkownika do pracy w systemie login otwiera nową sesję i uruchamia interpreter komend systemowych sh (shell). Proces interpretera komend jest procesem wiodącym sesji, a konsola z której został on uruchomiony jest terminalem sesji. Zakończenie procesu wiodącego lub awaria terminala sesji zawiadomienie i najczęściej zakończenie wszystkich procesów, uruchomionych w czasie sesji (sygnał SIGHUP).


Procesy wykonywane podczas sesji są powiązane hierarchiczną zależnością, wynikającą z kolejności ich tworzenia. Są to:

  • proces macierzysty,

  • procesy potomne.

między którymi są relacje pokrewieństwa. Daje to procesowi macierzystemu sprawdzanie stanu procesów potomnych i na oczekiwanie na zakończenie procesów potomnych.

Wchodzący w skład jądra egzekutor szereguje procesy Gotowe na 32 poziomach priorytetu (0..31). Procesy o wyższym priorytecie wywłaszczają procesy o priorytecie niższym.

Procesy na tym samym poziomie priorytetu są szeregowane zgodnie z jednym następujących algorytmów:


  • Algorytm FIFO, który wybiera do wykonania proces najdłużej oczekujący. Proces te wykonuje do zakończenia lub zawieszenia.

  • Algorytm karuzelowy, który wybiera procesy kolejno i wykonuje je przez określony odcinek czasu slice.

  • Algorytm adaptacyjny, który wybiera procesy kolejno, podobnie jak w algorytmie karuzelowym. Po wyczerpaniu przydzielonego odcinka czasu system wywłaszcza proces, obniżając jego priorytet, Jeżeli wykonanie procesu o obniżonym priorytecie nie zostaje podjęte w ciągu 2s, jego priorytet podnosi się o 1, lecz nie wyżej od pierwotnego poziomu. Proces zawieszony odzyskuje swój pierwotny priorytet.






1   2   3   4   5


©absta.pl 2019
wyślij wiadomość

    Strona główna