Funkcje systemów operacyjnych czasu rzeczywistego

Podobne dokumenty
Funkcje systemów operacyjnych czasu rzeczywistego

Systemy czasu rzeczywistego

Wieloprogramowy system komputerowy

Wieloprogramowy system komputerowy

Ograniczenia czasowe RTS. Systemy czasu rzeczywistego. Kiedy RTS jest naprawd e potrzebny? Czy RTS po prostu musi być bardzo szybki?

Prezentacja systemu RTLinux

Systemy czasu rzeczywistego

Wykorzystanie pami eci operacyjnej przez system

by lo pozostawione procesom lub programom. W nowoczesnych i wi ekszych systemach

Wieloprogramowy system komputerowy

4. Procesy pojęcia podstawowe

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Szeregowanie w systemach czasu rzeczywistego

4. Procesy pojęcia podstawowe

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Planowanie procesów. rzeczywistego cz esto mówi si e o planowaniu zadań nie rozróżniajac, pami eci programu). Planowanie zadań 1

Operacje na plikach. Organizacja systemu plików. Typy plików. Struktury plików. Pliki indeksowane. Struktura wewn etrzna

Podstawowe zagadnienia

LEKCJA TEMAT: Zasada działania komputera.

Dział Dopuszczający Dostateczny Dobry Bardzo dobry Celujący

Budowa systemów komputerowych

Watki. kod programu za ladowany do pami eci operacyjnej, wraz ze środowiskiem (zbiorem

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Działanie systemu operacyjnego

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Urządzenia wejścia-wyjścia

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Funkcje systemu Unix

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

Podstawy informatyki. Izabela Szczęch. Politechnika Poznańska

Systemy operacyjne III

Systemy wbudowane - wykład 9. Systemy czasu rzeczywistego Notes. Systemy czasu rzeczywistego Notes. Systemy czasu rzeczywistego Notes.

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Architektura komputerów. Układy wejścia-wyjścia komputera

Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

Systemy Operacyjne - Operacje na plikach

Metody obsługi zdarzeń

Planowanie przydziału procesora

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/ / 22

Działanie systemu operacyjnego

Jadro monolityczne vs. mikrojadro. Mikrojadro. Olga Kowalczuk. 9 grudnia 2008

Uniwersalny Konwerter Protokołów

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego

Systemy Czasu Rzeczywistego (SCR)

Zarządzanie procesami i wątkami

Wprowadzenie do systemów operacyjnych

Planowanie przydziału procesora

Jądro systemu operacyjnego

Jadro Linux 2.6. a zadania czasu rzeczywistego. Artur Lewandowski. Jądro Linux 2.6 p.1/14

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

Działanie systemu operacyjnego

Przerwania, polling, timery - wykład 9

Architektura komputerów

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Architektura i administracja systemów operacyjnych

61 Topologie wirtualne

Struktura systemów komputerowych

Wirtualne sieci prywatne

Planowanie przydziału procesora

projekt akademicki w Institute for Mining and Technology of New Mexico. Autor Victor Yodaiken FSMLabs komercyjna odmiana RTLinuxPro

Architektury systemów czasu rzeczywistego RTOS. Wykonał: Bartłomiej Bugański

Mikroprocesor Operacje wejścia / wyjścia

Struktury systemów operacyjnych

4. Procesy pojęcia podstawowe

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Ogólna koncepcja planowania. Planowanie przydziału procesora. Komponenty jądra w planowaniu. Tryb decyzji. Podejmowanie decyzji o wywłaszczeniu

Systemy operacyjne III

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

System operacyjny MACH

PRZERWANIA. P1 - Procedura obslugi przerwania. Obsługa zdarzenia Z1 poprzez procedurę obsługi przerwania P1

Zarządzanie pamięcią operacyjną

Maszyny wirtualne. System zainstalowany i dzia lajacy w ramach maszyny wirtualnej nazywamy systemem gościa.

System komputerowy. System komputerowy

1.1 Definicja procesu

projektowanie systemu

Podstawy Informatyki Układ przerwań

Logiczny model komputera i działanie procesora. Część 1.

Stronicowanie w systemie pamięci wirtualnej

Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013. Forma studiów: Stacjonarne Kod kierunku: 11.

4.2 Sposób korzystania z l acza

Podstawy techniki cyfrowej Układy wejścia-wyjścia. mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Planowanie procesów. rzeczywistego cz esto mówi si e o planowaniu zadań nie rozróżniajac, pami eci programu). Planowanie zadań 1

