Systemy czasu rzeczywistego

Podobne dokumenty
Funkcje systemów operacyjnych czasu rzeczywistego

Systemy czasu rzeczywistego

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

Funkcje systemów operacyjnych czasu rzeczywistego

Wieloprogramowy system komputerowy

Wieloprogramowy system komputerowy

Wykorzystanie pami eci operacyjnej przez system

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

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

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

Systemy czasu rzeczywistego wstęp

Wieloprogramowy system komputerowy

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Systemy wbudowane. Paweł Pełczyński

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

Budowa systemów komputerowych

Drzewa podstawowe poj

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

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

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Paradygmaty programowania. Paradygmaty programowania

Szeregowanie w systemach czasu rzeczywistego

Prezentacja systemu RTLinux

4. Procesy pojęcia podstawowe

Urządzenia wejścia-wyjścia

1.1 Definicja procesu

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

WPROWADZENIE Mikrosterownik mikrokontrolery

Funkcje systemu Unix

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

Wirtualne sieci prywatne

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

LEKCJA TEMAT: Zasada działania komputera.

Paradygmaty programowania. Paradygmaty programowania

4. Procesy pojęcia podstawowe

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

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

Systemy operacyjne III

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

Systemy operacyjne. Paweł Pełczyński

Statystyka w analizie i planowaniu eksperymentu

Architektura komputerów

Statystyka w analizie i planowaniu eksperymentu

Software Achitecture Document Pó l-internetowy System Obs lugi Turystyki Gminnej

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

Mikroprocesor Operacje wejścia / wyjścia

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

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

Ekonomia matematyczna i dynamiczna optymalizacja

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

Ćwiczenie nr 520: Metody interpolacyjne planowania ruchu manipulatorów

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

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

Organizacja systemu plików

Działanie systemu operacyjnego

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

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

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

Podstawowe zagadnienia

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Działanie systemu operacyjnego

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

Stronicowanie w systemie pamięci wirtualnej

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

System czasu rzeczywistego

PROGRAMOWALNE STEROWNIKI LOGICZNE

Funkcje. Piotr Zierhoffer. 7 października Institute of Computer Science Poznań University of Technology

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Budowa i zasada działania komputera. dr Artur Bartoszewski

Podstawy Techniki Komputerowej. Temat: BIOS

Uniwersalny Konwerter Protokołów

Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

System komputerowy. System komputerowy

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

Wyk lad 9 Podpierścienie, elementy odwracalne, dzielniki zera

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

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++

Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2016/2017. Forma studiów: Niestacjonarne Kod kierunku: 11.

Paradygmaty programowania

KOLOKWIUM PODSTAWY PROGRAMOWANIA

Zarządzanie pamięcią operacyjną

Co to jest system wbudowany?

Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego - przykłady

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

Architektura i administracja systemów operacyjnych

Systemy operacyjne III

Wyk lad 2 Podgrupa grupy

Grzegorz Mazur. Zak lad Metod Obliczeniowych Chemii UJ. 14 marca 2007

Systemy Operacyjne - Operacje na plikach

Działanie systemu operacyjnego

4.2 Sposób korzystania z l acza

Organizacja typowego mikroprocesora

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

Szeregowanie w systemach czasu rzeczywistego

Zarządzanie pamięcią w systemie operacyjnym

Wyk lad 3 Wielomiany i u lamki proste

Wprowadzenie do systemów operacyjnych

z powielaniem wielu struktur danych oraz komunikacja

Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i

Transkrypt:

Systemy czasu rzeczywistego Co to jest system czasu rzeczywistego RTS (Real-Time System)? Czesto proponowana definicja RTS mówi, że sa to systemy, w których można określić maksymalny czas wykonania poszczególnych operacji. Szersza definicja: w systemach RTS poprawność procesu obliczeniowego zależy nie tylko od samego wyniku, ale również od czasu, w którym zosta l on osiagniety. Oczywiste: sterowanie produkcja aparatura medyczna sterowanie elektronika samochodowa, np. ABS lotnictwo i aeronautyka Mniej oczywiste: systemy nawigacji systemy rozpoznawania g losu odtwarzacze multimedialne, np. MP3 systemy telekomunikacyjne urzadzenia konsumenckie Systemy czasu rzeczywistego 1

