1. Co to jest system czasu rzeczywistego i jakie znasz typy systemów RTOS? (4 pkt.) System czasu rzeczywistego - przekształcanie danych przesyłanych do lub z zewnętrznego środowiska zachodzi w deterministycznie określonym czasie.
Stosuje się pojęcie „termin” (ang. deadline), oznaczające najdłuższy dopuszczalny czas reakcji systemu na wystąpienie zdarzenia.
soft real-time, firm real-time, hard real-time
2. Czym charakteryzuje się system czasu rzeczywistego o twardych (miękkich) ograniczeniach –
hard (soft) RTOS? Podaj przykład. (2)
Soft real-time system – działanie systemu ulega pogorszeniu ale system nie ulega uszkodzeniu na skutek niedotrzymania ograniczenia czasowego (np: bankomat).
Hard real-time system – w którym niedotrzymanie już jednegoograniczenia czasowego prowadzi do katastroficznej awarii systemu.
(np system automatycznego pilota)
3. Jakie są podstawowe cechy systemu QNX? (6)
o
system czasu rzeczywistego klasy UNIX
o
budowa sieciowa
o
oparty o założenia mikrojądra ( signals, timers, scheduling), może być jako wbudowany
o
każdy sterownik, aplikacja pracuje poza jądrem, więc awaria nie spowoduje awarii systemu
o
nie ma rozdziału na operacje systemowe i operacje użytkownika
o
z wersją 6 QNX-a dostarczanych jest wiele narzędzi GNU i popularnego oprogramowania kojarzonego z systemem Linux.
Dostarczany jest okienkowy interfejs graficzny Photon microGUI.
o
zgodność z POSIX
4. Jakie są zalety mikrojądra systemu QNX? (2)
o
może być stosowany jako wbudowany
o
ma małe wymagania
o
zwis aplikacji nie wpływa na kernela
o
stabilność pracy
o
szybkość działania (dzięki wydziedziczaniu procesów)
5. Na czym polega zagnieżdżanie przerwań? (1)
zagnieżdżanie przerwań polega na wywoływanie przerwania w innym przerwaniu
6. Na czym polega wywłaszczanie procesów? (1)
polega na wstrzymaniu jednego procesu, aby inny mógł być wykonywany (odpowiedzialny jest za to scheduler) 7. Jakie są podstawowe cechy systemu OS-9? (6)
o
system wielodostępny optymalizowanym do zastosowań w systemach czasu rzeczywistego
o
cały system może być zapisany w ROM (nie jest wymagana pamięć zewnętrzna)
o
modularność i kod wielobieżny
o
UNIX-wa struktura plików
o
jądro systemu napisane w języku C
o
duża ilość obsługiwanych procesorów
o
wsparcie wielu standardów
o
jeden z najszybszych systemów RT
8. Na czym polega skalowalność systemów operacyjnych? (3)
Skalowalność (ang. scalability) - zapewnienie coraz wydajniejszej pracy w miarę zwiększania liczby elementów składowych.
Jest to np. cecha sieci komputerowych polegająca na zdolności do dalszej rozbudowy.
9. Co to jest POSIX i co standaryzuje? (4)
POSIX jest to interfejs przenośnego systemu operacyjnego, składa się z 15 dokumentów. X oznacza, że dotyczy systemów UNIX-owych.
Standaryzuje:
o
interfejs programistyczny (API),
o
interfejs użytkownika, czyli polecenia systemowe,
o
właściwości powłoki systemu.
10. Czym różnią się zdarzenie periodyczne i synchroniczne? (2)
Periodyczne - występują regularnie , zegar nie jest efektem działania programu
synchroniczne - zdarzenie jest efektem działania programu
11. Czym różnią się zdarzenie aperiodyczne i synchroniczne? (2)
aperiodyczne - występuje w sposów nieregularny, z niestałym interwałem czasowym, nadal są regularne synchroniczne - zdarzenie jest efektem działania programu
12. Jakie są podstawowe kryteria podziału zdarzeń systemowych? (2)
ze względu na źródło zdarzeń
ze względu na cykliczność zdarzeń
13. Co to są zdarzenia? (2)
Zdarzenie (ang. event) – zapis zajścia w systemie komputerowym określonej sytuacji. Zdarzenia przechowywane są w kolejkach
zdarzeń. System operacyjny śpi i czeka na zdarzenie
o
nie jest binarną wartością (przeciwieństwo mutex), może zawierać wiele wartości
o
nie może być "softwareowym przerwaniem"
o
mogą być dostępne dla wielu procesów
14. Do czego służą wątki i w jaki sposób mogą zostać uruchomione? (3)
Wątek - mechanizm pozwalający na tworzenie odrębnych działań wewnątrz jednego procesu
Uruchamianie wątku:
o
uruchamiany - proces zakończy wątek
o
sam wątek kończy swoje działanie
o
Wątek uruchamiany - proces czeka na zakończenie wątku
15. Co to jest mutex i jak działa? (3)
MUTEX
Mutex - wzajemne wykluczanie
Umożliwia sprawdzanie czy dostęp do pliku albo zarezerwowany albo wolny
(wzajemne wykluczenie (np dostęp do pliku)) jest globalnie widziany.
BUFOR
Może go zwolnić tylko ten program który go zarezerwował
wątek programu
wątek
zewnętrzny
16. Czym różnią się funkcje pthread_mutex_lock(mutex), pthread_mutex_trylock(mutex)? (2)
Funkcja pthread_mutex_lock zajmuje dany mutex. Jeśli mutex jest wolny zostaje zajęty i przypisany wątkowi wołającemu i pthread_mutex_lock kończy działanie natychmiast. Jeśli mutex jest zajęty przez jakiś inny watek pthread_mutex_lock zawiesza działanie wątku aż do momentu, kiedy mutex zostanie zwolniony.
Funkcja pthread_mutex_trylock zachowuje sie identyczne do pthread_mutex_lock, jednak nie jest blokująca (zwraca EBUSY w razie zajętości mutexu).
17. Jakie bezwarunkowe działania związane są z wywołaniem funkcji sem_wait(sem_t *sem),
sem_post(sem_t *sem)? (2)
sem_wait - semafor zablokowany do momentu aż sem_t *sem będzie zwolniony
sem_post - ustawiany jest semafor sem_t (sem_t - Mutex)
18. Jakie role pełnią sygnały w systemie operacyjnym? (4)
o
są odpowiednikiem przerwania
o
mogą być związane z przerwaniem sprzętowym
o
mogą byc związane z ustawieniem timera (gdy odliczy czas - coś się wydarzy)
o
administrator może wysłać do procesu sygnał kill
o
komunikacja międzyprocesowa
o
każdy proces musi mieć obsługę danego sygnału (wysłanego)
o
gdy nie ma obsługi sygnału - proces kończy działanie
o
wyjątek: seek wake - wybudzający
19. Jakie jest źródło sygnałów SIGINT i SIGQUIT? (2)
SIGINT - przerwanie (exit) ^C
SIGQUIT - pochodzi z przerwania z terminala (^E), kończy działanie
oba pochodzą z terminala
20. Czym charakteryzują się moduły systemu OS-9? (4)
o
moduły są umieszczane w pamięci ROM
o
w pliku ładowanym przy starcie (bootfile) są automatycznie dodawane do kartoteki modułów
o
nie trzeba tworzyć systemu - wystarczy dołączać/usuwać moduły
21. Jaka jest różnica pomiędzy programem, procesem i wątkiem? (3)
Przez proces rozumie się program (sekwencyjny) w trakcie wykonywania. Każdy nowo powstały proces otrzymuje unikalny numer który go jednoznacznie identyfikuje. Różnica między procesem a wątkiem polega na sposobie wykorzystania dostępnych zasobów.
Każdy proces ma przydzielony odrębny obszar pamięci operacyjnej i współzawodniczy z innymi procesami o dostęp do zasobów węzłów systemu. Wątek jest podstawową jednostką wykorzystującą procesor. Grupa równorzędnych wątków może się wykonywać współbieżnie w ramach jednego procesu, współdzieląc przestrzeń adresową oraz zasoby systemu operacyjnego. W jednym procesie może istnieć wiele wątków.
22. Na czym polega różnica w działaniu programu uruchomionego na następujące cztery
sposoby: program, program ^105, program ^105&, program >dane.txt? (4)
program - wykorzystuje normalny priorytet
program ^105 - wykorzystuje priorytet 105%
program ^105& - działa jako ukryty, priorytet 105%
program>dane.txt - zapisuje efekt działania programu do pliku wynikowego dane.txt
23. Jakie są stany procesu w systemie OS-9? (5)
o
Active - zadający czasu procesora
o
Waiting - czekający na zakończenie procesu potomnego,
o
Sleeping - czekający przez określony czas, lub na zewnetrzne zdarzenie, lub na sygnał od innego procesu o
Waiting for event - czekający na zdarzenie wewnętrzne (semafor),
o
Debugged - czekający na zezwolenie kontynuacji od procesu rodzicielskiego (debuggera)
o
Dead - czekający na odebranie statusu wyjściowego przez proces rodzicielski (po zakończeniu).
24. Jakie są warunki przejścia między stanami procesu: active i running? (2) (różne kombinacje)
o
bezpośrednie przejście (w obie strony)[przerwanie, scheduler]
o
poprzez non exist [running --> (F$Exit) --> non exist. --> (F$Fork) -->Active (tylko run->active)]
o
poprzez stan waiting [running --> (F$Wait) -->Waiting -->(F$Send lub cond=true)-->Active ] (tylko run->active) o
poprzez stan sleeping [running --> (F$Sleep) -->Sleeping -->(F$Send lub wakeup)-->Active] (tylko run->active) 25. Jaki jest mechanizm przydziału czasu procesora w systemie OS-9? (2)
o
czas jest dzielony w jednostkach "time slices" zwykle między 2-ma "ticks" =10ms o
time slices musi być wiekszy niż czas przełączania między procesami , ale nie za długi, by było wrażenie równoległości o
wykonanie procesu jako podziału na kawałki w krótkich segmentach czasu
o
przydzielanie czasu tylko aktywnym procesom (nie marnuje się czasu CPU)
26. Jaki jest efekt działania funkcji sleep(0); w systemie OS-9? (1)
sleep(0) powoduje, że proces nie przechodzi w stan uśpienia i cały czas jest aktywny
27. Jaki jest efekt działania funkcji _os_alarm_cycle(&alarmId, SIGWAKE, czas)? (2)
28. Jaki będzie efekt działania funkcji _os_alarm_cycle(&alarmId, 0x100, czas)? (2)
29. Do czego służy funkcja intercept(); w systemie OS-9? (1)
funkcja intercept() służy do instalowania procedury obsługi sygnałów zapewnia dodatkowo powrót z
funkcji obsługi sygnałów poprzez F$RTE
30. Jakie są cechy zdarzenia w systemie OS-9? (4)
o
nie jest binarną wartością (przeciwieństwo mutex), może zawierać wiele wartości
o
nie może być "softwareowym przerwaniem" (nie mogą zmieniać przebiegu programu)
o
mogą być dostępne dla wielu procesów
o
przy ich pomocy można synchronizować procesy i przekazywać niewielkie ilości danych (wartość zdarzenia) 31. Jakie są możliwe narzędzia przesyłania informacji między procesami w systemie OS-9? (5)
32. Podaj podstawowe cechy systemu Linux (6)
o
Wielozadaniowość z wywłaszczaniem i podziałem czasu.
o
Wielodostęp, czyli wsparcie dla pracy z wieloma użytkownikami.
o
Wieloprocesorowość, czyli wsparcie dla komputerów z większą liczbą procesorów niż jeden
o
Niezależność od architektury
o
Szeroki zakres tolerancji dla sprzętu - będzie działać zarówno na małych systemach embedded, jak i wielkich systemach mainframe
o
Kopiowanie przy zapisie stron pamięci - zwiększona wydajność wywołania fork
o
Zgodność z normą POSIX 1003.1 i częściowa zgodność z System V i BSD - możliwość swobodnego uruchamiania programów z innych uniksów, często nawet bez rekompilacji.
33. Na czym polega wielowarstwowa architektura sprzętowa i programowa sterownika
CompactRIO? (8)
Architektura zapewnia dostęp do zasobów sprzętowych na niskim poziomie, do szybszego tworzenia złożonych pojedynczych lub rozproszonych systemów sterowania.
34. Na czym polega zasadnicza różnica w realizacji procesu zawierającego kilka niezależnych pętli
regulacji na komputerze z systemem operacyjnym czasu rzeczywistego i w układzie FPGA? (2)
35. Jakie są zasadnicze cechy dobrego oprogramowania (omów krótko). (6)
o
Testowalność i łatwość serwisowania (program łatwy i zrozumiały; łatwe i szybkie przewidzenie skutków określonych modyfikacji programu; unikanie programowania ryzykownego oraz trików programowych)
o
Minimalizacja ryzyka przez użycie znanych i sprawdzonych metod (programowanie obiektowe zapewnia środowisko developerskie)
o
Zapewnienie właściwego priorytetu dla bezpieczeństwa
o
Unikanie sytuacji, gdy projekt zależy od konkretnych osób
36. Jakie są zasadnicze różnice w działaniu systemów fail operational i fail safe (rózne kombinacje)?
(2)
fail operational - system działa dalej, utrzymuje pełne usługi (systemy krytyczne, gdzie zatrzymanie daje katastrofalne skutki fail safe - zatrzymuje system (ograniczamy szkody przez zatrzymanie - reaktor atomowy)
37. Jakie są podstawowe źródła błędów oprogramowania (omów krótko). (6)
Źródła błędów oprogramowania dzielimy na : błędny projekt systemu, błędny projekt programu (kodowanie) co pociąga za sobą strukturę kodu oraz na efekty środowiskowe.
Projekt programu (kodowanie):
składniowe – złe użycie słów kluczowych
znaczeniowe (semantyczne) – niedokładnie zrozumieliśmy co oprogramowanie ma robić.Napisaliśmy dobry program ale nie na temat.
logiczne – powoduje że program nie zachowuje się logicznie. Pętla forever,zakleszczenie w programach,sprawdzanie złego warunku.
matematyczne(algorytmiczne) – dzielenie przez zero,zakres we/wy, przepełnienie OV
38. Podaj różnice między błędami składniowymi i semantycznymi (2)
błędy składniowe to błędy związane ze złym użyciem/zastosowanie funkcji,formuł języka w którym programujemy. Błędy semantyczne to błędy związane ze złym zakodowaniem myśli człowiek – komputer.
39. Podaj różnice między błędami logicznymi i arytmetycznymi (2)
błędy arytmetyczne to błędy związane z przekroczeniem dozwolonych zakresów , przepełnieniem stosu lub niedozwolonymi operacjami arytmetycznymi. Błędy logiczne to błędy związane z błędnym myśleniem, powodujące np. brak inicjacji zmiennych lub nie przechodzenie do dalszej części programu z powodu błędnego warunku.
40. Jak zorganizować projekt oprogramowania aby był łatwy do zarządzania? (3)
- Modularyzacja
- Zadania końcowe są dostatecznie małe – dla jednej osoby
- Struktura równoległych (konkurencyjnych) działań
41. Jak tworzyć program aby był łatwo testowalny i serwisowalny? (5)
- program musi być zrozumiały
- unikanie programowania ryzykownego
- unikanie trików programowych
- unikanie konstrukcji programowych działających tylko lokalnie , specyficznych dla maszyny lub aplikacji 42. Jakie podstawowe cechy systemu musi określać specyfikacja założeń? (4)
Do podstawowych założeń porządnie wykonanego systemu powinny zaliczać się takie cechy jak: - zgodność z wymaganiami stawianymi przez użytkownika - niezawodność - efektywność - łatwość w konserwacji - ergonomiczność