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



Documenti analoghi
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

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

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

Scheduling della CPU:

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

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

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

Scheduling della CPU

La schedulazione. E.Mumolo

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano

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

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

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

Corso di Informatica

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

Sistemi Operativi. Scheduling dei processi

Sistemi Operativi. Schedulazione della CPU

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

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

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

Scheduling. Scheduling 14/12/2003 1/7

Scheduling della CPU

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

Lo scheduling. Tipici schedulatori

Processi e Thread. Scheduling (Schedulazione)

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

Capitolo 6: CPU scheduling

Scheduling. Livelli Algoritmi

Sistemi Operativi Kernel

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

Scheduling della CPU

ESERCIZI SULLO SCHEDULING DEI PROCESSI

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

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

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

Algoritmi di scheduling

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

5. Scheduling della CPU

Lo schedulatore del kernel

Scheduling della CPU (2) CPU bursts (2)

Scheduling della CPU Simulazione in linguaggio Java

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

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

SCHEDULATORI DI PROCESSO

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

Scheduling della CPU

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

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

Pronto Esecuzione Attesa Terminazione

Architettura degli Elaboratori 2

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

Lo scheduler di UNIX (1)

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

Gli stati di un processo

Calcolatori Elettronici A a.a. 2008/2009

Trasparenze del Corso di Sistemi Operativi

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

J. Assfalg Appunti di Sistemi Operativi

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

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

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

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

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

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

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

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

Processo - generalità

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Il Sistema Operativo

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

GESTIONE DEI PROCESSI

Scheduling della CPU

Tecniche Automatiche di Acquisizione Dati

SCHEDULING DEI PROCESSI

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

Capitolo 5 - Silberschatz

Esercitazione E6 Esercizi d esame

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

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

La Gestione delle risorse Renato Agati

Il Sistema Operativo (1)

Mul&programmazione. Ges&one dei processi. Esecuzione parallela. MAC OSX Monitoraggio a9vità. Linux System monitor. Windows Task Manager. A.

Sistemi Operativi (modulo di Informatica II) I processi

Sistema operativo: Gestione dei processi

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

1.5: Gestione dei Processi e della CPU

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Dipartimento di Informtica e Sistemistica Università di Roma La Sapienza

Sistemi operativi e reti A.A Lezione 2

Cognome: Nome: Matricola: Sistemi Operativi A.A , prova scritta del 7 luglio 2006

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

Esempio: aggiungere j

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

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

Logout... A utorizzazioni Eserc itazioni cambia. password... Esercitazione. Rispondere alle seguenti domande reltive ai Processi Software:

Transcript:

SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time Valutazione di Algoritmi 5.2

Concetti di Base Lo scheduling della CPU è l elemento fondamentale dei sistemi operativi con multiprogrammazione. L obiettivo dello scheduling è la massimizzazione dell utilizzo della CPU. Questo si ottiene assegnando al processore processi che sono pronti per eseguire delle istruzioni. Ciclo CPU I/O Burst : l esecuzione di un processo consiste di un ciclo di esecuzione nella CPU e attesa di I/O. 5.3 Sequenza Alternata di CPU e I/O Burst 5.4

Concetti di Base La distribuzione dei CPU burst dipende dalle attività dei diversi programmi. La frequenza dei CPU burst brevi è molto alta mentre la frequenza dei CPU burst lunghi è molto bassa. Differenza tra processi CPU bound e processi I/O bound. Queste caratteristiche sono considerate nella selezione delle strategie di scheduling. 5.5 Istogramma dei CPU burst 5.6

Scheduler della CPU Lo scheduler a breve termine seleziona uno tra i processi in memoria pronti per essere eseguiti (ready queue) e lo assegna alla CPU. Lo scheduler interviene quando un processo: 1. Passa dallo stato running allo stato waiting. 2. Passa dallo stato running allo stato ready. 3. Passa dallo stato waiting allo stato ready. 4. Termina. Nei casi 1 e 4 lo scheduling è nonpreemptive (senza prelazione). Negli altri casi è preemptive (con prelazione). 5.7 Dispatcher Il modulo dispatcher svolge il lavoro di passare il controllo ai processi selezionati dallo scheduler della CPU per la loro esecuzione. Esso svolge: il context switch il passaggio al modo utente il salto alla istruzione da eseguire del programma corrente. Il dispatcher deve essere molto veloce. Latenza di dispatch tempo impiegato dal dispatcher per fermare un processo e far eseguire il successivo. 5.8