Ograniczenia czasowe RTS Jakie konkretnie sa te ograniczenia czasowe, których dotrzymanie powinien zagwarantować RTS? 1 sekunda? 1 milisekunda? 1 mikrosekunda? Odpowiedź: każde z powyższych może być wymaganym czasem reakcji RTS. Systemy czasu rzeczywistego 2

Czy RTS po prostu musi być bardzo szybki? Czy w dzisiejszych czasach wielordzeniowych procesorów z 4-gigahercowym zegarem, zwyk ly system operacyjny nie móg lby pe lnić roli RTOS? Zw laszcza gdyby nie by l nadmiernie obciażony? Czy nie bedzie dostatecznie szybki? Odpowiedź: być może, ale niekoniecznie. Jeśli jest choć niewielkie prawdopodobieństwo, że jakieś operacje systemowe nie zmieszcza sie w określonych rygorach czasowych, to w warunkach rzeczywistej pracy, predzej czy później taka sytuacja wystapi, i taki system po prostu nie spe lni wymagań czasowych aplikacji, aczkolwiek tylko z rzadka. Systemy czasu rzeczywistego 3

Kiedy RTS jest naprawde potrzebny? Rozważmy dalej możliwość stosowania 4-GHz wielordzeniowych procesorów z zapasem mocy, do prostych zadań, w miejsce RTS. Czy sporadyczne niedotrzymanie rygorów czasowych operacji ma wielkie znaczenie praktyczne? Odpowiedź: to zależy od aplikacji i od wymagań użytkownika. Latwo wyobrazić sobie, że system sterowania silnikiem odrzutowym musi zareagować w odpowiednim czasie na sytuacje wymagajac a natychmiastowego odciecia dop lywu paliwa. Dla odmiany: system sterowania reklama świetlna może być akceptowalny nawet wtedy, gdy bedzie okresowo na chwile zatrzymywa l przesuwanie napisu na wyświetlaczu. Albo gdy system telefonii VOIP w pewnych sytuacjach opóźni zakodowanie i wys lanie co któregoś pakietu dźwiekowego. Ale uwaga: aplikacja dekodujaca obraz w odtwarzaczu multimedialnym może być równie bezużyteczna jak z ly system sterowania silnikiem, jeśli bedzie systematycznie spóźnia la sie ze zdekodowaniem na czas co którejś klatki obrazu wideo. Systemy czasu rzeczywistego 4

Kiedy RTS jest naprawde potrzebny (cd.)? Odpowiedź 2: Jednak czasami można osiagn ać zaplanowany cel w systemie, który gwarantuje dotrzymanie danych reżimów czasowych na ogó l, ale nie zawsze. Silny system czasu rzeczywistego (hard RTS) musi bezwzglednie spe lniać wszystkie wymagania RTS, i nadaje sie do zastosowań, w których ich niedotrzymanie może powodować niebezpieczeństwo, katastrofe, itp. Przyk lad: sterowanie lotem S laby system czasu rzeczywistego (soft RTS) dopuszcza pewne odchy lki od wyznaczonych reżimów czasowych, aczkolwiek ogólnie musi również dzia lać szybko i niezawodnie. Systemy takie nadaja sie do zastosowań, w których nieznacznie spóźniona reakcja nadal może być przydatna. Przyk lad: rozrusznik serca Systemy czasu rzeczywistego 5

