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



Documenti analoghi
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 SCHEDULING DELLA CPU

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

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

Scheduling della CPU:

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

Criteri di Scheduling Algoritmi di Scheduling Multiple-Processor Scheduling Asymmetric/Symmetric multiprocessing Processori Multicore

Concetti di base. Scheduling della CPU. Diagramma della durata dei CPU-burst. Sequenza Alternata di CPU Burst e I/O Burst

Scheduling della CPU

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano

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

La schedulazione. E.Mumolo

Scheduling. Livelli Algoritmi

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Contenuti delle lezioni del 23 e del 26 Marzo Sequenza alternata di CPU burst e di I/O burst.

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

Corso di Informatica

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

Lo scheduling. Tipici schedulatori

6 CPU Scheduling. 6.1 Concetti Fondamentali dello Scheduling della CPU. 6.1 Concetti Fondamentali

Processi e Thread. Scheduling (Schedulazione)

Scheduling. Scheduling 14/12/2003 1/7

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

Scheduling. Lo scheduler è la parte del SO che si occupa di

Diagramma delle durate dei CPU burst. Lo scheduler della CPU. Criteri di scheduling. Dispatcher

Sistemi Operativi. Rappresentazione e gestione delle attività e della computazione: processi e thread

Scheduling della CPU. Concetti base. Criteri di Scheduling. Algoritmi di Scheduling

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Sistemi Operativi. Scheduling dei processi

5. Scheduling della CPU. 5.1 Concetti Fondamentali Lo scheduler della CPU

5. Scheduling della CPU

Sistemi Operativi. Schedulazione della CPU

Lo schedulatore del kernel

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

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

Scheduling della CPU

Capitolo 6: CPU scheduling

Scheduling della CPU

Lo scheduler di UNIX (1)

SCHEDULATORI DI PROCESSO

Modello dei processi. Riedizione delle slide della Prof. Di Stefano

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

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

Sistemi Operativi Kernel

SISTEMI OPERATIVI. Schedulazione della CPU. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

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

Sistemi Operativi (modulo di Informatica II) I processi

Scheduling della CPU (2) CPU bursts (2)

Scheduling della CPU Simulazione in linguaggio Java

Architettura degli Elaboratori 2

SISTEMI OPERATIVI. Gestione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 13/05/2007

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

Calcolatori Elettronici A a.a. 2008/2009

SCHEDULING DEI PROCESSI

ESERCIZI SULLO SCHEDULING DEI PROCESSI

Algoritmi di scheduling

Scheduling Introduzione Tipi di scheduler Scheduler di lungo termine (SLT) Scheduler di medio termine (SMT) Scheduler di breve termine (SBT)

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Pronto Esecuzione Attesa Terminazione

GESTIONE DEI PROCESSI

Gli stati di un processo

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Il Sistema Operativo

J. Assfalg Appunti di Sistemi Operativi

Scheduling della CPU

I processi Unix. Entry della tabella dei processi

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.

Esempio: aggiungere j

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Processo - generalità

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Trasparenze del Corso di Sistemi Operativi

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.

La Gestione delle risorse Renato Agati

Sebbene le durate varino secondo il processo e secondo il calcolatore, la curva di frequenza è simile a quella qui riportata.

Sistemi Operativi A.A. 2011/2012

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P P P P P P < P 1, >

Architettura di un sistema operativo

Gestione della memoria centrale

Gestione della Memoria

Esercitazione E1 Scheduling, deadlock, monitor

1.5: Gestione dei Processi e della CPU

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Il memory manager. Gestione della memoria centrale

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

Scheduling della CPU Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job.

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

Scheduling. Tipi di processi. Classi di scheduling. P1 (CPU bound) P2 /I/O bound) Scheduling a lungo termine. A. Ferrari

Capitolo 3 -- Silberschatz

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Tecniche Automatiche di Acquisizione Dati

Esercitazione E6 Esercizi d esame

Transcript:

Scheduling Dipartimento di Informatica Università di Verona, Italy Sommario Concetto di scheduling Tipi di scheduling Lungo termine Breve termine (scheduling della CPU) Medio termine Scheduling della CPU Definizioni Modello del sistema Criteri di scheduling Algoritmi di scheduling Graziano Pravadelli (2011) 2 1

