Tillförlitlighet och feltolerans Mål –Att förstå vilka faktorer som påverkar tillförlitligheten för ett system och hur fel vid mjukvarukonstruktion kan tolereras
Innehåll –Tillförlitlighet, misslyckande(failure) och fel(fault) –Misslyckande-moder –Felförebyggande och feltolerans –N-versions-programmering –Dynamisk mjukvaruredundans –Återhämtningsblock för mjukvaru-feltolerans –Jämförelse mellan n-versions-programmering och återhämtningsblock –Dynamisk redundans och undantag –Säkerhet, tillförlitlighet och pålitlighet
Misslyckande-moder Failure mode Value domain Timing domainArbitrary (Fail uncontrolled) Constraint error Value error EarlyOmissionLate Fail silentFail stopFail controlled
Nivåer i ett ATC-system Full functionality within required response times Minimum functionality required to maintain basic air traffic control Emergency functionality to provide separation between aircraft only Adjacent facility backup: used in the advent of a catastrophic failure, e.g. earthquake
N-versions-programmering Version 2Version 1Version 3 Driver vote status vote status
Konsistenta jämförelser - Problem T3 > T th no P3 > P th T1 > T th yes P1 > P th yes V1 T2 > T th yes P2 no > P th V2 V3 Each version will produce a different but correct result Even if use inexact comparison techniques, the problem occurs
Domino-effekten Parallella processer som växelverkar gör BER mer komplex. R 22 R 21 R 13 R 12 R 11 IPC 4 IPC 3 IPC 2 IPC 1 Execution time T error P1P1 P2P2 If the error is detected in P1 rollback to R13 If the error is detected in P2 ?
Återhämtnings-block - Mekanism Establish Recovery Point Any Alternatives Left? Evaluate Acceptance Test Restore Recovery Point Execute Next Alternative Discard Recovery Point Fail Recovery Block Yes No Pass Fail
Ideal fel-tolerant komponent Interface Exception Failure Exception Interface Exception Failure Exception Service Request Normal Response Service Request Normal Response Normal ActivityException Handlers Return to Normal Service Internal Exception
Begrepp: säkerhet och tillförlitliget Dependability AvailableReliableSafeConfidentialIntegralMaintainable Readiness for Usage Continuity of Service Delivery Non-occurrence of Catastrophic Consequences Non- occurrence of unauthorized disclosure of information Non- occurrence of improper alteration if information Aptitude to undergo repairs of evolutions
Terminologi - “dependability” Dependability Availability Confidentiality Reliability Safety Integrity Maintainability Fault Prevention Fault Tolerance Fault Removal Fault Forecasting Faults Errors Failures Attributes Means Impairments
Sammanfattning Tillförlitlighet: ett mått på den framgång med vilket ett system överensstämmer med en auktoritativ specifikation av dess uppförande När systemets uppförandet avviker från sin specifikation kallas detta ett misslyckande(failure) Misslyckanden är resultatet av fel(fault)
Sammanfattning Fel kan introduceras av en händelse eller avsiktligt i ett system De kan vara transienta, permanenta eller intermittenta Fel-förebyggande består av fel-undvikande and fel-avlägsnande Fel-tolerans innehåller introduktion av redundanta komponenter i ett system så att fel kan detekteras och tolereras
Sammanfattning N-versions-programmering: den oberoende genereringen av N (där N >= 2) funktionellt ekvivalenta program från samma utgångs- specifikation Baserad på antagandena att ett program kan speciferas fullständigt, konsistent och otvetydigt, och att program som har utvecklats oberoende kommer att misslyckas oberoende
Sammanfattning Dynamisk redundans: fel(error)-detektering, skade-begränsning och skade-värdering, fel(error)-återhämtning, och fel(fault)- behandling samt fortsatt service Odelbara operationer för att underlätta skade- begränsningar
Sammanfattning Med bakåt-fel(error)-återhämtning (Backward Error Recovery, BER) är det nödvändigt för kommunicerande processer att nå konsistenta återhämtnings-punkter för att undvika domino-effekten För sekventiella system är återhämtnings- block att lämpligt språkbegrepp för BER
Sammanfattning Även om framåt-fel(error)-återhämtning (Forward Error Recovery, FER) är system- specifikt, så kan undantags-hantering (exception handling) identifieras som en lämplig struktur för dess implementering Begreppet ideal fel-tolerant komponent som använder undantag(exceptions) introducerades Begreppen mjukvaru-säkerhet och mjukvaru- tillförlitlighet introducerades
Undantag och undantagshantering Mål: –Att illustrera olika modeller för undantagshantering och att visa hur undantagshantering kan användas som en struktur för implementering av fel-toleranta system
Undantag och undantagshantering Innehåll: –Undantagshantering i äldre realtids-språk –Modern undantagshantering –Undantagshantering i Java och C –Återhämtnings-block och undantag
Återupptagande(Resumption)-modellen Hq Hr P Q R P invokes Q Q invokes R R raises r Hr raises q Hq resumes Hr Hr resumes R
Avslutande(Termination)-modellen Procedure P Procedure Q Procedure R P invokes Q Q invokes R Exception r raised Handler sought Handler for r Procedure terminates
Undantag i C C definierar inte resurser för undantags- hantering Detta är en begränsning när det gäller strukturerad programmering av tillförlitliga system Emellertid är det möjligt att tillgodose en viss form av undantags-hantering genom att använda macron i C
Undantag i C För att implementera en avslutande-modell, är det nödvändigt att spara statusen hos programregister m.m. vid ingången till ett undantags-område och sedan återställa dem om ett undantag inträffar POSIX-resurserna setjmp och longjmp kan användas för detta syfte
Sammanfattning Alla modeller för undantags-hantering behandlar följande frågor –Representation av undantag: ett undantag kan, eller kan inte, vara explicit representerat i ett språk –Området(domain) för en undantags- hanterare(handler): associerad med varje hanterare är ett område som specificerar den region av beräkningarna under vilken, om ett undantag inträffar, hanteraren aktiveras
Sammanfattning Alla modeller för undantags-hantering behandlar följande frågor –Undantags-propagering: när ett undantag är aktuellt och det inte finns någon undantags- hanterare i det omgivande området, kan antingen undantaget propageras till nästa utanförliggande omgivande område, eller kan undantaget betraktas som ett programmeringsfel Återupptagande(resumption)- eller avslutande (termination)-modellen: detta bestämmer vilka åtgärder som vidtas efter att ett undantag har hanterats
Sammanfattning I återupptagande(resumption)-modellen återupptas anroparen av undantaget vid påståendet efter det där undantaget anropades I avslutande(termination)-modellen avslutas det block eller den procedur som innehåller hanteraren(handler) och kontrollen lämnas över till det anropande blocket eller den anropande proceduren