Kiedy RTS jest naprawde potrzebny (cd.)? Odpowiedź 3: Wydajne procesory o dużej mocy obliczeniowej sa kosztowne i maja duże zapotrzebowanie na moc zasilania. Jeśli zadanie nie wymaga dużej mocy obliczeniowej, to można je czasem zrealizować za pomoca systemu wbudowanego z 200-MHz mikrokontrolerem o minimalnych wymaganiach. Wymaga to jednak zastosowania w RTS innego podejścia pewnego minimalizmu, prostoty konstrukcji, i konsekwencji w projekcie ca lej architektury systemu. U latwia to zaprojektowanie systemu wykonujacego dok ladnie zaplanowane zadanie i nic wiecej, a potem dokonanie jego analizy, w celu obliczenia najd luższych ścieżek obliczeń, maksymalnych opóźnień, zlokalizowania waskich garde l, itp. Systemy czasu rzeczywistego 6

Wymagania systemów czasu rzeczywistego Dla spe lnienia wymagań czasu rzeczywistego jego projektant musi określić: kiedy pewne operacje musza być wykonane kiedy pewne operacje musza być zakończone co zrobić w sytuacji, gdy wszystkie wymagania czasowe nie moga być jednocześnie spe lnione Systemy czasu rzeczywistego nie sa podobne do zwyk lych systemów operacyjnych. Sa inaczej projektowane i inaczej wykorzystywane. Zawieraja inne podsystemy. Dostarczaja programiście innych narzedzi. Przerzucaja na programiste zadanie globalnego sterowania przydzia lem zadań i priorytetów. Systemy operacyjne przeznaczonych do budowy systemów RTS, zwane systemami operacyjnymi czasu rzeczywistego (RTOS = Real Time Operating System) posiadaja specjalne mechanizmy niezbedne przy uruchamianiu i eksploatacji RTS. Różnia sie one zasadniczo od zwyk lych systemów operacyjnych (GPOS = General Purpose Operating System)? Systemy czasu rzeczywistego 7

Systemy operacyjne czasu rzeczywistego Na przyk lad, w systemach RT nie ma równości ani sprawiedliwości, którymi kieruja sie algorytmy szeregowania GPOS. Watek o wysokim priorytecie może wykonywać sie tak d lugo jak zechce, uniemożliwiajac wykonanie watków o niższym priorytecie (oczywiście o ile sam nie zostanie wyw laszczony przez watek o jeszcze wyższym priorytecie). Takie szeregowanie priorytetowe z wyw laszczaniem pozwala watkom o wysokich priorytetach w RTOS zmieścić sie w wyznaczonym reżimie czasowym. System RTOS 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. 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. Systemy czasu rzeczywistego 8

Czy/kiedy potrzebny jest nam system operacyjny? W projektowaniu systemów czasu rzeczywistego i systemów wbudowanych rozważa sie dwa możliwe podejścia: z systemem operacyjnym - aplikacja tworzy watki, które dzia laja pod kontrola systemu operacyjnego, który zarzadza praca ca lego systemu i dostarcza us lug atkom, podobnie jak w zwyk lych systemach komputerowych w bez systemu operacyjnego - aplikacja jest jednym programem, który musi sam gospodarować zasobami komputera. Rozwiazanie drugie stosuje sie w przypadku mniejszych aplikacji, w których programista jest w stanie w miare latwo zaimplementować wszystkie niezbedne mechanizmy obs lugi watków, alokacji pamieci i zasobów, itp. Jeśli aplikacja przekracza pewien stopień z lożoności, to op laca sie ja zbudować w oparciu o system operacyjny, godzac sie na pewne nieuchronne narzuty pobierane przez ten system, w zamian za oferowane przezeń us lugi. Systemy czasu rzeczywistego 9

Krótkie podsumowanie pytania sprawdzajace 1. Co to jest system czasu rzeczywistego? 2. Czym różni sie silny system czasu rzeczywistego od s labego? 3. Jakie sa podstawowe cechy systemów operacyjnych czasu rzeczywistego? 4. Kiedy system czasu rzeczywistego powinien być budowany na bazie systemu operacyjnego czasu rzeczywistego? Systemy czasu rzeczywistego podsumowanie 10

