Verifikation av operativsystem - sista fasen
Forskningsprojekt, 2014 – 2017

Datorer är närvarande i varje aspekt av våra liv. De finns till exempel i kreditkort, mobiltelefoner, radioapparater, tvättmaskiner, medicinsk utrustning och olika delar av bilar, flygplan och byggnader. Dessa datorer kan ibland vara felaktigt programmerade och kanske inte alltid lyckas utföra de saker som de är avsedda att göra. Sådana fel kan orsaka irritation hos användarna och kan leda till förlust av tid, pengar eller data, eller tom. till fysiska skador. Man kan föreställa sig vad som kan hända om en dator som skall styra en insulinpump inte reagerar som förväntat [Reuters, 25/08/2011]. När datorsystem utvecklas skriver programmerare programvara på basis av intuition. De försöker hitta misstag i sina program genom att provköra programvaran på kända exempel. När systemen tas i bruk händer det tyvärr ibland att oväntade ingångsdata påträffas, vilket kan leda till fel. För att vara säker på att datorsystem alltid fungerar korrekt måste man använda matematiska metoder för att visa att de alltid ger korrekta resultat. Detta område inom datavetenskapen kallas formella metoder - ett område som har gjort stora framsteg på senaste tiden. Inom olika projekt har man nyligen kunnat visa att komplexa program, som t.ex. operativsystem, är tillförlitliga under lämpliga antaganden. Formella metoder har hittills så gott som endast använts för att bevisa saker om programtexten som programmerarna skriver. Innan datorer kan köra programtext måste texten översättas till binär kod, dvs ettor och nollor som hårdvaran förstår. Översättningen från text till binär kod utförs av komplexa program som i sig själva kan vara defekta. För att uppnå den fulla potentialen av formella metoder bör bevis användas för binär kod. Min forskning behandlar denna fråga; jag skapar formella metoder som kan användas direkt på binär kod. Jag har visat att dessa tekniker kan användas även för komplicerad kod. De flesta datorprogram läser data, sedan gör de beräkningar och när beräkningarna är färdiga skriver de ut resultaten. Att tillämpa formella metoder för inläsning och utskrivning av data är ett svårt problem - ett problem som är en viktig del av en "Grand Challenge" utmaning för formella metoder (J S. Moore, University of Texas). Detta problem är fortfarande i stort sett olöst. Anledningen till denna svårighet ligger både i att utveckla realistiska modeller för hur datorer kommunicerar och praktiska tekniker för att bevisa att sådan binär kod är korrekt. På nivån av binär kod är kommunikationen knepig: data som skall läsas in kan användas sporadiskt och kommunikationen av resultaten kan kräva flera försök. Detta är ett problem som ännu inte har en tillfredsställande lösning för något nära till verklig binär kod. Projektet har många matematiska och tekniska utmaningar men har potential att förverkliga en ambition: att möjligöra att formella metoder skall kunna tillämpas direkt på verkliga datorsystem vid nivån av binär kod för opertivsystem.

Deltagare

Magnus Myreen (kontakt)

Programvaruteknik

Finansiering

Vetenskapsrådet (VR)

Projekt-id: 2013-5069
Finansierar Chalmers deltagande under 2014–2017

Mer information

Senast uppdaterat

2016-01-04