13.10.2013 Views

Løsning 2004 - Høgskolen i Narvik - hovedside

Løsning 2004 - Høgskolen i Narvik - hovedside

Løsning 2004 - Høgskolen i Narvik - hovedside

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!