Systemy RT


1.Co to jest system czasu rzeczywistego i jakie znasz typy systemów RTOS?

Systemem czasu rzeczywistego nazywamy system w którym obliczenia przeprowadzane równolegle z przebiegiem zewnętrznego procesu mają na celu nadzorowanie sterowanie lub terminowe reagowanie na zachodzące w procesie zdarzenia

W systemie 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. System czasu

rzeczywistego nie musi być szybki - istotne jest jedynie, aby jego działania

spełniały narzucone ograniczenia czasowe.

Systemy czasu rzeczywistego:

iRMX,OS-9,QNX, BeOS, AhteOS i FreeBSD

2.Czym charakteryzuje się system czasu rzeczywistego o twardych (miękkich) ograniczeniach - hard (soft) RTOS? Podaj przykład

-Soft real-time system - działanie systemu ulega pogorszeniu

ale system nie ulega uszkodzeniu na skutek niedotrzymania ograniczenia

czasowego (bankomat).

-Hard real-time system - w którym niedotrzymanie już jednego

ograniczenia czasowego prowadzi do katastroficznej awarii systemu.

(system automatycznego pilota)

*3.Jakie są podstawowe cechy systemu QNX?

-jest to system operacyjny czasu rzeczywistego zaliczany do klasy Unix zgodny z normą POSIX

-charakteryzuje się rzadkim w systemach operacyjnych rozwiązaniem,

w którym nie ma rozdziału na operacje systemowe i operacje

użytkownika - podział czasu między zadaniami jest równomierny

-oparty jest o założenia mikrojądra dzięki czemu może być szeroko

stosowany jako system wbudowany.

*4.Jakie są zalety mikrojądra systemu QNX?

Pełni ono rolę egzekutora wielozadaniowego. Jest odpowiedzialne za szeregowanie informacji,implementację komunikacji między zadaniami oraz przyjmowanie zgłoszeń przerwań. Za wszystkie inne funkcje odpowiadają zadania systemow

*5.Na czym polega zagnieżdżanie przerwań?

W wielopoziomowym systemie przerwań możliwe jest ich zagnieżdżanie polegające na zawieszeniu obsługiwania przerwania o niższym priorytecie po otrzymaniu zgłoszenia przerwanbia o wyższym priorytecie. Po wykonaniu procedury obsługi przerwania następuje powrót do przerwania o niższym priorytecie.Czyli możliwość przerywania przerwań przez te o wyższym priorytecie.

*6.Na czym polega wywłaszczanie procesów?

Wywłaszczenie - to technika używana w środowiskach wielowątkowych, w której algorytm szeregujący (scheduler) może wstrzymać aktualnie wykonywane zadanie (np. proces lub wątek), aby umożliwić działanie innemu. Dzięki temu rozwiązaniu zawieszenie jednego procesu nie powoduje blokady całego systemu operacyjnego.

Wykrycie potrzeby przeszeregowania w trakcie wykonywania

kodu jądra powoduje ustawienie znacznika need_resched i

kontynuację przetwarzania w trybie jądra.

Wywłaszczenie procesu w trybie użytkownika może nastąpić:

- przy powrocie z trybu jądra

- po obsłużeniu przerwania

- po zakończeniu wywołania systemowego,

- gdy znacznik need_resched jest ustawiony.

Znacznik jest ustawiany w następujących przypadkach:

- po upływie kwantu czasu bieżącego (wykonywanego) zadania,

- po uzyskaniu gotowości przez zadanie o wyższym niż bieżące

priorytecie.

*7.Jakie są podstawowe cechy systemu OS-9?

elastyczna, modułowa architektura

100% romowalno´s´c, praca bezdyskowa

wielozadaniowos´c´ i wielodoste pnos´c´

podział czasu z wywłaszczaniem

funkcje czasu rzeczywistego

we/wy niezalez˙ne od sprze tu

odporny na awarie system plik ´ow

zgodno´s´c z UNIX-em na poziomie C

doste pnos´c´ je zyko´w wyz˙szego rze du

narze dzia do uruchamiania programo´w na ro´z˙nych poziomach

(User, System, Source)

KSIĄŻKA

*8.Na czym polega skalowalność systemów operacyjnych?

