Sistemi Operativi. ugoerr+so@dia.unisa.it 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08



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

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

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

Scheduling della CPU:

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

Scheduling della CPU

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

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

Corso di Informatica

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.

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano

Lo scheduling. Tipici schedulatori

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

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

La schedulazione. E.Mumolo

Scheduling della CPU

Sistemi Operativi. Scheduling dei processi

Processi e Thread. Scheduling (Schedulazione)

Scheduling della CPU Simulazione in linguaggio Java

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

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

Pronto Esecuzione Attesa Terminazione

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

Sistemi Operativi. Schedulazione della CPU

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

5. Scheduling della CPU

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

Scheduling. Scheduling 14/12/2003 1/7

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

SCHEDULATORI DI PROCESSO

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

ESERCIZI SULLO SCHEDULING DEI PROCESSI

Capitolo 6: CPU scheduling

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

Lo schedulatore del kernel

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

Sistemi Operativi Kernel

Scheduling. Livelli Algoritmi

Scheduling della CPU

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

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

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

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

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

Algoritmi di scheduling

Architettura degli Elaboratori 2

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

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

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

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

Coordinazione Distribuita

Processo - generalità

Calcolatori Elettronici A a.a. 2008/2009

Gli stati di un processo

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

Gestione del processore e dei processi

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

Scheduling della CPU

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

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

Il Sistema Operativo

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

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

J. Assfalg Appunti di Sistemi Operativi

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Esercitazione E1 Scheduling, deadlock, monitor

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

SCHEDULING DEI PROCESSI

Gestione della memoria centrale

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

J. Assfalg Appunti di Sistemi Operativi

Lo scheduler di UNIX (1)

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

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

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

Sistemi Operativi A.A. 2011/2012

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Tecniche Automatiche di Acquisizione Dati

Sistemi Operativi (modulo di Informatica II) I processi

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

Approccio stratificato

GESTIONE DEI PROCESSI

Pianificazione e controllo delle risorse

Sistema operativo: Gestione dei processi

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

Sistemi operativi e reti A.A Lezione 2

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

Lezione 10. Scheduling nei sistemi multiprocessori. Esempio: P=2 processori. Scheduling dei processi

La Gestione delle risorse Renato Agati

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

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

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.

Il Sistema Operativo (1)

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

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Transcript:

Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA

Sommario della lezione Introduzione allo scheduling hdli Scheduler della CPU Dispatcher Criteri di scheduling Algoritmi di scheduling Scheduling per multiprocessori

Introduzione allo scheduling Lo scheduling hdli è una delle dll operazioni ifondamentali lidi dei moderni sistemi operativi multiprogrammati L operazione di scheduling hdl permette di sfruttare al meglio le risorse di un sistema di calcolo rendendolo di fatto più produttivo Sebbene si parli di scheduling dei processi gli oggetti su cui opera lo scheduling sono i thread I termini scheduling dei processi e scheduling dei thread sono dunque equivalenti

Idea dello scheduling In un sistema monoprocessore un solo processo viene eseguito per volta Un processo nell arco della sua esecuzione alterna fasi di CPU burst (utilizzo della CPU) con fasi di I/O burst (attesa di input/output p da un dispositivo) Poiché durante una fase di I/O burst la CPU sarebbe inutilizzata l idea di base è di utilizzare questi tempi di attesa assegnando la CPU ad un altro processo Quindi più processi in esecuzione sono mantenuti in memoria in attesa che venga loro assegnato il controllo della CPU

Fasi CPU burst I/O burst Unprocesso consiste in un ciclo di elaborazione svolto dalla CPU e da un tempo di attesa da un dispositivo di I/O In fase di lancio un processo esegue un lungo ciclo di utilizzo della CPU Successivamente le fase si alternano tra CPU burst e I/O burst Processi con prevalenza di I/O (I/O bound) producono frequenti accessi alla CPU ma di breve durata Processicon con prevalenza di CPU (CPU bound) producono pochi accessi alla CPU ma molto lunghi

Frequenza dei CPU burst

Diagramma di transizione degli stati di un processo nuovo interruzione terminato ammesso pronto esecuzione uscita Completamento di un I/O o il verificarsi di un evento dispatch attesa Attesa di un I/O odi un evento