Monitor maszyn wirtualnych

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Szeregowanie w systemach czasu rzeczywistego

Systemy operacyjne III

Organizacja systemu plików

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci

Transkrypt:

Funkcje systemów operacyjnych czasu rzeczywistego Witold Paluszyński Katedra Cybernetyki i Robotyki Wydzia l Elektroniki, Politechnika Wroc lawska http://www.kcir.pwr.edu.pl/~witold/ 2011 2017 Ten utwór jest dostepny na licencji Creative Commons Uznanie autorstwa- Na tych samych warunkach 3.0 Unported Utwór udostepniany na licencji Creative Commons: uznanie autorstwa, na tych samych warunkach. Udziela sie zezwolenia do kopiowania, rozpowszechniania i/lub modyfikacji treści utworu zgodnie z zasadami w/w licencji opublikowanej przez Creative Commons. Licencja wymaga podania oryginalnego autora utworu, a dystrybucja materia lów pochodnych może odbywać sie tylko na tych samych warunkach (nie można zastrzec, w jakikolwiek sposób ograniczyć, ani rozszerzyć praw do nich).

Systemy operacyjne czasu rzeczywistego System operacyjny czasu rzeczywistego (RTOS) s luży do implementacji systemów czasu rzeczywistego. Taki system musi nie tylko dostarczać mechanizmów i us lug dla wykonywania, planowania, i zarzadzania zasobami aplikacji, ale powinien również sam soba zarzadzać w sposób oszczedny, przewidywalny, i niezawodny. System operacyjny czasu rzeczywistego powinien być modularny i rozszerzalny. W przypadku systemów wbudowanych jadro systemu musi być ma le, ze wzgledu na lokalizacje w ROM, i czesto ograniczona wielkość pamieci RAM. W przypadku systemów, dla których krytycznym aspektem jest bezpieczeństwo, niekiedy wymagana jest certyfikacja ca lego systemu ( lacznie z aplikacja), jak również samego systemu operacyjnego. Podstawowymi zaletami jest prostota i oszczedność. Dlatego RTOS może mieć mikrojadro dostarczajace tylko podstawowych us lug planowania, synchronizacji, i obs lugi przerwań. Gdy niektóre aplikacje wymagaja wiekszego spektrum us lug systemowych (systemu plików, systemu wejścia/wyjścia, dostepu do sieci, itp.), RTOS zwykle dostarcza tych us lug w postaci modu lów do laczonych do jadra. Praca tych modu lów również musi podlegać monitorowaniu. Systemy operacyjne czasu rzeczywistego 3

Ze wzgledu na konieczność zaprojektowania ścis lego budżetu czasu i zasobów ca lego systemu, aplikacja jest czesto budowana jako ca lość, i system ma charakter zamkniety. Możliwa jest również architektura otwarta, gdzie silne (hard) aplikacje czasu rzeczywistego wspó listniej a ze s labymi (soft) aplikacjami czasu rzeczywistego, jak również z aplikacjami nie wymagajacymi czasu rzeczywistego. Systemy operacyjne czasu rzeczywistego 4

Jadra, mikrojadra, i nanojadra Jadro (kernel) systemu RTOS zawiera modu ly realizujace co najmniej nastepuj ace trzy funkcje: planowanie (scheduling), dyspozycja (dispatching), i us lugi komunikacji i synchronizacji. Planista (scheduler) realizuje algorytm decydujacy które zadanie ma być uruchomione w nastepnej kolejności w systemie wielozadaniowym. Dyspozytor (dispatcher), zwany również ekspedytorem administruje strukturami niezbednymi do uruchamiania zadań. Mechanizmy komunikacji i synchronizacji obejmuja: semafory, monitory, kolejki komunikatów, i inne. Mikrojadrem nazywa sie jadro o funkcjonalności ograniczonej do modu lu planowania i dyspozytora. Inaczej mówiac, mikrojadro jest w stanie realizować wielozadaniowość na poziomie procesów. Nanojadro obs luguje jedynie zarzadzanie watkami. Jadra systemów czasu rzeczywistego 5

