Tosiaikajärjestelmät Luento 6: Luotettavuus ja turvallisuus

Samankaltaiset tiedostot
Luotettavuus ja vikasietoisuus. Tosiaikajärjestelmät Luento 6: Luotettavuus ja turvallisuus. Vika, virhe, häiriö. Mistä häiriöt syntyvät?

Vikasietoisuus ja luotettavuus

Ohjelmistojen virheistä

Vikasietoisuus ja luotettavuus

11. Luento: Vikasietoisuus. Tommi Mikkonen,

Dynaaminen SLA-riski. Goodnet-projektin loppuseminaari pe Pirkko Kuusela, Ilkka Norros VTT

Arto Salminen,

Sulautettujen järjestelmien vikadiagnostiikan kehittäminen ohjelmistopohjaisilla menetelmillä

TK Palvelinympäristö

Digitaalitekniikan matematiikka Luku 13 Sivu 1 (10) Virheen havaitseminen ja korjaus

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Toiminnallinen turvallisuus

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

Yritysturvallisuuden perusteet

5. Siirtoyhteyskerros linkkikerros (Data Link Layer)

7.4 Sormenjälkitekniikka

esimerkkejä erilaisista lohkokoodeista

Käytettävyysanalyysi

Paikallinen stabilointi

Simulation and modeling for quality and reliability (valmiin työn esittely) Aleksi Seppänen

Esimerkki Metson ESD-ventiilidiagnostiikasta (osaiskutesti)

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

LAATURAPORTTI Iteraatio 1

7. Koneenohjausjärjestelmien suunnittelumallit. OhAr Veli-Pekka Eloranta

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle,

Ohjelmistotuotanto s

Esimerkkejä vaativuusluokista

Laadunvarmistustekniikat

Choose Finland-Helsinki Valitse Finland-Helsinki

S Sähkön jakelu ja markkinat S Electricity Distribution and Markets

Tornio Works käynnissäpidon toimintamalli

Agenda. Läpäisyvaatimukset Henkilökunta Luennot ja aikataulu Kurssimateriaali Harjoitustyöt Demoharjoitus Tentti ja arvostelu Muuta?

14. Luento: Kohti hajautettuja sulautettuja järjestelmiä. Tommi Mikkonen,

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

Poikkeavuuksien havainnointi (palvelinlokeista)

JKV-järjestelmän baliisivikatilanteet

Algoritmit 1. Luento 1 Ti Timo Männikkö

arvostelija Turvallisuuskriittisissä, sulautetuissa järjestelmissä esiintyvien ohjelmistovaatimusten virheanalyysi Jarkko-Juhana Sievi

Inhimilliset tekijät työturvallisuudessa Mira Seppänen Representative & Lead consultant IBS Finland & Baltic countries

Algoritmit 2. Luento 13 Ti Timo Männikkö

OHJ-4301 Sulautettu Ohjelmointi

Algoritmit 2. Luento 13 Ti Timo Männikkö

Tietojärjestelmän osat

Luotettavuuden mittaamisesta. Ilkka Norros ja Urho Pulkkinen

Hajautettujen järjestelmien perusteet. Vikasietoisuus Kari Systä OHJ-5010; hajautettujen perusteet 1

Algoritmit 1. Luento 3 Ti Timo Männikkö

Hammastankohissin modernisointi. Heikki Laitasalmi

Algoritmit 2. Demot Timo Männikkö

Tiedon muuttumattomuuden tarkistus Järjestelmän sisäinen muisti

T Yritysturvallisuuden seminaari

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

C++11 seminaari, kevät Johannes Koskinen

Sytyke ry:n laivaseminaari Software Technology Transfer Pekka Forselius

ITK130 Ohjelmistojen luonne

Ohjelmiston testaus ja laatu. Testaustasot

Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms.

2 Konekieli, aliohjelmat, keskeytykset

Luento 5 Riippuvuudet vikapuissa Esimerkkejä PSA:sta

Algoritmit 1. Luento 11 Ti Timo Männikkö

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori

Tik Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu. LiKe Liiketoiminnan kehityksen tukiprojekti

Algoritmit 2. Luento 2 To Timo Männikkö

Juha Henriksson. Digitaalinen pitkäaikaissäilytys Dr. Juha Henriksson Finnish Jazz & Pop Archive

