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

Podobne dokumenty
Prezentacja systemu RTLinux

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

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.3

PROGRAMOWANIE SYSTEMÓW WBUDOWANYCH

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

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

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

Podstawowe zagadnienia

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

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

Systemy Czasu Rzeczywistego (SCR)

Jądro systemu operacyjnego

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.2

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

1.1 Definicja procesu

Zarządzanie procesorem

Planowanie przydziału procesora

Procesy, wątki i zasoby

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

4. Procesy pojęcia podstawowe

Wykład 3: Implementacja programów wbudowanych

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

Planowanie przydziału procesora

Przykłady implementacji planowania przydziału procesora

Organizacja oprogramowania

Czujniki obiektowe Sterowniki przemysłowe

Planowanie przydziału procesora

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.

1. Szeregowanie w systemach czasu rzeczywistego

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

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

Systemy Czasu Rzeczywistego (SCR)

4. Procesy pojęcia podstawowe

Systemy operacyjne III

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

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

Planowanie przydziału procesora CPU scheduling. Koncepcja szeregowania. Planista przydziału procesora (planista krótkoterminowy) CPU Scheduler

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Adam Kotynia, Łukasz Kowalczyk

4. Procesy pojęcia podstawowe

dr inż. Jarosław Forenc

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

Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

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

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

Real-Time Linux. Wprowadzenie

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Zarządzanie pamięcią operacyjną

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Organizacja typowego mikroprocesora

Mikroprocesor Operacje wejścia / wyjścia

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

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Informatyka, systemy, sieci komputerowe

Szeregowanie zadań w Linux Kernel 2.6. Daniel Górski Przemysław Jakubowski

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

Pytania do treści wykładów:

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

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

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

Mikroinformatyka. Wielozadaniowość

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

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Systemy operacyjne Procesy i wątki

Linux: Procesy. Systemy Operacyjne. Mateusz Hołenko. 26 marca 2013

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

(Rysunek z książki T.Starecki. Mikokontrolery jednoukładowe rodziny 51. NOZOMI W-wa 1996)

Wykład 6. Planowanie (szeregowanie) procesów (ang. process scheduling) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Wieloprogramowanie. Systemy operacyjne / Procesy i wątki str.4/32. Proces w systemie operacyjnym. Tworzenie i kończenie procesów

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

projektowanie systemu

System operacyjny MACH

Simulator of Operating System

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

Architektura komputerów

Planowanie przydziału procesora

SYLABUS/KARTA PRZEDMIOTU

Podstawy Informatyki Systemy operacyjne

Zarządzanie procesami i wątkami

SYSTEMY OPERACYJNE PROCESORÓW SYGNAŁOWYCH

KARTA PRZEDMIOTU. Systemy czasu rzeczywistego: D1_9

Podsumowanie. Klasyfikacja ze względu na sposób przetwarzania. Klas. ze względu na liczbę wykonywanych zadań

1 Ewaluacja systemów czasu rzeczywistego

POSIX ang. Portable Operating System Interface for Unix

Podsumowanie. Systemy operacyjne Podsumowanie 1. Klasyfikacja ze względu na sposób przetwarzania

Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska

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

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Wprowadzenie do systemów operacyjnych

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

7. Szeregowanie procesów w systemie QNX6 Neutrino

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

Transkrypt:

