1
1
SYSTEM QNX 6 Neutrino
1.1
Wiadomości ogólne o systemach operacyjnych
Funkcje systemu operacyjnego:
•
Zarz
ądzanie zasobami systemu
o zarządzanie procesami,
o obsługa urządzeń,
o obsługa pamięci wirtualnej
o obsługa komunikacji
•
Zapewnienie abstrakcyjnego dost
ępu do usług systemu
•
Zapewnienie bezpiecze
ństwa
PA1
PA2
PAn
Procesy
aplikacyjne
Sprzęt
System operacyjny
Wywołania
systemowe
Rysunek 1-1 Rola systemu operacyjnego
Podstawowe struktury systemów operacyjnych:
•
system monolityczny
•
system z mikroj
ądrem.
W systemie monolitycznym podstawowe funkcje systemu umieszczone
s
ą w pojedynczym module programowym zwanym jądrem.
PDF created with pdfFactory trial version
2
PA1
PA2
PAn
Procesy aplikacyjne
szeregowanie
w
ątków
komunikacja
mi
ędzyprocesowe
timery
obs
ługa przerwań
synchroni-
zacja
Obsluga plików, sieci, urz
ądzeń
wej
ścia wyjścia
przerwania
J
ądro
W ywo
łania
systemowe
Rysunek 1-2 J
ądro monolityczne
Fragmenty kodu j
ądra wykonywane są:
•
pod wp
ływem przerwań
•
uruchamiania wywo
łań systemowych.
Cechy systemu z j
ądrem monolitycznym:
•
J
ądro nie podlega szeregowaniu
•
Awaria w jego obr
ębie skutkuje awarią całego systemu.
•
Wysoka szybko
ść działania
Systemy monolityczne: Linux, RTLinux.
PDF created with pdfFactory trial version
3
1.2
System QNX6 Neutrino
Wielozadaniowy, sieciowy system operacyjny czasu rzeczywistego
Podstawowe w
łasności:
1. Architektura
mikroj
ądra.
System
jest
zbiorem
procesów
wymieniaj
ących komunikaty w środowisku lokalnym i rozproszonym.
2. System od podstaw zaprojektowany zosta
ł jako wieloplatformowy:
Intel x86, MIPS, PowerPC, SH-4, ARM, StrongARM i xScale.
3. System spe
łnia wymagania stawiane systemom czasu rzeczywistego,
posiada
wyw
łaszczającą strategię szeregowania i rozwinięty
mechanizm priorytetów.
4. Zapewnia wysok
ą zgodność ze standardami POSIX 1003.1. Zawiera
wi
ększość zawartych tam mechanizmów czasu rzeczywistego tym
w
ątki.
5. Zapewnia wsparcie dla maszyn wieloprocesorowych SMP.
6. Zawiera wiele mechanizmów tolerowania awarii, w tym pakiet
wspierania wysokiej dost
ępności HAM (ang. High Availability
Manager).
7. Mo
żliwe jest zastosowanie wielu systemów plików: RAM, Flash, QNX,
Linux, DOS, CD-ROM, NFS.
8. Zapewnia wparcie dla wielu protoko
łów komunikacyjnych, w tym IPv4,
IPv6.
POSIX - Standard na interfejs pomi
ędzy systemem operacyjnym a
aplikacj
ą. Określa:
•
Niezb
ędny zestaw wywołań systemowych
•
Posta
ć funkcji systemowych (język C)
Wady systemu:
1. Wysoka cena
2. Utrata zgodno
ści z istniejącym oprogramowaniem dla systemu QNX4
3. Wsparcie tylko dla ograniczonej liczby urz
ądzeń peryferyjnych
4. Ma
ła ilość oprogramowania użytkowego
PDF created with pdfFactory trial version
4
Cecha systemu
QNX
VxWorks Windows
CE
Łatwość instalacji i konfiguracji
7
4
5
Architektura systemu
9
7
7
Kompletno
ść API
7
8
7
Jako
ść dokumentacji
5
4
5
Dostosowanie do Internetu
8
9
9
Narz
ędzia tworzenia
oprogramowania
7
8
8
W
łasności czasowe
9
5
7
Tabela 1-1. Porównanie systemów ONX6.1 Neutrino, VxWork A1.1 i Windows CE
.NET (skala 1-10)
PDF created with pdfFactory trial version
5
1.3
Budowa systemu
Budowa systemu:
- Mikrojądro
- microkernel
- Procesy systemowe
- system processes
- Procesy aplikacyjne
- application processes
IPC - komunikacja mi
ędzyprocesowa
Mikro-
j
ądro
PA1
PA2
PAn
...
Procesy
aplikacyjne
Administrator
plików
Administrator
dysku
Administrator
sieci
...
Procesy
systemowe
Rysunek 1-3 Struktura systemu QNX6 Neutrino
Funkcje mikroj
ądra:
1. Implementacja
podstawowych
mechanizmów
komunikacji
mi
ędzyprocesowej: komunikatów, impulsów, zdarzeń, sygnałów.
2. Implementacja funkcji synchronizacji w
ątków takich jak muteksy,
semafory, zmienne warunkowe, bariery, blokady, operacje atomowe.
3. Szeregowanie – procesy i w
ątki szeregowane są przez mikrojądro
zgodnie z dost
ępnymi algorytmami szeregowania: FIFO, karuzelowy,
sporadyczny.
4. Implementacja czasomierzy (
ang. Timers).
5. Obs
ługa przerwań.
PDF created with pdfFactory trial version
6
PA1
PA2
PAn
Procesy aplikacyjne
Administrator
plików
szeregowanie
w
ątków
IPC
timery
transformacja przerwa
ń
synchroni-
zacja
MIKROJ
ĄDRO
przerwania
Administrator
sieci
Administrator
procesów
procnto
Administratory
systemowe
Rysunek 1-4 Struktura mikroj
ądra
Zalety systemu z mikroj
ądrem:
1.
Niezale
żne szeregowanie procesów systemowych - obsługa
urz
ądzeń wejścia / wyjścia - procesy, które podlegają zwykłemu
szeregowaniu. Mechanizm umo
żliwia osiągnięcie lepszych
charakterystyk czasowych systemu - wa
żne w systemach RTS.
2.
Modularno
ść - prowadzi do zwiększenia niezawodności.
3.
Wzajemna izolacja procesów - ka
żdy z procesów systemowych
wykonywany jest w oddzielnie chronionym segmencie przestrzeni
adresowej. Awaria jednego z procesów nie powoduje awarii innego
procesu.
4.
Mo
żliwość dynamicznego uruchamiania procesów systemowych -
procesy systemowe s
ą zwykłymi procesami.
PDF created with pdfFactory trial version
7
1.4
Komunikaty i komunikacja międzyprocesowa
Przes
łanie komunikatu (ang. message passing)
Przes
łanie komunikatu pomiędzy procesami jest przesłaniem pomiędzy
nimi pewnej liczby bajtów wed
ług ustalonego protokołu. Przesłanie
komunikatu jest operacj
ą atomową
.
serwer
komunikat
proces
aplikacyjny
klient
odpowied
ź
administrator
zasobu
Rysunek 1-5 Klient przesy
ła komunikat do serwera
Przes
łanie komunikatu składa się z trzech faz:
1. Wys
łania komunikatu od procesu klienta do serwera. Proces klienta
ulega zablokowaniu a komunikat odblokowuje proces serwera (o ile
by
ł zablokowany).
2. Serwer przetwarza komunikat i przesy
ła odpowiedź do klienta.
3. Proces klienta po otrzymaniu odpowiedzi ulega odblokowaniu.
klient
serwer
komunikat
Wys
łanie
komunikatu
Odbiór komunikatu
Odpowied
ź na
komunikat
blokada
odpowied
ź
blokada
Rysunek 1-6 Transakcja przes
łania komunikatu
PDF created with pdfFactory trial version
8
Mechanizmy komunikacji mi
ędzyprocesowej implementowane w
mikroj
ądrze:
1. Komunikaty i impulsy - (
ang. messages, pulses)
2. Sygna
ły - (ang. signals)
3. Zegary - (
ang. clocks)
4. Czasomierze - (
ang. timers)
5. Procedury obs
ługi przerwań - (ang. interrupt handlers)
6. Semafory - (
ang. semaphores)
7. Blokady wzajemnego wykluczania - muteksy (
ang. mutual exclusion
lock )
8. Zmienne warunkowe (
ang. conditional variables)
9. Bariery (
ang. barriers)
Mechanizmy IPC zewn
ętrzne względem mikrojądra
1.
Łącza nienazwane - (ang. pipes),
2.
Łącza nazwane - (ang. named pipes)
3. Wspólna pami
ęć - (ang. shared memory)
4. Kolejki komunikatów - (
ang. message queues)
PDF created with pdfFactory trial version
9
1.5
Administratory zasobu i procesy systemowe
Administratory zasobu zapewniaj
ą jednolity dostęp do różnego rodzaju
urz
ądzeń.
Urz
ądzenia rzeczywiste:
•
dyski,
•
porty szeregowe,
•
porty równoleg
łe
Urz
ądzenia wirtualne:
•
sieciowy system plików
•
okno
•
pseudo terminal
Administrator zasobu jest procesem serwerowym który akceptuje
komunikaty od innych procesów.
Administrator zasobu obs
ługuje zlecenia klientów odnoszące się do
abstrakcji pliku.
Plik jest abstrakcyjn
ą strukturą na której można przeprowadzać
operacje: otwarcie, odczyt, zapis, zamkni
ęcie, zmianę bieżącej pozycji,
ustawianie praw dost
ępu.
Ka
żde urządzenie w systemie QNX6 Neutrino widziane jest jako plik
specjalny.
Rodzaje plików:
•
pliki specjalne (urz
ądzenia, gniazdka, kolejki, semafory, segmenty
pami
ęci dzielonej)
•
pliki regularne
•
katalogi
PDF created with pdfFactory trial version
10
/dev/hd0
devb-eide Proces obsługi dysków stałych
typu IDE
/dev/fd0
devb-fdc Proces obsługi stacji dyskietek
/dev/par1
devc-par Proces obsługi portu
równoleg
łego
/dev/ser1
devc-
ser8250
Proces obs
ługi portu
szeregowego RS232
/dev/con
devc-con Proces obsługi konsoli
/
fs-
qnx4.so
Proces obs
ługi systemu plików
QNX4
Tabela 1-2
Ścieżki do urządzeń i obsługujące je administratory
devc- ser
8250
układ 8250
fd = open("/dev/ser1",...)
klient
4
administrator zasobu
procnto
read(fd,buf,1)
2
administrator
procesów
1
rejestracja
3
urządzenie
Rysunek 1-7 Wspó
łpraca procesu klienta z portem transmisji szeregowej.
Wspó
łpraca procesu klienta z portem transmisji szeregowej:
1. Przy starcie systemu proces devc-ser8250 rejestruje si
ę w
administratorze procesów procnto.
2. Proces klienta wysy
ła komunikat do lokalnego administratora
procesów procnto z zapytaniem w gestii jakiego procesu le
ży ścieżka
/dev/ser1.
3. Lokalny administrator procesów odpowie
że należy się kontaktować z
procesem devc-ser8250.
4. Proces klienta wysy
ła komunikaty do procesu devc-ser8250.
PDF created with pdfFactory trial version
11
proces klienta
wysłanie
komunikatu
odbiór
komunikatu
przetwarzanie
komunikatu
wysłanie
odpowiedzi
odbiór odpowiedzi
oczekiwanie
administrator
zasobu
rejestracja ścieżki
Rysunek 1-8 Wspó
łpraca pomiędzy procesem klienta a administratorem zasobu
procnto
Zarz
ądzanie pamięcią, wątkami i procesami
devb-eide
Proces obs
ługi dysków stałych typu IDE
devb-fdc
Proces obs
ługi stacji dyskietek
devc-par
Proces obs
ługi portu równoległego
devc-ser8250 Proces obsługi portu szeregowego RS232
devc-con
Proces obs
ługi konsoli
io-net
Ogólny administrator sieci
io-graphisc Proces obsługi karty graficznej
Photon
Proces interfejsu graficznego
Tabela 1-3 Wa
żniejsze procesy systemowe systemu QNX6 Neutrino
PDF created with pdfFactory trial version
12
1.6
System plików
W systemie QNX6 Neutrino zaimplementowano wiele ró
żnych systemów
plików. Ka
żdy z systemów plików obejmuje fragment przestrzeni nazw i
obs
ługuje drzewo katalogów i plików leżące poniżej punktu jego
montowania.
W
łasności:
1. Systemy plików mog
ą być startowane i zatrzymywane dynamicznie w
trakcie pracy systemu.
2. Równocze
śnie może współistnieć wiele systemów plików.
3. System plików wykonywany na jednym w
ęźle może być w
prze
źroczysty sposób dostępny z innego węzła.
Najwa
żniejsze systemy plików dostępne w QNX6 Neutrino:.
1. Bezpo
średni system plików - Stosowany jest w wielu sterownikach
wbudowanych.
2. System plików RAM - prosty system plików pozwalaj
ący na zapis i
odczyt plików umieszczonych w pami
ęci RAM w katalogu /dev/shmem.
3. System plików QNX4 - jest to podstawowy system plików.
Charakteryzuje si
ę wysoką odpornością na awarie, wydajnością i
architektur
ą wielowątkową, obsługiwany przez proces fs-qnx4.so.
4. System plików DOS - System plików jest obs
ługiwany przez proces
fs-dos.so.
5. System plików CD-ROM - Obs
ługuje format ISO9660 System
obs
ługiwany przez proces fs-cd.so.
6. System plików FFS3 - system plików przeznaczony jest dla pami
ęci
Flash typu NOR
Błąd! Nie można odnaleźć źródła odsyłacza.
(Compact Flash i Smart Media). System zawiera zabezpieczenia
chroni
ące przed utratą integralności w przypadku wyłączenia zasilania w
trakcie operacji zapisu. Stosowany jest w sterownikach wbudowanych.
7. Sieciowy system plików NFS - Stacja kliencka mo
że sięgać poprzez
sie
ć do plików położonych na zdalnym serwerze. System oparty jest na
technologii RPC (
ang. Remote Procedures Calls). Jako warstwę
transportowa stosuje protokó
ł TCP/IP. Procesem obsługującym NFS jest
fs-nfs2 lub fs-nfs3.
PDF created with pdfFactory trial version
13
8. Sieciowy system plików CIFS - CISF jest sieciowym systemem plików
wspieranym przez Microsoft (uprzednio SMB). Stacja kliencka mo
że
uzyska
ć dostęp poprzez sieć do systemów plików na serwerze Windows
lub Linux na którym uruchomiono serwer SMB. Jako warstw
ę
transportowa stosowany jest protokó
ł TCP/IP a system utrzymywany
jest przez proces
fs-cifs.
9. System plików Ext2 - system plików Ext2 jest u
żywany przez Linux’a.
Procesem obs
ługującym ten system plików jest fs-ext2.so.
PDF created with pdfFactory trial version
14
1.7
Onet – rodzima sieć komunikacyjna systemu QNX6
Neutrino
Unikalno
ść mikrojądra Neutrino polega na łatwości implementacji
środowisk rozproszonych (ang. distributed enviroments). Osiągnięto to
dzi
ęki paradygmatowi przekazywania komunikatów, który dla pracy
lokalnej i sieciowej pozostaje zasadniczo taki sam.
Fundamentem tego systemu – protokó
ł Qnet umożliwia jednolitą metodę
dost
ępu do zasobów, tak lokalnych jak i zdalnych.
Standardowe programy narz
ędziowe operujące na takich zasobach
systemu jak pliki dzia
łają tak samo dla zasobów lokalnych i zdalnych.
Zastosowanie sieci Qnet pozwala na osi
ągnięcie następujących korzyści:
1 Przeźroczysty dostęp do zdalnego systemu plików.
2 Łatwość budowy aplikacji skalowalnych.
3 Łatwość tworzenia aplikacji rozproszonych składających się z
komunikuj
ących się procesów.
4 Łatwość tworzenie aplikacji równoległych wykonywanych na
po
łączonych siecią komunikacyjną komputerach.
Przyk
ład:
$ cat /net/qumak/home/juka/infor.txt
Komputer astra
Komputer qumak
infor.txt
/
/dev
/bin
/home
/home/juka
/
/dev
/net
/net/qumak/
Qnet
infor.txt
/net/qumak/home/juka
/bin
Rysunek 1-9 Odwzorowanie przestrzeni nazw komputera
qumak w katalogu
/net/qumak komputera astra
PDF created with pdfFactory trial version
15
fh = open(”/net/qumak/home/juka/infor.txt”, O_RDWR)
Z komputera astra
Lokalnie
Zasób
/net/qumak/dev/ser1 /dev/ser1
Port
szeregowy
/net/qumak/dev/par /dev/par
Port
równoległy
/net/qumak/home/
/home
Katalog
/net/qumak
/home/juka/infor.txt
/home/juka/infor.txt Plik
regularny
Tabela 1-4 Zasoby komputera
qumak lokalnie i poprzez sieć
aplikacja
Qnet
Qnet
Komputer astra
Administrator
dysków sta
łych
Administrator
procesów
Administrator
procesów
Komputer
qumak
2
4
4
3
4
3
1
3
infor.txt
Rysunek 1-10 Dost
ęp klienta do zasobu położonego na komputerze zdalnym
1. Nazwa komputera - jest
łańcuchem identyfikującym komputer. Nie
mo
że on zawierać kropek ani znaków ukośnika /. Nazwa komputera
jest okre
ślana w trakcie procesu konfiguracji sieci (np. astra).
2. Nazwa domeny - jest okre
ślona przez konfigurację sieci do której
do
łączony jest komputer i określana jest przez administratora sieci
zewn
ętrznej (np. telsat.wroc.pl).
3. Pe
łna kwalifikowana nazwa - komputera składa się z nazwy
komputera i nazwy domeny. (np
. astra.telsat.wroc.pl)
Katalog sieciowy - odwzorowuje nazwy komputerów po
łączonych siecią
Standardowo katalog sieciowy nazywa si
ę /net.
PDF created with pdfFactory trial version
16
Zawarto
ść katalogu sieciowego a tym samym nazwy komputerów
pracuj
ących w sieci Qnet uzyskać można poleceniem:
$
ls /net
$ astra qumak
Sie
ć Qnet obsługuje wielokrotne połączenia sieciowe. Z połączeniami
wielokrotnymi
łączy się pojęcie QoS (ang. Quality of Service)
•
po
łączenie równoważące obciążenie,
•
po
łączenie preferowane,
•
po
łączenie wyłączne.
PDF created with pdfFactory trial version
17
4.1
QNX6 w systemach wbudowanych
Aplikacje mog
ą być tworzone w środowiskach systemów:
•
QNX6 Neutrino, Windows (NT, 2000, XP),
•
Linux,
•
Solaris SPARC.
Narz
ędziem do tworzenia takich aplikacji jest Momentics Development
Suite.
Środowisko to zawiera:
1 Zintegrowane środowisko rozwoju oprogramowania IDE (ang. Integrated
Development Environment).
2 Biblioteki ANSI C, POSIX, DINKUM C++, GNU C++.
3 Dokumentację.
4 Narzędzia BSP (ang. Board Suport Packages) służące do dostosowania
systemu QNX6 Neutrino do ró
żnorodnych środowisk sprzętowych.
5 Narzędzia DDK (ang. Driver Development Kits) wspomagające
tworzenie sterowników urz
ądzeń zewnętrznych (grafiki, audio, sieciowe,
USB).
6 Narzędzia TDK (ang. Technology Development Kits) które ułatwiają
tworzenie wbudowanych systemów plików, systemów
wieloprocesorowych SMP, obs
ługi multimediów i grafiki 3D.
System docelowy na komputerach z procesorami:
•
ARM,
•
MIPS, PowerPC,
•
SH-4,
•
StrongARM (w tym Xscale)
•
x86.
PDF created with pdfFactory trial version