29
SCHEDULING DELLA CPU SISTEMI OPERATIVI Obiettivi » Introduzione allo scheduling della CPU ˃ Aspetto fondamentale dei sistemi operativi multiprogrammati » Algoritmi di scheduling della CPU » Criteri per la scelta degli algoritmi di scheduling della CPU per particolari sistemi Giorgio Giacinto 2018 2 Sistemi Operativi

SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

SCHEDULINGDELLA CPU

SISTEMI OPERATIVI

Obiettivi» Introduzione allo scheduling della CPU

˃ Aspetto fondamentale dei sistemi operativi multiprogrammati

» Algoritmi di scheduling della CPU

» Criteri per la scelta degli algoritmi di scheduling della CPU per particolari sistemi

Gior

gio

Giac

into

201

8

2

Sistemi Operativi

Page 2: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Gior

gio

Giac

into

201

8

Sistemi Operativi

3

Livelli di scheduling

Gior

gio

Giac

into

201

8

4

Sistemi Operativi

Running

Ready

Blocked

Short Term

Medium Term

Long Term

Blocked,Suspend

Ready,Suspend

New Exit

Figure 9.2 Levels of Scheduling

Page 3: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Scheduling e stati dei processiGi

orgi

o Gi

acin

to 2

018

5

Sistemi Operativi

Figure 9.1 Scheduling and Process State Transitions

Ready/Suspend

New

Running Exit

Blocked

Long-termscheduling

Long-termscheduling

Medium-termscheduling

Medium-termscheduling

Short-termscheduling

Ready

Blocked/Suspend

Gior

gio

Giac

into

201

8

6

Sistemi Operativi

Page 4: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Alternanza di operazioni dellaCPU e di operazioni di I/O

» L’esecuzione di un processo è una alternanza di CPU burst e I/O burst

» Durante gli I/O burstdi un processo la CPU è inattiva˃ Possiamo

assegnare alla CPU un processo prontoscheduling CPU

Gior

gio

Giac

into

201

8

7

Sistemi Operativi

CPU burst

CPU burst

CPU burst

I/O burst

I/O burst

I/O burst

Durata delle sequenze di operazioni della CPU

» Processi CPU bound˃ Pochi CPU burst molto lunghi

» Processi I/O bound˃ Molti CPU burst di breve durataGi

orgi

o Gi

acin

to 2

018

8

Sistemi Operativi

Page 5: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Scheduler della CPU» Quando la CPU è inattiva lo scheduler della CPU

seleziona un processo dalla coda dei processi pronti˃ La coda non necessariamente è gestita con politica

FIFO˃ Gli elementi della coda sono i PCB dei processi

Gior

gio

Giac

into

201

8

9

Sistemi Operativi

Attivazione dello scheduling» Lo scheduling si attiva quando

˃ Un processo passa dallo stato running allo stato blocked (I/O, wait(), ecc.)

˃ Un processo passa dallo stato running allo stato ready

˃ Un processo passa dallo stato blocked allo stato ready (completamento I/O, ecc.)

˃ Terminazione di un processo

Gior

gio

Giac

into

201

8

10

Sistemi Operativi

Page 6: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Scheduling con o senza prelazione» Se lo scheduling si attiva solo al

˃ passaggio dallo stato running allo stato blocked˃ termine di un processo

allora è senza prelazione (non-preemptive) o cooperativo

» Se lo scheduling si attiva anche al˃ passaggio dallo stato running allo stato ready˃ passaggio dallo stato blocked allo stato ready

allora è con prelazione (preemptive)

Gior

gio

Giac

into

201

8

11

Sistemi Operativi

Prelazione» Il sistema operativo può far rilasciare la CPU ad

un processo per consentire l’avanzamento di un altro processo

» Cosa succede se la prelazione avviene ˃ durante una chiamata al sistema˃ durante l’esecuzione di processi cooperanti che

elaborano dati condivisi

Windows 3.x e Macintosh fino a System 9 effettuano scheduling senza prelazione

Gior

gio

Giac

into

201

8

12

Sistemi Operativi

Page 7: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Prelazione, chiamate di sistema e interruzioni» Durante l’esecuzione di chiamate al sistema, la

prelazione può essere ritardata» Durante l’esecuzione di interruzioni, altre