Egzekutor RT i system operacyjny Użytkownicy System operacyjny Interpreter poleceń, konta użytkowników Egzekutor RT Jadro Mikrojadro Nanojadro Obs luga dysków i systemów plików Komunikacja i synchronizacja procesów Planowanie zadań Zarzadzanie watkami Sprzet Typowe komercyjne systemy RTOS sa egzekutorami RT (realtime executive). Jadra systemów czasu rzeczywistego 6

Pseudojadra Wielozadaniowość czasu rzeczywistego może być osiagnieta bez przerwań, a nawet bez wsparcia systemu operacyjnego. Podejście takie ma wiele zalet, np. otrzymane systemy można latwiej analizować. Architekture systemu niekorzystajacego z us lug systemu operacyjnego, realizujacego samodzielnie funkcje wielozadaniowości, nazywa sie architektura pseudojadra. petla odpytywania (polling) synchronizowana petla odpytywania cykliczny egzekutor maszyna stanów koprocesy Jadra systemów czasu rzeczywistego 7

Jadra systemów czasu rzeczywistego 8

Funkcje (mikro)jadra System operacyjny czasu rzeczywistego typowo sk lada sie z mikrojadra zapewniajacego podstawowe us lugi systemowe. Mikrojadro wyw laszcza wykonujace sie zadanie, aby wykonywać samo siebie, w nastepuj acych przypadkach: obs luga wywo lania systemowego, obs luga timerów i planowanie zadań, obs luga przerwań zewnetrznych, obs luga wyjatków sprzetowych i programowych. Jadra systemów czasu rzeczywistego funkcje mikrojadra 9

Jadra systemów czasu rzeczywistego funkcje mikrojadra 10

Obs luga wywo lań systemowych Obs luga wywo lania systemowego sk lada sie z zapamietaniu kontekstu wykonujacego sie zadania, prze laczenia sie w tryb jadra, i wykonaniu funkcji z argumentami znajdujacymi sie na szczycie stosu zadania. Po zakończeniu wykonywania funkcji jadro wykonuje powrót z wyjatku, co powoduje powrót do trybu użytkownika. Systemy wbudowane czesto nie posiadaja ochrony pamieci, która narzuca istotne wymagania pamieciowe (rzedu kilku kilobajtów na proces), jak również wyd lużony czas prze laczania kontekstu. Brak ochrony pamieci jest czesto akceptowalny w środowisku aplikacji wbudowanych. Jadra systemów czasu rzeczywistego wywo lania systemowe 11

Jadra systemów czasu rzeczywistego wywo lania systemowe 12

Obs luga funkcji czasu Centralna cześci a mikrojadra jest planista. Wykonywany jest zawsze gdy zmienia sie stan któregoś z zadań, jak również okresowo, w wyniku przerwania zegarowego. Okres przerwania zegarowego nazywany jest tikiem (tick). Tik stosowany przez wiekszość systemów operacyjnych wynosi 10 milisekund. Operacje wykonywane w momencie przerwania zegarowego: 1. Przetwarzanie zdarzeń czasowych sprawdzanie kolejki timerów i zakolejkowanie zdarzeń dla tych, które zosta ly przeterminowane. 2. Aktualizacja budżetu czasowego zadania aktywnego, o ile jest ono planowane algorytmem RR (albo innym wyw laszczajacym). 3. Aktualizacja kolejki zadań gotowych pewne zadania mog ly stać sie gotowe w wyniku wyzwolenia, a zadanie wykonywane mog lo zostać wyw laszczone. Do wykonywania wybierane jest pierwsze zadanie z kolejki o najwyższym priorytecie. Jadro może również aktualizować liczniki czasu CPU zadań zarówno bezpośrednio zużyty, jak również zużyty przez jadro na us lugi dla zadania. Jadra systemów czasu rzeczywistego funkcje czasu 13

Jak widać, planista wykonuje swoje krytyczne zadania z okresem równym tikowi, co jest na ogó l wystarczajace dla zadań pracujacych w podziale czasu, ale może być niewystarczajace dla zadań czasu rzeczywistego. Zmniejszenie wielkości tiku mog loby rozwiazać ten problem, ale oczywiście kosztem znacznego wzrostu narzutów planowania. Dlatego wiekszość systemów stosuje planowanie czasowe w po laczeniu ze zdarzeniowym. Jadro wywo luje planiste dodatkowo zawsze wtedy gdy budzone, wyzwalane, lub odblokowywane jest jakieś zadanie, albo tworzone jest nowe. Jadra systemów czasu rzeczywistego funkcje czasu 14

