Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Documenti analoghi
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Scheduling della CPU

Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi.

Scheduling della CPU. Sistemi Operativi L-A AA

Scheduling della CPU

Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi

SCHEDULING DELLA CPU. Obiettivi. » Introduzione allo scheduling della CPU. » Algoritmi di scheduling della CPU

Scheduling della CPU. Lo scheduling Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Capitolo 5 - Silberschatz

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

E-1: Scheduling dei processi

Scheduling della CPU:

Scheduling della CPU. Sistemi operativi- AA 2015/16 1 1

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

TECN.PROG.SIST.INF. - Politiche di schedulazione del processore. Roberta Gerboni

Scheduling della CPU

Scheduling della CPU. Capitolo 6 - Silberschatz

Lezione 5. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata

Lezione 5. Di cosa parliamo in questa lezione? La schedulazione dei processi. Schedulazione e caratteristiche dei processi.

TECN.PROG.SIST.INF. - Politiche di schedulazione del processore. Roberta Gerboni

Sistemi Operativi Esercizi Ordinamento Processi

Multiprogrammazione. Sistemi Operativi Giuseppe Prencipe. Scheduling dei processi Scheduling. Sequenza di CPU e I/O burst.

Ordinamento dei processi

Architettura degli Elaboratori 2. tipi di scheduling. scheduling della CPU (1) scheduling. First Come First Served. First Come First Served

Sistemi Operativi 2003/2004. Lo scheduling dei processi

Sistemi Operativi. La gestione delle risorse

Criteri di Scheduling! Algoritmi di Scheduling! Scheduling per sistemi multprocessore!! Modelli Asimmetrico e Simmetrico! Processori Multicore!

Assegnazione della CPU (CPU scheduling) Scheduling della CPU (1) CPU bursts (1) Scheduling della CPU (2)

5.19! Silberschatz, Galvin and Gagne 2005! 0! 20! 37! 57! 77! 97! 117! 121! 134! 154! 162!

Scheduling della CPU

L ordinamento dei processi. Ordinamento dei processi. Fasi di ordinamento. Attribuzione della CPU 1. Materiale preparato da: A.

Sistemi Operativi. Scheduling dei processi

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU

Sistemi Operativi. Lezione 5 Lo scheduling

Sistemi Operativi (modulo di Informatica II) Schedulazione della CPU

Sistemi Operativi Modulo I. Lo Scheduling

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Sistemi Operativi SCHEDULING DELLA CPU

Sistemi Operativi A.A. 2010/2011

Laboratorio di Sistemi Operativi Simulatori

Sistemi Operativi 13 Novembre 2015

Lezione 3 Sistemi Operativi e misure di performance. Parleremo di

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Sistemi Operativi (modulo di Informatica II) Schedulazione della CPU

Lez. 4 Lo scheduling dei processi. Corso: Sistemi Operativi Danilo Bruschi

Processi e Thread. Scheduling (Schedulazione)

Scheduling. Sistemi Operativi e Distribuiti A.A Bellettini - Maggiorini. Concetti di base

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Lo scheduling. Tipici schedulatori

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Il Sistema Operativo Ripasso

Sistemi Operativi. 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Lo scheduling. Tipici schedulatori

Appunti di Sistemi Operativi. Enzo Mumolo address web address :

Sistemi Operativi. Bruschi Martignoni Monga. Strutture dati per la gestione dei processi Context switch Thread. Scheduling

Pag. 1. Introduzione allo scheduling. Concetti fondamentali. Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Algoritmi.

Sistemi Operativi. Bruschi Martignoni Monga. Scheduling. Sistemi batch SJF. Sistemi. interattivi Priority RR Code multiple Sistemi real-time Deadline

Obiettivo della multiprogrammazione: massimizzazione dell utilizzo CPU. Scheduling della CPU: commuta l uso della CPU tra i vari processi

Il supporto al sistema operativo

2.2 Scheduling in Linux

Informatica II Sistemi Operativi DIGIP - a.a. 2015/16