CONCETTO DI SCHEDULING Graziano Pravadelli (2011) 3 Scheduling dei processi Scheduling = assegnazione di attività nel tempo L utilizzo della multiprogrammazione impone l esistenza di una strategia per regolamentare: 1. ammissione dei processi nel sistema (memoria) 2. ammissione dei processi all esecuzione (CPU) 1 2 pronto in esecuzione in attesa Graziano Pravadelli (2011) 4 2

Diagramma di accodamento pronto [N] Ready queue [1] CPU in esecuzione I/O I/O queue Richiesta I/O in attesa Fine figlio Figlio esegue Fork [M] Time-out interrupt Attesa interrupt Graziano Pravadelli (2011) 5 Implementazione delle code Graziano Pravadelli (2011) 6 3

TIPI DI SCHEDULING Graziano Pravadelli (2011) 7 Tipi di scheduler Scheduler a lungo termine (o job scheduler) Seleziona quali processi devono essere portati dalla memoria alla ready queue Scheduler a breve termine (o CPU scheduler) Seleziona quale processo deve essere eseguito dalla CPU Short term scheduler Long term scheduler Ready queue CPU I/O I/O queues Graziano Pravadelli (2011) 8 4

Caratteristiche degli scheduler Scheduler a breve termine è invocato spesso O(µs) deve essere veloce Es.: 100 ms per processo, 10 ms per scheduling 10/(110) = 9% del tempo di CPU sprecato per scheduling Scheduler a lungo termine è invocato più raramente O(ms) può essere lento Controlla il grado di multiprogrammazione e il mix di processi I/O-bound molto I/O, molti brevi burst di CPU CPU-bound molti calcoli, pochi lunghi burst di CPU Può essere assente usato principalmente in sistemi con risorse limitate Graziano Pravadelli (2011) 9 Scheduling a medio termine S.O. con memoria virtuale prevedono un livello intermedio di scheduling (a medio termine) Per la momentanea rimozione forzata (swapping) di un processo dalla CPU Serve per ridurre grado multiprogrammazione Graziano Pravadelli (2011) 10 5

Scheduling a medio termine medium term scheduler (disco) processi swappati (parzialmente eseguiti) short term scheduler medium term scheduler long term scheduler Ready queue CPU I/O I/O queues Graziano Pravadelli (2011) 11 SCHEDULING DELLA CPU 6

CPU Scheduler Modulo del S.O. che seleziona un processo tra quelli in memoria pronti per l esecuzione, e gli alloca la CPU Data la frequenza di invocazione, è una parte critica del S.O. Necessità di algoritmi di scheduling Graziano Pravadelli (2011) 13 Dispatcher Modulo del S.O. che passa il controllo della CPU al processo scelto dallo scheduler Switch del contesto Passaggio alla modalità user Salto alla opportuna locazione nel programma per farlo ripartire Latenza di dispatch Tempo necessario al dispatcher per fermare un processo e farne ripartire un altro Deve essere la più bassa possibile Graziano Pravadelli (2011) 14 7

Modello astratto del sistema Alternanza di burst di CPU e di I/O Burst = sequenza Modello a cicli di burst CPU- I/O L esecuzione di un processo consiste dell alternanza ciclica di un burst di CPU e di uno di I/O time Graziano Pravadelli (2011) 15 Distribuzione dei CPU burst Distribuzione esponenziale Numerosi burst brevi Pochi burst lunghi Graziano Pravadelli (2011) 16 8

Prelazione (Preemption) Prelazione = rilascio forzato della CPU Scheduling senza prelazione (non-preemptive) Processo che detiene la CPU non la rilascia fino al termine del burst Scheduling con prelazione (preemptive) Processo che detiene la CPU può essere forzato a rilasciarla prima del termine del burst Non-preemptive Preemptive Ready queue CPU Ready queue CPU I/O I/O queues I/O I/O queues Graziano Pravadelli (2011) 17 Stati di un processo Schema complessivo swapped Swap in Swap out ammissione nel sistema preempt terminazione in nuovo pronto finito esecuzione dispatch Completamento I/O o un evento in attesa Attesa di I/O o di evento Graziano Pravadelli (2011) 18 9