Scheduler della CPU Lo scheduler a breve termine della CPU seleziona tra tutti i processi presenti in memoria e pronti per essere eseguiti quello a cui assegnare la CPU Lo scheduler della CPU può prendere una decisione nelle seguenti condizioni: 1. Un processo passa dallo stato di esecuzione allo stato di attesa 2. Un processo passa dallo dll stato tt di esecuzione allo stato tt di pronto 3. Un processo passa dallo stato di attesa allo stato di pronto 4. Un processo termina Se le scheduler hdl interviene solo nelle fasi 1 e 4 allora è chiamato senza diritto di prelazione (nonpreemptive) o cooperativo (cooperative) Windows 3.x Altrimenti è chiamato con diritto di prelazione (preemptive) Windows 95, XP, Mac OS X, Linux

Problemi dello scheduler con prelazione Alcuni problemi dello scheduler con prelazione: Due processi che lavorano su dati condivisi potrebbero avere problemi di incoerenza nel momento in cui uno dei due processi viene prelazionato mentre sta modificando i dati Anche durante una chiamata di sistema il processo potrebbe essere prelazionato mentre il sistema operativo è in modalità kernel Le interruzioni potrebbero essere un altra fonte di problemi se non gestite adeguatamente poiché ihédiversi i processi potrebbero accedere in modo concorrente al codice di una interruzione

Dispatcher Il dispatcher è il modulo del sistema operativo che si occupa di passare alla CPU il processo scelto dallo scheduler a breve termine Le operazioni del dispatcher sono: Il cambio di contesto Il passaggio alla modalità utente Il salto alla giusta posizione del programma utente per riavviare l esecuzione La latenza di dispatch è definito come il tempo necessario per fermare un processo e avviare l esecuzione di un altro processo

Criteri di scheduling Alla base della scelta di un algoritmo di scheduling ci sono diversi criteri: Utilizzo della CPU Indica la percentuale di occupazione dll della CPU Produttività Numero di processi completati nell unità di tempo (throughput) Tempo di completamento Il tempo impiegato al processo per completare l esecuzione comprensivi dei tempi di attesa per entrare in memoria, nella coda dei processi pronti, tempo di esecuzione sulla CPU e nella operazioni di I/O (turnaround time) Tempo d attesa Somma degli intervalli di tempo passati nella coda dei processi pronti Tempo di risposta Tempo trascorso dalla sottomissione di un processo fino alla sua prima risposta (escluso il tempo di output del dispositivo)

Cosa ottimizzare? Massimizzare l utilizzo della CPU Tenere occupata quanto più è possibile la CPU Massimizzare la produttività Svolgere quanti più lavori nell unità di tempo Minimizzare il tempo di completamento Ridurre le fasi di attesa nella coda e l esecuzione Minimizzare il tempo di attesa Ridurre gli intervalli di tempo che un processo resta nella coda dei processi pronti (in genere si considera la media) Minimizzare il tempo di risposta Produrre quanto prima un risultato per garantire un buon servizio agli utenti

Algoritmi di scheduling First come, first served (FCFS) Shortest job first (SJF) Scheduling per priorità Round Robin (RR) Scheduling a code multiple Scheduling a code multiple con retroazione

Scheduling First Come First Server Lo scheduling in ordine di arrivo (scheduling hdli first come, first served, FCFS) assegna la CPU al primo processo che la richiede La realizzazione è affidata da una coda FIFO (First In First Out) Il PCB viene collegato all ultimo elemento della coda Quando la CPU è libera lb si assegna al primo processo in testa alla coda dei processi pronti

Esempio di Scheduling First Come First Server Supponiamo di avere i seguenti processi Processo Durata della sequenza P 1 24 P 2 3 P 3 3 Ildiagramma di Gantt esprimel ordinedi lordine arrivodei processiconcon i tempi di attesa Supponendo che i processi arrivano nell ordine P 1,P 2 e P 3 avremo: P 1 P 2 P 3 0 24 27 30 Il tempo medio di attesa sarà (0+24+27)/3 = 17 millisecondi

Esempio Scheduling First Come First Server Supponendo che i processi arrivano invece nell ordine P 2,P 3 e P 1 avremo: P 2 P 3 P 1 0 3 6 30 Il tempo medio di attesa sarà (036)/3 (0+3+6)/3 = 3 millisecondi Quindi il tempo medio di attesa varia in base alla durata delle sequenze di operazioni idella CPU dei processi e di conseguenza anche in base all ordine di arrivo

FCFS senza prelazione Nll Nello scheduling hdli FCFS si verifica l effetto convoglio quando un processo occupa per molto tempo la CPU e numerosi processi al termine di un I/O si accodano FCFS è senza prelazione, la CPU viene rilasciata dal processo dopo che Termina l esecuzione Richiede una operazione di I/O Non è un buon scheduler negli ambienti multi utente in cui ad ogni utente t deve essere garantito un tempo di utilizzo della CPU

