Løsning 2004 - Høgskolen i Narvik - hovedside
Løsning 2004 - Høgskolen i Narvik - hovedside
Løsning 2004 - Høgskolen i Narvik - hovedside
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Side 5 av 3<br />
en liten andel av time slice, vil prosessor stå å vente på neste time slice før neste aktivitet<br />
kjører).<br />
Prioritet: Noen aktiviteter vil i de fleste tilfeller være viktige enn andre, og setting av prioritet<br />
på oppgaver vil gjøre det mulig å la de viktigste aktivitetene ha fortrinnsrett på prosessor.<br />
Køen av aktiviteter som ønsker å kjøre kan tilordnes etter prioriteter, slik at aktiviteter med<br />
høy prioritet kan flyttes lengre frem i køen, i stedet for å stille seg bakerst. Fordelen med<br />
prioritet er at viktige aktiviteter vil få lavere responstid, samt at det øker fleksibiliteten i<br />
systemet. Ulempene er at vi får mer kompleks kjøring i systemet, og det kan bidra til mer<br />
bytting av aktiviteter. Det kan ogsp medføre ’utsulting’ av aktiviteter med lav prioritet.<br />
d) Forklar hva en semafor er, og hvordan dette kan benyttes for å oppnå gjensidig utelukking<br />
(mutual exclusion).<br />
<strong>Løsning</strong>: Ved deling av ressurser er det ønskelig å benytte en metode som gjør det mulig for<br />
en aktivitet å melde fra til andre aktiviteter om at den ressursen som denne benytter er opptatt<br />
(gjensidig utelukking). For å gjøre dette, trengs et objekt som kan sjekke og sette tilstand i en<br />
udelt operasjon. Et slikt objekt kalles en semafor. En semafor kan tilordnes hver ressurs som<br />
ønskes å deles mellom aktiviteter, og en aktivitet må ta semaforen før ressursen benyttes.<br />
Dersom semaforen er ledig, kan aktiviteten fritt benyttes ressursen. Dersom semaforen er<br />
opptatt, vil RTOS suspendere aktiviteten, og så vekke opp aktiviteten igjen når semaforen blir<br />
ledig. Dersom flere aktiviteter vil ta en opptatt semafor, kan disse legges i en kø (FIFO eller<br />
prioritetsstyrt).<br />
Binære semaforer er semaforer som bare kan være ledig eller opptatt, og fungerer som<br />
beskrevet over. Det finnes også tellende (counting) semaforer, som kan tilordnes flere verdier.<br />
Disse kan for eksempel benyttes der det er tilgjengelig flere ressurser av samme type.<br />
e) Hva menes med deadlock, og hvilke betingelser må være oppfylt for at deadlock skal<br />
oppstå? Gi tre alternative metoder som kan benyttes for å sikre seg mot at deadlock oppstår<br />
(deadlock prevention).<br />
<strong>Løsning</strong>: Deadlock er en situasjon som kan oppstå når to eller flere aktiviteter ønsker to eller<br />
flere ressurser samtidig.<br />
Eksempel: Aktivitet A1 trenger ressurser R1 og R2, og tar først semafor S1. Før A1 rekker å<br />
ta S2 blir den avbrutt av A2, som også trenger begge ressurser. A2 tar først semafor S2, men<br />
får ikke tilgang til S1, fordi denne er tatt av A1. Denne blir suspendert, og A1 forsøker å ta S2,<br />
som er opptatt.<br />
Deadlock medfører mao at ingen aktiviteter får kjøre fordi alle venter på en ressurs som en<br />
annen aktivitet holder.<br />
Følgende betingelser må alle være oppfylt for at deadlock skal oppstå:<br />
• Mutual exclusion: aktiviteter har eksklusiv rett til ressurser, og kan utestenge andre<br />
aktiviteter