dokumentin aihe Dokumentti: Testausraportti_I1.doc Päiväys: Projekti : AgileElephant

Kontrollipolkujen määrä

Itsestabilointi: perusmääritelmiä ja klassisia tuloksia

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

Testaaminen ohjelmiston kehitysprosessin aikana

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää

Muistutus aikatauluista

1 KÄYNNISTÄ MD-3100 USB ADSL MODEM. Tuotetiedot

Laadunvarmistuksen merkitys toimitusketjussa. Fingrid: Omaisuuden hallinnan teemapäivä. Kaj von Weissenberg

KONEAUTOMAATION LAATU JA TURVALLISUUS Marko Varpunen

Miksi teknologia on haastavaa? Perinteinen Bowie & Dick vs elektroninen Bowie & Dick. Bowie & Dick testi : menneestä nykyaikaan

BL20A0700 Sähköverkkotekniikan peruskurssi

Luento 5 Yhteisvikojen analyysi PSA:n sovelluksia

Stabilointi. Marja Hassinen. p.1/48

MACHINERY on laadunvarmistaja

811312A Tietorakenteet ja algoritmit I Johdanto

Algoritmit 2. Luento 2 Ke Timo Männikkö

Laajarunkoisten rakennusten rakenteellisen turvallisuuden arviointi

Harjoitus 3 (viikko 39)

Toimilohkojen turvallisuus tulevaisuudessa

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2016

Kriittistentöiden hallinta EASA. Jukka Parviainen

Other approaches to restrict multipliers

Tietorakenteet ja algoritmit

Tapahtuipa Testaajalle...

Ohjelmistojen suunnittelu

Tietoturvan Perusteet Yksittäisen tietokoneen turva

Taloyhtiön laajakaistan käyttöohje, Tekniikka: HomePNA. Käyttöjärjestelmä: Windows XP

Rinnakkaisuuden hyväksikäyttö peleissä. Paula Kemppi

Käyttöjärjestelmät: prosessit

Simulaattoriavusteinen ohjelmistotestaus työkoneympäristössä. Simo Tauriainen

Turvallisuus prosessien suunnittelussa ja käyttöönotossa. 1. Luennon aiheesta yleistä 2. Putkisto- ja instrumentointikaavio 3. Poikkeamatarkastelu

Miesten telinevoimistelun tuomarikurssi. 1. taso

SMS ja FSTD. Helsinki, Ylitarkastaja Olli Hänninen. Responsible traffic. A joint effort.

Transkriptio:

Tosiaikajärjestelmät Luento 6: Luotettavuus ja turvallisuus Tiina Niklander Burns & Wellings luku 5 tai Krishna & Shin luvut 7 ja 8 Luotettavuus ja vikasietoisuus Yleistä: Vika, virhe, häiriö Vikatyyppejä Mitä voidaan tehdä: estää, havaita, sietää, korjata Vian havaitseminen Vian sieto Monentaminen ja toisintaminen Turvallisuus ja luotettavuus Riippuvuus (dependability) Esimerkkejä 1

Vika, virhe, häiriö Virhe (error, bug, mistake) Ohjelmiston poikkeaminen määrittelystä Vika (fault) Virheellisen ohjelmakohdan suoritus Häiriö (failure) Viasta aiheutuva ulkoisesti havaittava poikkeama määrittelystä Kaikki virheet ja viat eivät välttämättä johda häiriöön Mistä häiriöt syntyvät? Määrittely- tai suunnitteluvirheet Puutteellinen määritelmä Suunnitelmassa (tai toteutuksessa) virheitä Komponenttiviat Vanheneminen, huono valmistuserä, tms. Ympäristön vaikutus Elektromagneettinen häiriö Liikaa lämpöä, kiihtyvyyttä, tärinää, yms. 2

Vikatyyppejä Pysyvä vika (permanent) Poistuu järjestelmästä vasta korjauksen jälkeen Tilapäinen vika (transient) Ilmenee hetken ja häviää Syynä esimerkiksi elektromagneettinen säteily Muita nimiä: soft error Toistuva vika (intermittent) Ilmaantuu satunnaisesti aika-ajoin Irtonainen johto, lämpöherkkä komponentti Häiriökäyttäytyminen (failure mode) Fail-silent Aina oikea tulos, tai ei vastausta lainkaan Helppo malli teoreettisissa tarkasteluissa Fail-consistent, value-error Laskennan tulos voi olla väärä, mutta sama tieto kaikille kommunikointiin osallistuville Byzantine, arbitrary, malicious Laskennan tulos voi olla erilainen eri vastaanottajille. 3