Systemy wbudowane System wbudowany to system komputerowy z dedykowana funkcja w ramach wiekszego systemu mechanicznego lub elektrycznego, czesto z ograniczeniami obliczeniowymi czasu rzeczywistym. Jest wbudowany jako cześć kompletnego urzadzenia, czesto zawierajacego cześci sprzetowe i mechaniczne. Systemy wbudowane kontroluja obecnie wiele powszechnie używanych urzadzeń. Dziewiećdziesi at osiem procent wszystkich mikroprocesorów produkowanych jest jako komponenty systemów wbudowanych. Przyk ladami w laściwości typowych komputerów wbudowanych w porównaniu z odpowiednikami ogólnego przeznaczenia sa niskie zużycie energii, ma le rozmiary, wytrzyma le zakresy pracy i niski koszt jednostkowy. Dzieje sie tak za cene ograniczonych zasobów przetwarzania, co znacznie utrudnia programowanie i interakcje. https://en.wikipedia.org/wiki/embedded system P lytka modemu/routera ADSL: mikroprocesor (4), RAM (6), pamieć flash (7). Systemy czasu rzeczywistego wbudowane 11

Systemy czasu rzeczywistego wbudowane 12

Systemy bezg lowe Wiele (wiekszość) systemów wbudowanych nie posiada monitora do komunikacji z użytkownikiem, jak również klawiatury, myszy, itp. Takie systemy określane sa mianem headless (bezg lowe?). Ich istnienie jest wyrazem zarówno zastosowań do pracy ca lkowicie automatycznej, bez interakcji z ludźmi, jak i zwiekszonego kosztu budowy urzadzeń, które posiadaja te elementy interfejsu użytkownika. Bezg lowe systemy wbudowane moga posiadać czujniki takie jak: termometr, akcelerometr, żyroskop, i reagować na ich wskazania, i odpowiadaja sterujac urzadzeniami wykonawczymi zwanymi aktuatorami, albo wyzwalajac różne powiadomienia, alarmy, itp. Systemy czasu rzeczywistego wbudowane 13

Systemy wbudowane z g low a Oczywiście istnieja również systemy wbudowane wyposażone w urzadzenia interfejsu użytkownika: monitor(y), klawiature, itp. W miare jak spada koszt sprzetu komputerowego, sa one nawet coraz bardziej popularne (patrz np. artyku ly gospodarstwa domowego z wyświetlaczem: pralki, kuchenki, piekarniki, zaparzarki do kawy, itp.). Pomimo iż sa przystosowane do interakcji z ludźmi, nie wygladaj a jak typowy komputer. Systemy czasu rzeczywistego wbudowane 14

W lasności systemów wbudowanych Systemy wbudowane bardzo różnia sie miedzy soba, ale pewne charakterystyczne w lasności laczy wiele z nich: niski pobór mocy niewielkie rozmiary niski koszt produkcji za sztuke ograniczona moc obliczeniowa i pamieć szerokie spektrum warunków pracy d lugi czas eksploatacji Systemy czasu rzeczywistego wbudowane 15

Krótkie podsumowanie pytania sprawdzajace 1. Co to jest system wbudowany? 2. Co laczy systemy wbudowane z systemami czasu rzeczywistego? Systemy czasu rzeczywistego podsumowanie 16

Mechanizmy systemów czasu rzeczywistego Mechanizmy systemu operacyjnego, które umożliwiaja prace aplikacji w czasie rzeczywistym to: przewidywalne szeregowanie wykonywania procesów mechanizmy zapobiegania inwersji priorytetów zarzadzanie pamieci a wyw laszczalne jadro systemu ustalony maksymalny czas obs lugi przerwań Systemy czasu rzeczywistego mechanizmy 17

Systemy czasu rzeczywistego mechanizmy 18