Obs luga przerwań zewnetrznych Przerwania sprzetowe stanowia mechanizm powiadamiania aplikacji o zdarzeniach zewnetrznych i obs lugi sporadycznych operacji I/O. Nak lad czasu niezbedny do obs lugi przerwania zależy od jego źród la. W szczególności, obs luga przerwań DMA wymaga znacznego czasu. Na przyk lad, dla obs lugi nadchodzacego pakietu sieciowego, interfejs sieciowy generuje przerwanie. Dla jego obs lugi jadro musi wywo lać funkcje obs lugi odpowiedniego protoko lu. Ta z kolei identyfikuje zadanie, które ma otrzymać pakiet, kopiuje go do bufora w przestrzeni adresowej zadania, wykonuje dodatkowe czynności wymagane przez protokó l (np. generuje komunikat potwierdzenia), itp. Wymagany na to czas może być d lugi i trudny do określenia. Procedury obs lugi przerwań generowanych przez system dyskowy i sieciowy typowo trwaja setki mikrosekund do dziesiatek milisekund. Dlatego wiekszość systemów dzieli ich obs luge na dwie cześci: natychmiastowa i planowana. Jest to tzw. podzielona obs luga przerwań (split interrupt handling). Jadra systemów czasu rzeczywistego obs luga przerwań 15

Natychmiastowa obs luga przerwań Pierwsza faza obs lugi przerwania, zwana natychmiastowa obs lug a przerwania, wykonywana jest z zastosowaniem w laściwego priorytetu. Priorytety przerwań sa ogólnie wyższe niż priorytety zadań, jak również wyższe niż priorytet planisty. Jadra systemów czasu rzeczywistego obs luga przerwań 16

W chwili przerwania, procesor wpisuje rejestry PC i stanu na stos przerwań, i wywo luje procedure obs lugi przerwania jadra. Jadro najpierw maskuje przerwania w celu bezpiecznego wykonania operacji na strukturach danych zwiazanych z aktualnym przerwaniem. Nastepnie zapisuje stan procesora na stosie przerwań, odblokowuje przerwania, i dopiero wtedy wykonuje w laściwy kod obs lugi przerwania. Wiecej niż jedno urzadzenie może być podpiete pod jedna linie przerwania. W takim przypadku wywo lywane sa po kolei procedury obs lugi ich wszystkich. Procedura urzadzenia, które nie wygenerowa lo przerwania wraca natychmiast. Jeśli w czasie obs lugi przerwania pojawia sie inne przerwanie o wyższym priorytecie, to jest obs lugiwane dok ladnie w taki sam sposób. Jadra systemów czasu rzeczywistego obs luga przerwań 17

Opóźnienie obs lugi przerwania Ca lkowity czas, jaki up lywa od chwili wygenerowania przerwania, do momentu rozpoczecia wykonywania jego obs lugi, jest nazywany opóźnieniem obs lugi przerwania (interrupt latency). Stanowi on miare reaktywności systemu na zdarzenia zewnetrzne. Wielkość tego czasu jest suma nastepuj acych elementów: 1. czas na dokończenie aktualnej instrukcji, obs luge stanu procesora, i zainicjowanie obs lugi przerwania, 2. czas na zamaskowanie przerwań, 3. czas na natychmiastowa obs luge przerwań o wyższym priorytecie, jeśli takie wystapi ly, 4. czas na wysk ladowanie kontekstu wykonywanego zadania, i ustalenia które urzadzenie zg losi lo przerwanie, 5. czas na wywo lanie procedury obs lugi. Najwieksz a (i nieprzewidywalna) role odgrywa tu element 5. Jedynym sposobem na zwiekszenie reaktywności systemu jest zminimalizowanie ca lej procedury natychmiastowej obs lugi przerwania. Jadra systemów czasu rzeczywistego obs luga przerwań 18