Jest to cecha polegająca na zdolności do dalszej rozbudowy, ale także miniaturyzacji systemu (jądra systemu).

*9.Co to jest POSIX i co standaryzuje?

Portable Operating System Interface for Computer Environments

Interfejs przenośnego systemu operacyjnego. Litera „x” w nazwie

zaznacza iż jest to standard związany z systemami UNIX-owskimi,

czyli ogólnie dla systemów operacyjnych, które są tworzone z myślą o

niezależności od platformy sprzętowej. Jego powstanie wiąże się z

próbą standaryzacji różnych odmian systemów UNIX.

Pracę nad Posix'em rozpoczęto w roku 1985, a kierował nim IEEE

(Institute of Electrical and Electronics Engineers), dlatego Posix jest

znany również pod nazwą IEEE 1003.

To cała rodzina standardów opracowanych przez IEEE. Posix został

uznany za oficjalną normę przez Międzynarodową Organizację

Normalizacyjną (ISO) oraz Międzynarodową Komisję

Elektrotechniczną (IEC), czyli IOS/IEC.

POSIX standaryzuje:

interfejs programistyczny (API),

interfejs użytkownika, czyli polecenia systemowe,

właściwości powłoki systemu.

10.Czym różnią się zdarzenie periodyczne i synchroniczne?

Kod cykliczny,Procesy szeregowane przez zegar

11.Czym różnią się zdarzenie aperiodyczne i synchroniczne?

Instrukcja warunkowa, Garbage collection

12.Jakie są podstawowe kryteria podziału zdarzeń systemowych?

Zdarzenia zewnętrzne,wewnętrzne,czasowe programowe

13.Co to są zdarzenia?

Zdarzenia (events):

liczniki obsługiwane przez j adro systemu, publicznie dost epne

przez nazw e, pozwalaj ace synchronizowa´c procesy.

Tworzenie zdarzenia wymaga podania nazwy i pocz atkowych

parametrow dla funkcji F$Event(Ev$Creat) (warto´s´c, przyrost automatyczny

i przyrost przy budzeniu).

Wykorzystanie zdarzenia wymaga doł aczenia si e funkcj a

F$Event(Ev$Link), kt ´ora na podstawie podanej nazwy zwraca numer

zdarzenia (ID).

Ich pojawienie się powoduje zmianę licznika (zmianę wprzepływie) programu w sposób niesekwencyjny.Podczas pracy systemu stan każdego zadania ulega zmianie pod wpływem zachodzących zdarzeń.

Przy ich pomocy mozna w OS-9 synchronizowac procesy i przekazywac

niewielkie ilosci danych (wartosc zdarzenia). W odroznieniu od sygnalow,

zdarzenia nie moga zmieniac przebiegu programu (jak przerwania i

sygnaly), nie moga uaktywniac procesow nie oczekujacych na nie. Maja

jednak liczne zalety wynikajace z elastycznosci (moga przyjmowac wiele

wartosci, sa publiczne, sa nieulotne).

Zdarzenie jest tworzone przez funkcje systemowa, ktorej dostarcza sie

nazwę i wartość początkowa. Jadro umieszcza zdarzenie w tablicy po

uprzdnim sprawdzeniu, ze nie ma innego o tej samej nazwie (do 12

znakow). Zdarzeniu jest przyporządkowywany numer (ID) bedacy dlugim

slowem, ktorego bardziej znacząca polowa jest numer kolejny z D_EvID

(po zwiekszeniu), a mniej znacząca - indeks zdarzenia w tablicy. Tablica

zdarzen jest dynamicznie rozszerzalna, nie ma ograniczenia na ilosc

zdarzen. Funkcja zwraca ID, lub bląd (gdy zdarzenie o podanej nazwie

ju istnieje).

14.Do czego służą wątki i w jaki sposób mogą zostać uruchomione?

Wątek - sekwencyjny przepływ sterowania w programie

• Grupa wątków w procesie współdzieli:

- kod programu

- dane

- zasoby systemu operacyjnego

• Wątek

-licznik rozkazów

- rejestry procesora

- stos

• Tradycyjny proces = proces jednowątkowy

W POSIX:

Umożliwiają wykonywanie jednoczesne danego procesu w wielu wątkach (wielowątkowość)

