Prezentacja systemu RTLinux

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

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

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

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

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

4. Procesy pojęcia podstawowe

Systemy Czasu Rzeczywistego (SCR)

Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

Systemy operacyjne III

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

Systemy operacyjne II

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

Jądro systemu operacyjnego

4. Procesy pojęcia podstawowe

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

Podstawowe zagadnienia

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

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

Wykład 3: Implementacja programów wbudowanych

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

Procesy, wątki i zasoby

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

Przykłady implementacji planowania przydziału procesora

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

Działanie systemu operacyjnego

4. Procesy pojęcia podstawowe

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.2

Planowanie przydziału procesora

dr inż. Jarosław Forenc

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

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

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

Materiały pomocnicze 1

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

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

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.3

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

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

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

1. Etapy rozwoju systemów komputerowych

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

Działanie systemu operacyjnego

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

Real-Time Linux. Wprowadzenie

Działanie systemu operacyjnego

Planowanie przydziału procesora

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

Systemy operacyjne. Paweł Pełczyński

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

PROGRAMOWANIE SYSTEMÓW WBUDOWANYCH

Architektura komputerów

Planowanie przydziału procesora

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

Zarządzanie procesorem

Systemy operacyjne III

Część I - Sterownik przerwań 8259A i zegar/licznik 8253

ARCHITEKTURA PROCESORA,

Sieciowe Systemy Operacyjne

Czujniki obiektowe Sterowniki przemysłowe

Procesy, zasoby i wątki

Działanie systemu operacyjnego

Podstawy Informatyki Systemy operacyjne

Procesy, zasoby i wątki

Procesy, zasoby i wątki

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Przetwornik ADC procesora sygnałowego F/C240 i DAC C240 EVM

1.1 Definicja procesu

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

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

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

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

Monitor maszyn wirtualnych

Metody obsługi zdarzeń

Przerwania, polling, timery - wykład 9

1. Szeregowanie w systemach czasu rzeczywistego

LEKCJA TEMAT: Zasada działania komputera.

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Systemy Czasu Rzeczywistego (SCR)

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

Zarządzanie procesami i wątkami

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Mechanizm przerwań i menadżer zdarzeń procesora sygnałowego F/C240

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

Programowanie w językach asemblera i C

Informatyka. informatyka i nauki komputerowe (computer science)

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

XMEGA. Warsztaty CHIP Rok akademicki 2014/2015

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

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

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

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

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

Wprowadzenie do systemu Minix

Systemy Czasu Rzeczywistego (SCR)

Mikroinformatyka. Wielozadaniowość

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

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Podsumowanie. Klasyfikacja ze względu na. liczbę użytkowników. Klasyfikacja ze względu na. Inne rodzaje systemów operacyjnych. sposób przetwarzania

Q E M U.

Program jest więc strukturą statyczną zapisaną na jakimś nośniku. Natomiast proces jest wykonującym się programem.

Hardware mikrokontrolera X51

Transkrypt:

Prezentacja systemu RTLinux

Podstawowe założenia RTLinux jest system o twardych ograniczeniach czasowych (hard real-time). Inspiracją dla twórców RTLinux a była architektura systemu MERT. W zamierzeniach RTLinux ma mieć możliwość uruchamiania procesów czasu rzeczywistego oraz zwykłych aplikacji. Intencją było stworzenie systemu, w którym system czasu rzeczywistego i system ogólnego przeznaczenia współistnieją razem.

Architektura systemu - RTLinux oddziela mechanizmy systemu operacyjnego czasu rzeczywistego od systemu operacyjnego ogólnego zastosowania. - Zwykłe jądro Linux a działa jako zadanie pod kontrolą systemu operacyjnego czasu rzeczywistego. - RTLinux emuluje mechanizm kontroli przerwań, uniemożliwiając ich blokowanie przez zwykłe jądro linux a. - Zwykły Linux zajmuje się: startem systemu, inicjalizacją urządzeń, ładowaniem modułów, systemem plików i dynamicznym przydzielaniem zasobów. - RTLinux dostarcza bezpośredniego dostępu do sprzętu dla zadań RT, szeregowania zadań RT, mechanizmów odmierzania czasu i technik komunikacji międzyprocesowej.

Architektura systemu RTLinux

Wirtualny system przerwań W RTLinux ie istnieje programowa warstwa emulacji pomiędzy jądrem Linux a a układem kontroli przerwań. Wszystkie wystąpienia instrukcji cli, sti, iret w kodzie jądra są zamienione odpowiednio na makra: S_CLI, S_STI, S_IRET. Dzięki temu RTLinux jest w stanie wykryć próby włączania i wyłączania przerwań w zwykłym jądrze. Mechanizm ten uniemożliwia zablokowanie przerwań sprzętowych przez zwykłe jądro. Po próbie wyłączenia przerwań (wykonaniu makra S_CLI) przerwania obsługiwane przez Linux a są zaznaczane jako oczekujące. Po wykonaniu makra S_STI (włączeniu przerwań) procedury obsługi przerwań oczekujących są wykonywane.