Metriche di Scheduling Utilizzo della CPU L obiettivo è tenere CPU occupata più possibile Throughput Numero di processi completati per unità di tempo Tempo di attesa (waiting time, t w ) Quantità totale di tempo spesa da un processo nella coda di attesa E influenzato dall algoritmo di scheduling Graziano Pravadelli (2011) 19 Metriche di Scheduling Tempo di completamento (turnaround, t t ) Tempo necessario ad eseguire un particolare processo dal momento della sottomissione al momento del completamento Tempo di risposta (response time, t r ) Tempo trascorso da quando una richiesta è stata sottoposta al sistema fino alla prima risposta del sistema stesso Graziano Pravadelli (2011) 20 10

Criteri di ottimizzazione Massimizzare utilizzo della CPU throughput Minimizzare tempo di turnaround tempo di attesa tempo di risposta Graziano Pravadelli (2011) 21 ALGORITMI DI SCHEDULING 11

First-Come, First-Served (FCFS) Concetto Coda dei processi = coda FIFO Primo processo arrivato è il primo ad essere servito Motivazione implementazione semplice Graziano Pravadelli (2011) 23 FCFS (Esempio) Processo Tempo di arrivo CPU burst P1 0 24 P2 2 3 P3 4 3 Processo T r T w T t P1 0 0 24 P2 22 22 25 P3 23 23 26 Tempo 0 24 27 30 P1 P2 P3 Tempo di attesa medio Tw_medio = (0+22+23)/3 = 15 Graziano Pravadelli (2011) 24 12

FCFS (Esempio) Processo Tempo di arrivo CPU burst P1 4 24 P2 0 3 P3 2 3 Processo T r T w T t P1 2 2 26 P2 0 0 3 P3 1 1 4 Tempo 0 3 6 30 P1 P2 P3 Tempo di attesa medio Tw_medio = (2+0+1)/3 = 1 (molto meglio!) Graziano Pravadelli (2011) 25 FCFS Svantaggio Effetto convoglio Processi brevi si accodano ai processi lunghi precedentemente arrivati Graziano Pravadelli (2011) 26 13

Shortest-Job-First (SJF) Associa ad ogni processo la lunghezza del prossimo burst di CPU Il processo con il burst di CPU più breve viene selezionato per l esecuzione Graziano Pravadelli (2011) 27 Due schemi: Shortest-Job-First (SJF) Non preemptive Preemptive Se arriva un nuovo processo con un burst di CPU più breve del tempo che rimane da eseguire al processo in esecuzione, quest ultimo viene rimosso dalla CPU per fare spazio a quello appena arrivato In questo caso l algoritmo si chiama Shortest-Remaining- Time-First (SRTF) SJF è ottimo: minimo tempo medio di attesa Graziano Pravadelli (2011) 28 14

SJF non preemptive (Esempio) Processo Tempo di arrivo CPU burst P1 0 7 P2 2 4 P3 4 1 P4 5 4 Processo T r T w T t P1 0 0 7 P2 6 6 10 P3 3 3 4 P4 7 7 11 Tempo 0 7 8 12 16 P1 P2 P3 P4 Graziano Pravadelli (2011) 29 SJF preemptive (Esempio) Processo Tempo di arrivo CPU burst P1 0 7 P2 2 4 P3 4 1 P4 5 4 Processo T r T w T t P1 0 9 16 P2 0 1 5 P3 0 0 1 P4 2 2 6 Tempo 0 2 4 5 7 11 16 P1 P2 P3 P4 Graziano Pravadelli (2011) 30 15

Calcolo del prossimo burst di CPU E possibile solo una stima Si utilizzano le lunghezze dei burst precedenti come proiezione di quelli futuri Utilizzo della media esponenziale t n = lunghezza reale n-esimo burst τ n+1 = valore stimato per il prossimo burst α = coefficiente (0 < α < 1) τ n+1 = α * t n + (1 - α) * τ n Graziano Pravadelli (2011) 31 Media Esponenziale: Esempio α = 0 τ n+1 = τ n Storia recente non viene usata α = 1 τ n+1 = t n Conta solo l ultimo burst reale Espandendo la formula τ n+1 = αt n +(1-α) [αt n-1 +(1-α)τ n-1 ] = αt n +(1-α)αt n-1 +(1-α) 2 τ n-1 = = αt n +(1-α)αt n-1 +(1-α) 2 τ n-2 + +(1-α) j αt n-j + +(1-α) n τ 0 Dato che sia α che (1 - α) sono <= 1, ogni termine successivo pesa meno del predecessore Graziano Pravadelli (2011) 32 16

