RTLINUX/BSD JAKO SYSTEM OPERACYJNY CZASU RZECZYWISTEGO



Podobne dokumenty
System do kontroli i analizy wydawanych posiłków

Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD

Harmonogramowanie projektów Zarządzanie czasem

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, Warszawa

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

System kontroli wersji SVN

Komputer i urządzenia z nim współpracujące

GENERALNY INSPEKTOR OCHRONY DANYCH OSOBOWYCH

Wykład 2. Budowa komputera. W teorii i w praktyce

Załącznik nr 8. Warunki i obsługa gwarancyjna

Systemy mikroprocesorowe - projekt

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

Praca na wielu bazach danych część 2. (Wersja 8.1)

Moduł. Rama 2D suplement do wersji Konstruktora 4.6

ZP/341/52 /09 Zakopane dnia 17 września 2009 r. W s z y s c y

Instrukcja programu PControl Powiadowmienia.

Ewidencjonowanie nieruchomości. W Sejmie oceniają działania starostów i prezydentów

SPIS TRE CI. Gospodarka inwestycyjna STRONA

INSTRUKCJA OBSŁUGI URZĄDZENIA: HC8201

Bazy danych. Andrzej Łachwa, UJ, /15

Zamawiający potwierdza, że zapis ten należy rozumieć jako przeprowadzenie audytu z usług Inżyniera.

PROCEDURA OCENY RYZYKA ZAWODOWEGO. w Urzędzie Gminy Mściwojów

Instrukcja postępowania w celu podłączenia do PLI CBD z uwzględnieniem modernizacji systemu w ramach projektu PLI CBD2

Elementy i funkcjonalno

InsERT GT Własne COM 1.0

EGZAMIN POTWIERDZAJ CY KWALIFIKACJE W ZAWODZIE Rok 2014 CZ PRAKTYCZNA

Chmura obliczeniowa. do przechowywania plików online. Anna Walkowiak CEN Koszalin

DANE UCZESTNIKÓW PROJEKTÓW (PRACOWNIKÓW INSTYTUCJI), KTÓRZY OTRZYMUJĄ WSPARCIE W RAMACH EFS

WYMAGANIA EDUKACYJNE SPOSOBY SPRAWDZANIA POSTĘPÓW UCZNIÓW WARUNKI I TRYB UZYSKANIA WYŻSZEJ NIŻ PRZEWIDYWANA OCENY ŚRÓDROCZNEJ I ROCZNEJ

Regulamin korzystania z serwisu internetowego pn. Serwis Sądowy - Sprawny Sąd

Nazwa zawodu: Operator obrabiarek. Opis zawodu:

Postanowienia ogólne. Usługodawcy oraz prawa do Witryn internetowych lub Aplikacji internetowych

Edycja geometrii w Solid Edge ST

GENERALNY INSPEKTOR OCHRONY DANYCH OSOBOWYCH

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.

OPIS PRZEDMIOTU ZAMÓWIENIA. wymagane minimalne parametry techniczne:

INFORMACJA PRASOWA. Cel: zakup komputerów, budowa sieci LAN, zakup i wdroŝenie aplikacji aktualnie dostępnych na rynku.

Audyt SEO. Elementy oraz proces przygotowania audytu. strona

Umowa o powierzanie przetwarzania danych osobowych

OPIS PRZEDMIOTU ZAMÓWIENIA

Sieci komputerowe cel

Automatyzacja procesu publikowania w bibliotece cyfrowej

REGULAMIN ZADANIA KONKURENCJI CASE STUDY V OGOLNOPOLSKIEGO KONKURSU BEST EGINEERING COMPETITION 2011

REGULAMIN GMINNEGO ZESPOŁU INTERDYSCYPLINARNEGO d.s. PRZECIWDZIAŁANIA PRZEMOCY W RODZINIE. 1 Postanowienia ogólne

JADWIGA SKIMINA PUBLIKACJA NA TEMAT: NAUKA MS. WORD 2000 W KLASIE IV