Makro S_CLI Jego wywołanie, zamiast rzeczywistego wyłączenia przerwań, zeruje odpowiednią zmienną w emulatorze przerwań. Fakt wystąpienia przerwania w przypadku gdy zmienna ta jest wyzerowana jest zapamiętywany, natomiast procedura obsługi tego przerwania ustalona przez jądro Linux a nie jest wykonywana. Makro S_STI Jego wywołanie powoduje włączenie przerwań. Przygotowuje ono stos procesora tak jak w przypadku wywołania przerwania, tzn. odkłada na niego flagi procesora, rejestr segmentowy jądra i adres powrotu po czym wywołuje makro S_IRET Makro S_IRET Makro wykonuje całą pracę emulatora przerwań. Przeszukuje zmienną, na której bitowo zapamiętane są oczekujące przerwania. Ustawiony bit powoduje wywołanie odpowiedniej procedury obsługi przerwania w jądrze Linux a. Wykonanie makra S_IRET w tej procedurze powoduje odnalezienie następnego oczekującego przerwania. Po wyczerpaniu listy przerwań oczekujących wykonywana jest instrukcja iret.

Zadania czasu rzeczywistego Zadania czasu rzeczywistego RTLinux a wykorzystują mechanizm modułów ładowalnych. Wykonywane są we wspólnej przestrzeni adresowej (przestrzeni jądra), z maksymalnym poziomem uprzywilejowania i bezpośrednim dostępem do urządzeń. Zaletą takiego rozwiązania jest wzrost szybkości poprzez szybsze przełączanie kontekstu zadań oraz brak narzutu czasowego związanego z przechodzeniem procesora w inny tryb uprzywilejowania. Mechanizm ten umożliwia także bezpośrednią komunikację pomiędzy zadaniami RT poprzez współdzielenie danych. Wadą jest natomiast brak ochrony pamięci co może mieć wpływ na niezawodność systemu.

Szeregowanie zadań w RTLinux ie Scheduler RTLinux a, działający jako odrębny moduł, używa algorytmu szeregowania Priority-Based Rate Monotonic Scheduling Algorithm (RMS). Algorytm ten bazuje na stałych priorytetach zadań wybierając zawsze do wykonania zadanie gotowe o najwyższym priorytecie. Zadaniom nie przydziela się kwantu czasu, tak jak dzieje się to w standardowym schedulerze Linuxa mogą one być wywłaszczone tylko przez zadanie RT o wyższym priorytecie lub same oddać procesor. Zwykłe jądra Linux a, działające jako jedno z zadań RT, ma najniższy priorytet (jest procesem idle) więc wykonywane jest tylko wtedy gdy żadne z pozostałych zadań RT nie ubiega się o procesor. W przeciwieństwie do zwykłego Linux a, RTLinux nie buduje listy zadań gotowych wszystkie trzymane są na jednej liście (w przypadku SMP, jednej dla każdego procesora).

Schemat działania algorytmu szeregowania używanego w RTLinux ie rtl_schedule() { for (każdy proces realtime) wybierz proces o najwyższym priorytecie; if (wybrano proces) { for (każdy wstrzymany proces o wyższym priorytecie niż proces wybrany) wybierz proces, który powinien być wznowiony najwcześniej; if (wybrano wstrzymany proces) ustaw zegar na czas budzenia procesu; } wznów wybrany proces; }

Odmierzanie czasu W RTLinux ie zamiast generowania przerwań zegarowych generowane są przerwania po upływie zadanego czasu (time-out) umożliwia to uzyskanie rozdzielczości czasu na poziomie jednej mikrosekundy. Realizowane jest to poprzez programowanie kontrolera Intel 8254. Sposób ten zapewnia zmniejszenie kosztów stałych związanych z obsługą przerwań zegarowych. RTLinux udostępnia dwa tryby działania zegara: okresowy (RTL_CLOCK_MODE_PERIODIC) i na żądanie (RTL_CLOCK_MODE_ONESHOT). Okresowe przerwania o częstotliwości 100 Hz są emulowane dla zwykłego jądra Linux a. Realizowane jest to poprzez mechanizm przerwań oczekujących.

Komunikacja międzyprocesowa Operacje typu zapis na dysk, wizualizacja danych wykonywane są w RTLinux ie poprzez zwykłe procesy wykonywane w trybie użytkownika, dlatego też niezbędne jest wprowadzenie mechanizmów do komunikacji pomiędzy zadaniami RT a zwykłymi procesami. Niemożliwe jest użycie mechanizmów komunikacji udostępnianych przez standardowe jądro, gdyż może ono być wywłaszczone w dowolnym momencie. RTLinux sam dostarcza kilku mechanizmów komunikacji. Najważniejsze z nich to: kolejki czasu rzeczywistego (RT-FIFOS) oraz pamięć dzielona. Do synchronizacji zadań RT używane są semafory i muteksy.

Kolejki czasu rzeczywistego (RT-FIFO) są to bufory alokowane w przestrzeni jądra. Mogą one być odczytywane i zapisywane zarówno przez zwykłe procesy Linux a jak i przez zadania RT. Kolejki RT- FIFO są jednokierunkowe czyli do uzyskania dwukierunkowego połączenia należy użyć dwóch kolejek. Kolejki istnieją jako urządzenia znakowe w katalogu /dev (/dev/rtf0, /dev/rtf1, /dev/rtf2, itd.). Są one obsługiwane przez osobny moduł RTLinux a. Pamięć dzielona może służyć do wymiany większych ilości danych pomiędzy zadaniami RT i zwykłymi procesami Linux a. Jest to też najszybszy sposób komunikacji pomiędzy zadaniami RT, ze względu na brak zaangażowania systemu w realizację tej techniki.