Esercitazione di Sistemi Operativi

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano

Architettura degli Elaboratori 2

Cooperazione e competizione tra processi (2) Cooperazione e competizione tra processi (1) Cooperazione e competizione tra processi (3)

Scheduling. Dipartimento di Informatica Università di Verona, Italy. Sommario

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

La schedulazione. E.Mumolo

Architettura degli Elaboratori 2. tipi di scheduling. scheduling. scheduling della CPU (1) Esercitazione 1. politiche di ordinamento dei processi

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione

Scheduling della CPU. I/O e CPU burst. Scheduler a breve termine. Dispatcher. Concetti base

Sistemi Operativi Kernel

Università degli Studi di Padova - Corso di Laurea in Informatica

Sistemi Operativi. Modulo 4: Scheduling

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

TERMINA ESECUZIONE A B =85 85 C =90 90 D = E = INIZIA ESECUZIONE

Informatica II Sistemi Operativi DIGIP - a.a. 2015/16

Sistemi operativi e reti A.A Lezione 2

Capitolo 5: Scheduling della CPU! Scheduling della CPU! Concetti di Base! Alternanza di Sequenze di CPU- e I/O-Burst!

Sistemi Operativi Politiche di Ordinamento Processi

Lez. 4 Lo scheduling dei processi. Corso: Sistemi Operativi Danilo Bruschi

Sistemi Operativi. Scheduling dei processi

Lez. 4 Lo scheduling dei processi. Corso: Sistemi Operativi Danilo Bruschi

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

ESERCIZI SULLO SCHEDULING DEI PROCESSI

Lezione R4. Sistemi embedded e real-time

i. Diagramma di GANTT relativo all esecuzione dei quattro processi:

Il software. la parte contro cui si può solo imprecare. Il software

Transcript:

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 7 Giovedì 3-11-2016 1

Scheduling Scheduling a breve termine Lo scheduler a breve termine (short term scheduler) è il componente del SO che si occupa di selezionare, dalla coda di pronto, il processo a cui assegnare la CPU. Lo scheduler è eseguito molto frequentemente e deve essere quindi realizzato in modo molto efficiente in termini di velocità d esecuzione. Spesso si indica con il termine scheduler la parte che implementa le politiche (strategie) mentre il componente che implementa i meccanismi (cambio di contesto) prende il nome di dispatcher. primo pcb4 pcb3 pcb1 pcb2 ultimo Coda dei processi pronti 2

In alcuni sistemi operativi, oltre lo scheduling a breve termine, sono previsti altri livelli di scheduling Scheduling a lungo termine (long term scheduling) Scheduling a medio termine (medium term scheduler) Scheduling a lungo termine Nei sistemi batch è la funzione del SO che provvede a scegliere i programmi memorizzati in memoria secondaria da trasferire in memoria principale, da inserire nella coda dei processi pronti e quindi essere eseguiti. La selezione è eseguita in modo da bilanciare la presenza nella coda di pronto di processi di tipo CPU-bound e processi di tipo I/O-bound, per evitare che una prevalenza di uno dei due tipi di processo porti ad un uso non ottimo della CPU e delle risorse. 3

Un altro importante compito dello scheduler a lungo termine è di controllare il grado di multiprogrammazione, cioè il numero di processi che sono presenti in memoria principale nello stesso tempo. Scheduling a medio termine Lo scheduling a medio termine (medium term scheduling) si occupa di trasferire temporaneamente processi dalla memoria ram alla memoria secondaria (dischi), operazione di swap-out e viceversa, operazione di swap-in. Lo scheduler a lungo termine e lo scheduler a medio termine sono eseguiti con frequenze molto inferiori rispetto a quella dello scheduler a breve termine, in quanto sono molto complesse. 4

livelli di scheduling sched. medio termine swap-in Processi swapped (parzialmente eseguiti) swap-out sched. lungo termine assegnazione Job-batch Processi pronti sched. breve termine cpu prerilascio Processi sospesi sospensione 5