WNIOSEK O WYDANIE DECYZJI O ŚRODOWISKOWYCH UWARUNKOWANIACH ZGODY NA REALIZACJĘ PRZEDSIĘWZIĘCIA*

Lublin, Zapytanie ofertowe

P 0max. P max. = P max = 0; 9 20 = 18 W. U 2 0max. U 0max = q P 0max = p 18 2 = 6 V. D = T = U 0 = D E ; = 6

Instrukcja instalacji

System plików NTFS. Charakterystyka systemu plików NTFS

Architektura komputerów

Projektowanie bazy danych

Warstwy systemu Windows 2000

Zarządzanie Zasobami by CTI. Instrukcja

PROGRAM ZAPEWNIENIA I POPRAWY JAKOŚCI AUDYTU WEWNĘTRZNEGO

API transakcyjne BitMarket.pl

KRYTERIA DOSTĘPU. Działanie 2.1,,E-usługi dla Mazowsza (typ projektu: e-administracja, e-zdrowie)

PRZETWARZANIE DANYCH OSOBOWYCH

PROCEDURA ADMINISTROWANIA ORAZ USUWANIA

Wpływ jakości świadczonych usług na doświadczenia abonenta w cyfrowym domu. Janusz Kilon

Sieć komputerowa grupa komputerów lub innych urządzeo połączonych ze sobą w celu wymiany danych lub współdzielenia różnych zasobów, na przykład:

Pomiar mocy pobieranej przez napędy pamięci zewnętrznych komputera. Piotr Jacoń K-2 I PRACOWNIA FIZYCZNA

PODRĘCZNIK UŻYTKOWNIKA

Generowanie kodów NC w środowisku Autodesk Inventor 2014

PERSON Kraków

Istotne Postanowienia Umowy

VinCent Office. Moduł Drukarki Fiskalnej

GENERALNY INSPEKTOR OCHRONY DANYCH OSOBOWYCH

Załącznik nr 1 do projektu wzoru umowy - szczegółowe zasady realizacji i odbioru usług

W Y B R A N E P R O B L E M Y I N Y N I E R S K I E

Regulator typu P posiada liniow zale no sygnału wyj ciowego (y) od wej ciowego (PV).

REGULAMIN ZAWIERANIA I WYKONYWANIA TERMINOWYCH TRANSAKCJI WALUTOWYCH

Oświęcim, dnia 26 listopada 2013r. Państwowe Muzeum Auschwitz-Birkenau w Oświęcimiu ul. Więźniów Oświęcimia Oświęcim

MINISTERSTWO PRACY I POLITYKI SPOŁECZNEJ

Oprogramowanie FonTel służy do prezentacji nagranych rozmów oraz zarządzania rejestratorami ( zapoznaj się z rodziną rejestratorów FonTel ).

Budowa systemów komputerowych

Polska-Warszawa: Usługi skanowania 2016/S

POWIATOWY URZĄD PRACY W LIDZBARKU WARMIŃSKIM

IZBA CELNA WE WROCŁAWIU Wrocław, dnia 30 kwietnia 2012 r. Ul. Hercena Wrocław

Archiwum Prac Dyplomowych

OPIS TECHNICZNY DO PROJEKTU BUDOWLANEGO SIŁOWNI TERENOWEJ

VII Międzynarodowa Konferencja Naukowo-Techniczna ( Krynica Zdrój, maja 2006r )

Specyfikacja usługi CCIE R&S

Opis obsługi systemu Ognivo2 w aplikacji Komornik SQL-VAT

Adres strony internetowej, na której Zamawiający udostępnia Specyfikację Istotnych Warunków Zamówienia: krobia.biuletyn.net

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

Energooszczędne oświetlenie. Maciej Lewandowski Członek Polskiego Komitetu Oświetleniowego, THORN

linkprog programator USB

Zmiany przepisów ustawy -Karta Nauczyciela. Warszawa, kwiecień 2013

NOWE I ISTNIEJĄCE SYSTEMY ADMINISTRACJI PUBLICZNEJ W ŚWIETLE ROZPORZĄDZENIA KRAJOWYCH RAM INTEROPERACYJNOŚCI