Tworzenie wątku:

Funkcja pthread_create tworzy nowy wątek. Rozpoczyna on pracę od

funkcji, której adres przekazano jako trzeci argument.

● Funkcja pthread_join usypia wywołujący ją wątek do momentu,

kiedy wątek o identyfikatorze przekazanym jako pierwszy argument zakończy pracę.

● Zakończenie pracy wątku - powrót z funkcji która go rozpoczyna.

15.Co to jest mutex i jak działa?

Mutex jest mechanizmem wzajemnego wykluczania (MUTual EXclusion) sluzacym do chronienia danych dzielonych miedzy watkami przed rownoczesnymi modyfikacjami i uzywanym do implementacji sekcji krytycznych i monitorow.

Mutex ma dwa mozliwe stany: otwarty (nie zajety przez zaden watek) lub zajety (przez jeden watek). Mutex nie moze byc w posiadaniu wiecej niż jednego watku na raz. Watek probujacy zajac mutex bedacy w osiadaniu innego watku jest zawieszany az do chwili zwolnienia mutexu przez watek, ktory go posiadal wczesniej.

16.Czym różnią się funkcje pthread_mutex_lock(mutex), pthread_mutex_trylock(mutex)?

Funkcja pthread_mutex_trylock zachowuje sie identyczne do pthread_mutex_lock, jednak nie jest blokujaca (zwraca EBUSY w razie zajetosci mutexu).

17.Jakie bezwarunkowe działania związane są z wywołaniem funkcji sem_wait(sem_t *sem), sem_post(sem_t *sem)?

Semafory

• wykorzystanie semaforów zapobiega niedozwolonemu wykonaniu operacji na

określonych danych jednocześnie przez większą liczbę procesów

• przez odpowiednie wykorzystywanie semaforów można zapobiec sytuacji w której

wystąpi zakleszczenie (ang. deadlock) lub zagłodzenie (ang. Starvation)

int sem_wait(sem_t *sem);

/* Suspends the calling thread until the semaphore pointed to by `sem' has

non-zero count. Decreases the semaphore count. */

int sem_post(sem_t *sem);

/* Increases the count of the semaphore pointed to by `sem'. */

Inkrementacja lub dekrementacja semafora

Inna interpretacja semafora:

Semafor jest pewną całkowitą liczbą nieujemną S.

Opuszczenie semafora jest równoważne wykonaniu instrukcji:

• jeśli S>0 to S=S-1,

• w przeciwnym razie wstrzymaj działanie procesu próbującego opuścić semafor

Podniesienie semafora:

• jeśli są procesy wstrzymane przy próbie opuszczenia semafora S

to wznów jeden z nich,

• w przeciwnym wypadku S=S+1

18.Jakie role pełnią sygnały w systemie operacyjnym?

Programowa reprezentacja przerwania lub wyjątku

Obsługa wyjątków

Przekazanie do procesu informacji o zdarzeniu asynchronicznym

Zakończenie procesu w sytuacjach nietypowych

Komunikacja międzyprocesowa

*19.Jakie jest źródło sygnałów SIGINT i SIGQUIT?

Terminal użytkownika,keyboard.

20.Czym charakteryzują się moduły systemu OS-9?

Koncepcja modułów pamięciowych OS-9 stanowi sedno wielu zalet,które

pozwalają na stosowanie tego systemu w szerokim zakresie aplikacji.

Pozwala ona systemowi operacyjnemu panować nad programami,

wspólnymi obszarami danych, składnikami systemu operacyjnego.

Niezależnie od ich bezwzględnego położenia w pamięci, można sie do

nich odwoływać przez nazwę, podobnie jak do plików na dysku.

Moduł OS-9 może zawierać program, dane, cześć systemu operacyjnego.

Zaczyna sie nagłówkiem, a kończy suma kontrolna (CRC).

Nagłówek zawiera informacje o module, niezbędne do jego rozpoznania

i prawidłowego wykorzystania w systemie. Pozwala on znaleźć moduł w

pamięci przy starcie systemu, zainicjować odpowiednie obszary danych

i sprawdzić jego poprawność, dzięki sumie kontrolnej i CRC. Zawiera tez wskaźnik do nazwy modułu.

