vnorenØ systØmy maro„ ˇuríŁektkraj/2 kontrola_toku_programu.pdfkontakt:...
TRANSCRIPT
Spoľahlivosť a kontrola toku programuVnorené systémy
Maroš Ďuríček
Ústav počítačových systémov a sietíFIIT, STU BA
8.10.2014
Kontakt: [email protected]
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 1 / 25
Obsah
1 Úvod
2 Spoľahlivosť
3 Tok programu
4 Chyby v toku programu
5 Metódy kontroly toku programuHW metódySW metódy
6 Literatúra
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 2 / 25
Úvod
Úvod
Príčiny chýb vo vnorených systémoch:(Chyba - prejavenie poruchy)
fyzické poruchy - vnútorné a vonkajšie (žiarenie)
poruchy v dôsledku ľudskej chyby
Prejavenie porúch:
bez prejavenia
zlyhanie
detekcia poruchy - softvérovo, hardvérovo, timeout
latentná porucha
opravenie poruchy
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 3 / 25
Úvod
Chyby a modely
Chyby v systémoch:
hardvérová úroveň - preklopenie bitu . . .systémová úroveň
chyby v dátachchyby v programe
Typ 1 - nezmení sa tok programuTyp 2 - zmení sa tok programu
softvérové chyby. . . chyby programátorov
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 4 / 25
Spoľahlivosť
Spoľahlivosť
Intenzita hardvérových porúch λ v závislosti od času:
λ = πLπQ (C1πTπV + C2πE )
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 5 / 25
Spoľahlivosť
„Vaňová krivkaÿ softvéru - vsuvka
I - testovanie/ladenie - odstraňovanie chýbII - používanie SW - modernizácia SW (upgrade) - vznik ďalších chýbIII - starnutie SW - λ ostáva konštantná
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 6 / 25
Spoľahlivosť
Spoľahlivosť (2)
Dependability = „ability of a processor-based system to deliver a servicethat can justifiably be trustedÿ
Spoľahlivosť (Dependability) zahŕňa:
Dostupnosť (Availability)
Reliability - „pravdepodobnosť bezporuchovej prevádzkyÿ
Bezpečnosť (Safety) - schopnosť odvrátiť katastrofické následky preľudí/okolie
Integrita
Udržiavateľnosť (Maintainability)
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 7 / 25
Spoľahlivosť
Niektoré atribúty spoľahlivosti
R (t) = exp(−∫ t0λ (τ) dτ
)Ak λ je konštantná, potom:
R (t) = e−λt
Q (t) = 1− R (t)
f (t) = λR (t) (hustota porúch)
MTTF =
∫ ∞0
e−λtdt =1λ
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 8 / 25
Spoľahlivosť
Reliability - R(t)
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 9 / 25
Tok programu
Tok programu
Procesorové systémy - procesor, pamäť, program, okolie
Tok programu (Control flow) - postupnosť inštrukcií vo vykonávanomprograme
Graf toku programu - reprezentácia toku programu pomocou grafu
Základný blok - časť programu bez vetvení a iných inštrukcií riadenia(okrem poslednej inštrukcie bloku)
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 10 / 25
Tok programu
Graf toku programu (2)
P = {V ,E}V = {v1, v2, . . . , vn}E = {e1, e2, . . . , em}
vi - základný blokei - vetvenie bri ,j z vi do vjAk bri ,j /∈ E , vetvenie/skok je nelegálny
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 11 / 25
Chyby v toku programu
Chyby v toku programu
typ 1 - nesprávny skok zkonca bloku na začiatokiného bloku
typ 2 - legálny alenesprávny skok z koncabloku na začiatok inéhobloku
typ 3 - skok z konca blokudo stredu nesprávnehobloku
typ 4 - skok z ktorejkoľvekčasti bloku do inej častiiného bloku
typ 5 - skok z ktorejkoľvekčasti bloku do inej častitoho istého blokuMaroš Ďuríček Spoľahlivosť a kontrola toku programu 12 / 25
Chyby v toku programu
Chyby v toku programu (2)
porucha vloženia inštrukcie vetvenia (branch insertion error) - ak sav základnom bloku zmení bežná inštrukcia na inštrukciu vetvenia aporucha vedie k vetveniu
modifikácia cieľa vetvenia (branch target modification error) - cieľinštrukcie vetvenia je zmenený na inú adresu z dôvodu poruchy avetvenie sa vykoná
vyradenie vetvenia (branch deletion error) - porucha spôsobí, žeinštrukcia riadenia toku programu (vetvenie, skok, . . . ) sa zmení nainštrukciu bez riadenia toku
Pri hard RT systémoch - časový alebo logický odklon od pôvodného tokuprogramu
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 13 / 25
Metódy kontroly toku programu
Metódy kontroly toku programu
1. rozdelenie:
Hardvérové metódySoftvérové metódy
pre jazyky vyššej úrovne C, C++, . . .pre jazyky na úrovni assembleru
Hybridné metódy
2. rozdelenie:
metódy aplikovateľné na systémy s COTS procesormi
metódy využívajúce IP jadrá
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 14 / 25
Metódy kontroly toku programu HW metódy
Pôvodná hardvérová metóda
Watchdog procesor (r. 1988)
rozšírenie pôvodnej myšlienky watchdog časovača
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 15 / 25
Metódy kontroly toku programu HW metódy
Watchdog procesor (WDP)
kontrola toku programu
monitorovanie zbernice medzi CPU a pamäťou
overovanie, či je spustený správny blok programu a ich poradie
WDP musí mať referenčné informácie o programe z grafu tokuprogramu
programové bloky majú pridelené príznakydetekcia porúch:
chybná inštrukcia (napr. zle načítaná z pamäte)zlý skok v programe
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 16 / 25
Metódy kontroly toku programu HW metódy
WDP (2)
WDP:aktívny - počíta príznaky, vykonáva tieňový programpasívny - sleduje informácie na zbernici a kontroluje správnosť sreferenčnou pamäťou
Dva typy prístupov KTP s WDP:statické prideľovanie príznakovodvodenie príznakov z inštrukcií
aj kontrola integrityproblém pri spracovaní inštrukcií
Problémy:moderné CPU s Cache pamäťoupamäťový nárastzvýšené oneskorenieproblém pri superskalárnych strojochmodifikácia vykonávaného programu - nárast v pamäti
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 17 / 25
Metódy kontroly toku programu HW metódy
WDP (3)
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 18 / 25
Metódy kontroly toku programu SW metódy
Softvérové metódy
SIHFT - softvérovo implementovaná hardvérová odolnosť
určené pre systémy s COTS procesormi
používa sa príznaková analýza
model programu pomocou grafu toku programu (control-flow graph)
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 19 / 25
Metódy kontroly toku programu SW metódy
CFCSS
si - príznak pridelený každému blokuG - run-time príznak meniaci sa počas vykonávaniapríznaková funkcia f :
f (G , di ) = G ⊕ di
kdedi = sj ⊕ si
a sj - príznak predchodcu vi .
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 20 / 25
Metódy kontroly toku programu SW metódy
Hybridné a nové hardvérové metódy
Každá z nových metód využíva softvérovú podporu aspoň čiastočne.Prednosti v nových hybridných a HW metódach:
využitie systémov na čipe
miniaturizácia
používanie IP jadier
návrh špecializovaného hardvéru
Príklad: CFCET - Control-flow checking using execution tracing(využitie ladiaceho portu)
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 21 / 25
Metódy kontroly toku programu SW metódy
Metóda CFCET (2006)
Pentium procesory majú jednotku Execution tracing unit
Generovanie špeciálnych zbernicových cyklov
Extrahovanie grafu skokov (GTP) ⇒ externý WDP s asociatívnoupamäťou
Modul OS, ktorý zapne generovanie špeciálnych cyklov na zbernici
Predpoklad použitia aj pri Multi-tasking OS
Výhody:
Aplikovateľná metóda na COTS procesory s prúdovým spracovaním aon-chip cache
Nie je potrebná modifikácia programu
Detekcia chýb takmer bez oneskorenia
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 22 / 25
Metódy kontroly toku programu SW metódy
CFCET (2006) (2)
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 23 / 25
Metódy kontroly toku programu SW metódy
Atribúty metód KTP
Hlavnými atribútmi metód kontroly toku programu:
výkon systému
pamäťový priestor
plocha čipu pri HW a hybridných metódach
pokrytie porúch
oneskorenie detekcie porúch
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 24 / 25
Literatúra
Literatúra
[1] Goloubeva, O., Rebaudengo, M., et al.: Software-Implemented HardwareFault Tolerance. Springer 2006, ISBN 978-0-387-26060-0.
[2] Koren, I., Krishna, C., M.: Fault-Tolerant Systems. San Francisco, CA, USA:Morgan Kaufmann Publishers Inc., 2007, ISBN 978-0120885251.
[3] Oh, N.; Shirvani, P.P.; McCluskey, E.J.: Control-flow checking by softwaresignatures, IEEE Transactions on Reliability, vol.51, no.1, pp.111,122, Mar2002.
[4] Rajabzadeh, A., Miremadi, S.-G.: A hardware approach to concurrent errordetection capability enhancement in COTS processors. In Proceedings of the11th Pacific Rim International Symposium on Dependable Computing, pp.8, Dec. 2005.
[5] Dubrova, E.: Fault-Tolerant Design: An Introduction, KTH Royal Instituteof Technology, Stockholm (Sweden),2008.URL:http://web.it.kth.se/˜dubrova/draft.pdf.
Maroš Ďuríček Spoľahlivosť a kontrola toku programu 25 / 25