Planowana obs luga przerwań Oprócz przypadków bardzo trywialnych funkcji, natychmiastowa obs luga przerwania nie kończy jego w laściwej obs lugi. W laściwa faza obs lugi przerwania planowana obs luga przerwania powinna być wyw laszczalna, i wykonywana z priorytetem odpowiednim dla danego urzadzenia. Na przyk lad, może być on równy priorytetowi zadania, które zainicjowa lo operacje na urzadzeniu. Dlatego na diagramie zadań jadra, po wykonaniu natychmiastowej obs lugi przerwania wywo lywany jest planista, który umieszcza zadanie planowanej obs lugi przerwania w kolejce zadań gotowych. Zadanie planowanej obs lugi przerwania stanowi zadanie aperiodyczne lub sporadyczne. Jadra systemów czasu rzeczywistego obs luga przerwań 19

Jadra systemów czasu rzeczywistego obs luga przerwań 20

Us lugi i mechanizmy dla planowania System operacyjny dostarcza zestaw standardowych algorytmów planowania, takich jak FIFO albo RR. Innym typowym mechanizmem jest planowanie priorytetowe z wyw laszczaniem. Czesto aplikacja użytkownika ma powody ingerować w procedure planowania zadań, i systemy operacyjne dostarczaja mechanizmów, które to umożliwiaja. Przyk ladem może być mechanizm blokowania wyw laszczania, dostarczany przez wiele systemów czasu rzeczywistego. Jadra systemów czasu rzeczywistego us lugi planowania 21

Jadra systemów czasu rzeczywistego us lugi planowania 22

Us lugi komunikacji i synchronizacji System operacyjny dostarcza us lug komunikacji i synchronizacji dla zadań, takich jak: kolejki komunikatów, pamieć wspó ldzielona, muteksy, blokady zapisu i odczytu, i inne. Dodatkowym mechanizmem wspomagajacym sprawna prace mechanizmów synchronizacji, sa algorytmy zapobiegania i unikania zakleszczeń. W systemach czasu rzeczywistego dodatkowa okolicznościa sa priorytety zadań. Czasami w sytuacjach zwiazanych z komunikacja i synchronizacja niezbedne jest zastosowanie algorytmów zmieniajacych priorytety pewnych zadań w celu zapewnienia sprawnej realizacji komunikacji, albo synchronizacji. Jadra systemów czasu rzeczywistego us lugi komunikacji i synchronizacji 23

Odwrócenie (inwersja) priorytetów Jak widać na rysunku, zadanie o niskim priorytecie T 3 poprawnie uzyskuje dostep do jakiegoś zasobu s (semafora), po czym zostaje wyw laszczone przez zadanie T 1 o wysokim priorytecie. Jednak gdy T 1 zg lasza żadanie dostepu do s, wykonywanie wraca do T 3. Ta sytuacja, wynikajaca z interakcji pomiedzy T 1 a T 3 może jednak nadal być poprawna programista wiedzia l, że zadania T 1 i T 3 wspó ldziela zasób. Problem powstaje dopiero, gdy zadanie T 1 zostanie zablokowane na czas dowolnie d lugi, gdyż T 3 może być wyw laszczone przez inne zadania, takie jak T 2, o priorytecie niższym niż T 1, powodujac odwrócenie (inwersje) priorytetów. Jadra systemów czasu rzeczywistego odwrócenie priorytetów 24

Odwrócenie priorytetów dziedziczenie priorytetów Metoda dziedziczenia priorytetów polega na tym, że w momencie gdy zadanie o wyższym priorytecie T 1 zostaje zablokowane w oczekiwaniu na zasób s zajety przez zadanie T 3 o niższym priorytecie, T 3 chwilowo dziedziczy wysoki priorytet T 1. T 3 nie podlega wtedy wyw laszczeniu przez zadania typu T 2. Jadra systemów czasu rzeczywistego odwrócenie priorytetów 25

Odwrócenie priorytetów pu lap priorytetów Inna metoda rozwiazania problemu inwersji priorytetów, zwana pu lapem priorytetów (priority ceiling) polega na przypisaniu priorytetów zasobom, przy czym najniższy priorytet zasobu jest wyższy od najwyższego priorytetu wszystkich zadań. W chwili zajecia zasobu zadanie uzyskuje chwilowo priorytet równy temu zasobowi, i może wykonywać sie do chwili zwolnienia zasobu, kiedy jego priorytet jest obniżany do pierwotnego poziomu. Jadra systemów czasu rzeczywistego odwrócenie priorytetów 26

