Pytania na zaliczenie z przedmiotu „Systemy operacyjne czasu rzeczywistego”
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.
Objaśnij rolę systemu operacyjnego w systemie komputerowym.
Najważniejsze funkcje systemu operacyjnego 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.
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.
Porównaj architekturę systemu operacyjnego monolitycznego i systemu QNX.
Struktura systemu monolitycznego
Struktura systemu QNX 6
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ń.
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.
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.
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.
Co to są pliki specjalne w systemie QNX?
To inaczej urządzenie zewnętrzne widziane w QNX np. gniazdka, kolejki, semafory.
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)
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.
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
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.
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.
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
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
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 :
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.
Jakie są kanoniczne stany procesu? Narysuj graf przejść między stanami procesu i objaśnij, kiedy są realizowane przejścia między stanami.
Wykonywany, gotowy, zablokowany;