Mitä voidaan tehdä? Pysyvä vika Varataan laitteistoon ylimääräistä kapasiteettia, jotta toiminta voi jatkua Korjataan myöhemmin Tilapäinen (tai satunnainen) vika Toivutaan viasta, laitteisto on yleensä edelleen ehjä Havaitaan ja tehdään vain laskenta uudelleen Tyypillisesti tutkimuksissa on valittu vikaantumisen malliksi joko Pysyvä vika + fail silent tai Tilapäinen vika + fail consistent tai byzantine Vian havaitseminen Vian havaitseminen edellyttää sekä tietoa nykyisestä tilasta että suunnitellusta tilasta Suunnitellun tilan tieto voidaan saada Joko etukäteen pääteltynä (a priori) Tai vertailutietona rinnakkaisista järjestelmistä Prosessorin häiriökäyttäytyminen voidaan yrittää havaita Laittomasta toiminnasta: esim. suorituskäskyn nouto data-alueelta, virheellinen opkoodi, liian pitkään kestänyt suoritus 4

Vikaantumisen sieto Perustuu aina monentamiseen (redundancy) Useita vaihtoehtoisia palvelutasoja Täysi vikasietoisuus: järjestelmä tarjoaa vioista riippumatta saman pysyvän palvelutason Alentunut palvelutaso: järjestelmä tarjoaa edelleen palvelua, mutta sen suorituskyky on alentunut vikojen seurauksena Turvallinen pysähtyminen (fail safe): Järjestelmä ei enää tarjoa palvelua, mutta varmistaa, että pysähtyminen tapahtuu turvallisesti Esimerkki: lennonvalvonta Täysi palvelutaso ja oikeaaikainen palvelu Minimalistinen palvelutaso, joka riittää ylläpitämään perustoiminnot Turva (tai hätä) palvelutaso, joka takaa lentokoneiden törmäämättömyyden Katastrofitilanteessa (esim. maanjäristys) turvautuminen naapurilennonjohdon laitteisiin 5

Vikasietoisuus Järjestelmä on k-vikasietoinen, jos se toimii määritelmänsä mukaan vielä, kun korkeintaan k komponenttia on vikaantunut Hierarkkinen rakenne (järjestelmä voi olla komponentti ylemmän tason järjestelmälle) Luotettavuus ja vikasietoisuus Yleistä Monentaminen ja toisintaminen k-vikasietoisuus, n-versiointi Laitteisto, ohjelmisto vai aika Äänestys, konsensus, toipuminen Turvallisuus ja luotettavuus Riippuvuus (dependability) Esimerkkejä 6

Monentaminen on vanha keksintö The most certain and effectual check upon errors which arise in the process of computation is to cause the same computations to be made by separate and independent computers; and this check is rendered still more decisive if their computations are carried out by different methods. D. Lardner, Edinburg Review, 1825 Laitteisto Lisätään järjestelmään laitteistoa, jota ei tarvittaisi, jos mikään ei koskaan vikaantuisi Lyhytaikainen käyttötapa Häiriön havaitsemiseen Kaikki komponentit suorittavat samat operaatiot ja tuloksesta äänestetään Pitkäaikainen käyttötapa Korvataan vikaantunut järjestelmän osa vastaavalla toimivalla varaosalla 7

Laitteisto Monentaminen on kallista, koska tarvitaan ns. 'turhia' osia valmiiksi järjestelmään Avaruusluotaimiin on pakko asentaa valmiiksi riittävä määrä varaosia, joita voidaan ottaa käyttöön tarvittaessa Huollettavammassa järjestelmässä (esim. auto, lentokone) voidaan käyttää äänestysmenettelyä ja vikaantuneet osat korjataan, kun niitä havaitaan Kuinka monta toisintoa tarvitaan? Kun halutaan sietää k eri virhettä, tarvitaan k+1 toisintoa, jos virhe pysäyttää toiminnan (fail-silent tai fail-stop) 2k+1 toisintoa, jos johdonmukainen vikaantuminen eli virhe on sama kaikille (failconsistent) 3k+1 toisintoa, jos Bysanttilainen vikaantuminen eli 'pahantahtoinen' toiminnallisuus, vikaantunut komponentti tuottaa satunnaisia tuloksia (malicious, arbitrary) 8

