rtlinux - system czasu rzeczywistego full.pdf

(6943 KB) Pobierz
707941234 UNPDF
IDZ DO
PRZYK£ADOW Y ROZDZIA£
RTLinux – system
SPIS TRECI
czasu rzeczywistego
KATALOG KSI¥¯EK
KATALOG ONLINE
Autorzy: Kazimierz Lal, Tomasz Rak, Krzysztof Orkisz
ISBN: 83-7197-898-7
Format: B5, stron: 116
ZAMÓW DRUKOWANY KATALOG
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
okrelanych 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 okrelania
parametrów ekspozycji, w samochodach do sterowania bezporednim 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.
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
707941234.002.png 707941234.003.png 707941234.004.png 707941234.005.png
Spis treci
Wstp ...............................................................................................5
Rozdział 1. Linux a czas rzeczywisty ..................................................................11
Jdro 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
8ródła pakietów ..........................................................................................................36
Przebieg instalacji.......................................................................................................37
Kompilacja jdra ...............................................................................................................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
8ró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
Zarzdzanie pami"ci w trybie chronionym .....................................................................99
Segmentacja................................................................................................................99
Stronicowanie (pami" wirtualna)............................................................................101
Ochrona...........................................................................................................................102
Przerwania i obsługa wyjtków.......................................................................................103
Zarzdzanie zadaniami....................................................................................................105
Bibliografia....................................................................................109
Skorowidz......................................................................................111
Rozdział 2.
RTLinux
Podstawowe załoenia
Dosy oczywistym rozwizaniem, eliminujcym wczeniej wymienione wady, wydaje
si by modyfikacja jdra Linuksa. Tak drog włanie wybrali twórcy systemu KURT
( http://www.ittc.ku.edu/kurt/ ). Konieczne zmiany to midzy innymi: wprowadzenie wy-
właszczajcego szeregowania procesów o stałym priorytecie, zwikszenie rozdzielczoci
szeregowania i wprowadzenie zegara wy*szej rozdzielczoci. Osignity kompromis
pozwolił na stworzenie systemu o łagodnych (ang. firm ) ograniczeniach czasowych.
Całkowicie inn drog do osignicia 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 siedemdziesitych. 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 … dostpno wyrafinowanego systemu ogólnego przeznaczenia na
tym samym komputerze, co system czasu rzeczywistego, dostarcza pot!nego narzdzia,
które mo!e by wykorzystane w projektach interfejsu człowiek-maszyna dla aplikacji
czasu rzeczywistego... [1].
Architektura systemu
Bazujc na ideach systemu MERT — RTLinux oddziela mechanizmy systemu operacyj-
nego czasu rzeczywistego od systemu operacyjnego ogólnego zastosowania. RTLinux
działa traktujc zwykłe jdro 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 osignicia
tego jest dodanie programowej warstwy emulujcej sprztowy mechanizm kontroli prze-
rwa:. Linux nigdy nie mo*e zablokowa przerwa: sprztowych. Kiedy podejmuje tak
prób, cz czasu rzeczywistego przechwytuje ten fakt, zaznacza odpowiednio i oddaje
sterowanie z powrotem do jdra Linuksa. Niezale*nie od trybu, Linuksowi nie pozwala
si na zwikszenie opó=nienia odpowiedzi na przerwanie czasu rzeczywistego. Kiedy zo-
staje zgłoszone przerwanie, jdro RTLinuksa przechwytuje je i decyduje, co z nim zrobi.
Jeli aktualnie istnieje procedura obsługi przerwania, pochodzca z zadania czasu rze-
czywistego — zostaje wywołana. Kiedy przerwanie jest obsługiwane przez Linuksa (lub
współdzielone z nim), jest oznaczane jako oczekujce. Po wykryciu próby włczenia
przerwa: przez jdro Linuksa wszystkie oczekujce 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 jdra, RTLinux jest w stanie zareagowa na
przychodzce przerwania. Techniczne aspekty dyskutowanych rozwiza: poddane s
szczegółowej analizie w podrozdziale „Wirtualny system przerwa:”.
RTLinux separuje mechanizmy jdra czasu rzeczywistego i mechanizmy jdra zwykłego
systemu (rysunek 2.1). Tak wic 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 pamici, nie dzieli
sekcji krytycznych ani nie synchronizuje *adnych struktur danych, z wyjtkiem sytuacji
niezbdnych do współdziałania obydwu systemów.
Rysunek 2.1.
Architektura systemu
RTLinux [21]
Mechanizmy komunikacyjne u*ywane do wymiany danych pomidzy zwykłymi pro-
cesami a zadaniami czasu rzeczywistego s nieblokujce po stronie RTLinuksa. Nigdy nie
wystpuje 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 wicej po stronie Linuksa, tym lepiej. Tak wic 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 bezporedniego
dostpu do sprztu dla wtków czasu rzeczywistego, szeregowanie, dostarczanie me-
chanizmów odmierzania czasu i technik komunikacji midzyprocesowej.
707941234.001.png
Zgłoś jeśli naruszono regulamin