Ressurskø

Fra IT2
Hopp til: navigasjon, søk

Det er mange forskjellige valg for hvordan du skal velge neste prosess når du driver på med cpu administrasjon. Skal valget bli tatt utifra først til mølla prinsippet eller hvem som eier prosessen? Vi må se på hvert enkelt system og hva som kreves av det. Hvis vi har et system hvor brukeren logger seg på en virtuell datamaskin, vil det da være lurt å velge ut neste prosess etter hvem som eier den, hvor mye prosess tid prosessen har fått før ol.

Når vi sammenligner metoder for cpu scheduling så ser vi på begreper som:

Total cpu-tid: Så lang cpu tid prosessen trenger for å fullføre oppgaven sin. i/o venting beregnes ikke , kun den tiden prosessen benytter prosessen.

Ventetid: Så lenge prosessen må vente i kø før den kan kjøre for første gang.

omløpstid: Den tiden det tar fra prosessen får kjørt for første gang til den er ferdig.

Gjennomstrømning: Antall prosesser som kommer gjennom systemet i en gitt tidsperiode

Tidskvant

Når flere prosesser kjører på cpu-en samtidig pleier man å tildere cpu-tid etter en fast størrelse som er angitt av et tidskvant. Det vil si at ingen cpu kan ta over hele cpu-en. En prosess vil alltid miste cpu-en når tidskvantet utløper, hvis den ikke allerede har mistet den på grunn av prosesser som har kommet med høyere prioritet eller at prosessen selv har bedt om en i/o-operasjon.

Preemptive og ikke-preemptive cpu-administrasjon

Vi har to forskjellige hovedgrupper av scheduling. Det er preemptive og ikke-preemptive metoder.

  • Preemptiv vil si at operativsystemet kan komme inn og skifte prosess. Skiftet kan være til en prosess med høyere prioritet eller til neste prosess i køen fordi tidskvantet utløper.
  • Ikke-preemptiv vil si at prosessen som kommer inn i kjørende tilstand ikke gir fra seg cpu-en før den er ferdig. Det vil si at den har brukt cpu-tiden, eller at den har frivillig gitt fra seg cpu-en.

Skifte av prosesser og avbrudd

Så lenge det ikke er en prosess med høyere prioritet som står i køen så kjører den prosessen som kjører, hvis ikke tidskvantet utløper eller prosessen utfører et i/o kall.

Når prosessen bruker cpu-en så vil det også komme avbrudd fra bl.a i/o-enheter. Disse avbruddene må operativsystemet håndtere der og da. en avbruddsrutine blir kjørt når dette skjer og når dette er ferdig så gis cpu-en tilbake til avbrutt prosess.

Avbruddene er raske og behandle og sinker ikke cpu-en nevneverdig. cpu-en har svært ofte flere sett med registere og slipper dermed å skifte ut innholdet på cpu-en for å behandle avbrudd. Det holder å skifte register sett