Odwrócenie priorytetów misja Pathfindera Misja sondy marsjańskiej Pathfinder wystrzelonej w 1996 roku jest znana z kilku powodów, z których jednym jest wyjatkowo krótki czas przygotowania i skromny budżet 150 M$ porównywalny z budżetem niektórych produkcji filmowych. Innym symbolem tej misji by l lazik marsjański Sojourner, który wyladowa l na Marsie 4 lipca 1997, i wykona l wysokiej rozdzielczości zdjecia powierzchni Marsa. Jednak misja zosta la zagrożona przez b lad w systemie sterujacym ladownika, który zosta l wcześniej zaobserwowany w testach poprzedzajacych start, lecz zlekceważony, ponieważ nie mia l zwiazku z oprogramowaniem ladowania. Po wyladowaniu Pathfinder rozpocza l gromadzenie danych meteorologicznych (miedzy innymi). W trakcie tych operacji zacze lo dochodzić to pe lnego restartu jego systemu, co powodowa lo utrate danych i opóźnienia. W dniach 5-14 lipca 1997 system wykona l cztery restarty, i powsta lo zagrożenie dla kontynuacji w laściwej pracy. Jadra systemów czasu rzeczywistego odwrócenie priorytetów 27

Pathfinder posiada l magistrale do przesy lania danych. Niezbyt czesto wykonywane zadanie gromadzenia danych meteorologicznych mia lo niski priorytet, lecz zajmowa lo magistrale do przes lania tych danych, poprawnie blokujac mutex. Najwyższy priorytet mia lo zadanie obs lugi magistrali, lecz okresowo musia lo krótko czekać na zwolnienie magistrali przez zadanie meteorologiczne. W tym krótkim oknie czasowym mog lo wystapić przerwanie wywo luj ace zadanie komunikacyjne średniego priorytetu, które nie zajmowa lo magistrali. Przed lużajacy sie czas nieaktywności zadania wysokiego priorytetu spowodowa lo przeterminowanie timera watchdoga, który zainicjowa l pe lny restart systemu. Zadania zaplanowane na dany dzień zosta ly wtedy przesuniete na nastepny dzień. Jest to zatem klasyczny scenariusz inwersji priorytetów. Komputer na pok ladzie ladownika by l oparty na procesorze IBM Risc 6000 Single Chip (wersja uodporniona na promieniowanie kosmiczne), z 128MB RAM, 6MB EEPROM, i systemie operacyjnym VxWorks. System ten posiada mechanizm dziedziczenia priorytetów, lecz domyślna konfiguracja ma ten mechanizm wy laczony. Problem zosta l zdiagnozowany przez intensywne testy na dok ladnej kopii systemu lazika, które pozwoli ly zduplikować zjawisko. 21 lipca 1997 uda lo sie wgrać poprawke w laczaj ac a dziedziczenie priorytetów, i misja mog la być kontynuowana. Jadra systemów czasu rzeczywistego odwrócenie priorytetów 28

Zarzadzanie pamieci a Systemy czasu rzeczywistego czesto ignoruja kwestie zarzadzania pamieci a, ponieważ zwiazane z nim algorytmy sa czesto absorbujace i trudno przewidywalne. W najprostszym przypadku można za lożyć, ze system bedzie budowany w taki sposób, że w ca lości bedzie rezydowa l w pamieci RAM. Zadanie nie zostanie utworzone, jeśli system nie zdo la zaalokować pamieci wystarczajacej dla szczytowych wymagań tego zadania. W szczególności, systemy operacyjne czasu rzeczywistego czesto nie zapewniaja obs lugi pamieci wirtualnej: odwzorowania wirtualnej przestrzeni adresowej dla procesów, stronicowania na żadanie, ani wymiatania. W zależności od konkretnych us lug zarzadzania pamieci a można podzielić systemy operacyjne na klasy. Jadra systemów czasu rzeczywistego zarzadzanie pamieci a 29