Moduł jest dostępny przez nazwę, musi ona być unikalna wśród modułów załadowanych do pamięci, choć na dysku (w plikach) może sie powtarzać.

Adresy wszystkich załadowanych aktualnie modułów sąa zebrane w

kartotece modułów (module directory), która jest tablicą w pamięci

obsługiwaną przez system operacyjny.

*21.Jaka jest różnica pomiędzy programem, procesem i wątkiem?

Proces składa się z programu, który został uruchomiony i dotąd się

nie zakończył, oraz obszaru danych i struktury w pamięci używanej

przez system do obsługi tego procesu. Struktura ta jest deskryptorem

procesu (process descriptor). Ponieważ w OS-9 regułą jest używanie

czystego kodu jeden program może mieć równocześnie wiele wcieleń(wątków?)

- procesów używających tego samego programu, ale oddzielnych

obszarów danych. Każdy z procesów jest obsługiwany przez kernel

dzięki oddzielnemu deskryptorowi, który zawiera informacje o

procesie.

Program

- zbiór instrukcji dla procesora przechowywany na dysku w postaci pliku

- obiekt pasywny

Proces

- Proces jest egzemplarzem działającego programu

- środowisko wykonania programu, stworzone przez system operacyjny

- podstawowa jednostka pracy systemu operacyjnego

Proces:

- jest obiektem, który wykonuje program i udostępnia mu środowisko wykonania. Na to środowisko składa się przestrzeń adresowa i punkt sterowania

- jest elementarną jednostką podlegającą szeregowaniu - tylko jeden może się wykonywać w procesorze

- rywalizuje o pewne zasoby systemowe

- ma określony czas życia - od f-cji fork() do f-cji exit()

Czyli:

Program = plik wykonywalny na dysku

Proces = uruchomiony i wykonywany program w pamięci

Program jest pojęciem statycznym.

Proces ma naturę dynamiczną (zmieniającą się). Zmianie ulegają m.in.

- Licznik rozkazów (adres ostatnio wykonywanej instrukcji)

- Rejestry procesora

- Wskaźnik stosu

Proces ma przestrzeń adresową

- Kod

- Dane zainicjalizowane

- Dane niezainicjalizowane

- Stos

Jeden proces wykonuje się w wielu współbieżnych wątkach (ang. Thread).

Każdy wątek (inna nazwa: proces lekki, ang. lightweight)

- Ma swój własny stan (Aktywny, Gotowy, Zablokowany, ... )

- Ma swoje wartości rejestrów i licznika rozkazów.

- Ma swój własny stos (zmienne lokalne funkcji !!!).

- Ma dostęp do przestrzeni adresowej, plików i innych zasobów procesu

Procesy są od siebie izolowane, wątki nie !

*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?

23.Jakie są stany procesu w systemie OS-9?

W danej chwili proces może być w jednym z kilku stanów:

Active - zadajacy czasu procesora

Waiting - czekajacy na zakonczenie procesu potomnego

Sleeping - czekajacy przez okreslony czas, lub na zewnetrzne

zdarzenie, lub na sygnal od innego procesu

Waiting for event

- czekajacy na zdarzenie wewnetrzne (semafor)

Debugged - czekajacy na zezwolenie kontynuacji od

procesu rodzicielskiego (debuggera)

Dead - czekajacy na odebranie statusu wyjsciowego przez

proces rodzicielski (po zakonczeniu)

24.Jakie są warunki przejścia między stanami procesu: active i running? (2) (różne kombinacje)

Running-> Active

R-F$Exit-non.exit-A

R-F$Wait-waiting-F$send-A

Running-F$Sleep-Sleeping-Wakeup(F$Send)-Active

F$Wait - -deaktywacja procesu do zako´nczenia (przez F$Exit) procesu potomnego

F$Exit - dobrowolne zakończenie procesu

F$Sleep - deaktywacja (uśpienie) procesu

25.Jaki jest mechanizm przydziału czasu procesora w systemie OS-9?

Czas procesora jest dzielony pomiedzy procesy aktywne w

jednostkach zwanych "time slices". Osiaga sie to dzieki cyklicznym

przerwaniom zegarowym zwanym "ticks". Zazwyczaj w OS-9