Algoritmi di scheduling First come, first served (FCFS) Shortest job first (SJF) Scheduling per priorità Round Robin (RR) Scheduling a code multiple Scheduling a code multiple con retroazione

Shortest Job First Lo scheduling per brevità ità( (shortest job first, h t t j b t SJF) assegna la CPU al processo con il CPU burst minore Se due processi hannolo stesso tempo di occupazione della CPU si utilizza uno scheduler FCFS L algoritmo SJF può essere: Senza prelazione una volta che la CPU è stata assegnata non può essere prelazionata finché il processo non completa il suo CPU burst Con prelazione se arriva un nuovo processo con CPU burst tinferiore i a quello attualmente in esecuzione il processo viene prelazionato. Questo schema è chiamato Shortest Remaining Time First (SRTF) SJF è ottimale Il tempo media di attesa è minimo per un dato insieme di processi

Esempio Shortest Job First Supponiamo pponiamodi avere i seguenti enti processi Processo Durata della sequenza P 1 6 P 2 8 P 3 7 P 4 3 Con lo scheduler SJF i processi sarebbero ordinati nel seguente modo: P 4 P 1 P 2 P 3 0 3 9 16 24 Il tempo medio di attesa è (0 + 3 + 9 + 16) / 4 = 7 millisecondi

Media esponenziale 1 La difficoltà nello SJF è determinare la durata del successivo CPU burst Non è possibile conoscere la lunghezza del prossimo CPU burst ma è possibile predire il suo valore attraverso la seguente media esponenziale: dove: τ n+1 = αt n + (1- α) τ n t n è la lunghezza dell n esima sequenza di operazioni della CPU τ n+1 1 il valore previsto per la successiva sequenza di operazioni della CPU Il valore di α è compreso tra 0 α 1

Media esponenziale 2 Media esponenziale τ n+1 = αt n + (1- α) τ n Al variare dl del parametro α otteniamo: Se α =0 allora la storia recente non ha effetto (τ n+1 = τ n ) Se α =1 allora diamo importanza solo alla storia recente (τ n+1 = t n ) Se α =1/2 allora la storia recente e la storia passata hanno lo stesso peso Sviluppando la formula per τ n+1 otteniamo τ = αt + (1- α)αt n-1 + + (1- α) j αt n-j + + (1- α) n+1 n+1 n ) 1 ) ) τ 0 poiché i valori di α ed (α 1) sono minori o uguali ad 1 i termini passati hanno meno peso

Predizione della lunghezza del successivo CPU burst τ 0 =10 0 α=1/2

Esempio Shortest Job First (senza prelazione) Supponiamo pponiamodi avere i seguenti enti processi Processo Istante di arrivo Durata della sequenza P 1 00 0.0 7 P 2 2.0 4 P 3 4.0 1 P 4 5.0 4 Con lo scheduler SJF senza prelazione i processi sarebbero ordinati nel seguente modo: P 1 P 3 P 2 P 4 0 7 8 12 16 Il tempo medio di attesa è (0 + 3 + 6 + 7) / 4 = 4 millisecondi

Esempio Shortest Job First (con prelazione) Supponiamo di avere i seguenti processi Processo Istante di arrivo Durata della sequenza P 1 00 0.0 7 P 2 2.0 4 P 3 4.0 1 P 4 5.0 4 Con lo scheduler SJF con prelazione i processi sarebbero ordinati nel seguente modo: P 1 P 2 P 3 P 2 P 4 P 1 0 2 4 5 7 11 16 Il tempo medio di attesa è (9 + 1 + 0 + 2) / 4 = 3 millisecondi

Algoritmi di scheduling First come, first served (FCFS) Shortest job first (SJF) Scheduling per priorità Round Robin (RR) Scheduling a code multiple Scheduling a code multiple con retroazione

Scheduling per priorità Nll Nello scheduling per priorità itàassociamo un valore di priorità ad ogni processo Lo SFJ è un caso particolare dll dello scheduling hdli per priorità ità La CPU è allocata al processo con la priorità più alta Ad esempio il valore 0 potrebbe indicare una priorità bassa mentre il valore 4095 una priorità alta In generale non esiste un modo univoco per indicare unapriorità alta e la priorità bassa

Esempio Scheduling per priorità Supponiamo di avere i seguenti processi Processo Durata della sequenza Priorità P 1 10 3 P 2 1 1 P 3 2 4 P 4 1 5 P 5 5 2 Con lo scheduler per priorità i processi sarebbero ordinati nel seguente modo: P 2 P 5 P 1 P 3 P 4 0 1 6 16 18 19 Il tempo medio di attesa è (0 + 1 + 6 + 16 + 18) / 5 = 8,2 millisecondi