interruzioni potrebbero essere disabilitate

Questi meccanismi non sono adatti nel caso di sistemi real-time e di multielaborazione

Gior

gio

Giac

into

201

8

13

Sistemi Operativi

Dispatcher» Modulo del sistema operativo che effettua

˃ Cambio di contesto˃ Passaggio alla modalità utente˃ Salto alla istruzione corretta del programma

Gior

gio

Giac

into

201

8

14

Sistemi Operativi

Page 8: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Gior

gio

Giac

into

201

8

Sistemi Operativi

15

Criteri relativi alle prestazioni del sistema

˃ Percentuale di tempo in cui il processore è occupato

˃ Numero di processi completati per unità di tempo

Gior

gio

Giac

into

201

8

16

Sistemi Operativi

Page 9: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Criteri orientati all’utente

˃ Tempo trascorso fra l’avvio di un processo e il suo completamentoSomma di: tempo di attesa ingresso in memoria, tempo nella coda ready, tempo CPU e tempo I/O

˃ Somma degli intervalli di tempo nella coda ready

˃ Tempo trascorso fra una richiesta e la relativa risposta in sistemi interattivi

Gior

gio

Giac

into

201

8

17

Sistemi Operativi

Altri criteri orientati all’utente

˃ I tempi di risposta medi dovrebbero essere sempre gli stessi Si può ottenere cercando di ridurne la varianza

Gli algoritmi di scheduling sviluppati non tengono conto di questo aspetto

Gior

gio

Giac

into

201

8

18

Sistemi Operativi

Page 10: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Gior

gio

Giac

into

201

8

Sistemi Operativi

19

Confronto degli algoritmi» Esempi con insiemi di processi nella coda ready

con relativi CPU burst» Prestazioni misurate in termini di tempo medio

di attesa˃ In molti testi si misura il tempo di turnaround

considerando la somma di CPU burst e tempo medio di attesa

Gior

gio

Giac

into

201

8

20

Sistemi Operativi

Page 11: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

First Come, First Served (FCFS)» I processi vengono eseguiti nello stesso ordine

con cui entrano nella coda dei processi pronti» Algoritmo di semplice implementazione» Il tempo di attesa di un processo dipende dalla

durata dei processi che lo precedono nella coda˃ Analogia con la coda alla cassa di un supermercato,

di una banca, di un ufficio, ecc.

Gior

gio

Giac

into

201

8

21

Sistemi Operativi

Esempio tempi di attesa FCFS

» Se i processi arrivano nella sequenza P1 P2 P3

˃ P2 attende 24 ms e P3 attende 27 msTempo medio di attesa 17 ms

Gior

gio

Giac

into

201

8

22

Sistemi Operativi

Processo CPU burstP1 24P2 3P3 3

Page 12: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Esempio tempi di attesa FCFS

» Se i processi arrivano nella sequenza P2 P3 P1

˃ P3 attende 3 ms e P1 attende 6 msTempo medio di attesa 3 ms

Gior

gio

Giac

into

201

8

23

Sistemi Operativi

Processo CPU burstP1 24P2 3P3 3

Prestazioni FCFS» I processi “CPU-bound” sono favoriti

˃ I processi “I/O bound” devono attendere il completamento dei processi “CPU-bound”

» Basso overhead per l’esecuzione dell’algoritmo» Non si ha prelazione

˃ Inadatto per sistemi time sharing

Gior

gio

Giac

into

201

8

24

Sistemi Operativi

Page 13: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Shortest Job First (SJF)» L’algoritmo seleziona il processo nella coda con

il tempo di esecuzione minore˃ shortest next CPU burst

Gior

gio

Giac

into

201

8

25

Sistemi Operativi

Processo CPU burstP1 6P2 8P3 7P4 3

Tempo medio di attesa SJF 7 ms FCFS 10.25 ms

Prestazioni SJF» Alto throughput» Ottimale rispetto al tempo medio di risposta

˃ Ma variabilità elevata!I processi più lunghi sono penalizzati

» Difficoltà e costo computazionale della stima del CPU burst successivo˃ SJF è utilizzato in scheduling a lungo termine per

elaborazione batch+ Gli utenti indicano il tempo max di esecuzione

Gior

gio

Giac

into

201

8

26

Sistemi Operativi

Page 14: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Gior