KRÓTKO O HISTORII RT-LINUX STAN PRAWNY - NIEFORTUNNY PATENT INNE ROZWIĄZANIA ZGODNOŚĆ Z POSIX (1003.13 PSE51 (minimal realtime system profile) KLUCZOWE ELEMENTY KONCEPCJI RTL WIRTUALNY SYSTEM PRZERWAŃ ALGORYTM SZEREGOWANIA ZADAŃ MECHANIZMY KOMUNIKACJI MIĘDZY PROCESAMI POMIAR CZASU

RTLinux został zaprojektowany w Institute of Mining and Technology of New Mexico w ramach zajęć studenckich prof. Victora YODAIKENa przy współpracy Michaela Barabanova (1997) VxWorks, QNX, VME... Początkowe systemy czasu rzeczywistego były dosyć prymitywnymi systemami wykonawczymi, z ubogą biblioteką podprogramów. Obecnie aplikacje czasu rzeczywistego wymagają rutynowych dostępów do sieci (TCP/IP), grafiki komputerowej,systemu okien itp. usług non-real time. Rada: albo uzupełniać RT OS o te serwisy albo modyfikować jądro standardowego systemu tak by było wywłaszczalne W RTLinux przyjęto takie rozwiązanie, że małe jądro czasu rzeczywistego RTCore kontroluje pracę jądra Linuxa traktując je jako jedno ze swoich zadań o najniższym priorytecie.

WYDZIELENIE PRZETWARZANIA W CZASIE RZECZYWISTYM...

Wszystkie przerwania są przechwytywane przez jądro RTLinux, a przekazywane do obsługi przez Linux'a tylko wtedy, gdy nie wykonuje się żadne zadanie czasu rzeczywistego. RTLinux emuluje Interrupt control hardware (co m.in. minimalizuje zmiany systemu). Kiedy Linux wyłącza przerwania (ulubione zajęcie standardowych systemów operacyjnych) to jadro RTL zapamiętuje i porządkuje przerwania i przekazuje je do jądra Linuxa, gdy nie wykonuje się aktualnie zadanie RT i gdy jądro Linux'a odblokowuje przerwania. Technicznie: zamiast instrukcji cli, sti oraz iret funkcjonują makra: S_CLI, S_STI i S_IRET S_CLI: movl SFIF, $0 zamiast zerować znacznik IF opuszczamy wirtualną flagę ------------------------------------------------------------------------------------------------------------------------ S_STI: sti pushfl pushl $KERNEL_CS pushl $lf S_IRET To makro włącza przerwania, posyła na stos flagi procesora, adres segmentowy jądra i adres powrotu jak przygotowanie do obsługi przerwania.

Macro S_IRET odkłada na stos zawartości rejestrów (ds, eax, edx) ustawia rejestr segmentu danych na rejestr segmentu jądra, aby mieć dostęp do zmiennych globalnych (chodzenie po linie ), przegląda maskę bitową SFREQ w poszukiwaniu oczekujących przerwań. Prawdziwy powrót następuje, gdy już nie ma żadnego oczekującego przerwania. Ponieważ każde przerwanie kończy się przez S_IRET to gwarantuje, że wszystkie zostaną obsłużone. Zadania krytyczne użytkownika wykonywane są w przestrzeni adresowej jądra RTCore, szeregowane przez projektanta jak wiemy. Wszelkie błędy w nich mogą prowadzić do padnięcia systemu. Ale zyskujemy - na szybkim przełączaniu kontekstu (bez zmiany rejestru bazowego ) - na bezpośrednim dzieleniu danych bez komplikacji z komunikacją międzyprocesową Zadania mogą być wykonywane okresowo, zawieszane i budzone z poziomu systemu przerwań.

SCHEDULER jest modułem jądra RTCore. Można go zmieniać, napisać własny... znamy zasady POSIX... Przykład dwóch zadań okresowych: Zad. 1. : okres T1 = 50 ms, czas wykonania (worst case): 25 ms Zad. 2.: okres T2 = 100 ms, czas wykonania (worst case): 40 ms Każde powinno się zakończyć NIE PÓŹNIEJ niż wypada początek następnego okresu! Raczej klęska...

Lepiej Rate Monotonic Scheduling (RMS) krótszy okres zadania wyższy priorytet Znawcy wyliczają wykorzystanie procesora przez zadanie licząc C/T (dla zbioru zadań l liczy się wykorzystanie sumaryczne). Schedulable band ograniczenie szeregowalności. RMS ma to w ok 70%!!! Earliest Deadline First (EDL) to czasem stosowany (obecnie w RTL?) dynamiczny przydział priorytetów pozwala na osiągnięcie 100% schedulable band ale płaci się rachunkiem priorytetów.

No i są jeszcze zadania nieokresowe jak grom z jasnego nieba, asynchroniczne. Slot Shifting lub Stack Stealing - algorytmy próbujące wykorzystywać wolne cykle procesora. DOKŁADNY POMIAR CZASU INTEL 8253/8254 jest na pokładzie każdego PC. Jest programowalny i można generować okresowe lub jednokrotne przerwania po wybranym przedziale czasu. Jeśli RTL_CLOCK_MODE_ONESHOT to np. dla dwóch zadań okresowych o T1=A i T2=B generuje się wpierw przerwanie po A, przeprogramowuje czasomierz (co zabiera czas x) i generuje przerwanie następne po B-A-x tickach. x - dla jedno-procesorowych 80x86 jest dosyć długie więc wprowadzono możliwość wyboru trybu RTL_CLOCK_MODE_PERIODIC

Czekującego KOMUNIKACJA MIĘDZYPROCESOWA - Łącza RT-FIFO - pamięć dzielona Synchronizacja i wzajemne wykluczania - rodzina funkcji pthread_mutex Odwrócenie priorytetów - prymitywne - z procesem o średnim priorytecie PRIORITY INHERITANCE dziedziczenie priorytetów (zadanie o nisklim priorytecie dziedziczy priorytet oczekującego na zasób, jeśli on ma wyższy priorytet). To ma uniemożliwić wkadnięcia się procesu o pośrednim priorytecie. ALE! Możliwe zakleszczenie gdy zadanie dziedziczące zażąda innego zasobu będącego w posiadaniu właśnie oczekującego zadania z priorytetem, który został oddziedziczony! CEILING SEMAPHORE PROTOCOL zasób ma stowarzyszony semafor z pewną charaktrerystyczną liczbą (pułap). Zadanie otrzymując zasób ustawia priorytet równy pułapowi (tego zasobu) i utrzymuje go aż do zwolnienia zasobu.

STACK RESOURCE POLICY (SRP) Zadanie może się wykonywać jeśli jego priorytet jest najwyższy spośród zadań aktywnych (gotowych do wykonania) i gdy jego poziom wywłaszczania jest większy od pułapu systemowego. (Poziom wywłaszczania Pi = 1/ Di, gdzie Di jest terminem zakończenia zadania.) Według SRP zadanie wykonywane NIE zostanie zablokowane do momentu zakończenia o ile zadanie o wyższym priorytecie nie doprowadzi do jego wywłaszczenia.