Odwrócenie 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, prowadzac do odwrócenia (inwersji) priorytetów. Systemy czasu rzeczywistego odwrócenie priorytetów 19

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 i nie podlega wyw laszczeniu przez zadania typu T 2. Systemy czasu rzeczywistego odwrócenie priorytetów 20

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. Systemy czasu rzeczywistego odwrócenie priorytetów 21

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 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. Problem powstawa l w warunkach silnego obciażenia procesora zadaniami. Zadanie niskiego priorytetu zaje lo potok do przesy lania danych, i poprawnie zablokowa lo odpowiedni mutex, lecz zosta lo nastepnie wyw laszczone przez zadanie średniego priorytetu. Z kolei zadanie wysokiego priorytetu chcia lo przes lać dane przez potok, lecz zosta lo zmuszone do oczekiwania na muteksie. Wkrótce potem manager zadań zauważy l zadanie wysokiego priorytetu oczekujace przez zbyt d lugi czas, i wymusi l restart systemu powodujacy opóźnienie do nastepnego dnia. Systemy czasu rzeczywistego odwrócenie priorytetów 22

W dniach 5-14 lipca 1997 system wykona l cztery restarty, i powsta lo zagrożenie dla kontynuacji w laściwej pracy. 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. Dopiero 21 lipca 1997 uda lo sie wgrać poprawke w laczaj ac a dziedziczenie priorytetów, i misja mog la być kontynuowana. Systemy czasu rzeczywistego odwrócenie priorytetów 23

Krótkie podsumowanie pytania sprawdzajace 1. Na czym polega zjawisko odwrócenia priorytetów? 2. Jakie sa podstawowe mechanizmy rozwiazywania tego problemu? Systemy czasu rzeczywistego podsumowanie 24

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. Systemy czasu rzeczywistego zarzadzanie pamiecia 25

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. Systemy czasu rzeczywistego zarzadzanie pamiecia 26

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. Systemy czasu rzeczywistego zarzadzanie pamiecia 27

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. Systemy czasu rzeczywistego zarzadzanie pamiecia 28

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. Systemy czasu rzeczywistego zarzadzanie pamiecia 29

Systemy czasu rzeczywistego zarzadzanie pamiecia 30

Wyw laszczalne jadro w systemach RT Typowe jadro systemu GPOS nie podlega wyw laszczaniu, tzn. funkcje jadra zarówno operacje systemowe, np. obs luga przerwań, jak i zwyk le funkcje wywo lane przez programy użytkowników wykonywane sa bez ograniczeń. W systemach RTOS może to powodować sytuacje, kiedy wykonywanie funkcji dla watku o niskim priorytecie mog loby trwać przez czas nieokreślony, lub ogólnie d lugi. W oczywisty sposób stoi to w sprzeczności z wymaganiami RTOS. Dlatego systemy RTOS moga mieć jakaś forme wyw laszczania jadra. Jednak procedury jadra każdego systemu maja okna czasowe, kiedy nie może dojść do jego wyw laszczenia. W tych okienkach nie dzia laj a mechanizmy czasu rzeczywistego, i musza one być minimalizowane. Niektóre systemy zapewniaja wewnatrz procedur jadra punkty wyw laszczania (checkpoints), w których procedura może być przerwana i jadro wyw laszczone. Jednak analizujac taki system z punktu widzenia wymagań RT należy pamietać o uwzglednieniu wszystkich elementów jadra, w tym kodu sterowników. Systemy czasu rzeczywistego wyw laszalne jadro 31

Systemy czasu rzeczywistego wyw laszalne jadro 32

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). Systemy czasu rzeczywistego obs luga przerwań 33

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. Systemy czasu rzeczywistego obs luga przerwań 34

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. Systemy czasu rzeczywistego obs luga przerwań 35

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. Systemy czasu rzeczywistego obs luga przerwań 36

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. Systemy czasu rzeczywistego obs luga przerwań 37

Krótkie podsumowanie pytania sprawdzajace 1. Jakie zasady zarzadzania pamieci a różnia systemy czasu rzeczywistego, od systemów operacyjnych ogólnego przeznaczenia? 2. Dlaczego w systemach czasu rzeczywistego przydatny jest mechanizm wyw laszczania jadra systemu, i jakie konsekwencje to powoduje? 3. Na czym polega opóźniona obs luga przerwania, i czym obs luga natychmiastowa różni sie od obs lugi planowanej? Systemy czasu rzeczywistego podsumowanie 38