Stima del prossimo burst di CPU α=0.5 Graziano Pravadelli (2011) 33 Scheduling a priorità Viene associata una priorità a ogni processo CPU allocata al processo con priorità più alta Opzioni: Preemptive Non-preemptive Linux: comando nice per cambiare la priorità Esempio: SJF è uno scheduling a priorità (priorità = 1/lunghezza del burst successivo) Graziano Pravadelli (2011) 34 17

Scheduling a priorità Politiche di assegnamento della priorità: Interne al S.O. Limiti di tempo Requisiti di memoria N file aperti Esterne al S.O. Importanza del processo Soldi pagati per l utilizzo del computer Motivi politici Graziano Pravadelli (2011) 35 Scheduling a priorità (Esempio) Proc. T. di arrivo Pr. CPU burst P1 1 3 10 P2 0 1 1 P3 2 3 2 P4 0 4 1 P5 1 2 5 Processo T r T w T t P1 5 5 15 P2 0 0 1 P3 14 14 16 P4 18 18 19 P5 0 0 5 Tempo 0 1 6 16 18 19 P1 P2 P3 P4 P5 Graziano Pravadelli (2011) 36 18

Scheduling a priorità Problema: starvation Processi a bassa priorità possono non essere mai eseguiti Caso storico: chiusura IBM 7090 al MIT nel 1973 Un processo era in attesa dal 1967! Soluzione: invecchiamento (aging) Aumento della priorità col passare del tempo Graziano Pravadelli (2011) 37 Highest Response Ratio Next (HRRN) Algoritmo a priorità non-preemptive Priorità (R) R = (t_attesa + t_burst) / t_burst = 1 + t_attesa / t_burst è maggiore per valori di R più alti dipende anche dal tempo di attesa (dinamica) va ricalcolata: al termine di un processo se nel frattempo ne sono arrivati altri oppure, al termine di un processo Sono favoriti i processi che: completano in poco tempo (come SJF) hanno atteso molto Supera il favoritismo di SJF verso job corti Graziano Pravadelli (2011) 38 19

HRRN (Esempio) Proc. T. di arrivo CPU burst P1 1 10 P2 0 2 P3 2 2 P4 2 1 P5 1 5 Calcolo priorità R (termine processo) Proc. t=0 t=2 t=7 t=8 P1-1+1/10 1+6/10 1+7/10 P2 1 - - - P3-1+0/2 1+5/2 1+6/2 P4-1+0/1 1+5/1 - P5-1+1/5 - - Processo T r T w T t P1 9 9 19 P2 0 0 2 P3 6 6 8 P4 5 5 6 P5 1 1 6 Tempo 0 2 7 8 10 19 P1 P2 P3 P4 P5 Graziano Pravadelli (2011) 39 Round Robin (RR) Scheduling basato su time-out A ogni processo viene assegnata una piccola parte (quanto) del tempo di CPU Valori tipici: 10-100 millisecondi Al termine del quanto, il processo è prelazionato e messo nella ready queue La ready queue è coda circolare Se ci sono n processi nella coda e il quanto è q: ogni processo ottiene 1/n del tempo di CPU in blocchi di q unità di tempo alla volta nessun processo attende più di (n-1)q unità di tempo Graziano Pravadelli (2011) 40 20

Round Robin (RR) Intrinsecamente preemptive In pratica è un FCFS con prelazione Scelta del quanto q grande FCFS q piccolo Attenzione al context switch q troppo piccolo troppo overhead per context switch Meglio avere q >> tempo di context switch Valore ragionevole di q? Fare in modo che 80% dei burst di CPU siano < q Prestazioni Tempo di turnaround maggiore/uguale di SJF Tempo di risposta minore/uguale di SJF Graziano Pravadelli (2011) 41 RR (Esempio) Proc. (q=2) T. di arrivo CPU burst P1 0 5 P2 0 1 P3 0 7 P4 0 2 Processo T r T w T t P1 0 7 12 P2 2 2 3 P3 3 9 16 P4 5 5 7 Tempo (q=2) 0 2 3 5 7 9 11 12 14 15 In esecuzione P1 P2 P3 P4 P1 P3 P1 P3 P3 P2 P3 P4 P1 P3 P1 P3 Nella ready queue P3 P4 P1 P3 P4 P1 Graziano Pravadelli (2011) 42 21

