background image

 

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 

www.pdffactory.com

background image

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 

www.pdffactory.com

background image

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 

www.pdffactory.com

background image

Cecha systemu 

QNX 

VxWorks  Windows 

CE 

Łatwość instalacji i konfiguracji 

Architektura systemu 

Kompletno

ść API 

Jako

ść dokumentacji 

Dostosowanie do Internetu 

Narz

ędzia tworzenia 

oprogramowania 

W

łasności czasowe 

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 

www.pdffactory.com

background image

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 

www.pdffactory.com

background image

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 

www.pdffactory.com

background image

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 

www.pdffactory.com

background image

 
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 

www.pdffactory.com

background image

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 

www.pdffactory.com

background image

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 

www.pdffactory.com

background image

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 

www.pdffactory.com

background image

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 

www.pdffactory.com

background image

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 

www.pdffactory.com

background image

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 

www.pdffactory.com

background image

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 

www.pdffactory.com

background image

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 

www.pdffactory.com

background image

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 

www.pdffactory.com