POLITYKA BEZPIECZEŃSTWA OCHRONY DANYCH OSOBOWYCH W PRAKTYCE LEKARSKIEJ/DENTYSTYCZNEJ.... (nazwa praktyki) wydana w dniu... przez...

Opis przedmiotu zamówienia

Generalnie przeznaczony jest do obsługi systemów klimatyzacyjnych i chłodniczych.

Stanowisko Rzecznika Finansowego i Prezesa Urzędu Ochrony Konkurencji i Konsumentów w sprawie interpretacji art. 49 ustawy o kredycie konsumenckim

KONCEPCJA NAUCZANIA PRZEDMIOTU RACHUNKOWOŚĆ SKOMPUTERYZOWANA" NA WYDZIALE ZARZĄDZANIA UNIWERSYTETU GDAŃSKIEGO

PROGRAMOWANIE OBIEKTOWE W C++ - cz 1. Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory.

zawarta w dniu.. w Warszawie pomiędzy:

Projekt U S T A W A. z dnia

RZECZPOSPOLITA POLSKA. Prezydent Miasta na Prawach Powiatu Zarząd Powiatu. wszystkie

Transkrypt:

RTLINUX/BSD JAKO SYSTEM OPERACYJNY CZASU RZECZYWISTEGO Kamil Mielcarek Instytut Informatyki i Elektroniki, Uniwersytet Zielonogórski 65-246 Zielona Góra, ul. Podgórna 50 e-mail: K.Mielcareko@iie.uz.zgora.pl STRESZCZENIE Wprowadzenie do systemów czasu rzeczywistego z uwzgl dnieniem systemów opartych na j drze Linuxa i BSD. Systemy RTLinux/BSD mog by u ywane jako systemy RT w rozwi zaniach generowanych w ramach automatycznego współprojektowania sprz towoprogramowego. Ich znajomo mo e zwi kszy mo liwo ci tworzonego automatycznie układu. 1. WPROWADZENIE Rosn ce zainteresowanie oprogramowaniem Open Source w ostatnim czasie skłania do zapoznania si z systemami czasu rzeczywistego realizowanymi na ogólnodost pnych i wolnych od opłat rozwi zaniach. Prym wiod tu systemy oparte o j dro systemu Linux oraz systemy z Berkeley Software Distribution. Dost pno rozwi za predestynuje systemy do masowych zastosowa nawet w bardzo wymagaj cych sytuacjach. Zasadno wyboru mo na poprze analizuj c zachowanie rynku, gdzie pojawiaj si komercyjne zastosowania systemów opracowanych na bazie j dra Linuksa. Mankamentem mo e by to, e dedykowane systemy czasu rzeczywistego (ang. real-time system) do cz sto obj te s do wysokimi opłatami. Firma FSM Labs oferuje kilka wersji systemu RTLinux (podstawowa jest bezpłatna, oparta na licencji GPL) zale nie od wymaga u ytkownika (jednocze nie oferuj c te same rozwi zania dla systemów BSD). RTLinux jest oczywi cie systemem operacyjnym (a dokładniej RTLinux + Linux), ale to wła nie system operacyjny jest "sercem" systemu czasu rzeczywistego i to głównie od niego zale y spełnianie wymogów czasowych. System RTLinux był tworzony z my l o prostocie, spełniaj c jednocze nie bardzo restrykcyjne (twarde) wymogi systemu czasu rzeczywistego. Jak twierdzi sam twórca - Victor Yodaiken: RTLinux daje wewn trzne rodowisko pthreads, dzi ki niemu mo liwe było zintegrowanie POSIXowych w tków i wywoła sygnałów z istniej cym zbiorem operacji. Dla programistów zaprzyja nionych z pthreads i POSIXowym programowaniem nie b dzie trudne nauczenie si, jak pisa programy RT. Nie powinno by te trudne przerobienie sterownika Linux aby pracował z RTLinux. Chodziło o to, eby nie zmusza u ytkowników do programowania [j dra] Linuksa. Programista nie musi nawet zna struktury j dra Linuksa, aby pisa programy real-time dla RTLinuksa. 137