Assegnazione delle priorità Le priorità itàpossono essere assegnate Internamente: in base al numero di operazioni di I/O e alla lunghezza delle sequenze di operazionidella CPU Esternamente: importanza del processo, tipo di processo, fondi pagati, pg politica di assegnazione delle priorità Lo scheduling per priorità può essere: Con prelazione: nel momento in cui arriva un processo con priorità maggiore viene prelazionato il processo attuale in esecuzione Senza prelazione: l ultimo processo arrivato viene inserito in testa alla coda dei processi pronti

Starvation L attesa indefinita it o starvation ti è un problema che si verifica con lo scheduling per priorità Un processo con bassa priorità ed in attesa dll della CPU potrebbe rimanere in attesa per un tempo indefinito a causa di processi con priorità itàmaggiore Il processo solitamente è eseguito di notte quando la maggior parte dei processi con alta priorità non è in esecuzione Una soluzione consiste nell applicare una sorta di invecchiamento (aging) in cui la priorità dei processi viene aumentata man mano che passa il tempo

Algoritmi di scheduling First come, first served (FCFS) Shortest job first (SJF) Scheduling per priorità Round Robin (RR) Scheduling a code multiple Scheduling a code multiple con retroazione

Round Robin 1 Nell algoritmodi schedulingcircolare circolare (round robin, RR) ad ogni processo è concesso un quanto di tempo o porzione di tempo (time slice) Solitamente da 10 a 100 millisecondi Al termine del quanto di tempo il processo in esecuzione è prelazionato ed inserito i alla fine della dll coda circolare Lo scheduler della CPU scorre la coda dei processi pronti per individuare il primo processo della coda a cui assegnare il prossimo quanto di tempo Una volta determinato il processo lo scheduler imposta un timer pari al quanto di tempo ed attiva il dispatcher per l esecuzione del processo

Round Robin 2 Durante l esecuzione del processo possono accadere due cose: Il processo ha un sequenza di operazioni della CPU minore del quanto di tempoe e quindi rilascerà spontaneamente la CPU Il processo termina il suo quanto di tempo e lo scheduler passa all esecuzione del prossimo processo Se ci sono n processi nella coda di dei processi pronti e il quanto di tempo è q allora ogni processo otterrà 1/n del tempo della CPU e nessun processo attenderà più di (n 1)q quanti di tempo Performance Se q è molto grande si ottiene lo scheduling FCFS Se q è piccolo il contex switch potrebbe essere prevalente sul tempo totale creando un eccessivo overhead

Esempio Round Robin Supponiamo di avere i seguentiprocessi Processo Durata della sequenza P 1 24 P 2 3 P 3 3 Con uno scheduler Round Robin ed una durata del quando di 4 millisecondi abbiamo: P 1 P 2 P 3 P 1 P 1 P 1 P 1 P 1 0 4 7 10 14 18 22 26 30 Il tempo medio di attesa è (6 + 4 + 7) / 3 = 5,66 millisecondi Nota: P 1 attende in coda 0 + (10 4) = 6 millisecondi P 2 attente in coda 4 millisecondi 2 P 3 attende in coda 7 millisecondi

Dimensione quanto di tempo La dimensione del quanto di tempo è fondamentale per evitare overhead dei cambi di contesto Ad esempio se un processo dura 10 unità di tempo in base alla durata del quanto di tempo q avremo: Se q=12, nessun cambio di contesto Se q=6, un solo cambio di contesto Se q=1, 9 cambi di contesto

Algoritmi di scheduling First come, first served (FCFS) Shortest job first (SJF) Scheduling per priorità Round Robin (RR) Scheduling a code multiple Scheduling a code multiple con retroazione

Scheduling a code multiple Nei sistemi in cui i processi sono classificabili in gruppi diversi è possibile creare code distinte per ogni gruppo Una distinzione comune è Processi eseguiti in primo piano (foreground) o interattivi Processi eseguiti in sottofondo (background) L algoritmo di scheduling a code multiple utilizza per ogni coda un algoritmo di scheduling differente, adesempio: Per i processi in foreground si può utilizzare un algoritmo RR Per i processi in background si può utilizzare un algoritmo FCFS Lo scheduling deve essere applicato anche tra le diverse code Tutti i processi in foreground devono essere eseguiti prima dei processi in background Oppure assegnare ad ogni coda un certa quantità di tempo della CPU che può utilizzare per i diversi processi della coda 80% per i processi foreground usando RR 20% per i processi in background usando FCFS