segment sklada sie z dwoch tikow po 10 ms kazdy.

Wykonywanie kolejno wszystkich procesow w krótkich segmentach

czasu sprawia wrazenie rownoleglej pracy kilku programow. Dlugosc

segmentu dobiera sie kompromisowo - dostateccznie mala, by

stwarzac wrazenie rownoleglosci, dostatecznie duza, by nie tracic

zbyt wiele czasu na przelaczanie procesow. Dzieki przydzielaniu

czasu tylko procesom aktywnym unika sie marnowania go. System

podzialu czasu w OS-9 zapewnia rownomierne przydzielanie czasu

wszystkim procesom (z uwzglednieniem priorytetow), o ile

programista nie zazada inaczej. Specjalne cechy systemu podzialu

czasu pozwalaja wplywac na sposob przydzialu czasu, co jest

szczegolne wazne w systemach czasu rzeczywistego.

*26.Jaki jest efekt działania funkcji sleep(0); w systemie OS-9?

Uśpienie procesu w oczekiwaniu na zdarzenie

Proces po otrzymaniu sygnału wybudza się.

*27.Jaki jest efekt działania funkcji _os_alarm_cycle(&alarmId, SIGWAKE, czas)?

Zainstalowanie alarmu cyklicznego na czas (czas)

*28.Jaki będzie efekt działania funkcji _os_alarm_cycle(&alarmId, 0x100, czas)?

*29.Do czego służy funkcja intercept(); w systemie OS-9?

Zainstalowanie pułapki

*30.Jakie są cechy zdarzenia w systemie OS-9?

Przy ich pomocy mozna w OS-9 synchronizowac procesy i przekazywac

niewielkie ilosci danych (wartosc zdarzenia). W odroznieniu od sygnalow,

zdarzenia nie moga zmieniac przebiegu programu (jak przerwania i

sygnaly), nie moga uaktywniac procesow nie oczekujacych na nie. Maja

jednak liczne zalety wynikajace z elastycznosci (moga przyjmowac wiele

wartosci, sa publiczne, sa nieulotne).

Zdarzenie jest tworzone przez funkcje systemowa, ktorej dostarcza sie

nazwe i wartosc poczatkowa. Jadro umieszcza zdarzenie w tablicy po

uprzdnim sprawdzeniu, ze nie ma innego o tej samej nazwie (do 12

znakow). Zdarzeniu jest przyporzadkowywany numer (ID) bedacy dlugim

slowem, ktorego bardziej znaczaca polowa jest numer kolejny z D_EvID

(po zwiekszeniu), a mniej zanczaca - indeks zdarzenia w tablicy. Tablica

zdarzen jest dynamicznie rozszerzalna, nie ma ograniczenia na ilosc

zdarzen. Funkcja zwraca ID, lub blad (gdy zdarzenie o podanej nazwie

juz istnieje).

*31.Jakie są możliwe narzędzia przesyłania informacji między procesami w systemie OS-9?

PATRZ KSIĄŻKA

Przesył potokowy Potoki czyli bufory FIFO pozwalające na komunikację między

procesami działającymi równolegle. Automatyczna synchronizacja przesyłu , przepływ danych jest dopasowywany do wolniejszego procesu

Komunikacja za pośrednictwem potoków polega na tym że jeden proces zapisuje informacje do łącza podobnie jak do pliku,jest jednak usypiany jeżeli łącze jest pełne ,a inny proces ją odczytuje podobnie jak z pliku lub jest usypiany,jeśli złącze jest puste.Aby móc się komunikować za pośrednictwem łącza procesy muszą znać jego deskryptory.Potok jest identyfikowany przez dwa deskryptory : odczytu i zapisu.Łącza moga mieć i nie mieć zdefiniowanej nazwy.

Inne sposoby to:

kolejki komunikatów

pamięć dzielona

semafory

Mechanizm komunikacji:

Czekanie na potomka

Sygnał

Zdarzenie

Moduł danych

Wspólna pamięć

Plik dyskowy

Skutki wysłania sygnału do procesu

uaktywnienie procesu-adresata (o ile nie jest

bieżacy lub aktywny - F$AProc) - maskowanie sygnałow nie ma wpływu na te

czynność

