HØGSKOLEN I NARVIK Avdeling for teknologi MSc.-studiet EL/RT Side 1 av 3 STE6221 Sanntidssystemer LØSNINGSFORSLAG TIL EKSAMEN Tid: Torsdag 09.03.2006, kl: 09:00-12:00 Tillatte hjelpemidler: Godkjent programmerbar kalkulator, med tomt minne. Ingen trykte eller håndskrevne hjelpemidler tillatt. Faglærer: Førsteamanuensis, Dr.ing. Per J. Nicklasson, Tlf. 76 96 64 01 Oppgavenes vekt er angitt i prosent av total poengsum. Hvert delspørsmål gir 5 poeng.
Oppgave 1 (10%) a) Forklar kort hva som menes med funksjonelle og ikke-funksjonelle krav til programvare. s. 97-98 Funksjonelle krav fokuserer på hva systemet gjør, dvs. oppførsel. Ikke-funksjonelle krav fokuserer på hva systemet har, dvs. egenskaper. b) Forklar på hvilke måter prototyping kan benyttes ved utvikling av sanntidssystemer. s. 102-103 Utforskende prototyping for å teste om begge parter er enige i krav. Exploratory prototyping Prototyping av krav f.eks. ved hjelp av visuelle verktøy. Solution prototyping. Granskende prototyping (alternative løsninger i designfasen, visuelle verktøy). Investigative prototyping. Verifikasjon (analyse av kode vha. formelle spesifikasjonsmetoder). Verification prototyping. Utviklende prototyping (modifikasjoner og oppgradering). Evolutionary prototyping. Oppgave 2 (20%) a) Hvilke to plattformer kan maskinvare for sanntidssystemer hovedsakelig deles inn i? s. 11 Spesielle skreddersydde plattformer ( bespoke designs ) Bruk av hyllevare (COTS) b) Hvilke fysiske faktorer må en ofte ta hensyn til ved design av maskinvare for embedded systems? s. 13 Temperatur, sjokk og vibrasjon, fuktighet, størrelse, vekt. c) Hvorfor er det spesielt krevende å teste innebygde systemer tilstrekkelig godt? s. 598 Det er reduserte muligheter for innsyn i systemet, og utvikling må ofte foregå på et annet system enn vertssystemet. Virkningen av det fysiske miljøet rundt systemet er ofte vanskelig å inkludere i testene. d) Anta at det oppstår en feil i et sanntidssystem. Hvilke 3 ulike måter bør systemet kunne takle feilen på, avhengig av hvilke krav om sikkerhet som stilles til systemet? s. 16-17 Fail-safe -systemet går inn i en sikker tilstand. Reduced service -systemet opererer med redusert ytelse. Full and safe operation -systemet fortsetter å operere med full ytelse. Oppgave 3 (20%) a) Forklar kort hvilke 7 hovedgrupper av operativsystemtjenester som inngår i en såkalt mikrokjerne ( microkernel ). s. 310-311. Konfigurering av systemet og spesielle funksjoner: System set-up and special functions Tidsfordeling av oppgaver: Process (task) scheduling and control Mekanismer for gjensidig utelukkelse: Mutual exclusion Synkronisering uten dataoverføring
Dataoverføring uten synkronisering Synkronisering med dataoverføring Dynamisk allokering av minne b) Hvordan skiller en mikrokjerne ( microkernel ) seg fra et generelt større sanntids operativsystem for innebygde systemer ( general-purpose embedded RTOS )? s. 311 Mikrokjerne inneholder de mest nødvendige funksjonene for å kjøre oppgaver i sann tid samt grensesnitt mot maskinvaren i egen Board Support Package, mens et GP-RTOS har mange flere funksjoner (nettverk, Board Support Package er bare en tilleggspakke, filhåndtering, grafikk, forskjellige andre tilleggssfunksjoner). GP-RTOS: Mellom mikrokjernen og applikasjonsprogramvaren, er det et lag som tar seg av minnehåndtering og beskyttelse (protected, non-protected). c) Er det mulig å prediktere nøyaktig hvor lang tid det tar å utføre gitte operasjoner i et sanntidssystem som kjører flere oppgaver samtidig ( multitasking )? Forklar. s. 344 Nei, generelt ikke. Når mekansimer som semaforer, postbokser, avbrudd og annet tillates brukt, kan en ikke prediktere tidsforbruket eksakt. En kan imidlertid komme frem til et omtrent worst case estimat.dersom en skal kunne angi et eksakt tidsestimat, må systemet være meget enkelt, og ikke ha innslag av stokastiske elementer (avbrudd, venting på semaforer osv.). d) Forklar kort hvilke krav man må sette til prediksjon av ytelse for operativsystemtjenester i følgende kategorier sanntidssystemer: 1. Soft-slow 2. Hard-slow 3. Soft-fast 4. Fast-hard s. 344 1. Ytelse ikke så veldig viktig. Holder med estimat av midlere tider. 2. Samme som over. 3. Holder med midlere tider. 4. Må kjenne til worst-case tidsforbruk. Spesielt viktig for kritiske applikasjoner.
Side 3 av 3 Oppgave 4 (15 %) a) Det finnes i hovedsak 3 teknikker for integrasjonstesting av programvare, hvorav 2 er å anbefale i seriøse utviklingsgprosjekter. Forklar kort hva disse 3 teknikkene går ut på. s. 579 Big-bang fremgansgmåte. Alt inkluderes og testes på en gang. Anbefales ikke. Top-down hierarkisk med emulering av lavere (ikke ennå programmerte) enheter. Bottom-up hierarkisk med testing av små enheter først, så større enheter. b) Det finnes ulike mål på integrasjonskompleksitet når N programvareenheter skal settes sammen, hvorav ett av disse kan beskrives med formelen j N S i iv G j N 1 j 1 Forklar hva faktoren iv G j er et mål på. s. 588 N enheter skal integreres. iv G j er et mål på syklomatisk kompleksitet av den reduserte flytgrafen til enhet j. c) Forklar hvorfor funksjonaliteten dynamic polymorphism, som finnes i en rekke objektorienterte programmeringsspråk, ikke bør benyttes ved utvikling av kode som skal benyttes i sanntidssystemer. s. 592 Det er ikke mulig å bestemme utfra koden hvilket objekt som vil bli brukt under utførelsen for en gitt operasjon, fordi dette ikke er definert på forhånd. Nærmest umulig å teste alle muligheter for en gitt operasjon. Oppgave 5 (15%) a) Designteknikker kan deles inn i tre hovedkategorier: Monolittisk, modulært og uavhengig design. Forklar disse teknikkene i forhold til et produkt uten programvare (bruk diagram der det passer). b) Beskriv konsepter ved de forskjellige teknikkene i forhold til struktur på kildekode og produksjon av kjørbare program. c) Gi fordeler og ulemper ved de forskjellige teknikkene når de benyttes på programvare. Se eget Word-dokument. Oppgave 6 (25%) Forklar kort hva følgende begreper omhandler, relatert til et sanntidssystem: a) Scheduling s. 200 Tidsfordeling til ulike oppgaver (tasks) i sanntidssystem. b) Wait og Signal s. 222 Operasjoner på semafor. Beslaglegging og frigjøring av semafor. c) Monitor
s. 224, s. 628 Avansert mekanisme for gjensidig utelukkelse, evt. også program som kjører på verstsystem og muliggjør overvåkning av systemet (to monitor -overvåke). d) Re-entrancy s. 212, s.313 Kode (funksjoner, operasjoner) som kan benyttes på en sikker måte av flere brukere (tasks). e) Preemption s. 202 Operativsystemet kan kaste ut en oppgave fra prosessoren før den er ferdig på naturlig måte.