Relazione tra quanto e context switch Graziano Pravadelli (2011) 43 Pr. Relazione tra quanto e turnaround T. di arrivo CPU burst T t (q=1) P1 0 6 15 P2 0 3 9 P3 0 1 3 P4 0 7 17 T t_medio (q=1) = 11 Turnaround non decresce sempre all aumentare del quanto Graziano Pravadelli (2011) 44 22

Code multilivello Classe di algoritmi in cui la ready queue è partizionata in più code Esempio Una coda per job in foreground (interattivi) Una coda per job in background (batch) Ogni coda ha il suo algoritmo di scheduling Esempio Job in foreground gestiti con RR Job in background gestiti con FCFS E un meccanismo più generale, ma anche più complesso Graziano Pravadelli (2011) 45 Code multilivello Necessario scheduling tra le code Scheduling a priorità fissa Es.: servire prima tutti i job di sistema, poi quelli in foreground, poi quelli in background Possibilità di starvation per code a priorità bassa Scheduling basato su time slice Ogni coda ottiene un quanto del tempo di CPU che può usare per schedulare i suoi processi Esempio 80% per job di foreground con RR 20% per job di background con FCFS Graziano Pravadelli (2011) 46 23

Code multilivello Graziano Pravadelli (2011) 47 Code multilivello con feedback Code multilivello classiche Un processo viene allocato definitivamente ad una coda Code multilivello con feedback (adattative) Un processo può spostarsi da una coda all altra a seconda delle sue caratteristiche Usato anche per implementare l aging Parametri dello scheduler: numero delle code algoritmi per ogni coda criteri per la promozione/degradazione di un processo criteri per definire la coda di ingresso di un processo Graziano Pravadelli (2011) 48 24

Code multilivello con feedback (Esempio) 3 code: Coda Q 0 : RR con quanto 8 ms Coda Q 1 : RR con quanto 16 ms Coda Q 2 : FCFS CPU serve nell ordine Q0, Q1, Q2 Processi in Q j serviti sse Q i vuota i < j Funzionamento: Un job nuovo entra in Q 0. Quando ottiene la CPU, riceve 8 ms di quanto. Se non finisce entro il quanto, viene prelazionato e degradato alla coda Q 1 Se Q 0 è vuota, si seleziona un job di Q 1 che riceve 16 ms di quanto. Se non finisce viene prelazionato e messo in Q 2 Se Q 0 e Q 1 sono vuote, viene selezionato un job in Q 2 con FCFS Graziano Pravadelli (2011) 49 Code multilivello con feedback (Esempio) CPU Graziano Pravadelli (2011) 50 25

Scheduling fair share Le politiche di scheduling precedenti sono orientate al processo, ma un applicazione può essere composta da più processi Fair share cerca di fornire equità alle applicazioni (e quindi agli utenti) e non ai singoli processi Le risorse vengono suddivise NON tra la totalità dei processi ma tra gruppi di processi risorse 100% scheduler 100% g1 g2 gn risorse 100% Fair share scheduler 25% 35% 40% scheduler scheduler scheduler g1 g2 gn Graziano Pravadelli (2011) 51 Contesto reale Obiettivo: minimizzare la complessità Gli algoritmi reali usano la prelazione e sono spesso basati su RR Esempio: CPU scheduling in Solaris (Unix di Sun) Basato su priorità con aging Priorità = priorità base + priorità corrente Priorità base = [-20 + 20] (-20=max, +20=min) Priorità corrente = 0.1 * CPU(5*n) CPU(t) = utilizzo della CPU negli ultimi t secondi n = numero medio di processi pronti all esecuzione nell ultimo secondo Concetto: scheduler dimentica il 90% dell utilizzo di CPU degli ultimi 5n secondi Idea: favorire processi che hanno usato poco la CPU Graziano Pravadelli (2011) 52 26