przy przejściu procesu-adresata do trybu USER -uruchomienie procedury obsługi sygnałow (P$SigVec) jako podprogramu:

- utworzenie ramki powrotu na stosie (R$pc, R$sr)

- zmiana R$pc na P$SigVec, ustawienie kodu sygnału z P$SigQue w R$d1;

32.Podaj podstawowe cechy systemu Linux

W jądrze Linux'a, począwszy od wersji 2.0.0, zaimplementowano

tryby szeregowania dla procesów czasu rzeczywistego. Nie

wystarcza to jednak, aby można było uznać Linux za system czasu

rzeczywistego. W zadaniach takich Linux się, po prostu, nie

sprawdza. Wynika to przede wszystkim z częstego wyłączania

przerwań w celu ochrony krytycznych części kodu jądra, opóźnień w

procedurach obsługi przerwań, nie dających się przewidzieć

opóźnień związanych z pamięcią wirtualną, charakterystyki

szeregowania procesów i małej częstotliwości zegarów

systemowych. Podstawową cechą Linux'a jest to, iż proces

znajdujący się trybie jądra nie może zostać wywłaszczony przez

inny proces. Upraszcza to znacząco implementację, czyli wdrożenie

gdyż nie trzeba przejmować się wielowejściowością funkcji

systemowych. Ponieważ wykonanie funkcji systemowej może trwać

dość długo, opóźnia to wznowienie procesu realtime i, w efekcie,

uniemożliwia odpowiednio szybką reakcję na zdarzenie zewnętrzne.

Wielozadaniowość z wywłaszczaniem i podziałem czasu.

W najnowszych jądrach istnieje możliwość wywłaszczania procesu

w trybie jądra. Istnieje też możliwość uruchomienia procesu w

miękkim czasie rzeczywistym, zaś z nakładkami w rodzaju RTLinux

możliwe jest korzystanie z twardego czasu rzeczywistego

Oprogramowanie systemów czasu rzeczywistego 81

Wielodostęp, czyli wsparcie dla pracy z wieloma użytkownikami.

Użytkownicy pracujący pod Linux'em są od siebie całkowicie

odizolowani i nie mogą wpływać na siebie nawzajem.

Wieloprocesorowość, czyli wsparcie dla komputerów z większą

liczbą procesorów niż jeden - oraz procesorów Intela z

technologią HyperThreading. Najnowsze jądra znacznie

poprawiają wydajność w układach wieloprocesorowych.

Niezależność od architektury - działa zarówno na x86, jak i na

IA64, x86-64, Motoroli 68k, PowerPC, Alphie, ARM, MIPS,

paRISC oraz Sparc.

Szeroki zakres tolerancji dla sprzętu - będzie działać zarówno

na małych systemach embedded, jak i wielkich systemach

mainframe. Do uruchomienia go na komputerze PC wystarczy

zaledwie 386.

Kopiowanie przy zapisie stron pamięci - zwiększona wydajność

wywołania fork. Jednocześnie w najnowszych wersjach

wprowadzane jest współdzielenie tablic stron.

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?

*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?

35.Jakie są zasadnicze cechy dobrego oprogramowania (omów krótko).

Cechy dobrego oprogramowania:

-Poprawne (correct) -Statycznie zgodne ze specyfikacją.

-Pewne (reliable)-Czy i jak dobrze program realizuje swoje zadanie gdy zostanie uruchomiony.

DYGRESJA:

Może się zdarzyć, że poprawne oprogramowanie nie jest pewne: zostanie sprawdzone zgodnie ze specyfikacją ale w układzie nie spełnia swojego zadanie - bo specyfikacja była zła. Lub odwrotnie: program realizuje zamkniętą pętlę regulacji, powinien generować sterowanie z określoną dokładnością jeśli tego nie robi jest niepoprawny ale dla małych błędów układ zamknięty może działać pewnie.

-Bezpieczne (safe)-Wymaganie odnosi się do konsekwencji nieprawidłowego

działania: zranienie, śmierć, straty materialne.

System może działać 100% pewnie ale być niebezpieczny.I odwrotnie możemy napisać

niepewny program ale będzie w 100% bezpieczny… jeśli go nie włączymy.