Gigant z Redmond (Microsoft) nie pozostaj c w tyle oferuje dwa systemy operacyjne "realtime". Jest to Windows CE.NET oraz Windows XP Embedded, gdzie Windows CE.NET jest twardym systemem operacyjnym czasu rzeczywistego, natomiast Windows XP Embedded nie jest zasadniczo systemem operacyjnym czasu rzeczywistego, ale u ytkownik mo e łatwo doda do niego mo liwo ci "real-time" optymalizuj c Windows XP Embedded tak, aby spełniał on wymogi real-time, u ywaj c dost pnych rozwi za firm trzecich. Na rynku znajduj si te inne alternatywy dla RTLinuksa, jak np. KURT (GPL) czy QNX oraz komercyjne - przewy szaj ce mo liwo ci systemu z FSM Labs. Wielu u ytkowników jednak wybiera wła nie ten system ze wzgl du na cen i łatwo obsługi. Systemy czasu rzeczywistego powszechnie stosuje si w dziedzinach takich jak: aeronautyka, multimedia, telekomunikacja, astronomia, robotyka, przemysł, medycyna, kontrola i pomiary 2. PODSTAWY SYSTEMÓW CZASU RZECZYWISTEGO Przyst puj c do omawiania zagadnie systemów czasu rzeczywistego nale y pami ta o istniej cej ró nicy poj system i system operacyjny czasu rzeczywistego. System czasu rzeczywistego (ang. real-time system - zgodnie z IEEE/ANSI) to system komputerowy, w którym obliczenia s wykonywane współbie nie z procesem zewn trznym (otoczenie) w celu sterowania, nadzorowania lub terminowego reagowania na zdarzenia (wyst puj cego w otoczeniu). System operacyjny czasu rzeczywistego (ang. real-time operating system) - jest tylko jednym z elementów kompletnego systemu. Musi on dostarcza odpowiedniej funkcjonalno ci, aby cały system mógł sprosta stawianym wymaganiom. Definicja systemu czasu rzeczywistego cz sto uzupełniana jest przez sformułowanie po danych cech systemu, do których nale : ci gło działania - system czasu rzeczywistego powinien pracowa bez przerw zale no od otoczenia - system jest uzale niony od zdarze i danych generowanych przez proces zewn trzny (otoczenie) współbie no - otoczenie systemu składa si z obiektów działaj cych współbie nie, generuj cych zdarzenia lub dane wymagaj ce obsługi przewidywalno - system musi zachowywa si deterministyczne reaguj c na zdarzenie według okre lonych wymaga punktualno - odpowied systemu musi by dostarczona do otoczenia w odpowiednich momentach czasowych Systemy czasu rzeczywistego ze wzgl du na limity czasowe mo na podzieli na dwie zasadnicze grupy: 138