gio

Giac

into

201

8

Sistemi Operativi

27

Predizione CPU burst

τi = α ti + (1 - α) τi-1 Nell’esempio α = 1/2 τ0 = 10

SJF con prelazioneshortest remaining time first» Un processo in esecuzione viene prelazionato

se il CPU burst rimanente è maggiore di quello di un nuovo processo aggiunto alla coda ready

Gior

gio

Giac

into

201

8

28

Sistemi Operativi

Processo Istante di arrivo CPU burstP1 0 8P2 1 4P3 2 9P4 3 5

Tempo medio di attesa SJF con prel 6.5 ms SJF 7.75 ms

Page 15: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Processo CPU burst PrioritàP1 10 3P2 1 1P3 2 4P4 1 5P5 5 2

Scheduling per priorità

» Priorità più alta: valore 0

Gior

gio

Giac

into

201

8

29

Sistemi Operativi

Tempo medio di attesa 8.2 ms

Può essere con o senza prelazione

Definizione del valore di priorità» Interno

˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc.

» Esterno˃ Dipende da chi ha avviato il processo

» Pericolo di starvation˃ Se la priorità non tiene conto del tempo di attesa

Gior

gio

Giac

into

201

8

30

Sistemi Operativi

Page 16: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Round RobinScheduling circolare

» Ogni processo viene assegnato al processore per un quanto di tempo

» Se CPU burst > quanto di tempo˃ il processo viene prelazionato e inserito nella coda

ready

» Tempi medi di completamento (turnoaround) variabili rispetto al valore del quanto di tempo

» Ideato per sistemi interattivi time-sharing

Gior

gio

Giac

into

201

8

31

Sistemi Operativi

Esempio Round Robin

» Quanto di tempo q = 4ms

Tempo medio di attesa 5.66 ms

Gior

gio

Giac

into

201

8

32

Sistemi Operativi

Processo CPU burstP1 24P2 3P3 3

Page 17: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Gior

gio

Giac

into

201

8

Sistemi Operativi

33

Durata del quanto di tempo e cambi di contesto

Gior

gio

Giac

into

201

8

Sistemi Operativi

34

Durata del quanto di tempo e tempo di completamento

Empiricamente80% dei processi deve avere CPU burst di durata inferiore al quanto di tempo

Page 18: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Gior

gio

Giac

into

201

8

Sistemi Operativi

35

Scheduling a code multiple

All’interno di ciascuna coda si usa l’algoritmo più appropriato.

Gior

gio

Giac

into

201

8

Sistemi Operativi

36

Code multiple con retroazione

Fine CPU burst

Fine CPU burst

Fine CPU burst

CPU burst residuo

CPU burst residuo

Ingresso coda ready

Page 19: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Gior

gio

Giac

into

201

8

Sistemi Operativi

37

Scheduling dei thread» Modello molti-a-molti e modello molti-a-uno

˃ Process-contention scope PCSLa libreria dei thread pianifica l’esecuzione di uno dei thread a livello utente e lo associa a un LWP

˃ System-contention scope SCSLa pianificazione dell’esecuzione dei thread a livello kernel avviene a livello globale di sistema

» Modello uno-a-uno˃ Solo SCS

Gior

gio

Giac

into

201

8

38

Sistemi Operativi

Page 20: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Gior

gio

Giac

into

201

8

Sistemi Operativi

39

Soluzioni di scheduling» Due configurazioni

˃ Multielaborazione asimmetrica+ Un processore è il master che esegue il sistema

operativo, mentre gli altri processori eseguono solo codice utente

˃ SMP - symmetric multiprocessing+ Ciascun processore ha uno scheduler che seleziona

dalla coda il processo da eseguire– Unica coda per tutti i processori– Code distinte per ciascun processore (soluzione più

diffusa)

Gior

gio

Giac

into

201

8

40

Sistemi Operativi

Page 21: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Processor affinity» È l’assegnazione permanente di un processo al

processore˃ La migrazione di un processo da un processore a un

altro implica il trasferimento dei dati della cache Soft affinity˃ Il sistema operativo non garantisce il mantenimento

di un processo su un processoreHard affinity˃ Il sistema operativo garantisce la proprietà

Gior

gio

Giac

into

201

8

41

Sistemi Operativi

Gior

gio

