CPU-Scheduling. Fag: Operativsystemer

Save this PDF as:
 WORD  PNG  TXT  JPG

Størrelse: px
Begynne med side:

Download "CPU-Scheduling. Fag: Operativsystemer"

Transkript

1 CPU-Scheduling Fag: Operativsystemer 1

2 Innhold: Scheduling (tidsplanlegger) Prosesstilstander, bakgrunn, begreper Kriterier for scheduling rettferdighet, - utnyttelse Responstid Throughput (antal prosesser ferdig per tidsenhet) Turnaround (tidsbruk per prosess) Algoritmer: Round Robin First-Come-First-Served (minner om FIFO) Shortest Job First (SJF) Prioritetsscheduling Scheduling operativsystemer 2

3 Oversikt fra andre tilstander fra kjørende tilstand p1 p2 Prosessdeskriptorer p6 Ny prosess til cpu-kø p3 cpu-kø p 4 p 2 p 9 p 5 p 3 dispatcher context switcher cpu scheduler Scheduling operativsystemer 3

4 Kjøreskjema fratatt cpu ny prosess cpu-kø scheduler cpu ferdig Har fått ressurs ressursadministrator ber om ressurs, f,eks i/o ressurser Scheduling operativsystemer 4

5 Tidslinje avbrudd fra i/o-enhet tidkvant utløper P1 P2 P3 prosess gjør i/o-kall kontekstskifte Scheduling operativsystemer 5

6 Bakgrunn En prosess kan være i en av flere tilstander Flere prosesser som konkurerer om å få kjøre på CPUen kun 1 kjørende Kjørende Kø: Suspendert Klar Scheduling = hvordan ordne køen (scheduler=tidsplanlegger) Scheduling operativsystemer 6

7 Noen scheduling-begreper Total CPU-tid: hvor lang tid bruker prosessen CPU? Ventetid/responstid: Hvor lang tid må prosess første gang stå i CPU-kø? Omløpstid: Tid fra start til slutt, både kjøring og kø-venting. Gjennomstrømning: Antall prosesser gjennom systemet i en tidsperiode Scheduling operativsystemer 7

8 Non-preemptive cpu-scheduling Prosessene beholder CPU så lenge de vil eller til tidskvant er oppbrukt Trenger ikke bruke mer tid enn nødvendig på kontekstskifter first-come-first-served: Enkel. Kan medføre betydelig venting. Hvordan? shortest job next: jobb med kortest kjøretid får kjøre først. Forutsetter kjente kjøretider. Passer satsvise (natt)jobber. Snittid vil bli liten Prioritet: ekstern (betaling) og intern (historikk). Kan få starvation Scheduling operativsystemer 8

9 Preemptive cpu-scheduling Kjørende prosess kan bli avbrutt Snakker ikke om I/O-avbrudd, men om at andre prosesser skal kunne snike i køen Prioritet avgjør dette Sikrer rask responstid Gir også rettferdig fordeling av CPU-tid Scheduling operativsystemer 9

10 Teknikker for preemptive scheduling Round-robin vanlig metode fordeler CPU-tid likt mellom alle prosesser må velge lengde for tidskvant: Administrasjon vs responstid Fler-nivå CPU-køer interaktive prosesser er i/o-bundne. Lite CPU-tid, mye I/O. CPU-bundne prosesser: Værmelding, regne ut primtall Fler-nivå er en metode for å ta hensyn til dette Scheduling operativsystemer 10

11 Ready kø PCB #1 PCB #2 hode hale Generell egenskap ved prosesser: Korte CPU-tidsbruk avbrutt av venting på I/O Scheduling operativsystemer 11

12 Prioritet Økende prioritet køer prioritet 4 prioritet 3 prioritet 2 prioritet 1 prosesser i klar-tilstand p4 p6 p2 p7 p8 p1 p3 Scheduling operativsystemer 12

13 Tidslinje avbrudd fra i/o-enhet tidkvant utløper P1 P2 P3 prosess gjør i/o-kall kontekstskifte Scheduling operativsystemer 13

14 Køer fratatt cpu ny prosess cpu-kø scheduler cpu ferdig Har fått ressurs ressursadministrator ber om ressurs, f,eks i/o ressurser Scheduling operativsystemer 14

15 Oversikt scheduler fra andre tilstander fra kjørende tilstand p1 p2 Prosessdeskriptorer p6 Ny prosess til cpu-kø p3 cpu-kø p 4 p 2 p 9 p 5 p 3 dispatcher context switcher cpu scheduler Scheduling operativsystemer 15

16 Preemptiv scheduling Det å suspendere en prosess som logisk kjører fordi den venter på f. eks. I/O eller har brukt opp sin tidskvantum. Hvis ikke -> non-preemptiv Scheduling operativsystemer 16

17 Kriterier for scheduling Rettferdighet: Alle prosesser skal få tilgang CPU-utnyttelsesgrad (% av CPU) Responstid (interaktive brukere) Throughput: Antall prosesser ferdig per tidsenhet Turnaround time: Total tidsbruk for at en prosess skal gjøre seg ferdig (start -> mål) Scheduling operativsystemer 17

18 Introduction to Scheduling Scheduling Algorithm Goals Scheduling operativsystemer 18

19 Round Robin scheduling Spesielt for tidsdelte system hver prosess får tildelt et tidskvantum ready kø ordnes som en FIFO-kø prosesser som har brukt opp tidskvantum eller må vente på I/O blir lagt bakerst i køen 1. kjører kø. A B C D 2. kjører kø. B C D A Scheduling operativsystemer 19

20 Lengde av tidskvantum Prosessen P 1 24 tidsbruk P 2 3 P 3 7 P 1 P 2 P 3 P 1 P 3 P 1 P 1 P Optimalt kvantum? Scheduling operativsystemer 20

21 Prioritets-scheduling Setter prioritet på prosessen I/O-bundne -> høy prioritet CPU-bundne -> lav prioritet Gruppene prosesserer i klassen System pros. I/O batch stud. Prioritet 4 Prioritet 3 Prioritet 2 Prioritet 1 Kjører ferdig høyere prioritetsklasse før vi går til neste Scheduling operativsystemer 21

22 Prioritets-schedulings problem Starvation (sultefôring) Prosess i en kø med lavere prioritet får ikke kjøre Løsning: Aging (aldring) -> høyner prioritet etter som tiden går Scheduling operativsystemer 22

23 Forskjellige tidskvantum Metode med flere køer med forskjellige tidskvantum: Kø 1 kvant 8 Kø 2: kvant 16 Kø 3: kvant 32 Scheduling operativsystemer 23

24 Shortest job first (SJF) Prosessen P 1 6 P 2 8 P 3 7 P 4 3 tid P 4 P 2 P 3 P Turnaround tid = ( )/4=13 Vente tid = ( )/4=7 I mange sammenhenger er SJF optimal Problem: forutsi tidsforbruk Også kalt: shortest job next (SJN) Scheduling operativsystemer 24

25 Sammenligning Prosessene P1,P2,P3,P4,P5 ankommer på tidspunktene 0,2,4,6,8 Scheduling operativsystemer 25

26 Neste leksjon: Minne Klikk her for å se på neste leksjon: Minneadminisatrasjon. Scheduling operativsystemer 26