Rygorystyczny (twardy) system czasu rzeczywistego - (ang. hard real-time system) gwarantuje terminowe (przed upływem czasu lub w dokładnie wyznaczonych chwilach) wypełnianie krytycznych zada. System zawiedzie, je li który z limitów czasowych nie zostanie dotrzymany. Mi kki system czasu rzeczywistego - (ang. soft real-time system) mo e tolerowa zauwa alne odchylenia czasowe w usługach dostarczanych przez system operacyjny, takich jak przerwania, taktowanie czy planowanie. Dopuszcza si tak e istnienie systemów mieszanych nazywanych solidnymi (ang. firm realtime system), gdzie poszczególne wymagania czasu rzeczywistego mog mie zarówno charakter twardy, jak i mi kki. 3. ARCHITEKTURA SYSTEMU RTLINUX Istniej dwa podej cia do zapewnienia działania systemu Linux: poprzez ulepszenie wywłaszczania j dra systemu oraz przez dodanie nowej warstwy poni ej j dra z zapewnieniem pełnej kontroli przerwa i mo liwo ci procesora. Oba podej cia (odpowiednio) znane s pod angielskimi nazwami preemption improvement" oraz "interrupt abstraction". W systemie zastosowano drug z metod, gdzie RTLinux dodaje warstw wirtualnego sprz tu mi dzy standardowym j drem Linuksa a rzeczywistymi urz dzeniami (rys. 1). RTLinux implementuje kompletny i przewidywalny system operacyjny czasu rzeczywistego bez interfejsu z Linuksa. W tki s wykonywane bezpo rednio przez z góry narzucony harmonogram. J dro Linuksa i wszystkie normalne procesy s zarz dzane przez proces nadrz dny (RTLinux sheduler) jako zadanie tła. Dzi ki temu uzyskano mo liwo uruchomienia systemu ogólnego przeznaczenia w małym i przewidywalnym systemie operacyjnym czasu rzeczywistego. Dało to mo liwo uruchomienia kodu Linuksa lub np. systemów z rodziny BSD (w zale no ci od wersji systemu z FSM Labs). Uzyskanie pełnej kontroli przez wirtualizacj urz dze uzyskano poprzez trzy podstawowe modyfikacje. Warstwy RTLinuxa przejmuj wszystkie przerwania sprz towe, przerwania nie kontrolowane przez w tki RT s przekierowywane do systemu Linux. RTlinux przejmuje równie kontrol nad zegarem sprz towym implementuj c zegar wirtualny dost pny dla zwykłego j dra systemu. Ostatni modyfikacj jest podmiana wywoła cli oraz sti (wł czanie i wył czanie flagi przerwa ) z j dra Linuksa, aby unikn rzeczywistego wył czenia na rzecz odpowiednika wirtualnego. Umieszczenie rodowiska wykonawczego poni ej j dra Linuksa powoduje, e nie jest mo liwe u ywanie jego usług z uwagi na mo liwo wyst pienia blokady. Rozwi zaniem jest podział systemu na dwie cz ci i wykonanie niezale nie fragmentu odpowiedzialnego za rygorystyczny i mi kki system czasu rzeczywistego. Daje to mo liwo uzyskania rygorystycznego systemu czasu rzeczywistego b d cego jednocze nie typowym systemem. 139

Aplikacje glibc x11 x11 pthreads wywołania systemowe Linux sterowniki zadanie RT #2 zadanie RT #1 maszyna wirtualna pthreads API RTLinux scheduler sprz t sprz t Rys. 1. Architektura systemu RTLinux maszyna rzeczywista Poni szy przykład prezentuje sposób komunikacji mi dzy programami system RT a programami uruchomionymi w systemie Linux. Przykład składa si z dwóch programów: pierwszy jest to cze RT, maj ca za zadanie zapełni kolejki FIFO tak wielk ilo ci danych jak to jest mo liwe, druga cz uruchamiana z poziomu zwykłego systemu odczytuje dane. Do kompilacji programu potrzebny jest plik make rtl.mk obecny w katalogu z kodem ródłowym. Do poprawnego uruchomienia niezb dne jest wystartowanie j dra RTLinux oraz obecno ci modułów rtl_time, rtl_sched, rtl_posixio, rtl_fifo. Kolejno post powania (wykonanie jako root): modprobe rtl_fifo Weryfikacja czy wszystkie moduły zostały załadowane: lsmod Kompilacja programu: gcc -o read read.c Uruchomienie programów: insmod fifo.o;./read Zatrzymanie programów czytaj cego i zapisuj cego: Ctrl+c, rmmod fifo #include <rtl.h> #include <rtl_sync.h> #include <time.h> #include <rtl_fifo.h> #define BUFSIZE 1024 char buf[bufsize]; fifo.c - cz RT Makefile all: fifo.o include rtl.mk clean: rm -f *.o 140