Valutazione degli algoritmi Modello deterministico Modello a reti di code Simulazione Implementazione Graziano Pravadelli (2011) 53 Modello deterministico (analitico) Basata sull algoritmo e su un preciso carico di lavoro Ciò che abbiamo fatto negli esempi precedenti! Definisce le prestazioni di ogni algoritmo per quello specifico carico Risposte applicabili solo al caso considerato Di solito usato per illustrate gli algoritmi Richiede conoscenze troppo specifiche sulla natura dei processi Graziano Pravadelli (2011) 54 27

Modello a reti di code Non esiste un preciso gruppo di processi sempre uguali per utilizzare il modello deterministico Però è possibile determinare le distribuzioni di CPU burst e I/O burst Il sistema di calcolo è descritto come una rete di server ognuno con la propria coda Si usano formule matematiche che indicano: la probabilità che si verifichi un determinato CPU burst la distribuzione dei tempi di arrivo nel sistema dei processi da cui è possibile ricavare utilizzo, throughput medio, tempi di attesa, Graziano Pravadelli (2011) 55 Simulazione Necessario programmare un modello del sistema Si utilizzano dati statistici o reali Abbastanza precisa ma costosa Graziano Pravadelli (2011) 56 28

Implementazione Unico modo assolutamente sicuro per valutare un algoritmo di scheduling: Codificarlo Inserirlo nel S.O. Vedere come funziona! Graziano Pravadelli (2011) 57 Esercitazione Schedulare i processi indicati in tabella con le politiche: FCFS SJF senza prelazione SJF con prelazione RR con quanto = 4 RR con quanto = 1 HRRN Proc. T. di arrivo CPU burst A 0 3 B 2 6 C 4 4 D 6 5 E 8 2 Graziano Pravadelli (2011) 58 29

FCFS A B C D E Esercitazione 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 SJF senza prel. A B C D E 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Graziano Pravadelli (2011) 59 SJF con prel. A B C D E Esercitazione 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 RR q=4 A B C D E 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Graziano Pravadelli (2011) 60 30

Al tempo t=2 arriva B, A è appena uscito dalla CPU RR q=1 A B C D E Ready queue Esercitazione 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 A B C B D C B E D C B E D C B D C B E D C B E D C B D D C B E D C B Al tempo t=8 arriva E che si mette in coda prima di D che è appena uscito dalla CPU, ma dopo B che già si trovava in coda Coda vuota. C è solo il processo A che si trova nella CPU Al tempo t=4 arriva C che si mette in coda mentre B è nella CPU Al tempo t=6 arriva D che si mette in coda prima di C che è appena uscito dalla CPU Graziano Pravadelli (2011) 61 HRRN A B C D E Esercitazione 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Calcolo priorità R Proc. t=0 T=3 T=9 T=13 A 1 - - - B - 1+1/6 - - C - - 1+5/4 - D - - 1+3/5 1+5/5 E - - 1+1/2 1+3/2 Graziano Pravadelli (2011) 62 31

Esercitazione A B C D E Media FCFS t attesa 0 1 5 7 10 4.6 t risposta 0 1 5 7 10 4.6 tournaround 3 7 9 12 12 8.6 SJF (senza prelazione) t attesa 0 1 7 9 1 3.6 t risposta 0 1 7 9 1 3.6 tournaround 3 7 11 14 3 7.6 SJF (con prelazione) t attesa 0 7 0 9 0 3.2 t risposta 0 1 0 9 0 2.0 tournaround 3 13 4 14 2 7.2 Graziano Pravadelli (2011) 63 Esercitazione RR (q=1) RR (q=4) HRRN A B C D E Media t attesa 1 10 9 9 5 6.8 t risposta 0 0 1 1 2 0.8 tournaround 4 16 13 14 7 10.8 t attesa 0 9 3 9 9 7.5 t risposta 0 1 3 5 9 3.6 tournaround 3 15 7 14 11 10.0 t attesa 0 1 5 9 5 4.0 t risposta 0 1 5 9 5 4.0 tournaround 3 7 9 14 7 8.0 Graziano Pravadelli (2011) 64 32