Comportamento dei processi Durante la sua attività, un processo generalmente alterna le seguenti fasi: CPU burst: fase in cui viene impiegata soltanto la CPU senza I/O; I/O burst: fase in cui il processo effettua input/output da/verso una risorsa(dispositivo) del sistema. Il termine burst (raffica) indica una sequenza di istruzioni. cpu burst I/O burst cpu burst I/O burst cpu burst I/O burst tempo Quando un processo esegue I/O burst, non utilizza la CPU. In un sistema multiprogrammato, lo scheduler assegna la CPU a un nuovo processo. 6

I processi, in base al tipo di istruzioni che eseguono si classificano in: Processi CPU-bound (compute-bound): se eseguono prevalentemente istruzioni di computazione; CPU burst di lunga durata, intervallati da pochi I/O burst di breve durata. cpu burst I/O cpu burst I/O cpu burst Processi I/O-bound: se eseguono prevalentemente istruzioni di I/O; CPU burst di breve durata, intervallati da I/O burst di lunga durata. cpu I/O burst cpu I/O burst cpu 7

Gli algoritmi di scheduling si possono classificare in due categorie: con prelazione (pre-emptive ): al processo in esecuzione può essere revocata la CPU. Il SO può, in base a determinati criteri, sottrarre ad esso la CPU per assegnarla ad un nuovo processo. senza prelazione (non pre-emptive): la CPU rimane allocata al processo in esecuzione fino a quando esso si sospende volontariamente (ad esempio, per I/O), o termina. Ad esempio, i sistemi a divisione di tempo (time sharing) hanno uno scheduling pre-emptive. Gli algoritmi non pre-emptive sono più semplici, e richiedono minor overhead di sistema in quanto effettuano meno cambi di contesto. D altra parte sono meno flessibili in quanto offrono una minore gamma di strategie di scheduling. Sono adatti per sistemi batch ma non per sistemi time-sharing. Le prime versioni dei sistemi windows (fino alla versione 3.1) utilizzavano algoritmi non pre-emptive. Dalla versione windows 95 fu usato uno scheduler con revoca. Linux Appunti di e Sistemi Unix Operativi, adottano 2016-2017 - algoritmi Pietro Frasca pre-empitive. 8

Parametri di scheduling Per analizzare e confrontare i diversi algoritmi di scheduling, si considerano i seguenti parametri, i primi tre relativi ai processi e gli altri relativi al sistema: Tempo di attesa, è la quantità di tempo che un processo trascorre nella coda di pronto, in attesa della CPU. Tempo di completamento (Turnaround time), è l intervallo di tempo che passa tra l avvio del processo e il suo completamento. Tempo di risposta, è l intervallo di tempo tra avvio del processo e l inizio della prima risposta. Utilizzo della CPU, esprime la percentuale media di utilizzo della CPU nell unità di tempo. Produttività (Throughput rate) (del sistema), esprime il numero di processi completati nell unità di tempo. 9

Generalmente i parametri che devono essere massimizzati sono: Utilizzo della CPU (al massimo: 100%) Produttività (Throughput) invece, devono essere minimizzati: Tempo medio di completamento (Turnaround) (sistemi batch) Tempo medio di attesa Tempo medio di risposta (sistemi interattivi) Non è possibile ottenere tutti gli obiettivi contemporaneamente. 10

A seconda del tipo di SO, gli algoritmi di scheduling possono avere diversi obiettivi; tipicamente: nei sistemi batch: massimizzare il throughput e minimizzare il tempo medio di completamento nei sistemi interattivi: minimizzare il tempo medio di risposta dei processi minimizzare il tempo medio di attesa dei processi Nei sistemi real-time, l algoritmo con revoca non sempre è necessario dato che i programmi real-time sono progettati per essere eseguiti per brevi periodi di tempo e poi si bloccano. 11