36.Jakie są zasadnicze różnice w działaniu systemów fail operational i fail safe (rózne kombinacje)?

fail operational- po zaistnieniu błędu system działa nadal gdyż jego zatrzymanie miało by katastrofalne skótki.Reakcja na błąd-działą nadal

fail safe - Ograniczamy zniszczenia przez zatrzymanie (np. Reaktor jądrowy).Reakcja na błąd -stop

37.Jakie są podstawowe źródła błędów oprogramowania (omów krótko)

W fazie projektowania systemu:

-złe założenia dotyczące działania systemu i środowiska

W fazie projektowania programu:

-Błędy związane są z błędnym myśleniem o problemie lub jego rozwiązaniu (nie mają związku z fizycznym układem)

Dzielimy je na :

--Składniowe (syntax)

--Znaczeniowe (semantyczne)

--logiczne

--algorytmiczne

Efekty środowiskowe:

-błędy związane z tym Jak oprogramowanie zachowuje się w otoczeniu, w którym ma docelowo działać. System RT trzeba traktować jako część większego procesu nie jako samodzielna całość.

38.Podaj różnice między błędami składniowymi i semantycznymi

Błędy składniowe (syntax)

-Definicja i układ symboli tworzących program - słowa kluczowe, zmienne, delimitery

-Użycie złego symbolu np. „:” zamiast „;” - zazwyczaj łatwo wykrywane przez kompilatory

- Złe użycie symbolu:If (x=y) run();If (x==y) run();

-Najlepiej używać języków wysokiego poziomu - im mniej piszemy tym mniejsza szansa na popełnienie błedu

Błędy znaczeniowe (semantyczne)

-Niedokładnie zrozumieliśmy co oprogramowanie ma tak naprawdę rozbić i

zrobiliśmy coś innego (ale poprawnie)

-Nieprawidłowo zakodowaliśmy to co oprogramowanie ma robić - złe zrozumienie

lub znajomość języka programowania

39.Podaj różnice między błędami logicznymi i arytmetycznymi

Błędy logiczne

- Ten typ błędów powoduje, że program nie zachowuję się w sposób logiczny:

1)przebieg programu jest poprawny ale wyniki nieprawidłowe, potencjalne przyczyny:

+Post-check zamiast pre-check,

+brak zerowania (inicjacji) zmiennych),

+sprawdzanie złego warunku

2)może się zawieszać, potencjalne przyczyny:

+Nieskończone pętle,

+Zakleszczenie w programach wielowątkowych (deadlock)

Błędy algorytmiczne

1) Pojawiają się w operacjach matematycznych:

2) Overflow, za krótki typ zmiennej, zła znajomość reprezentacji liczb na danej maszynie (największa liczba jaką maszyna może przechować, najmniejsza liczba, relacja pomiędzy największym i najmniejszym argumentem jednej operacji, precyzja)

3) Dzielenie przez 0 - niezdeterminowany wynik

4) Zakres wejść-wyjść

5)Jednostki przyjęte w obliczeniach (ich spójność)

40.Jak zorganizować projekt oprogramowania aby był łatwy do zarządzania?

Organizacja projektu aby był łatwy do zarządzania:

+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?

Testowalność i łatwość serwisowania:

Program musi być zrozumiały i jednoznaczny (nie tylko dla twórcy!)

Możliwość łatwego i szybkiego przewidzenia skutków określonych

modyfikacji programu jest niezwykle pożądana

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ń



Wyszukiwarka

Podobne podstrony:
System finansowy w Polsce 2
Systemy operacyjne
Systemy Baz Danych (cz 1 2)
Współczesne systemy polityczne X
System Warset na GPW w Warszawie
003 zmienne systemowe
elektryczna implementacja systemu binarnego
09 Architektura systemow rozproszonychid 8084 ppt
SYSTEMY EMERYTALNE
3 SYSTEMY LOGISTYCZNE
modelowanie systemow
16 Metody fotodetekcji Detektory światła systematyka
ZINTEGROWANY SYSTEM RATOWNICTWA MEDYCZNEGO(1)
01 Pomoc i wsparcie rodziny patologicznej polski system pomocy ofiarom przemocy w rodzinieid 2637 p
Powstanie systemu Unix

więcej podobnych podstron