Capitolo 5: Scheduling della CPU

12
Capitolo Capitolo 5: Scheduling 5: Scheduling della della CPU CPU 5.2 Silberschatz, Galvin e Gagne ©2006 Sistemi operativi - Concetti ed esempi -Settima edizione Capitolo Capitolo 5: Scheduling 5: Scheduling della della CPU CPU n Concetti fondamentali n Criteri di scheduling n Algoritmi di scheduling n Scheduling per sistemi multiprocessore n Scheduling real-time n Scheduling dei thread n Esempi di sistemi operativi n Scheduling dei thread in Java n Valutazione degli algoritmi

Transcript of Capitolo 5: Scheduling della CPU

Page 1: Capitolo 5: Scheduling della CPU

1

Capitolo Capitolo 5: Scheduling 5: Scheduling della della CPUCPU

5.2 Silberschatz, Galvin e Gagne ©2006Sistemi operativi - Concetti ed esempi -Settima edizione

Capitolo Capitolo 5: Scheduling 5: Scheduling della della CPUCPU

n Concetti fondamentali

n Criteri di scheduling

n Algoritmi di scheduling

n Scheduling per sistemi multiprocessore

n Scheduling real-time

n Scheduling dei thread

n Esempi di sistemi operativi

n Scheduling dei thread in Java

n Valutazione degli algoritmi

Page 2: Capitolo 5: Scheduling della CPU

2

5.3 Silberschatz, Galvin e Gagne ©2006Sistemi operativi - Concetti ed esempi -Settima edizione

Serie alternata di sequenze di operazioni Serie alternata di sequenze di operazioni della della CPU e CPU e di sequenze di operazioni di di sequenze di operazioni di I/OI/O

5.4 Silberschatz, Galvin e Gagne ©2006Sistemi operativi - Concetti ed esempi -Settima edizione

Diagramma delle durate delle sequenze Diagramma delle durate delle sequenze di operazioni della di operazioni della CPUCPU

Page 3: Capitolo 5: Scheduling della CPU

3

5.5 Silberschatz, Galvin e Gagne ©2006Sistemi operativi - Concetti ed esempi -Settima edizione

Predizione della lunghezza della successiva Predizione della lunghezza della successiva sequenza di operazioni della sequenza di operazioni della CPU (CPU (CPU burstCPU burst))

5.6 Silberschatz, Galvin e Gagne ©2006Sistemi operativi - Concetti ed esempi -Settima edizione

Quanto di Quanto di tempo e tempo e cambio di contestocambio di contesto

Page 4: Capitolo 5: Scheduling della CPU

4

5.7 Silberschatz, Galvin e Gagne ©2006Sistemi operativi - Concetti ed esempi -Settima edizione

Variazione Variazione del tempo del tempo di completamento di completamento in in funzione funzione del del quanto di quanto di tempotempo

5.8 Silberschatz, Galvin e Gagne ©2006Sistemi operativi - Concetti ed esempi -Settima edizione

Scheduling a code multipleScheduling a code multiple

Page 5: Capitolo 5: Scheduling della CPU

5

5.9 Silberschatz, Galvin e Gagne ©2006Sistemi operativi - Concetti ed esempi -Settima edizione

Code multiple con Code multiple con retroazioneretroazione

5.10 Silberschatz, Galvin e Gagne ©2006Sistemi operativi - Concetti ed esempi -Settima edizione

API API Pthread Pthread per lo schedulingper lo scheduling

#include <pthread.h>#include <stdio.h>#define NUM_THREADS 5int main(int argc, char *argv[ ]){

int i;pthread_t tid[NUM_THREADS];pthread_attr t_attr;/* ottiene gli attributi di default */pthread_attr_init(&attr);/* imposta l’algoritmo di scheduling a PCS o SCS */pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM);/* imposta I criteri di scheduling - FIFO, RT, oppure ALTRO */pthread_attr_setschedpolicy(&attr, SCHED OTHER);/* genera i thread */for (i = 0; i < NUM_THREADS; i++)

pthread_create(&tid[i],&attr,runner,NULL);

Page 6: Capitolo 5: Scheduling della CPU

6

5.11 Silberschatz, Galvin e Gagne ©2006Sistemi operativi - Concetti ed esempi -Settima edizione

API API Pthread Pthread per lo schedulingper lo scheduling

/* adesso aspetta la terminazione di tutti i thread */

for (i = 0; i < NUM_THREADS; i++)pthread_join(tid[i], NULL);

}

/* Ogni thread inizia l’esecuzione da questa funzione */

void *runner(void *param){

printf("I am a thread\n");pthread_exit(0);

}

5.12 Silberschatz, Galvin e Gagne ©2006Sistemi operativi - Concetti ed esempi -Settima edizione

Scheduling Scheduling di di SolarisSolaris

Page 7: Capitolo 5: Scheduling della CPU

7

5.13 Silberschatz, Galvin e Gagne ©2006Sistemi operativi - Concetti ed esempi -Settima edizione

Tabella di Tabella di dispatch dispatch di di Solaris Solaris

5.14 Silberschatz, Galvin e Gagne ©2006Sistemi operativi - Concetti ed esempi -Settima edizione

PrioritPrioritàà di di Windows XPWindows XP

Page 8: Capitolo 5: Scheduling della CPU

8

5.15 Silberschatz, Galvin e Gagne ©2006Sistemi operativi - Concetti ed esempi -Settima edizione

Relazione fra Relazione fra le le prioritprioritààe la e la lunghezza lunghezza del del quanto di quanto di tempotempo

5.16 Silberschatz, Galvin e Gagne ©2006Sistemi operativi - Concetti ed esempi -Settima edizione

Liste dei Liste dei task task indicizzate indicizzate sulla sulla base base delle prioritdelle prioritàà

Page 9: Capitolo 5: Scheduling della CPU

9

5.17 Silberschatz, Galvin e Gagne ©2006Sistemi operativi - Concetti ed esempi -Settima edizione

Valutazione di algoritmi di Valutazione di algoritmi di scheduling scheduling della della CPU CPU tramite una simulazionetramite una simulazione

5.18 Silberschatz, Galvin e Gagne ©2006Sistemi operativi - Concetti ed esempi -Settima edizione

Tipica architettura Tipica architettura SMTSMT

Page 10: Capitolo 5: Scheduling della CPU

10

5.19 Silberschatz, Galvin e Gagne ©2006Sistemi operativi - Concetti ed esempi -Settima edizione

Con Con ll’’algoritmo algoritmo FCFS i FCFS i processi si processi si eseguono secondo eseguono secondo lo schema lo schema seguenteseguente

5.20 Silberschatz, Galvin e Gagne ©2006Sistemi operativi - Concetti ed esempi -Settima edizione

Con Con ll’’algoritmo algoritmo SJF SJF senza prelazione senza prelazione i i processi si eseguono processi si eseguono come seguecome segue

Page 11: Capitolo 5: Scheduling della CPU

11

5.21 Silberschatz, Galvin e Gagne ©2006Sistemi operativi - Concetti ed esempi -Settima edizione

Con Con ll’’algoritmo algoritmo RR i RR i processi processi si eseguono si eseguono come segue come segue

5.22 Silberschatz, Galvin e Gagne ©2006Sistemi operativi - Concetti ed esempi -Settima edizione

Latenza relativa Latenza relativa al dispatchal dispatch

Page 12: Capitolo 5: Scheduling della CPU

12

FineFine del del Capitolo Capitolo 55