Criteri di Scheduling Nella scelta di una strategia di scheduling occorre tenere conto delle diverse caratteristiche dei programmi. CRITERI da considerare: Utilizzo della CPU avere la CPU il più attiva possibile Throughput n di processi completati nell unità di tempo Tempo di turnaround tempo totale per eseguire un processo Tempo di waiting tempo totale di attesa sulla ready queue Tempo di risposta tempo da quando viene inviata una richiesta fino a quando si produce una prima risposta (non considerando il tempo di output). 5.9 Criteri di Ottimizzazione CRITERI: Massimizzare l utilizzo della CPU Massimizzare il throughput Minimizzare il tempo di turnaround Minimizzare il tempo di waiting Minimizzare il tempo di risposta Generalmente si tende ad ottimizzare i valori medi. Nei sistemi time-sharing è più importante minimizzare la varianza del tempo di risposta. 5.10

First-Come, First-Served (FCFS) Scheduling Primo arrivato, primo servito (gestito con coda FIFO). Processo Burst Time P 1 24 P 2 3 P 3 3 Supponiamo che i processi arrivino nell ordine: P 1, P 2, P 3 Lo schema di Gantt è: P 1 P 2 P 3 0 24 27 30 Tempo di waiting per: P 1 = 0; P 2 = 24; P 3 = 27 Tempo di waiting medio: (0 + 24 + 27)/3 = 17 5.11 Scheduling FCFS Supponiamo che i processi arrivino nell ordine P 2, P 3, P 1. Lo schema di Gantt è: P 2 P 3 P 1 0 3 6 30 Tempo di waiting per P 1 = 6;P 2 = 0 ; P 3 = 3 Tempo di waiting medio: (6 + 0 + 3)/3 = 3 Molto meglio che nel caso precedente. Effetto convoglio: i processi brevi attendono i processi lunghi. 5.12

Scheduling Shortest-Job-First (SJF) Associa ad ogni processo la lunghezza del prossimo CPU burst. Use questi tempi per schedulare il processo con la lunghezza minima. Due schemi: nonpreemptive il processo assegnato non può essere sospeso prima di completare il suo CPU burst. preemptive se arriva un nuovo processo con un CPU burst più breve del tempo rimanente per il processo corrente, viene servito. Questo schema è conosciuto come Shortest-Remaining-Time-First (SRTF). SJF è ottimale offre il minimo tempo medio di attesa per un insieme di processi. 5.13 Esempio di Non-Preemptive SJF Processo Tempo Arrivo Tempo di Burst P 1 0.0 7 P 2 2.0 4 P 3 4.0 1 P 4 5.0 4 SJF (non-preemptive) P 1 P 3 P 2 P 4 0 3 7 8 12 16 Tempo di attesa medio = (0 + 6 + 3 + 7)/4-4 5.14

Esempio di Preemptive SJF Processo Tempo di Arrivo Tempo di Burst P 1 0.0 7 P 2 2.0 4 P 3 4.0 1 P 4 5.0 4 SJF (preemptive) P 1 P 2 P 3 P 2 P 4 P 1 0 2 4 5 7 11 16 Tempo di attesa medio = (9 + 1 + 0 +2)/4-3 5.15 Lunghezza del prossimo CPU Burst? La lunghezza del prossimo CPU burst non si conosce. Ma può essere stimato. Usando la lunghezza dei precedenti CPU burst e usando una media esponenziale: tn τn+1 lunghezza dell n-esimo CPU burst valore predetto del prossimo CPU burst α 0<= α <= 1 τn+1 = α tn + (1-α) τn 5.16

Predizione della lunghezza del prossimo CPU Burst α= 1/2 5.17 Esempi di media esponenziale α =0 τ n+1 = τ n La storia recente non conta. α =1 τ n+1 = t n Conta solo l ultimo valore reale del CPU burst. Se espandiamo la formula, si ha: τ n+1 = α t n +(1 - α) α t n-1 + +(1 - α ) j α t n-j + +(1 - α ) n+1 τ 0 Poiché sia α che (1 - α) sono minori o uguali ad 1, ogni termine successivo da un contributo sempre più piccolo. 5.18

Scheduling con Priorità Una priorità (numero intero) è assegnata ad ogni processo. La CPU è assegnata al processo con più alta priorità (es: il più piccolo intero la più alta priorità). Preemptive nonpreemptive SJF è uno scheduling con priorità stabilita dal valore del tempo del prossimo CPU burst. Problema Starvation i processi a più bassa priorità potrebbero non essere mai eseguiti. Soluzione Aging al trascorrere del tempo di attesa si incrementa la priorità di un processo che attende. 5.19 Scheduling Round Robin (RR) Ogni processo è assegnato alla CPU per un intervallo temporale fissato (quanto di tempo), ad es: 10-100 millisecondi. Quando il tempo è trascorso il processo viene tolto dalla CPU e inserito nella ready queue. Se ci sono N processi nella ready queue e il quanto di tempo è Q, ogni processo ottiene 1/N del tempo della CPU a blocchi di lunghezza Q. Nessun processo attende più di (N-1)Q unità di tempo. Prestazioni Q grande FIFO Q piccolo Q deve essere molto più grande del tempo di context switch, altrimenti il costo è troppo alto. 5.20

