Capitolo 5: Scheduling della CPU
Transcript of 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
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
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
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
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);
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
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
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àà
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
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
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
12
FineFine del del Capitolo Capitolo 55