Äänestys ja konsensus Vähintään kolme samanlaista voi äänestää ja käyttää enemmistöpäätöstä Kaksi voi havaita vian, mutta ei päättää oikeaa tulosta (fail silent mahdollinen) Miten lähellä tulosten pitää olla toisiaan? (Pyöristyserot eri laitteistoilla) Onko 1.400978 sama kuin 1.400984? Likimääräinen samuus sallittava, jos syötteillekin sallitaan pientä vaihtelua Äänestystapoja Enemmistöpäätös (majority vote) x,y P i, joss d(x,y), valitaan max(p i ) Valitaan yksi arvoista x P i k-enemmistöinen päätös (k-plurality vote) Valitaan joku P i, jossa vähintään k jäsentä Keskivertopäätös (median vote) Valitaan vastauksista arvoltaan keskimmäinen 9

Arkkitehtuurivaihtoehdot Kaksi synkronoitua prosessoria (lock-step dual processor) Verrataan tuloksia, jos eroja -> fail-silent Havaitsee kaikki viat Kaksi erillistä prosessoria (loosely-synchronized dual processor) Havaitsee virheellinen tuloksen, Tarvitsee erillisen vian etsinnän Kolme prosessoria (TMR - triple modular redundant) Äänestyksen jälkeen havaitaan virhe ja tiedetään viallinen komponentti Uusi idea (2003): Dual Lock-Step Oikeasti siis neljä prosessoria n-modulaarinen monennus (NMR) Tyypillinen laitteistotason ratkaisu N prosessoria ja äänestetään tulos N yleensä pariton Tarvitaan 2m+1 prosessoria, jotta selvitään m:sta vikaantumisesta TMR - triple modular redundant 10

NMR kaavakuvia P1 Ään P1 P2 Ään P2 Ään P3 Ään P3 PLC (ohjelmoitava logiikkakontrolleri) Storey: Safety-critical computer systems 11

Dual Lock Step Tähän tuo kaavakuva artikkelista (tai koko asia pois) Baleani et.al: Fault-Tolerant Platforms for Automotive Safety-Critical Applications. CASES 03, s. 170-177, ACM. Ohjelmisto Laitteistotason monentaminen mallina N-versiointi Tehdään N eri toteutusta samasta ohjelmasta Tavoitteena eri virheet eri ohjelmissa Toipumislohkot (recovery block) Toistettavissa oleva ohjelman suorituksen osa Toistossa voidaan käyttää samaa ohjelmakomponenttia tai jotain toista versiota Toistetaan vain, jos ens. suoritus virheellinen 12

Ohjelmiston monentaminen N-versiointi Toipumislohkot Versio1 Versio1 Hyv. Testi Ok Hylätty Versio2 Ään Versio2 Hyv. Testi Ok Hylätty Versio3 Versio3 Hyv. Testi N-versiointi Kallista Riippumattomat työryhmät, ei yhteistoimintaa Vaikuttavia tekijöitä: Vaatimusten spesifiointi Ohjelmointikieli ja Algoritmi (entä jos tässä virhe) Työkalut, koulutus ja ohjelmointitaito 13

T1 Vertailun tai äänestyksen ongelma > T th T2 > T th no T3 > T th Erilainen, mutta oikea tulos kaikissa versioissa P1 yes P2 yes P3 no > P th > P th > P th yes V1 V2 V3 Millaisella vertailulla voidaan päätellä tuloksen samuus? Toipumislohko Lisätään ohjelmaan toipumispisteitä (recovery point) Tällainen voi olla esim. checkpoint, jossa ohjelman koko tila tallennetaan Vikatilanteessa suoritus voidaan peruuttaa edelliseen pisteeseen ja jatkaa siitä uudelleen Toipumispisteestä seuraavaan voidaan käyttää jotain vaihtoehtoista menetelmää tai versiota 14

