Frescor handlar om att skapa bättre möjligheter till kontroll över systemresurserna i datorsystem. Iden är att varje programvarukomponent ska deklarera hur mycket resurser den behöver i form av exempelvis cpu-tid, minne och nätverksbandbredd. Detta ger operativsystemet en chans till överblick över aktuella behov och en möjlighet att fördela tillgängliga resurser. Eller till och med tacka nej eller avbryta program som slukar för mycket resurser.
I forskarvärlden kallas tekniken för design by contract. "Kontrakten" anger i detta fall hur mycket resurser som en given programvarukomponent tillåts använda.
En finess som finns i Eneas implementation är möjlighet till omförhandling av kontrakten. Det betyder att programkomponenten dynamiskt kan anpassa sig till minskande resurser genom att sänka kvaliteten, exempelvis att visa färre bilder per sekund eller byta till en lägre upplösning i en videoapplikation. Och sedan höja kvaliteten igen när resurserna kommer tillbaka.
Observera skillnaden mellan detta och det som datoranvändare är vana vid – att kvaliteten sjunker och datorn blir seg som en bieffekt av att cpu:n är överlastad. Frescor tillåter programmeraren att styra hur programmet ska reagera på ändrade resurser.
Eneas egen Pacman demonstrerar anpassning till ändrade resurser: när cpu-tilldelningen sjunker svarar programmet med att sluta animera spökenas ansikten.
Jemander
– Där finns delade resurser och man vill ha en bra kontroll över exempelvis nätverksbandbredd och minnesanvändning. Här finns också menysystem och grafiska gränssnitt där man skulle kunna garantera bra responstider med hjälp av kontrakt.
En viktig poäng är att tekniken tillåter komponentisering – att kontraktskontrollerade programkomponenter kan utvecklas oberoende av varandra och sedan sättas samman till ett fungerande realtidssystem.
– Tack vare att systemet ger möjlighet att testa realtidsegenskaperna på modulnivå får man bort en hel klass av problem från systemintegrationen: nämligen realtidsproblemen, säger Thorbjörn Jemander.
Eneas Frescoverktyg består idag av ett programvarubibliotek i C för kontraktsförhandlingar om cpu-tid. Programvaran fungerar tillsammans med Eneas eget operativsystem OSE.
I en annan del av Frescorprojektet har implementationer av kontrakt gjorts för operativsystemen Linux och Marte OS.
I stor utsträckning bygger alla tre implementationerna på knappt hundra tusen rader programkod som utvecklats på det spanska universitetet i Cantabria.