ARCHITEKTURA SYSTEMU QNX6 NEUTRINO
Opracowano na podstawie Systemy czasu rzeczywistego QNX6 Neutrino J. U艂asiewicz
1. Struktura systemu
仞 Podstawow膮 funkcj膮 ka偶dego systemu operacyjnego jest zarz膮dzanie zasobami.
Funkcj臋 t臋 pe艂ni膮 systemy operacyjne o r贸偶nej strukturze.
仞 Wyr贸偶ni膰 tu mo偶na dwie podstawowe struktury:
o system monolityczny,
o system z mikroj膮drem.
仞 W systemie monolitycznym podstawowe funkcje systemu, takie jak
szeregowanie, obs艂uga urz膮dze艅, pami臋ci wirtualnej i komunikacji s膮
1
umieszczone w pojedynczym module programowym zwanym j膮drem.
Fragmenty kodu j膮dra s膮 wykonywane pod wp艂ywem przerwa艅 i uruchamiania
wywo艂a艅 systemowych. J膮dro nie podlega szeregowaniu, a awaria w jego
obr臋bie skutkuje awari膮 ca艂ego systemu. Struktur臋 systemu monolitycznego
pokazano na rysunku, a przyk艂adem systemu o takiej architekturze jest Linux
czy RTLinux.
2
Rys. Struktura systemu monolitycznego
仞 System QNX6 Neutrino jest systemem z mikroj膮drem.
仞 Zbudowany jest on z modu艂u zwanego mikroj膮drem i zbioru proces贸w
systemowych realizuj膮cych wymienione wcze艣niej us艂ugi na rzecz proces贸w
aplikacyjnych.
3
仞 Procesy systemowe i aplikacyjne nie r贸偶ni膮 si臋 co do istoty, maj膮 tylko inne
priorytety i uprawnienia.
仞 Procesy komunikuj膮 si臋 pomi臋dzy sob膮 za pomoc膮 r贸偶norodnych
mechanizm贸w komunikacji mi臋dzyprocesowej IPC (ang. Interprocess
Communication) i podlegaj膮 szeregowaniu. Czynno艣ci takie jak zarz膮dzanie
pami臋ci膮, szeregowanie proces贸w, zapewnienie komunikacji mi臋dzyprocesowej
i obs艂uga przerwa艅 nale偶膮 do mikroj膮dra.
仞 System QNX mo偶e by膰 rozpatrywany jako zbi贸r komunikuj膮cych si臋
proces贸w, co ilustruje rysunek.
4
Rys. Struktura systemu QNX 6
5
2. Mikroj膮dro i jego funkcje
仞 Mikroj膮dro nie jest procesem. Jest ono modu艂em programowym, kt贸ry
stwarza ramy, w kt贸rych procesy mog膮 istnie膰.
仞 Zapewnia te偶 podstawowe funkcje zwi膮zane z obs艂ug膮 przerwa艅, komunikacj膮
mi臋dzyprocesow膮, szeregowaniem w膮tk贸w i ich synchronizacj膮.
6
仞 Funkcje mikroj膮dra (rysunek) s膮 nast臋puj膮ce:
PA1
Rys. Struktura mikroj膮dra
7
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 s膮 szeregowane przez mikroj膮dro zgodnie z
dost臋pnymi algorytmami szeregowania: FIFO, karuzelowy, sporadyczny.
4. Implementacja czasomierzy (ang. Timers).
5. Obs艂uga przerwa艅.
仞 W por贸wnaniu z systemami monolitycznymi system o architekturze mikroj膮dra
ma wiele zalet. S膮 to:
8
1. Niezale偶ne szeregowanie proces贸w systemowych - obs艂uga urz膮dze艅
wej艣cia-wyj艣cia odbywa si臋 przez oddzielne, maj膮ce sw贸j priorytet procesy,
kt贸re podlegaj膮 zwyk艂emu szeregowaniu. St膮d procesy obs艂uguj膮ce
urz膮dzenia, od kt贸rych wymaga si臋 kr贸tszych czas贸w odpowiedzi, b臋d膮
faworyzowane kosztem innych mniej wa偶nych proces贸w. W艂asno艣ci tej nie
maj膮 systemy monolityczne.
2. Modularno艣膰 - drug膮 zalet膮 jest wy偶szy stopie艅 modularno艣ci systemu, co
prowadzi do zwi臋kszenia jego niezawodno艣ci. Niezawodno艣膰 wzrasta, gdy
system mo偶e by膰 podzielony na oddzielnie rozwijane, uruchamiane i
testowane procesy, co u艂atwia osi膮gni臋cie wy偶szej jako艣ci kodu.
9
3. Wzajemna izolacja proces贸w - ka偶dy z proces贸w systemowych jest
wykonywany 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. Tak wi臋c procesy systemowe
mog膮 by膰 uruchamiane i zatrzymywane bez potrzeby restartowania systemu.
W艂asno艣膰 ta jest szczeg贸ln膮 zalet膮 w systemach, od kt贸rych jest wymagana
ci膮g艂o艣膰 dzia艂ania.
仞 Do wad system贸w z mikroj膮drem zaliczy膰 nale偶y nieco mniejsz膮 艣rednia
wydajno艣膰 co zwi膮zane jest z wi臋ksz膮 liczb膮 prze艂膮cze艅 kontekstu zada艅.
10
3. Komunikaty i komunikacja mi臋dzyprocesowa
仞 Mo偶liwo艣膰 przekazywania komunikat贸w pomi臋dzy procesami jest
fundamentaln膮 w艂asno艣ci膮 wi臋kszo艣ci system贸w operacyjnych. Je艣li
pomi臋dzy dwoma maszynami istnieje jakikolwiek spos贸b komunikacji (sie膰
lokalna, sie膰 rozleg艂a, bezpo艣rednie 艂膮cze, wsp贸lna pami臋膰 itd.), to daje si臋
przes艂a膰 komunikat pomi臋dzy procesami wykonywanymi na tych maszynach.
11
Definicja - 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膮.
仞 W systemie QNX6 Neutrino mechanizm przesy艂ania komunikat贸w pe艂ni
fundamentaln膮 rol臋. Przesy艂anie komunikat贸w jest zaimplementowane na
poziomie mikroj膮dra. Proces wysy艂aj膮cy komunikat jest nazywany klientem,
a proces odbieraj膮cy komunikaty serwerem, (rysunek).
仞
12
Komunikat
Proces Administrator
Klient Serwer
aplikacyjny zasobu
Odpowiedz
Rys. Klient przesy艂a komunikat do serwera
13
Przes艂anie komunikatu sk艂ada si臋 z trzech faz:
1. Wys艂anie 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 odpowiedz do klienta.
3. Proces klienta po otrzymaniu odpowiedzi ulega odblokowaniu.
Poszczeg贸lne fazy transakcji przesy艂ania komunikatu obrazuje rysunek.
14
Rys. Transakcja przestania komunikatu
仞 Mikroj膮dro Neutrino implementuje pewien elementarny zestaw mechanizm贸w.
Mechanizmy te s膮 nast臋puj膮ce:
15
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)
16
仞 Opr贸cz mechanizm贸w komunikacji mi臋dzyprocesowej implementowanych
przez mikroj膮dro Neutrino, mechanizmy komunikacji mi臋dzyprocesowej typowe
dla standardu POSIX 1003 zaimplementowano jako zewn臋trzne wzgl臋dem
mikroj膮dra administratory. S膮 to:
1. A膮cza nienazwane - (ang. pipes).
2. A膮cza nazwane - (ang. named pipes).
3. Wsp贸lna pami臋膰 - (ang. shared memory).
4. Kolejki komunikat贸w - (ang. message queues).
仞 Mechanizmy komunikacji mi臋dzyprocesowej implementowane jako
administratory podano w tabeli. Aby zrealizowa膰 swoje funkcje, administratory
te korzystaj膮 z mechanizm贸w mikroj膮dra.
17
Tab. Metody komunikacji mi臋dzyprocesowej systemu QNX6 implementowane
poza mikroj膮drem
Us艂uga Implementacja
Kolejki komunikat贸w POSIX Proces systemowy
Pami臋膰 dzielona Administrator pami臋ci
A膮cza nienazwane Proces systemowy
A膮cza nazwane Proces systemowy
18
Administratory zasobu i procesy systemowe
仞 Jak ju偶 wcze艣niej wspomniano, system QNX6 Neutrino sk艂ada si臋 z mikroj膮dra i
zbioru proces贸w dostarczaj膮cych r贸偶nych us艂ug zwanych administratorami lub
serwerami zasobu (ang. resource manager).
仞 Administratory zasobu zapewniaj膮 jednolity dost臋p do r贸偶nego rodzaju
urz膮dze艅. Mog膮 to by膰 zar贸wno urz膮dzenia rzeczywiste, np. dyski, porty
szeregowe, porty r贸wnoleg艂e, jak i urz膮dzenia wirtualne, kt贸rych przyk艂adem
mo偶e by膰 sieciowy system plik贸w czy pseudoterminal.
仞 W tradycyjnych systemach operacyjnych dost臋p do urz膮dze艅 wej艣cia-wyj艣cia
jest zapewniany przez j膮dro. W systemie QNX6 Neutrino funkcje te pe艂ni
administrator zasobu.
19
仞 Administrator zasobu jest procesem serwerowym (nier贸偶ni膮cym si臋 co do istoty
od zwyk艂ych proces贸w u偶ytkownika), kt贸ry akceptuje komunikaty od innych
proces贸w. W szczeg贸lno艣ci administrator zasobu obs艂uguje zlecenia klient贸w
odnosz膮ce si臋 do abstrakcji pliku.
仞 Plik jest abstrakcyjn膮 struktur膮, na kt贸rej mo偶na przeprowadza膰 takie operacje
jak otwarcie, odczyt, zapis, zamkni臋cie, zmian臋 bie偶膮cej pozycji czy
ustawianie praw dost臋pu. Podstawowe operacje zwi膮zanie z dost臋pem do
plik贸w podano w tabeli.
20
仞 Tablica. Wa偶niejsze niskopoziomowe funkcje dost臋pu do plik贸w
Opis Funkcja
open ()
Otwarcie lub utworzenie pliku
read ()
Odczyt z pliku
write ()
Zapis do pliku
lseek ()
Pozycjonowanie bie偶膮cej pozycji pliku
fcnt ()
Ustawianie i testowanie r贸偶norodnych atrybut贸w pliku
close ()
Zamkni臋cie pliku
仞 Powi膮zanie pomi臋dzy programem klienta a odpowiednim administratorem
zasobu jest okre艣lane poprzez 艣cie偶k臋 dost臋pu do pliku (ang. pathname space
mapping).
21
仞 Ka偶de urz膮dzenie w systemie QNX6 Neutrino jest widziane jako plik
specjalny.
仞 Opr贸cz plik贸w specjalnych, system plik贸w zawiera pliki regularne i katalogi
(ang. directories), kt贸re z kolei zawieraj膮 inne pliki.
仞 Przyk艂ady powi膮zania 艣cie偶ek i obs艂uguj膮cych je proces贸w zebrano w tabeli.
Powi膮zanie pomi臋dzy 艣cie偶k膮 dost臋pu a administratorem zasobu jest
utrzymywane przez administratora proces贸w procnto.
22
Tablica. 艢cie偶ki do urz膮dze艅 i obs艂uguj膮ce je administratory
/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
仞 Przyk艂adowo
o port szeregowy jest reprezentowany w systemie plik贸w jako /dev/ser1,
o port r贸wnoleg艂y jako /dev/par1,
o klawiatura jako /dev/kbd,
o nap臋d dyskietek jako /dev/fd0.
23
仞 Dysk sta艂y IDE jest reprezentowany poprzez 艣cie偶k臋 /dev/hd0 i jest
obs艂ugiwany przez proces devb-eide.
仞 Gdy w komputerze jest zainstalowany system plik贸w QNX4, to jest on
obs艂ugiwany przez proces fs-qnx4.so. Ten system plik贸w jest
zamontowany jako korze艅 (ang. r o o t ) drzewa katalog贸w oznaczony jako / i
korzysta z urz膮dzenia /dev/hd0.
仞 Gdy program klienta zamierza odebra膰 znaki z portu szeregowego, musi
najpierw go otworzy膰, u偶ywaj膮c funkcji:
fd = open("/dev/serl",0_RDONLY)
24
仞 W pierwszym kroku komunikat trafi do lokalnego administratora proces贸w
procnto. Ten skieruje go do procesu devc-ser8250 administruj膮cego
urz膮dzeniem /dev/ser1.
仞 Aby takie przekierowanie by艂o mo偶liwe, administrator portu szeregowego musi
poinformowa膰 administratora proces贸w o tym, jak膮 艣cie偶k臋 w systemie plik贸w
obs艂uguje, podaj膮c sw贸j punkt montowania (ang. mountpoint). Odbywa si臋 to
przez rejestracj臋 艣cie偶ki zasob贸w w administratorze proces贸w, kt贸ry jest
odpowiedzialny za przydzielenie 艣cie偶ek do administrator贸w zasob贸w.
仞 Wsp贸艂prac臋 procesu klienta z portem transmisji szeregowej przedstawiono na
rysunku.
25
Rys. 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.
26
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.
Na rysunku zamieszczono wzorzec wsp贸艂pracy pomi臋dzy przyk艂adowymi
procesami klienta i serwera.
Rys. Wsp贸艂praca pomi臋dzy procesem klienta a administratorem zasobu
27
仞 Proces devc-ser8250 (serwer) przebywa w stanie zablokowania, oczekuj膮c
na zlecenia. Gdy proces klienta przesy艂a komunikat do devc-ser8250,
powoduje jego odblokowanie, a sam blokuje si臋 w oczekiwaniu na odpowiedz.
Gdy proces devc-ser8250 wytransmituje znak lub go otrzyma, to przesy艂a
t臋 odpowiedz do klienta, tym samym go odblokowuj膮c, a sam si臋 blokuje w
oczekiwaniu na kolejne zlecenia.
仞 Komunikacja z innymi administratorami zasob贸w odbywa si臋 wed艂ug tej samej
zasady. Wa偶niejsze administratory zasobu zamieszczono w tabeli
28
Tab. Wa偶niejsze procesy systemowe systemu QNX6 Neutrino
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-graphics
Proces obs艂ugi karty graficznej
Photon
Proces interfejsu graficznego
29
5. System plik贸w
仞 W systemie QNX6 Neutrino zaimplementowano wiele r贸偶nych system贸w
plik贸w. Utrzymywane s膮 one poprzez administratory zasob贸w dzia艂aj膮ce w
spos贸b opisany w poprzednim rozdziale.
仞 Administratory te obs艂uguj膮 standardowe polecenia API, takie jak open(),
read(), write() czy close(). 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. Dzi臋ki takiej konstrukcji system plik贸w ma
nast臋puj膮ce w艂a艣ciwo艣ci:
30
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臋zle mo偶e by膰 w przezroczysty
spos贸b dost臋pny z innego w臋z艂a.
Najwa偶niejsze systemy plik贸w dost臋pne w QNX6 Neutrino kr贸tko opisano poni偶ej.
1. Bezpo艣redni system plik贸w - system plik贸w przeznaczony tylko do odczytu.
Zawiera obraz systemu operacyjnego, pliki wykonywalne i pliki danych.
Stosowany jest w wielu sterownikach wbudowanych.
31
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. System
ten jest utrzymywany przez administratora proces贸w procnto. Stosowany
w sterownikach do przechowywania danych tymczasowych.
3. System plik贸w QNX4 - to podstawowy system plik贸w pochodz膮cy z
wcze艣niejszej wersji systemu. Charakteryzuje si臋 wysok膮 odporno艣ci膮 na
awarie, wydajno艣ci膮 i architektur膮 wielow膮tkow膮, a obs艂ugiwany jest przez
proces fs-qnx4.so.
4. System plik贸w DOS - ten system plik贸w zapewnia dost臋p do dyskietek i
dysk贸w zapisanych w historycznym ju偶 formacie MS-DOS. System plik贸w
jest obs艂ugiwany przez proces fs-dos.so.
32
5. System plik贸w CD-ROM - pozwala na dost臋p do danych zapisanych na
no艣nikach CD-ROM. Obs艂uguje format ISO9660, w艂膮czaj膮c rozszerzenia
Rock Ride, Joliet i tryb multisesyjny. System ten jest obs艂ugiwany przez
proces fs-cd.so.
6. System plik贸w FFS3 - jest przeznaczony dla pami臋ci Flash typu NOR. W tym
typie pami臋ci ka偶d膮 kom贸rk臋 daje si臋 swobodnie zapisywa膰 i odczytywa膰. W
tej technologii wykonuje si臋 m.in. pami臋ci Compact Flash i Smart Media (i
inne tego typu karty pami臋ci m.in. do aparat贸w fotograficznych cyfrowych).
System zawiera zabezpieczenia chroni膮ce przed utrat膮 integralno艣ci w
przypadku wy艂膮czenia zasilania w trakcie operacji zapisu. Stosowany jest w
sterownikach wbudowanych.
33
7. Sieciowy system plik贸w NFS - jest szeroko rozpowszechnionym sieciowym
systemem plik贸w. 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, a jako warstw臋 transportow膮 stosuje protok贸艂
TCP/IP Procesem obs艂uguj膮cym NFS jest fs-nfs2 lub fs-nfs3.
8. Sieciowy system plik贸w CIFS - jest sieciowym systemem plik贸w
wspieranym przez Microsoft. Uprzednio system ten by艂 okre艣lany jako SMB.
Stacja kliencka mo偶e uzyska膰 dost臋p poprzez sie膰 do system贸w plik贸w na
serwerze pracuj膮cym w systemie Windows lub Linux, na kt贸rym
uruchomiono serwer SMB. Jako warstw臋 transportow膮 wykorzystuje si臋
protok贸艂 TCP/IP, a system jest utrzymywany przez proces fs-cifs.
34
9. System plik贸w Ext2 - system ten jest u偶ywany przez Linuksa. Procesem
obs艂uguj膮cym ten system plik贸w jest fs-ext2.so.
10.Wirtualny system plik贸w - QNX6 Neutrino implementuje dwa rodzaje
wirtualnych system贸w plik贸w. Pierwszym jest pakietowy system plik贸w (ang.
package file system), a drugim inflator obs艂uguj膮cy pliki skompresowane.
Pakietowy system plik贸w pozwala zindywidualizowa膰 dost臋p do plik贸w
stosownie do potrzeb klienta. Inflator umo偶liwia dost臋p do wcze艣niej
skompresowanych plik贸w, np. po艂o偶onych w pami臋ci Flash, co prowadzi do
oszcz臋dno艣ci w u偶yciu tego zasobu.
6.
35
Qnet rodzima (natywna) sie膰 komunikacyjna systemu QNX6 Neutrino
仞 Unikalno艣膰 mikroj膮dra Neutrino polega na 艂atwo艣ci implementacji 艣rodowisk
rozproszonych (ang. distributed enviroments).
仞 W艂a艣ciwo艣膰 t臋 osi膮gni臋to dzi臋ki oparciu konstrukcji systemu na paradygmacie
przekazywania komunikat贸w, kt贸ry dla pracy lokalnej i sieciowej pozostaje
zasadniczo taki sam. Wewn臋trzny dla systemu Neutrino protok贸艂 przekazywania
komunikat贸w, nazywany Qnet, jest fundamentem tego systemu.
36
仞 Protok贸艂 ten 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 i urz膮dzenia (np. polecenia kopiowania, odczytu plik贸w, zapisu
do plik贸w) dzia艂aj膮 tak samo dla zasob贸w lokalnych i zdalnych.
仞 Rozr贸偶nienie, o jaki zas贸b chodzi, odbywa si臋 na podstawie 艣cie偶ki dost臋pu do
pliku.
37
仞 Zastosowanie sieci Qnet pozwala na osi膮gni臋cie nast臋puj膮cych korzy艣ci:
1. Przezroczysty dost臋p do zdalnego systemu plik贸w.
2. Aatwo艣膰 budowy aplikacji skalowalnych.
3. Aatwo艣膰 tworzenia aplikacji rozproszonych z艂o偶onych z komunikuj膮cych si臋
proces贸w.
4. Aatwo艣膰 tworzenia aplikacji r贸wnoleg艂ych wykonywanych na po艂膮czonych
sieci膮 komunikacyjn膮 komputerach.
仞 Jako 偶e Qnet zapewnia transmisj臋 komunikat贸w poprzez sie膰, inne metody
komunikacji mi臋dzyprocesowej (sygna艂y, kolejki komunikat贸w, semafory
nazwane), implementowane poprzez komunikaty, tak偶e mog膮 by膰 stosowane w
艣rodowisku sieciowym.
38
仞 Gdy uruchomiona jest sie膰 Qnet, do lokalnej przestrzeni nazw zaczynaj膮cej si臋
od znaku / jest dodawany katalog /net zawieraj膮cy podkatalogi
odpowiadaj膮ce nazwom do艂膮czonych do sieci w臋z艂贸w.
仞 Przyk艂adowo, gdy w sie膰 po艂膮czono dwa komputery o nazwach astra i
qumak, to przestrze艅 nazw / komputera qumak b臋dzie widziana w
przestrzeni nazw komputera astra jako /net/qumak/. Gdy u偶ytkownik
w臋z艂a astra b臋dzie chcia艂 odczyta膰 plik /home/juka/infor.txt
po艂o偶ony na komputerze qumak, mo偶e uzyska膰 do niego dost臋p odwo艂uj膮c si臋
poprzez nazw臋 /net/qumak/home/juka/infor.txt. Tak wi臋c
polecenie wy艣wietlenia pliku /home/juka/inform.txt po艂o偶onego na
39
komputerze qumak, a wykonane na komputerze astra, ma nast臋puj膮c膮
posta膰:
$ cat /net/qumak/home/juka/infor.txt
仞 Odwzorowanie przestrzeni nazw komputera qumak w katalogu /net/qumak
komputera astra pokazano na rysunku.
Rys. Odwzorowanie przestrzeni nazw komputera qumak w katalogu /net/qumak
komputera astra
40
仞 Podobnie b臋dzie wygl膮da膰 dost臋p do plik贸w i urz膮dze艅 komputera zdalnego z
poziomu program贸w aplikacyjnych u偶ywaj膮cych deskryptor贸w plik贸w (ang.
file descriptor; deskryptor pliku jest ma艂膮 liczb膮 ca艂kowit膮 identyfikuj膮c膮 plik,
nazywany te偶 jest uchwytem pliku (ang. file handler)).
仞 Deskryptor fh jest zwracany przez funkcj臋
fh=open(char nazwa, ...),
a nast臋pnie wykorzystywany przez funkcje
read (fh, ...), write (fh, ...)
i inne do odczytu i zapisu bajt贸w z pliku.
41
仞 .Tak wi臋c otwarcie pliku infor.txt wykonywane przez program aplikacyjny
wykonywany na komputerze lokalnym b臋dzie mia艂o posta膰:
fh = open("/net/qumak/home/juka/infor.txt", 0_RDWR)
仞 Wida膰 wi臋c, 偶e kod programu czytaj膮cego plik lokalny jest identyczny jak kod
programu czytaj膮cego plik zdalny z t膮 tylko r贸偶nic膮, 偶e 艣cie偶ka dost臋pu do pliku
zdalnego jest inna.
仞 W podobny spos贸b mo偶na uzyska膰 dost臋p do portu szeregowego, r贸wnoleg艂ego,
gniazd i innych dost臋pnych przez deskryptory plik贸w zasob贸w komputera
zdalnego. W tabeli podano przyk艂ady innych zasob贸w komputera qumak
dost臋pnych lokalnie i zdalnie poprzez sie膰.
42
Tab. Wybrane przyk艂ady zasob贸w komputera qumak dost臋pnych lokalnie i zdalnie poprzez
sie膰
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
Plik regularny
/home/juka/infor.txt
仞 Rozwa偶my, co dzieje si臋 w systemie, gdy na komputerze astra jest
wykonywana aplikacja klienta, kt贸ra otwiera plik /home/juka/infor.txt
po艂o偶ony na komputerze qumak.
43
仞 Kolejne etapy wykonania funkcji
open("/net/qumak/home/juka/infor.txt",...) s膮 nast臋puj膮ce:
1. Aplikacja wysy艂a komunikat do lokalnego administratora proces贸w
procnto z zapytaniem, w gestii jakiego procesu le偶y 艣cie偶ka
/net/qumak/home/juka/infor.txt. Jako 偶e 艣cie偶ka zaczyna si臋
od /net, lokalny administrator proces贸w odpowie, 偶e nale偶y si臋
kontaktowa膰 z lokalnym administratorem sieci npm-qnet.
44
2. Nast臋pnie program aplikacyjny wysy艂a komunikat do lokalnego
administratora sieci z zapytaniem, kto administruje 艣cie偶k膮
/net/qumak/home/juka/infor.txt. Lokalny administrator sieci
odsy艂a aplikacj臋 do administratora proces贸w na komputerze qumak, gdy偶
ten w艂a艣nie proces zarz膮dza przestrzeni膮 nazw w臋z艂a qumak.
3. Program aplikacyjny 艂膮czy si臋 z administratorem proces贸w w臋z艂a qumak i
przesy艂a zapytanie, kto zarz膮dza szukan膮 艣cie偶k膮. Jako 偶e plik le偶y na dysku
sta艂ym, to zarz膮dza nim administrator dysk贸w sta艂ych, czyli proces devb-
eide. Administrator proces贸w zwraca klientowi dane identyfikacyjne
w臋z艂a qumak, procesu devb-eide i numeru kana艂u, w kt贸rym s膮
odbierane polecenia.
45
4. Proces aplikacyjny tworzy po艂膮czenie do procesu devb-eide i przesy艂a do
niego zlecenia odczytu kolejnych fragment贸w pliku infor.txt. Od tego
momentu polecenia odczytu kolejnych fragment贸w pliku nie r贸偶ni膮 od
polece艅 odczytu pliku lokalnego.
仞 Nale偶y zauwa偶y膰, 偶e proces aplikacyjny nie jest 艣wiadomy wymienionej
powy偶ej sekwencji dzia艂a艅. Wszystkie te dzia艂ania s膮 wykonywane w ramach
realizacji funkcji open (. . . ) i ilustruje je rysunek.
46
Rys. Dost臋p klienta do zasobu po艂o偶onego na komputerze zdalnym
仞 W terminologii dotycz膮cej sieci Qnet jest u偶ywane poj臋cie nazwy komputera,
domeny, pe艂nej nazwy kwalifikowanej i katalogu sieciowego. Poj臋cia te
zdefiniowane s膮 nast臋puj膮co:
47
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. Mo偶e by膰 ona uzyskana za pomoc膮
polecenia hostname. W rozpatrywanym powy偶ej przyk艂adzie by艂a
u偶ywana przyk艂adowa nazwa astra.
2. Nazwa domeny - okre艣lona przez konfiguracj臋 sieci, do kt贸rej jest do艂膮czony
komputer i ustalana przez administratora sieci zewn臋trznej. Na przyk艂ad
komputer astra mo偶e by膰 w domenie wel.wat.edu.pl.
3. Pe艂na kwalifikowana nazwa - komputera sk艂ada si臋 z nazwy komputera i
nazwy domeny. Tak wi臋c pe艂na kwalifikowana nazwa przyk艂adowego
komputera b臋dzie astra.wel.wat.edu.pl.
48
4. Katalog sieciowy - odwzorowuje nazwy komputer贸w po艂膮czonych sieci膮
Qnet w katalogu lokalnym, a tworzony jest przez proces nmp-qnet.
Standardowo katalog sieciowy nazywa si臋 /net. W naszym przyk艂adzie
b臋dzie on zawiera艂 nazwy komputer贸w astra i qumak. Zawarto艣膰
katalogu sieciowego, a tym samym nazwy komputer贸w pracuj膮cych w sieci
Qnet, uzyska膰 mo偶na poleceniem: ls/net.
仞 W celu zwi臋kszenia dyspozycyjno艣ci systemu rozproszonego mo偶na u偶y膰
zwielokrotnionych po艂膮cze艅 sieciowych. W takim przypadku w臋z艂y 艂膮czy nie
pojedyncza sie膰, ale podw贸jna czy potr贸jna. Qnet obs艂uguje wielokrotne
po艂膮czenia sieciowe. Z po艂膮czeniami wielokrotnymi 艂膮czy si臋 poj臋cie QoS (ang.
Quality of Service), czyli zapewnienia w艂a艣ciwej jako艣ci us艂ug.
49
仞 Specyfikuj膮c 艣cie偶k臋 sieciow膮, mo偶na wybra膰 jedn膮 z dost臋pnych strategii
wyboru 艂膮cza sieciowego. Udost臋pniane przez Qnet strategie wyboru po艂膮czenia
to: po艂膮czenie r贸wnowa偶膮ce obci膮偶enie, po艂膮czenie preferowane b膮dz wy艂膮czne.
Domy艣ln膮 strategi膮 jest po艂膮czenie r贸wnowa偶膮ce obci膮偶enie. Strategia ta
wybiera po艂膮czenie, bior膮c pod uwag臋 szybko艣膰 i obci膮偶enie ka偶dego z
dost臋pnych po艂膮cze艅 sieciowych. Strategia preferowana wskazuje pewne
uprzywilejowane 艂膮cze, a wy艂膮czna wskazuje ustalone 艂膮cze, nawet gdyby by艂o
nieczynne. Spos贸b wyboru strategii QoS jest opisany w dokumentacji systemu.
50
7. QNX6 w systemach wbudowanych
仞 Systemy wbudowane zosta艂y opisane w poprzednim wyk艂adzie. System QNX6
Neutrino jest przeznaczony do pracy zar贸wno w systemach samodzielnych, jak i
we 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 firmy QNX
Software. 艢rodowisko to zawiera:
1. Zintegrowane 艣rodowisko rozwoju oprogramowania IDE (ang. Integrated
Development Environment).
2. Biblioteki ANSI C, POSIX, DINKUM C++, GNU C++.
51
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.
52
仞 Za pomoc膮 艣rodowiska Momentics tworzy si臋 aplikacje dla systemu
operacyjnego QNX6 Neutrino. System ten mo偶e by膰 zainstalowany w
komputerach z procesorami ARM, MIPS, PowerPC, SH-4, StrongARM (w tym
Xscale) i x86. Tak wi臋c 艣rodowisko, w kt贸rym jest tworzone oprogramowanie,
mo偶e by膰 odmienne od 艣rodowiska, w kt贸rym jest ono wykonywane.
53
Wyszukiwarka
Podobne podstrony:
SOCR wyklad 1 Wprowadzenie?SOCR wyklad 32 Architektura sterownik贸w PLC materia艂y wyk艂adoweWyklad Trojpoziomowa architektura ANSISPARCpodstawy relacyjnych?z?nych wyklad cz1 architekturaSieci komputerowe wyklady dr FurtakWyk艂ad 05 Opadanie i fluidyzacjaWYK艁AD 1 Wprowadzenie do biotechnologii farmaceutycznejmo3 wykladyJJZARZ膭DZANIE WARTO艢CI膭 PRZEDSI臉BIORSTWA Z DNIA 26 MARZEC 2011 WYK艁AD NR 3Wyklad 2 PNOP 08 9 zaocznewi臋cej podobnych podstron