Alokacja i dealokacja pamieci Podstawowa us luga dotyczac a pamieci dostarczana przez systemy operacyjne, w tym również systemy RTOS, jest alokacja i dealokacja pamieci. Program żadaj acy w trakcie pracy dynamicznego przydzia lu dodatkowych bloków pamieci dostaje je od systemu, a po wykorzystaniu zwalnia je, pozwalajac systemowi wykorzystać je do innych celów. Najprostszymi metodami alokacji pamieci sa metody alokacji ciag lej, przydzielajace jednolite bloki pamieci. Ich wada jest fragmentacja pamieci. Po przydzieleniu pewnej liczby bloków o zmiennej wielkości, uzyskanie kolejnego wiekszego bloku może nie być możliwe, w sytuacji kiedy mniejsze bloki sa nadal wolne. Problem fragmentacji rozwiazuje sie przez defragmentacje, która jednak w systemach czasu rzeczywistego jest trudna, ponieważ zarówno konieczność jej wykonania jak i potrzebny nak lad czasu sa trudne do przewidzenia. Jadra systemów czasu rzeczywistego zarzadzanie pamieci a 30

Alokacja stronicowana Fragmentacja nie wystepuje w systemach alokacji stronicowanej, które dziela pamieć fizyczna na niewielkie bloki zwane ramkami, z jednoczesnym podzia lem przestrzeni adresowej procesu na identycznego rozmiaru bloki zwane stronami. Każdy proces posiada tablice stron, i każde odwo lanie do pamieci podlega translacji adresu z wykorzystaniem tej tablicy. Jednak nieciag lość pamieci fizycznej i translacja adresów komplikuje operacje I/O wykonywane przez DMA. Operacje DMA sa znacznie prostsze i wymagaja mniejszych narzutów, jeśli wykorzystuja ciag ly obszar pamieci fizycznej. W przypadku nieciag lych obszarów pamieci, transfer DMA musi być podzielony na szereg transferów, z których każdy musi być indywidualnie zainicjowany przez procesor. Najcześciej stosowanym systemem alokacji stronicowanej jest system pamieci wirtualnej. Zasadnicza wada tego mechanizmu z punktu widzenia systemów czasu rzeczywistego jest nieprzewidywalność czasu dostepu do pamieci w przypadku b ledu strony. Jadra systemów czasu rzeczywistego zarzadzanie pamieci a 31

Blokowanie pamieci S a jednak powody, dla których system operacyjny RTOS może stosować pamieć wirtualna. Na przyk lad, dla wsparcia narzedzi do tworzenia oprogramowania, jak edytory, debuggery, profilery, które typowo maja duże wymagania pamieciowe, choć nie wymagaja pracy w czasie rzeczywistym. Dla zapewnienia wspó lpracy aplikacji czasu rzeczywistego z takimi aplikacjami czasu podzielonego, system RTOS musi dostarczać mechanizmów pozwalajacych na kontrolowanie stronicowania. Specyfikacja POSIX dostarcza mechanizmu blokowania pamieci. Zadanie może zarówno zablokować ca ly swój kod w pamieci fizycznej, albo pewien zakres adresowy (co wymaga dobrej znajomości rozlokowania aplikacji w pamieci). W ten sposób zadanie czasu rzeczywistego może pracować w systemie pamieci wirtualnej, ale jego pamieć nie bedzie podlegać usuwaniu z pamieci RAM. Jadra systemów czasu rzeczywistego zarzadzanie pamieci a 32

Zabezpieczenie pamieci Inna podstawowa us luga zapewniana przez systemy operacyjne ogólnego przeznaczenia jest zabezpieczenie obszarów pamieci. Wiele systemów RTOS nie zapewnia mechanizmów zabezpieczenia pamieci dla zadań jadra ani aplikacja użytkownika. Jak zwykle, argumentem za stosowaniem pojedynczej przestrzeni adresowej jest prostota (z punktu widzenia systemu) i mniejsze narzuty tego rozwiazania. Niestety, te zalety okupione sa wieksz a komplikacja projektu aplikacji użytkownika, zw laszcza, gdy trzeba wprowadzać modyfikacje. Zatem to rozwiazanie jest w laściwe jedynie dla bardzo niewielkich systemów wbudowanych. Natomiast wiele systemów RTOS zapewnia ochrone pamieci procesów. Pewna alternatywa jest możliwość konfiguracji mechanizmów pamieci wirtualnej oferowana przez niektóre systemy RTOS. Jadra systemów czasu rzeczywistego zarzadzanie pamieci a 33

Jadra systemów czasu rzeczywistego zarzadzanie pamieci a 34

Bibliografia Jane W.S. Liu: Real-Time Systems, Prentice-Hall 2000 Jadra systemów czasu rzeczywistego zarzadzanie pamieci a 35