pthread_t thread; void * start_routine(void *arg) struct sched_param p; int status; p.sched_priority = 1; pthread_setschedparam(pthread_self(), SCHED_FIFO, &p); pthread_make_periodic_np(pthread_self(),gethrtime(),10000000); //10ms while(1) status = rtf_put(0, buf, 1024); //zapis tak cz sto jak to mo liwe if (status <= 0) //1kB danych do rt_fifo pthread_wait_np(); return 0; //je li fifo pełne: czekaj 10ms int init_module(void) rtf_create(0, 1024*1024); //stworzenie rt fifo o rozmiarze 1MB return pthread_create (&thread, NULL, start_routine, 0); void cleanup_module(void) rtf_destroy(0); pthread_delete_np (thread); #include <stdio.h> #include <fcntl.h> #define BUFSIZE 1024 char buf[bufsize]; read.c - cz odbiorcza int main() int fd0; int n, c, d; c = d = 0; if ((fd0 = open("/dev/rtf0", O_RDONLY)) < 0) fprintf(stderr, "Error opening /dev/rtf0\n"); exit(1); while (1 == 1) n = read(fd0, buf, BUFSIZE); c++; if (c == 10000) printf("odczyt 10000 * 1024 bajtow z koleki fifo - "); c = 0; d++; printf("nr. %d\n", d); 141

Tab. 1. Wyniki testu przeprowadzone na przykładowym programie Processor Memory (RAM) przepustowo MB/s Pentium II / 300 MHz 64 MB 69 486 DX2 / 66MHz 32 MB 6.5 W systemach czasu rzeczywistego czas jest liczony z dokładno ci do mikrosekund (µs). W praktyce np. pesymistyczne opó nienie obsługi przerwania przez RTLinux na komputerze PC 486/33MHz plasuje si poni ej 30 µs. Taktowanie 33MHz to ok. 1000 taktów na 30 µs - jest to bardzo bliskie limitu sprz towego. Przy wyznaczaniu limitów czasowych mamy na my li dwie rzeczy: opó nienia obsługi przerwa sprz towych (tzn. czas od momentu wyst pienia zdarzenia na urz dzeniu do pocz tku jego obsługi przez sterownik) oraz wahania planisty (ang. scheduler jitter). Proces czasu rzeczywistego mo e by uruchamiany jako odpowied na przerwanie sprz towe w okre lonym wcze niej momencie lub te cyklicznie, w stałych odst pach czasu (co niejako odpowiada reakcji na przerwania sprz towego zegara czasu rzeczywistego). Wszelkiego rodzaju pami pomocnicza jest na ogół bardzo mała albo nie wyst puje wcale. Wszystkie dane s przechowywane w pami ci o krótkim czasie dost pu lub w pami ci ROM. Systemy czasu rzeczywistego nie maj równie wi kszo ci cech nowoczesnych systemów operacyjnych, które oddalaj u ytkownika od sprz tu, zwi kszaj c niepewno odno nie ilo ci czasu zu ywanego przez operacje. Na przykład prawie nie spotyka si w systemach czasu rzeczywistego pami ci wirtualnej. Rosn cy kr g zastosowa systemów czasu rzeczywistego o łagodnych wymaganiach na przetwarzanie w czasie rzeczywistym powoduje, e wi kszo współczesnych systemów operacyjnych, ł cznie z przewa aj c cz ci wersji systemu UNIX, czyni zado wymaganiom mi kkich systemów czasu rzeczywistego. LITERATURA [1] ródła FSM Labs. Inc., http://fsmlabs.com [2] M. Holler: Przykłady programów testowych systemu czasu rzeczywistego RTLinux, http://midas.psi.ch/rtlinux [3] K.Lal, T.Rak, K.Orkisz: RTLinux - system czasu rzeczywistego, Wyd. Helion 2003 [4] Preprints of 27 th IFAC/IFIP/IEEE Workshop on Real-time Programming WRTP 03, University of Zielona Góra [5] V. Yodaiken, C. Dougan, M. Barabanov: RTLinux/RTCore dual kernel real-time operating system, FSMLabs Inc. [6] K. Sacha: Systemy czasu rzeczywistego, Oficyna wydawnicza Politechniki Warszawskiej, Warszawa, 1999 142