Toipumislohko Restore Recovery Point Fail Establish Recovery Point Any Yes Alternatives Left? Execute Next Alternative Pass Evaluate Acceptance Test Discard Recovery Point No Fail Recovery Block Vertailu: N-versio / toipumislohko N-versio Toipumislohko Toimintamalli Staattinen Dynaaminen Kehityskustannus Versiot + ohjaus Moduulit + hyv-testi Suorituskustannus N resurssia Virheen hav. Atomisuus Toipumispisteet Äänestys, joustavahyväksymistesti Kommunikointi Taaksepäin toipuva, ohjaimen kautta vähäinen yleiskuorma 15

Aika Ajan toisintaminen -> laskennan toistaminen myöhemmin Edellytys: aikarajat sallivat kaksinkertaisen suorituksen ainakin vikatilanteissa Toipumislohkojen käyttö perustuu tähän Virhe tapahtui Vika havaitaan c1 c2 c3 c4 c5 c6 c7 Toipuminen palauttaa tilan Kaksi tapaa toipua ajassa Toipuminen eteenpäin Siirretään järjestelmän tilaa eteenpäin turvalliseen tilaan Tilat määrättävä jokaiselle järjestelmälle erikseen Toipuminen taaksepäin Palautetaan turvallinen aiemmin suoritettu tila Yleisempi lähestymistapa 16

Execution time Dominoefekti kommunikoivat prosessit P 1 P 2 R 11 IPC 1 IPC 2 R 21 Jos virhe on P1:ssä se palautetaan tilaan R13 R 12 IPC 3 Entä, jos virhe onkin P2:ssa? R 13 IPC 4 R 22 T error Informaatio Koodataan lisätietoa, jolla voidaan havaita ja jopa korjata virheitä Tallennetaan sama tieto kahteen kertaan Pariteettibitti Tarkistussumma Hamming etäisyys Käytetään arvioimaan bittijonojen samuutta 17

Luotettavuus ja vikasietoisuus Yleistä: Monentaminen ja toisintaminen Turvallisuus ja luotettavuus Riippuvuus (dependability) Esimerkkejä Turvallisuus ja luotettavuus Turvallisuus: Järjestelmä ei aiheuta hengenmenoja, loukkaantumisia, sairauksia, omaisuuden tai ympäristön vaurioitumista. Luotettavuus: mittari, joka kertoo kuinka hyvin järjestelmä vastaa toiminnankuvausta. Turvallisuus on siis todennäköisyys, että järjestelmän toiminta ei johda vahinkoon toimipa järjestelmä suunnitelmansa mukaan tai ei. 18

Dependability Terminology Availability Reliability Safety Attributes Confidentiality Integrity Dependability Means Impairments Maintainability Fault Prevention Fault Tolerance Fault Removal Fault Forecasting Faults Errors Failures Virheen käsittely Virheen havaitseminen äänestys, hyväksymistesti Virheen (tai vahingon) eristäminen Virheestä toipuminen Konsensus, toipumislohko Virheen korjaus Korjauksen jälkeen palautetaan taas toimintaan 19

Luotettavuus ja vikasietoisuus Yleistä: Monentaminen ja toisintaminen Turvallisuus ja luotettavuus Riippuvuus (dependability) Esimerkkejä Avaruussukkulan tietokonejärjestelmä Prosessin ylösnousemus (process resurrection) Avaruussukkula Viisi tietokonetta, joista neljä samassa ryhmässä Viidennessä koneessa on muista täysin riippumaton ohjelmistototeutus lähinnä varalla Kaikki koneet kytketty yhteen viidellä rinnakkaisella väylällä 20

Avaruussukkula Kuva 6.20 teoksesta: N. Storey Safetycritical computer systems. Prentice Hall 1996 Prosessin ylösnousemus Artikkeli Kihwal Lee ja Lui Sha: Process Resurrection: A Fast Recovery Mechanism for Real-Time Embedded Systems. Proc of RTAS 05, IEEE. Idea: Tehdään uudelleenkäynnistys niin nopeaksi, että uudelleenkäynnistetty prosessi ehtii valmistua alkuperäisen aikarajan sisällä! 21

Prosessin ylösnousemus Ratkaisuidea: Artikkelin kuva 2 Yhteenveto Virheiden ja vikojen luokat ja mallit Toisinnetaan Laitteisto: N-modulaarinen, äänestys Ohjelmisto: N-versiointi, toipumislohko Aika: Toivutaan eteen- tai taaksepäin Informaatio: tuplaus, lisäkoodaus, tarkistussumma Prosessi: virheen havaitseminen, eristäminen, toipuminen, korjaaminen 22