Principali algoritmi di scheduling Alcuni algoritmi sono usati sia nei sistemi batch che nei sistemi interattivi. FCFS FCFS (First Came First Served) è l algoritmo più semplice. La CPU è assegnata ai processi seguendo l ordine con cui essa è stata richiesta, ovvero la cpu è assegnata al processo che è in attesa da più tempo nello stato di pronto. Quando un processo acquisisce la CPU, resta in esecuzione fino a quando si blocca volontariamente o termina. Quando un processo in esecuzione si blocca si seleziona il primo processo presente nella coda di pronto. Quando un processo da bloccato ritorna pronto, esso è accodato nella coda di pronto. 12

E inefficiente nel caso in cui ci sono molti processi che si sospendono frequentemente o nel caso di sistemi interattivi. Il tempo di attesa risulterebbe troppo lungo. E un algoritmo senza diritto di prelazione. 13

Esempio Calcoliamo il tempo medio di attesa di tre processi P1, P2 e P3 avviati allo stesso istante e aventi rispettivamente i tempi (in millisecondi) di completamento pari a: T1=30, T2=6 e T3=10. Il diagramma temporale (di Gantt) è il seguente. P1 P2 P3 0 30 36 46 t Tempo attesa medio = (0+30+36)/3 =22 14

Se cambiassimo l ordine di scheduling nel seguente: {P2, P3, P1} il tempo medio di attesa passerebbe da 22 a 7,33. P2 P3 P1 t 0 6 16 46 Tempo attesa medio = (0+6+16)/3 = 7,33 15

Ma il FCFS non consente di cambiare l ordine dei processi. Quindi nel caso in cui ci siano processi in attesa dietro a processi con lunghi CPU burst (processi CPU bound), il tempo di attesa sarà alto. Inoltre, si ha la possibilità che si verifichi il cosiddetto effetto convoglio che si ha se molti processi I/O bound seguono un processo CPU bound. Questa situazione porta ad basso livello di utilizzo della CPU. 16

Esempio: effetto convoglio. La figura mostra una situazione in cui si verifica l effetto convoglio. In questo caso P1 è un processo CPU bound; P2, P3 e P4 sono processi I/O bound. P1 effettua operazioni di I/O nell intervallo [t1, t3]. Si ha che nell intervallo [t2, t3] la CPU è inattiva. so p4 p3 p2 p1 t0 t1 t2 t3 Tempo di inattività della CPU 17

Shortest job first (SJF) Gli algoritmi SJF, possono essere sia non-preemptive Shortest Next Process First (SNPF) sia preemptive Shortest Remaining Time First (SRTF). Shortest Next Process First (SNPF) L algoritmo SNPF prevede che sia eseguito sempre il processo con il tempo di esecuzione più breve tra quelli pronti. Supponiamo ad esempio che si trovino nello stato di pronto i seguenti processi, con la rispettiva durata di esecuzione in millisecondi: [p1, 10] [p2, 2] [p3, 6] [p4, 4] 18

Con SNPF i processi sono eseguiti nel seguente ordine: p2 p4 p3 p1 Trascurando il tempo necessario per il cambio di contesto, il processo p2 non attende nulla, perché va subito in esecuzione, p4 attende 2 millisecondi, perché va in esecuzione subito dopo p2, quindi p3 attende 6 millisecondi e p1 ne attende 12. Il tempo di attesa medio è pari a: Tempo attesa medio = (0+2+6+12)/4= 5 millisecondi Shortest Remaining Time First (SRTF) L'algoritmo SRTF è la versione preemptive del precedente. Con SRTF, se un nuovo processo, entrante nella coda di pronto, ha una durata minore del tempo restante al processo in esecuzione per portare a terminare il proprio CPU-burst, allora lo scheduler provvede ad effettuare un cambio di contesto e assegna l uso della CPU al nuovo processo. 19