Esempio Scheduling a code multiple Priorità più alta Processi di sistema Processi interattivi Processi interattivi di editing Processi eseguiti a lotti Priorità più bassa Processi degli studenti

Algoritmi di scheduling First come, first served (FCFS) Shortest job first (SJF) Scheduling per priorità Round Robin (RR) Scheduling a code multiple Scheduling a code multiple con retroazione

Scheduling a code multiple con retroazione Nll Nello scheduling a code multiple l con retroazione i processi possono essere spostati da una coda ad un altra In generale non sarebbe possibile perché un processo non può cambiare le proprie caratteristiche Si potrebbe ipotizzare un comportamento del genere: Un processo che utilizza troppi cicli di CPU è spostato su di una coda con priorità più bassa Processi con prevalenza di I/O sono spostati in code a priorità più alta Processi che attendono da troppo tempo l uso della CPU possono essere spostati in code a priorità più alta

Parametri Uno scheduler hdl a code multiple l con retroazione è caratterizzato dai seguenti parametri: Numero di code Algoritmo di scheduling per ciascuna coda Metodo utilizzato per spostare una processo su unacoda con priorità maggiore Metodo utilizzato per spostare una processo su una coda con priorità minore Metodo da utilizzare per decidere in quale coda spostare un processo quando viene lanciato

Esempio Scheduling a code multiple Consideriamo uno scheduler con tre code: Q 0 servita con RR con un quanto di tempo di 8 millisecondi Q 1 servita con RR con un quanto di tempo di 16 millisecondi Q 2 servitacon FCFS Lo scheduler opera nel seguente modo: Un nuovo processo entra nella coda Q 0. Quando riceve la CPU se non termina nel quanto di 8 millisecondi è spostato nella coda Q 1 Un processo nella coda Q 1 ricevi 16 millisecondi se non termina entro il quanto assegnato viene spostato nella coda Q 2 I processi nella coda Q 2 sono eseguiti solo se non ci sono processi nella coda Q 1 I processi nella coda Q 1 sono eseguiti solo se non ci sono processi nella coda Q 0 I processi a priorità maggiore hanno diritto di prelazione sui processi a priorità minore L intero scheduler favorisce i processi che non richiedono un uso della CPU per non più di 8 millisecondi

Esempio Scheduling a code multiple quanto = 8 quanto = 16 FCFS

Scheduling per sistemi multiprocessori Al crescere del numero di processori è possibile gestire le CPU come risorse da assegnare ai processi ma lo scheduling hdl diventa più complesso Nei sistemi omogenei i processori sono identici tra di loro e quindi qualunque CPU può essere utilizzata In alcuni sistemi omogenei può capitare che un processore sia l unico responsabile dell I/O quindi i processi devono essere eseguiti su questo processore

Tipi di multielaborazione Eit Esistono due tipi i di multielaborazione l i Multielaborazione asimmetrica un solo processore si occupa di gestire il sistema e gli altri processori eseguono solo il codice Multielaborazione simmetrica (symmetric multiprocessing, SMP) i processi sono mantenuti in una coda comune oppure ogni processore ha un coda propria I dati condivisi devono essere gestiti adeguatamente

Predilezione per il processore I processori moderni dispongono di enormi quantità di cache per aumentare le prestazioni Se un processo è eseguito su di un processore i dati della cache saranno invalidati nel momento in cui il processo è spostato su di un altro processore Per evitare situazioni del genere si utilizza la predilezione per il processore (processor affinity) in cui un processo preferisce essere eseguito su di una particolare CPU Può essere di due tipi: Predilezione debole un processo può cambiare processore Predilezione forte un processo non può cambiare processore

Bilanciamento del carico Neisistemi SMP è importante che ogni processore siasempresempre occupato al pari degli altri Il bilanciamento del carico cerca di distribuire uniformemente il lavoro su tutti i processori Se la coda è comune lavoreranno tutti i processori poiché al termine di un processo sarà immediatamente selezionato dalla coda un nuovo processo Se un processore è sbilanciato sono possibili due soluzioni: Migrazione guidata un processo si occupa di bilanciare periodicamente il carico di lavoro spostando i processi sui diversi processori Migrazione spontanea un processorepoco poco carico sottrae processiad un processore troppo carico Linux utilizza un approccio ibrido: Utilizza la migrazione i guidata ogni 200 millisecondi Utilizza la migrazione spontanea quando un processore ha svuotato la propria coda