RTLinux_system_czasu_rzeczywistego_rtllin.pdf

(261 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
RTLinux – system
czasu rzeczywistego
Autorzy: Kazimierz Lal, Tomasz Rak, Krzysztof Orkisz
ISBN: 83-7197-898-7
Format: B5, stron: 116
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Systemy czasu rzeczywistego stanowi¹ specyficzn¹, ale bardzo wa¿n¹ dziedzinê
wspó³czesnej informatyki. Z³o¿ono æ samego przetwarzania w czasie rzeczywistym
oraz fakt, ¿e oprogramowanie czasu rzeczywistego jest implementowane najczê ciej
w niewidocznych, najni¿szych warstwach systemów informatycznych, sprawia, ¿e te
elementy s¹ ukryte przed przeciêtnymi u¿ytkownikami, a wiedza na ich temat jest
niewielka i trudno dostêpna.
Typowymi i najliczniejszymi przedstawicielami systemów czasu rzeczywistego s¹
systemy sterowania procesów przemys³owych, czêsto nale¿¹ce do klasy systemów
okre lanych jako wbudowane. Ich zadaniem jest sterowanie liniami technologicznymi,
obrabiarkami, robotami, uk³adami napêdowymi itp. W ¿yciu codziennym systemy te
stosowane s¹ stosowane w nowoczesnych aparatach fotograficznych do okre lania
parametrów ekspozycji, w samochodach do sterowania bezpo rednim wtryskiem
paliwa oraz w osobistych komputerach kieszonkowych.
Ksi¹¿ka opisuje RTLinux, darmowy system operacyjny czasu rzeczywistego oparty na
Linuksie. Nowoczesna architektura i szeroki wybór platform, na których pracuje, czyni
go interesuj¹cym dla wszystkich osób potrzebuj¹cych takiego systemu. W ksi¹¿ce
znajdziesz opisane:
• Architekturê Linuxa i modyfikacje wprowadzone w systemie RTLinux
• Instalacjê i konfiguracjê RTLinuxa
• Tworzenie aplikacji czasu rzeczywistego
• Prosty system pomiarowy czasu rzeczywistego
Uzupe³nieniem ksi¹¿ki s¹ dodatki opisuj¹ce dok³adnie pe³n¹ listê funkcji
implementowanych przez RTLinux, a tak¿e przyk³ady ich praktycznego wykorzystania.
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Spis treści
Wstęp ............................................................................................... 5
Rozdział 1. Linux a czas rzeczywisty .................................................................. 11
Jądro systemu ....................................................................................................................11
Szeregowanie procesów ....................................................................................................12
Rozdzielczość szeregowania .............................................................................................12
Wywołania systemowe......................................................................................................13
Przerwania sprzętowe........................................................................................................13
Pamięć wirtualna ...............................................................................................................13
Optymalizacja wykorzystania zasobów systemowych .....................................................14
Rozdział 2. RTLinux ........................................................................................... 15
Podstawowe zało enia.......................................................................................................15
Architektura systemu.........................................................................................................15
Wirtualny system przerwań...............................................................................................17
Zadania czasu rzeczywistego ............................................................................................18
Szeregowanie zadań ..........................................................................................................19
Odmierzanie czasu ............................................................................................................21
Komunikacja międzyprocesowa .......................................................................................23
Kolejki czasu rzeczywistego.......................................................................................23
Pamięć dzielona ..........................................................................................................24
Synchronizacja i wzajemne wykluczanie ...................................................................24
Rozdział 3. Instalacja i konfiguracja systemu RTLinux ........................................ 27
Pakiet.................................................................................................................................27
Historia........................................................................................................................27
Autorzy .......................................................................................................................28
Licencja.......................................................................................................................29
Zawartość....................................................................................................................30
Mini-RTL....................................................................................................................31
Przebieg instalacji .............................................................................................................32
Wybór dystrybucji ......................................................................................................32
Wymagania sprzętowe ................................................................................................33
Wymagania dla środowiska programistycznego ........................................................34
Źródła pakietów ..........................................................................................................36
Przebieg instalacji .......................................................................................................37
Kompilacja jądra ...............................................................................................................38
Konfiguracja i kompilacja RTLinuksa..............................................................................40
4
RTLinux — system czasu rzeczywistego
Moduły czasu rzeczywistego ............................................................................................43
Uruchamianie modułów systemowych .......................................................................43
Uruchamianie modułów czasu rzeczywistego u ytkownika ......................................47
Rozdział 4. Aplikacje czasu rzeczywistego ........................................................... 49
Standard POSIX ................................................................................................................49
Struktura systemu RT-Linux.............................................................................................54
Źródła pomocy przy programowaniu zadań czasu rzeczywistego .............................56
Kompilacja modułów ........................................................................................................57
Przykładowe problemy spotykane w aplikacjach RTLinuksa ..........................................57
Aplikacja „Hello World!” ...........................................................................................57
Zadania czasu rzeczywistego......................................................................................59
Kolejki czasu rzeczywistego.......................................................................................60
Obsługa przerwań systemowych.................................................................................63
Obsługa sygnałów czasu rzeczywistego w procesach Linuksa ..................................64
Zegar i funkcje konwersji czasu .................................................................................66
Pamięć dzielona ..........................................................................................................68
Mechanizmy synchronizacji międzyzadaniowej ........................................................69
Rozdział 5. Prosty system pomiarowy czasu rzeczywistego ................................. 73
Multimetr METEX 3650CR — dane techniczne..............................................................73
Komunikacja z multimetrem.............................................................................................74
Sterownik portu szeregowego ...........................................................................................75
Moduł obsługi multimetru.................................................................................................78
Uwagi końcowe.................................................................................................................85
Rozdział 6. Podsumowanie ................................................................................ 87
Dodatek A Pełna lista funkcji implementowanych przez system RTLinux............. 89
Funkcje charakterystyczne dla systemu ............................................................................89
Podzbiór funkcji interfejsu POSIX, implementowany przez wersję 3.1...........................91
Opcjonalne funkcje POSIX zale ne od konfiguracji ........................................................93
Zmienne warunkowe POSIX ............................................................................................93
Semafory POSIX...............................................................................................................93
Funkcje o ograniczonym zakresie u ywania ........................................................................94
Dodatek B Przykładowe programy z wykorzystaniem API systemu RTLinux ......... 95
Przechwytywanie przerwań...............................................................................................95
Sygnały czasu rzeczywistego w procesach Linuksa .........................................................97
Dodatek C Architektura i386, a wielozadaniowe systemy operacyjne ................. 99
Zarządzanie pamięcią w trybie chronionym .....................................................................99
Segmentacja ................................................................................................................99
Stronicowanie (pamięć wirtualna) ............................................................................101
Ochrona ...........................................................................................................................102
Przerwania i obsługa wyjątków.......................................................................................103
Zarządzanie zadaniami....................................................................................................105
Bibliografia .................................................................................... 109
Skorowidz...................................................................................... 111
Rozdział 2.
RTLinux
Podstawowe założenia
Dosyć oczywistym rozwiązaniem, eliminującym wcześniej wymienione wady, wydaje
się być modyfikacja jądra Linuksa. Taką drogę właśnie wybrali twórcy systemu KURT
(http://www.ittc.ku.edu/kurt/). Konieczne zmiany to między innymi: wprowadzenie wy-
właszczającego szeregowania procesów o stałym priorytecie, zwiększenie rozdzielczości
szeregowania i wprowadzenie zegara wy szej rozdzielczości. Osiągnięty kompromis
pozwolił na stworzenie systemu o łagodnych (ang.
firm)
ograniczeniach czasowych.
Całkowicie inną drogę do osiągnięcia cech systemu operacyjnego (ale o twardych ograni-
czeniach czasowych — ang.
hard real-time operating system)
wybrali twórcy RTLinuksa
[2, 3]. Inspiracją w tym wypadku była architektura eksperymentalnego systemu MERT,
zbudowanego przez badaczy z Bell Labs w latach siedemdziesiątych. W zamierzeniach
system miał mieć mo liwość uruchamiania zarówno aplikacji czasu rzeczywistego,
jak i zwykłych programów. Intencją projektantów systemu MERT było stworzyć nie
jeden system operacyjny, który wspiera obydwa typy przetwarzania, lecz sprawić, aby
system czasu rzeczywistego i system ogólnego przeznaczenia współistniały razem.
Twierdzili oni, e
… dostępność wyrafinowanego systemu ogólnego przeznaczenia na
tym samym komputerze, co system czasu rzeczywistego, dostarcza potę nego narzędzia,
które mo e być wykorzystane w projektach interfejsu człowiek-maszyna dla aplikacji
czasu rzeczywistego...
[1].
Architektura systemu
Bazując na ideach systemu MERT — RTLinux oddziela mechanizmy systemu operacyj-
nego czasu rzeczywistego od systemu operacyjnego ogólnego zastosowania. RTLinux
działa traktując zwykłe jądro Linuksa jako zadanie pod kontrolą niewielkiego i prostego
systemu operacyjnego czasu rzeczywistego. W istocie, Linux jest zadaniem tła (ang.
idle task)
dla RTLinuksa, wykonywanym jedynie wtedy, gdy adne z zadań czasu rze-
czywistego nie ubiega się o procesor. Z zało enia zadanie Linuksa nigdy nie mo e zablo-
16
RTLinux — system czasu rzeczywistego
kować przerwań i zapobiec wywłaszczeniu siebie. Technicznym kluczem do osiągnięcia
tego jest dodanie programowej warstwy emulującej sprzętowy mechanizm kontroli prze-
rwań. Linux nigdy nie mo e zablokować przerwań sprzętowych. Kiedy podejmuje taką
próbę, część czasu rzeczywistego przechwytuje ten fakt, zaznacza odpowiednio i oddaje
sterowanie z powrotem do jądra Linuksa. Niezale nie od trybu, Linuksowi nie pozwala
się na zwiększenie opóźnienia odpowiedzi na przerwanie czasu rzeczywistego. Kiedy zo-
staje zgłoszone przerwanie, jądro RTLinuksa przechwytuje je i decyduje, co z nim zrobić.
Jeśli aktualnie istnieje procedura obsługi przerwania, pochodząca z zadania czasu rze-
czywistego — zostaje wywołana. Kiedy przerwanie jest obsługiwane przez Linuksa (lub
współdzielone z nim), jest oznaczane jako oczekujące. Po wykryciu próby włączenia
przerwań przez jądro Linuksa wszystkie oczekujące przerwania są emulowane i wywo-
ływane są odpowiednie procedury obsługi.
Bez znaczenia jest to, w jakim trybie działa Linux. W trybie u ytkownika, w trybie
systemowym czy nawet w sekcji krytycznej jądra, RTLinux jest w stanie zareagować na
przychodzące przerwania. Techniczne aspekty dyskutowanych rozwiązań poddane są
szczegółowej analizie w podrozdziale „Wirtualny system przerwań”.
RTLinux separuje mechanizmy jądra czasu rzeczywistego i mechanizmy jądra zwykłego
systemu (rysunek 2.1). Tak więc ka dy z osobna mo e być optymalizowany niezale nie.
Jest tak zaprojektowany, e wyeliminowane są sytuacje, w których musi czekać na zwol-
nienie jakichkolwiek zasobów przez Linuksa. RTLinux nie alokuje pamięci, nie dzieli
sekcji krytycznych ani nie synchronizuje adnych struktur danych, z wyjątkiem sytuacji
niezbędnych do współdziałania obydwu systemów.
Rysunek 2.1.
Architektura systemu
RTLinux [21]
Mechanizmy komunikacyjne u ywane do wymiany danych pomiędzy zwykłymi pro-
cesami a zadaniami czasu rzeczywistego są nieblokujące po stronie RTLinuksa. Nigdy nie
występuje przypadek, e zadanie czasu rzeczywistego czeka na zakolejkowanie lub po-
branie danych z kolejki.
Jedną z kluczowych zasad projektowych RTLinuksa jest, aby pozostawić go jak naj-
mniejszym i jak najprostszym. Im mniej spraw do „załatwienia” po stronie RTLinuksa
i im więcej po stronie Linuksa, tym lepiej. Tak więc startem systemu, inicjalizacją urzą-
dzeń, ładowaniem modułów, systemem plików i dynamicznym przydzielaniem zasobów
zajmuje się zwykły system. Zadaniem RTLinuksa jest dostarczenie bezpośredniego
dostępu do sprzętu dla wątków czasu rzeczywistego, szeregowanie, dostarczanie me-
chanizmów odmierzania czasu i technik komunikacji międzyprocesowej.
Zgłoś jeśli naruszono regulamin