Pytania na zaliczenie z przedmiotu „Systemy operacyjne czasu
rzeczywistego”
1. Jakie właściwości powinien posiadać system, aby można go było nazwać systemem czasu
rzeczywistego.
-System czasu rzeczywistego RTS (ang. Real Time System) to taki system, którego wynik
przetwarzania zależy nie tylko od jego logicznej poprawności, ale także od chwili, w
której taki wynik się pojawi.
-Systemy czasu rzeczywistego są stosowane wszędzie tam, gdzie konieczna jest bieżąca
reakcja na sygnały płynące z zewnętrznego świata.
2. Objaśnij rolę systemu operacyjnego w systemie komputerowym.
acyjnego to:
- implementacja współbieżności - procesów i wątków;
- zarządzanie urządzeniami wejścia-wyjścia;
- implementacja pamięci wirtualnej;
- implementacja systemu plików;
- implementacja protokołów komunikacyjnych;
- implementacja interfejsu z użytkownikiem;
- zapewnienie bezpieczeństwa.
Tak więc system operacyjny pozwala na efektywne wykorzystanie mocy obliczeniowej
procesorów poprzez umożliwienie współbieżnego ich wykorzystania przez wielu
użytkowników, wiele procesów i wątków.
3. Podaj wymagania funkcjonalne na system operacyjny czasu rzeczywistego.
Wymagania funkcjonalne na system operacyjny czasu rzeczywistego
1. Determinizm.
2. Wysoka reaktywność (ang. Responsivenees).
3. Wysoki stopień kontroli użytkownika nad pracą systemu.
4. Wysoka wiarygodność świadczonych usług, zdolność do tolerowania awarii.
5. Małe zapotrzebowanie na zasoby.
6. Prosta konstrukcja i dobra dokumentacja.
7. Wsparcie dla różnych platform sprzętowych.
8. Dobre wsparcie od dostawcy i stabilna pozycja na rynku.
4. Porównaj architekturę systemu operacyjnego monolitycznego i systemu QNX.
Struktura systemu monolitycznego
Struktura systemu QNX 6
5. Jaka jest struktura mikrojądra systemu QNX i funkcje mikrojądra?
-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ą.
Struktura mikrojądra
Funkcje:
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ń.
6. Co jest podstawą komunikacji między procesami w systemie QNX? Objaśnij na rysunku
transakcję wymiany komunikatu miedzy procesami.
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
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 odpowiedź do klienta.
3. Proces klienta po otrzymaniu odpowiedzi ulega odblokowaniu.
Poszczególne fazy transakcji przesyłania komunikatu obrazuje rysunek.
7. Jaka jest rola administratorów zasobów w systemie QNX? Czym jest taki administrator z
punktu widzenia systemu QNX? Czym jest zasób sprzętowy z punktu widzenia systemu
QNX?
Sterowanie procesami, wprowadzanie ograniczeń twardych; administrator jest
procesem serwerowym, który akceptuje komunikaty od innych procesów; elementami
które są zarządzane poprzez system operacyjny.
8. Jaka jest rola procesów systemowych w systemie QNX? Co to jest proces „procnto” i jaka
jest jego rola w systemie QNX?
Zarządzanie procesami, przekazywanie komunikatów; jest to proces znajdujący się
najwyżej w hierarchii procesów, ‘’adoptuje” osierocone procesy.
9. Co to są pliki specjalne w systemie QNX?
To inaczej urządzenie zewnętrzne widziane w QNX np. gniazdka, kolejki, semafory.
10. Jakie są prawa dostępu do pliku? Symboliczne oznaczenia praw dostępu do pliku są
następujące:
r - Prawo odczytu (ang. read)
w - Prawo zapisu (ang. write)
x - Prawo wykonania (ang. execute)
11. Jak jest zbudowany system katalogów i plików w systemie QNX? Objaśnij pojęcie ścieżki
absolutnej i relatywnej (względnej) pliku.
System katalogów
/
root, katalog główny,
bin
katalog zawierający zbiory wykonywalne systemu (polecenia),
boot
katalog zawierający narzędzia do wytwarzania obrazu systemu,
dev
pliki specjalne reprezentujące urządzenia fizyczne (dyski, konsole, terminale, napędy CD
ROM, porty szeregowe, porty równoległe itp.),
etc
katalog zawierające zbiory inicjujące i konfiguracyjne systemu,
usr
katalog zawierający programy użytkowe,
home
katalog zawierający konta użytkowników,
tmp
katalog plików tymczasowych
System plików
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.
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.
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
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
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.
Ścieżka absolutna podaje drogę, jaką trzeba przejść od wierzchołka drzewa do danego
pliku. Przykład ścieżki absolutnej to /home/juka/prog/hello.c. Ścieżka absolutna zaczyna
się od znaku /.
Ścieżka relatywna zaczyna się od innego znaku niż /. Określa ona położenie pliku
względem katalogu bieżącego. Po zarejestrowaniu się użytkownika w systemie
katalogiem bieżącym jest jego katalog domowy. Może on być zmieniony na inny za
pomocą polecenia cwd.
12. Podaj i objaśnij polecenia umożliwiające poruszanie się w drzewie katalogów?
Nazwę katalogu bieżącego uzyskuje się, pisząc polecenie pwd. Na przykład:
Cd nowy_katalog –zmiana katalogu
cd.. -katalog wyżej
13. Podaj i objaśnij polecenia systemowe dotyczące katalogów w systemie QNX.
mkdir nazwa katalogu –tworzenie katalogu
rmdir nazwa_katalogu – kasowanie katalogu
zmiana katalogu /home/juka na katalog /home/juka:
$pwd
/home/juka
ls [-l] [nazwa] - zawartość katalogu gdzie:
l - listowanie w „długim" formacie, wyświetlane są atrybuty pliku,
nazwa - nazwa katalogu lub pliku.
14. Podaj i objaśnij polecenia systemowe dotyczące plików w systemie QNX.
Kopiowanie pliku
cp [-ifR] plik_źródłowy plik_docelowy
cp [-ifR] plik_źródłowy katalog_docelowy
i - żądanie potwierdzenia, gdy plik docelowy może być nadpisany,
f - bezwarunkowe skopiowanie pliku,
R - gdy plik źródłowy jest katalogiem, to będzie skopiowany z podkatalogami.
Zmiana nazwy pliku
mv [-if] stara_nazwa nowa_nazwa
mv [-if] nazwa_pliku katalog_docelowy
i - żądanie potwierdzenia, gdy plik docelowy może być nadpisany,
f - bezwarunkowe skopiowanie pliku.
15. Objaśnij proces edycji, kompilacji i uruchamiania programów w systemie QNX.
Edycja odbywa się za pomocą edytora ped i zapisania pliku nazwa.c następnie proces
kompilacji odbywa się z konsoli(kompilatora gcc używanego w trybie tekstowym) za
pomocą komendy $gcc nazwa.c -o nazwa jeżeli są błędy kompilator wypisze w gdzie one
są a następnie wywołujemy program pisząc $./hello
16. Co to jest proces i co jest bazą jego powstania?
Proces jest wykonującym się programem, aktywna struktura dynamiczna istniejąca tylko
w środowisku działającego komputera
Baza do jego powstania Program = algorytm + struktury danych
17. Co to jest przerwanie? Objaśnij proces obsługi przerwania (rysunek).
Przerwanie jest zdarzeniem asynchronicznym powodującym zmianę sekwencji
wykonywanych przez procesor instrukcji
Przerwanie jest chwilowym wstrzymaniem aktualnie wykonywanego procesu i
wykonaniem procedury (obsługi przerwania) przypisanej przerwaniu
Obsługa przerwania :
18. Jakie są zasoby pamięciowe procesu i do czego służą?
1. Segment kodu - (ang. code segment) segment pamięci, w którym są przechowywane
instrukcje kodu maszynowego procesu.
2. Segment danych - (ang. data segment) segment pamięci, w którym są przecho-
wywane dane statyczne procesu (dane te istnieją poprzez cały czas istnienia procesu).
3. Segment stosu - (ang. stack segment) segment pamięci, w którym są przechowywane
dane chwilowe procesu (zmienne lokalne procedur, parametry procedur).
4. Deskryptor procesu - (ang. process descriptor) rekord, w którym system operacyjny
utrzymuje wszystkie informacje niezbędne do zarządzania procesem.
19. Jakie są kanoniczne stany procesu? Narysuj graf przejść między stanami procesu i
objaśnij, kiedy są realizowane przejścia między stanami.
20. Wykonywany,
gotowy,
zablokowany;