Si può dimostrare che teoricamente l algoritmo SJF è ottimale, in quanto, selezionando dalla coda di pronto il processo più breve da eseguire, consente di ottenere sempre il valore più basso del tempo di attesa medio. Per poterlo applicare, nei sistemi batch, i programmi si avviano fornendo per ciascuno di essi un informazione relativa alla durata dell esecuzione. Tale valore, è ricavato dalle precedenti esecuzioni del job. Con SRTF lo scheduler, dato che non è possibile stabilire la durata del prossimo cpu-burst, implementa algoritmi di predizione che stimano il prossimo tempo di cpu-burst a partire da quelli precedentemente eseguiti. Una stima spesso usata si basa sulla media esponenziale: s n + 1 = α T n + (1 α) s n dove T n è la durata dell n-esimo CPU-burst, s n + 1 la durata 20

prevista per la successiva sequenza e α [0..1] è il peso che deve essere assegnato al passato del processo. Espandendo la relazione si può notare come i valori dei singoli intervalli abbiano un peso tanto minore quanto più sono vecchi : s n + 1 = α T n + (1 α) α T n-1 + (1-α) i α T n-i + (1-α) n+1 s 0 In genere per α = 0,5 e s 0 = 10 si ha una buona approssimazione. 21

Esempio vediamo i diagrammi temporali relativi ai seguenti processi P1 [0,50] P2 [4,24] P3 [6,16] per gli algoritmi SJF e SRTF p3 p2 p1 0 4 6 50 66 90 SJF p3 p2 p1 0 4 6 22 44 90 SRTF 22

Round Robin E stato realizzato per i sistemi time-sharing. Consente il prerilascio. La coda dei processi pronti è di tipo circolare. La CPU viene assegnata ad ogni processo per un quanto di tempo, tipicamente da 10 a 100 millisecondi. La coda viene gestita in modalità FIFO: il processo a cui viene revocata la CPU viene inserito in fondo alla coda e il successivo che avrà il controllo della CPU è il primo della coda. pcb3 pcb1 pcb2 primo ultimo pcb4 Processo in esecuzione Registro processo in esecuzione nella CPU 23

E usato nei i sistemi time-sharing in quanto assicura tempi di attesa medi brevi che dipendono principalmente dal valore del quanto di tempo e dal numero medio di processi pronti. Il tempo medio di risposta tende a migliorare diminuendo il valore del quanto di tempo, ma se questo assume valori troppo piccoli diventa significativo l overhead prodotto dalle operazione del cambio di contesto. E necessario che sia: Tempo_cambio_di_contesto << durata_quanto_di_tempo 24

Esempio Vediamo come RR privilegi i processi interattivi rispetto ai CPU-bound. Supponiamo che all istante T0 siano presenti i seguenti quattro processi nella coda di pronto. Calcoliamo il tempo medio di attesa e di risposta per quattro processi P1, P2, P3 e P4 aventi rispettivamente i tempi di arrivo e durata di CPU-burst (in millisecondi) pari a: P1 [0,10], P2 [0,100], P3 [0,50], P4 [0,20] Con FCFS si ha: so p4 p3 p2 p1 0 10 110 160 180 A1 = 0 A2 = 10 A3 = 110 A4 = 160 tempo medio di attesa Am = (0 + 10 + 110 + 160)/4 = 70 R1 = 10 R2 = 110 R3 = 160 R4 = 180 tempo medio di risposta Rm = (10 + 110 + 160 + 180)/4 = 115 25

Con RR si ha: Da questo esempio si vede che RR consente di avere tempi di risposta tanto minori quanto minore è il periodo di tempo di esecuzione richiesto a prescindere dall ordine in cui i processi sono entrati nella coda di pronto. Nell esempio si è posto un quanto di tempo Δ = 20 ms. so p4 p3 p2 p1 0 10 30 50 70 90 110 130 140 180 A1 = 0 A2 = 10 + 40 + 20 + 10 = 80 A3 = 30 + 40 + 20 = 90 A4 = 50 tempo medio di attesa Am = (0 + 80 + 90 + 50)/4 = 55 R1 = 10 R2 = 180 R3 = 140 R4 = 70 tempo medio di risposta Rm = (10 + 180 + 140 + 70)/4 = 100 26