Giac

into

201

8

Sistemi Operativi

42

NUMA e processor affinity

Page 22: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Bilanciamento del carico» Il sistema operativo può verificare che il carico

sia distribuito fra tutti i processori˃ Push migration

un processo controlla il carico e forza la migrazione dei processi per riequilibrio

˃ Pull migrationun processore inattivo sottrae un processo a un processore sovraccarico

Gior

gio

Giac

into

201

8

43

Sistemi Operativi

Processori multicore» Evoluzione dei sistemi multiprocessore» Ostacolo all’efficienza: attesa di dati dalla

memoria (stallo della memoria)

Gior

gio

Giac

into

201

8

44

Sistemi Operativi

Page 23: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Sistema multicore e multithread» Thread hardware

consentono di alternare l’esecuzione di sequenze di istruzioni di thread diversi

˃ Il sistema operativo vede un thread hardware come un processore logicoad es., con due core e due thread hardware per core il s.o. vede quattro processori logiciGi

orgi

o Gi

acin

to 2

018

45

Sistemi Operativi

Multithreading» Coarse-grain multithreading

˃ Un thread è in esecuzione nel processore fino al verificarsi di un evento a lunga latenzaIl cambio di thread richiede lo svuotamento della pipeline

» Fine-grain multithreading˃ Il cambio fra thread può avvenire anche al termine di

un ciclo di istruzioneè necessaria una logica dedicata

Gior

gio

Giac

into

201

8

46

Sistemi Operativi

Page 24: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Scheduling in sistemi multithreading» A livello di sistema operativo

˃ Scheduling dei thread software e dei processi

» A livello di processore˃ Scheduling dei thread hardware

Gior

gio

Giac

into

201

8

47

Sistemi Operativi

Virtualizzazione e scheduling» Algoritmo di scheduling nel sistema operativo

della macchina virtuale» Algoritmo di scheduling della CPU fisica da

parte del sistema operativo ospitante o dell’hypervisor

L’esito della combinazione di questi due livelli dipende dalla tecnica di virtualizzazione

Gior

gio

Giac

into

201

8

48

Sistemi Operativi

Page 25: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Gior

gio

Giac

into

201

8

Sistemi Operativi

49

Gior

gio

Giac

into

201

8

Sistemi Operativi

50

Dispatch di Solaris per i thread interattivi

Page 26: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Gior

gio

Giac

into

201

8

Sistemi Operativi

51

Scheduling di SolarisGi

orgi

o Gi

acin

to 2

018

Sistemi Operativi

52

Priorità di Windows

high abovenormal normal below

normalidlepriority

time-critical

real-time

31

26

25

24

23

22

16

15

15

14

13

12

11

1

15

12

11

10

9

8

1

15

10

9

8

7

6

1

15

8

7

6

5

4

1

15

6

5

4

3

2

1

highest

above normal

normal

lowest

idle

below normal

Page 27: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Gior

gio

Giac

into

201

8

Sistemi Operativi

53

Priorità e lunghezza del quanto di tempo in Linux

Gior

gio

Giac

into

201

8

Sistemi Operativi

54

Page 28: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Modello deterministico» Dato un insieme di processi in coda, determinare il

tempo medio di attesa (o il tempo medio di turnaround) per ciascuno dei seguenti algoritmi di schedulingFCFS, SJF e RR (q = 10 ms)

Gior

gio

Giac

into

201

8

55

Sistemi Operativi

Processo CPU burstP1 10P2 29P3 3P4 7P5 12

Reti di code» Modello matematico

˃ Coda dei processi pronti˃ Code di I/O˃ Distribuzione sequenze istruzioni CPU˃ Distribuzione istanti di arrivo processi nel sistema

Gior

gio

Giac

into

201

8

56

Sistemi Operativi

Page 29: SCHEDULING DELLA CPU - people.unica.it€¦ · ˃ CPU burst, I/O burst, tempo di attesa, risorse richieste, file aperti, ecc. » Esterno ˃ Dipende da chiha avviato il processo »

Gior

gio

Giac

into

201

8

Sistemi Operativi

57

Simulazione

Realizzazione» Si realizzano diverse versioni del sistema

operativo con diversi algoritmi di scheduling

Gior

gio

Giac

into

201

8

58

Sistemi Operativi