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

Podobne dokumenty
Prezentacja systemu RTLinux

REAL-TIME LINUX. ZGODNOŚĆ Z POSIX ( PSE51 (minimal realtime system profile)

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.3

PROGRAMOWANIE SYSTEMÓW WBUDOWANYCH

Mariusz Rudnicki PROGRAMOWANIE WSPÓŁBIEŻNE I SYSTEMY CZASU RZECZYWISTEGO CZ.3

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

Budowa i oprogramowanie komputerowych systemów sterowania. Wykład 9. Systemy operacyjne

Spis treści. Rozdział 3. Instalacja i konfiguracja systemu RTLinux Przebieg instalacji...e...e.37

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.2

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Jądro systemu operacyjnego

4. Procesy pojęcia podstawowe

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

Systemy operacyjne II

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

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

4. Procesy pojęcia podstawowe

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

Procesy, wątki i zasoby

SYSTEMY OPERACYJNE PROCESORÓW SYGNAŁOWYCH

Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

Planowanie przydziału procesora

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

4. Procesy pojęcia podstawowe

dr inż. Jarosław Forenc

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Podstawowe zagadnienia

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Zarządzanie procesami i wątkami

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

Fazy procesora i wejścia-wyjścia. Planowanie przydziału procesora. Czasy faz procesora. Planowanie przydziału procesora

Planowanie przydziału procesora

Systemy Czasu Rzeczywistego (SCR)

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

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Sieciowe Systemy Operacyjne

Zarządzanie pamięcią operacyjną

Działanie systemu operacyjnego

System operacyjny MACH

Programowanie współbieżne Wykład 2. Iwona Kochańska

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu

Systemy operacyjne III

Podstawy Informatyki Systemy operacyjne

Pamięć. Jan Tuziemski Źródło części materiałów: os-book.com

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

Mariusz Rudnicki PROGRAMOWANIE WSPÓŁBIEŻNE I SYSTEMY CZASU RZECZYWISTEGO CZ.2

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

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

Systemy operacyjne III

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus

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

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Systemy operacyjne III

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

Systemy operacyjne System sieciowy UNIX-a

Działanie systemu operacyjnego

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

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

Systemy operacyjne. Paweł Pełczyński

Proces y i y w i ąt ą ki

Zarządzanie procesorem

Działanie systemu operacyjnego

Przykłady implementacji planowania przydziału procesora

QEMU działa na procesorach procesorach: emuluje procesory: dostępne dla s.o. hosta:

przydziału procesora Przykłady implementacji planowania przydziału procesora Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Materiały pomocnicze 1

Bazy danych w sterowaniu

5. Model komunikujących się procesów, komunikaty

Urządzenia wejścia-wyjścia

Czujniki obiektowe Sterowniki przemysłowe

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Opis efektów kształcenia dla modułu zajęć

* Wymień typowe standardy sygnałów procesowych: - analogowy - dwustanowe

Procesy, zasoby i wątki

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

Przełączanie kontekstu. Planista średnioterminowy. Diagram kolejek. Kolejki planowania procesów. Planiści

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

Mikroinformatyka. Wielozadaniowość

Obliczenia równoległe i rozproszone w JAVIE. Michał Kozłowski 30 listopada 2003

Mechanizmy pracy równoległej. Jarosław Kuchta

Zarządzanie pamięcią operacyjną

Zarządzanie w systemach i sieciach komputerowych. Dr inż. Robert Wójcik. Wykład 3. Zarządzanie przydziałami procesora w systemach komputerowych

Zarządzanie zasobami pamięci

Programowanie na poziomie sprzętu. Tryb chroniony cz. 1

1. Szeregowanie w systemach czasu rzeczywistego

Systemy Czasu Rzeczywistego (SCR)

POSIX ang. Portable Operating System Interface for Unix

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

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

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Synchronizacja procesów i wątków

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

J. Ułasiewicz Programowanie aplikacji współbieżnych 1

Informatyka, systemy, sieci komputerowe

1. Etapy rozwoju systemów komputerowych

Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne

Transkrypt:

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

Rygorystyczny (twardy) system operacyjny czasu rzeczywistego. Jego charakterystyczną cechą jest to, że współistnieją w nim: jądro czasu rzeczywistego RTCore i jądro Linuxa.

Wydzielenie przetwarzania w czasie rzeczywistym. Użycie dwóch różnych jąder do różnych zadań alternatywa dla wyszukiwania i poprawiania fragmentów Linuxa, które mogą stwarzać problemy przy wykonywaniu zadań krytycznych (zadań czasu rzeczywistego). Celem było wykorzystanie zaawansowanych usług i dużej wydajności, w przypadku średnim, oferowanej przez system operacyjny ogólnego przeznaczenia z zachowaniem gwarancji terminowego wykonania zadań krytycznych.

http://students.mimuw.edu.pl/so/projekt03-04/temat4-g7/rtlinux.html Pod kontrolą RTCore uruchomione jest jądro Linuxa jako wątek o najniższym priorytecie (idle thread).

Programy użytkownika wykonywane w przestrzenia adresowej RTCore szeregowane przez planistę tego jądra. Zadania umieszczone są we wspólnej przestrzeni adresowej bez ochrony pamięci. Korzyści wynikające powyższego rozwiązania: szybsze przełączanie kontekstu pozbawione narzutu na zmianę rejestru bazowego jednostki zarządzającej pamięcią i czyszczenia rejestrów TLB bezpośrednie dzielenie danych bez skomplikowanej komunikacji międzyprocesowej. Wadą tego rozwiązania jest to, iż błędy w zadaniach krytycznych mogą powodować awarię całego systemu.

Program szeregujący ładowalny moduł jądra RTCore można stworzyć własny. Zadanie 1 T1 = 50ms, C1 = 25 ms. Zadanie 2 T2 = 100ms, C2 = 40 ms. Wykorzystanie procesora wyrażone jest wzorem: U C T

Domyślny planista używa statycznego doboru priorytetów algorytmem RMS, zgodnie z którym im krótszy okres zadania, tym wyższy jego priorytet. Algorytm optymalny w tym sensie, że jeśli zadanie nie jest szeregowalne (nie może być wypełnione w terminie) przez ten algorytm, to nie jest szeregowalne przez żaden algorytm używający statycznych priorytetów. Wadą tego algorytmu jest niskie ograniczenie szeregowalności - 69.3%, oznacza to, że jeśli zbiór zadań wykorzystuje procesor w 70%, to być może nie wszystkie zadania zostaną wypełnione w terminie.

Obecnie RTLinux zawiera moduł implementujący planistę z dynamicznym przydziałem priorytetów. Im bliższy nieprzekraczalny termin wykonania, tym wyższy priorytet. Zaletą tego algorytmu jest 100% ograniczenie szeregowalności, ale wadę stanowi narzut na obliczanie priorytetów.

RMS ani EDF nie gwarantują terminowego wykonania zadań nieokresowych zwanych sporadycznymi tzn. pojawiających się w dowolnym czasie. Szeregowanie zadań nieokresowych odbywa się przy pomocy algorytmów: Slot Shifting i Stack Stealing

Wątek jądra Linuxa jest wywłaszczalny, zadania krytyczne nie mogą wywoływać jego funkcji systemowych.

RT-FIFO dostępne są w postaci ładowalnego modułu jądra. Podobne są do linuksowych łączy nazwanych. Zaalokowane są w przestrzeni RTCore. Zadania krytyczne mogą je tworzyć, niszczyć, czytać i pisać. Operacje odczytu i zapisu są niepodzielne i nieblokujące po stronie zadań krytycznych (rozwiązuje to problem odwróconych priorytetów). Procesy linuxa widzą kolejki jako urządzenia znakowe poprzez standardowe funkcje POSIXowe.

mmap( ); w wersji niekomercyjnej, shm_open( ), shm_unlink( ); w wersji komercyjnej

Mutexy pthread_mutex

Odwrócenie priorytetów (priority inversion) to sytuacja, w której zadanie wysoko-priorytetowe nie dostaje procesora, choć powinno. Scenariusz ten może przybierać różne oblicza. W najprostszym przypadku odwrócenie priorytetów spowodowane jest czekaniem przez wysoko-priorytetowe zadanie, aż zadanie o niższym priorytecie zwolni zasób. Szczęśliwie opóźnienie stąd wynikające może być wyliczone wcześniej. Gorzej jest, gdy dochodzi do tego proces średniego priorytetu, który nie potrzebuje zasobu trzymanego przez proces nisko-priorytetowy i go wywłaszcza.

Dziedziczenie priorytetów (priority inheritance) polega na tym, że zadanie nisko-priorytetowe otrzymuje priorytet zadania wysoko-priorytetowego w momencie, gdy to drugie rozpoczęło czekanie na zasób będący w posiadaniu pierwszego zadania i utrzymuje ten priorytet do chwili, aż zwolni zasób. Uniemożliwia to wkradnięcie się zadań średniopriorytetowych. Może jednak prowadzić do zakleszczenia, gdy zadanie dziedziczące zażąda drugiego zasobu będącego akurat w posiadaniu czekającego zadania wysokopriorytetowego.

Ceiling Semaphore Protocol Pułap zasobu (inaczej semafora, który broni wyłącznego dostępu do tego zasobu) to maksimum po priorytetach zadań, które mogą objąć ten zasób plus jeden. Zgodnie z protokołem CSP zadanie obejmujące zasób przyjmuje priorytet równy pułapowi tego zasobu do momentu, aż zwolni zasób. Jest to rozwinięcie pomysłu dziedziczenia priorytetów eliminujące ryzyko zakleszczenia.

Stack Resource Policy (SRP) Według zasad szeregowania SRP zadanie nie może zacząć się wykonywać, dopóki jego priorytet nie jest najwyższy spośród zadań aktywnych lub jego poziom wywłaszczenia nie jest większy od pułapu systemowego. Poziom wywłaszczenia zadania Ti definiuje się jako Pi = 1/Di, gdzie Di jest terminem zakończenia zadania. Używając SRP zadanie, które zaczyna się wykonywać, nie zostanie zablokowane do momentu zakończenia. Może być co najwyżej wywłaszczone przez zadania o wyższych priorytetach. Nazwa SRP wynika z faktu, że wszystkie zadania mogą używać jednego stosu do zapamiętywania parametrów wywoływanych funkcji i adresów powrotu.

Wirtualny mechanizm przerwań jest kluczowym elementem architektury RTLinuksa. Wszystkie przerwania sprzętowe są przechwytywane przez jądro RTCore. Jednocześnie emuluje ono kontroler przerwań na potrzeby Linuxa, który nadal działa tak, jakby docierały do niego przerwania sprzętowe. Każde nadchodzące przerwanie jest przechwytywane przez jądro RTCore. Jeśli jest dla niego zainstalowana procedura obsługi czasu rzeczywistego, to jest ona wywoływana. W przeciwnym razie, o ile nie wykonuje się żadne zadanie krytyczne, przerwanie jest przekazywane do jądra Linuksa. Samodzielne jądro Linuksa czasem blokuje przerwania (np. przy synchronizacji). RTCore pamięta ustawiony przez nie stan bitu zezwolenia na przerwania. Jeśli jądro Linuksa wyłączy przerwania, to nadchodzące dla niego przerwania są oznaczane jako oczekujące i zostaną emulowane, gdy tylko Linux je odblokuje. Dzieje się tak dzięki zamianie w kodzie jądra Linuksa instrukcji cli, sti i iret odpowiednio na makra S_CLI, S_STI, S_IRET.

Współistnienie procesów standardowego Linuxa i RT Linuxa. Konieczność zapewnienia komunikacji pomiędzy procesami non-rt a procesami RT. Komunikacja oparta o proste kolejki FIFO RT-FIFO. RT-FIFO: Proste bufory podobne do UNIX owych pipe ów (strumień bajtów bez narzuconej struktury). Bufor o stałym rozmiarze. Operacje czytania i pisania. Interfejs RT-FIFO od strony procesów RT jest podobny do łącz nazwanych IPC. Operacje na RT-FIFO od strony procesów RT są nieblokujące.

Procesy Linuxa widzą RT-FIFO jako urządzenia znakowe. Procesy Linuxa działają na RT-FIFO jak na normalnych plikach pod warunkiem, że wcześniej proces RT utworzył odpowiednie RT-FIFO. Obsługa RT-FIFO zmieniała się w zależności od wersji RT Linuxa. Na początku były to urządzenia o nazwie /dev/rtf0 do 64. Pliki należało utworzyć ręcznie z poziomu Linuxa. Obecnie mogą mieć dowolne nazwy i nie trzeba tworzyć ich z poziomu systemu Linuxa. Należy uważać przy doborze nazw RT-FIFO, gdyż jeżeli istnieje w systemie plik o danej nazwie to zostanie on zniszczony bez żadnego ostrzeżenia. RT-FIFO implementowane są w przestrzeni adresowej jądra. Pamięć na RT-FIFO musi zostać zaalokowana w wątku Linuxa. Można skompilować jądro Linuxa w ten sposób aby RT-FIFO tworzone były dynamicznie, pamięć jednak przydzielana jest statycznie. Liczba RT-FIFO jest ograniczona (można ją ustalić na poziomie kompilowania jądra).

http://www.tldp.org/howto/rtlinux-howto.html#toc3 https://rt.wiki.kernel.org/index.php/howto:_build_an_rtap plication#things_you_should_not_do_in_irqf_nodelay_co ntext http://www.cis.upenn.edu/~lee/06cse480/lec- RTOS_RTlinux.pdf http://read.pudn.com/downloads3/ebook/10710/rtlinux_ Overview.pdf