Quanto di tempo e Context Switch Il quanto di tempo deve essere molto più grande del tempo di context switch, altrimenti il costo è troppo alto. 5.21 Esempio di RR con Q = 20 Gantt: Processi tempo di burst P 1 53 P 2 17 P 3 68 P 4 24 P 1 P 2 P 3 P 4 P 1 P 3 P 4 P 1 P 3 P 3 0 20 37 57 77 97 117 121 134 154 162 Tempo di turnaround maggiore di SJF, ma migliore tempo di risposta. 5.22

Il tempo di Turnaround dipende da Q Anche il tempo di Turnaround dipende dal quanto di tempo Circa l 80% dei CPU burst devono essere più brevi di Q. 5.23 Scheduling a code multiple La ready queue è partizionata in più code. Ad esempio: foreground (processi interattivi) background (processi batch) Ogni coda è gestita da un proprio algoritmo di scheduling. Ad esempio: foreground RR background FCFS E necessario uno scheduling tra le code. Scheduling a priorità fissa : Possibilità di starvation. Quanto di tempo : ogni coda ha un certo ammontare di tempo di CPU che usa per i suoi processi. Ad esempio: 80% ai processi interattivi con RR 20% ai processi batch con FCFS. 5.24

Scheduling a code multiple : Esempio Priorità alta processi di sistema processi interattivi processi interattivi di editing processi batch Priorità bassa 5.25 Scheduling a code multiple con feedback Un processo si può spostare tra le code. Questo evita situazioni di starvation o di eccessivo utilizzo della CPU. Lo scheduler che usa code multiple con feedback usa i seguenti parametri: numero di code algoritmi di scheduling per ogni coda un metodo per promuovere un processo (--> maggiore priorità) un metodo per degradare un processo (--> minore priorità) un metodo per decidere in quale coda inserire un processo quando questo chiede un servizio. 5.26

Scheduling a code multiple con feedback Esempio con tre code: Q 0 quanto di tempo di 8 millisecondi Q 1 quanto di tempo di 16 millisecondi Q 2 FCFS 5.27 Scheduling a code multiple con feedback Si servono prima i processi della coda 0, quindi quelli della coda 1 e solo dopo quelli della coda 2. Esempio di scheduling un nuovo processo arriva nella coda Q 0 e quando è servito dalla CPU gli viene assegnato un quanto di tempo di 8 millisecondi. Se non completa in questo tempo va in Q 1. Nella coda Q 1 il processo riceve 16 millisecondi. Se non completa l esecuzione, dopo questo tempo viene tolto dalla CPU e assegnato alla coda Q 2. 5.28

Scheduling per Multiprocessori Lo scheduling nei sistemi multiprocessore è più complesso. Si possono avere processori omogenei (tutti uguali) o disomogenei (diversi processori). Problema del bilanciamento del carico (load balancing). Multiprocessing Asimmetrico solo un processore (master) accede alle strutture del sistema, gli altri (slave) eseguono programmi utente. 5.29 Scheduling Real-Time Sistemi hard real-time i processi devono completare l esecuzione entro un tempo fissato. Prenotazione delle risorse: il processo viene accettato con una indicazione di tempo di completamento Se il sistema non può soddisfare la richiesta rifiuta l esecuzione del processo. Sistemi soft real-time i processi critici ricevono una maggiore priorità rispetto ai processi normali. Priorità non decrescente Prelazione delle system call. 5.30

Latenza di Dispatch 5.31 Valutazione di algoritmi di scheduling Come scegliere un algoritmo di scheduling adatto/ottimale? Fissare i criteri di ottimizzazione. Usare metodi di valutazione: Modellazione Deterministica (valutazione analitica) Fissati i diversi carichi di lavoro definisce le prestazioni dei diversi algoritmi per ognuno dei carichi analizzati. Modelli di code Il sistema viene modellato come un insieme di server con le code associate; date le distribuzioni degli arrivi delle richieste si calcola la lunghezza media delle code, il tempo medio di attesa, etc. Realizzazione Simulazione 5.32

Valutazione tramite simulazione 5.33 Scheduling di Solaris 2 5.34

Priorità di Windows 2000 5.35 Domande Valutare i diversi algoritmi di scheduling sugli esempi usati per gli scheduling FCFS, SJF e RR. Come dovrebbe essere un algoritmo di scheduling per processi di tipo I/O bound? Valutare l effetto di quanti di tempo differenti sull algoritmo RR. Spiegare l effetto della priorità dinamica sugli algoritmi di scheduling con priorità. 5.36