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

Documenti analoghi
Scheduling della CPU

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.

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

Scheduling della CPU:

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

Capitolo 5 - Silberschatz

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

Scheduling della CPU. Capitolo 6 - Silberschatz

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

Scheduling della CPU

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

Sistemi Operativi. Lezione 5 Lo scheduling

Sistemi Operativi (modulo di Informatica II) Schedulazione della CPU

Sistemi Operativi (modulo di Informatica II) Schedulazione della CPU

Sistemi Operativi 2003/2004. Lo scheduling dei processi

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

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

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

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

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

Sistemi Operativi Modulo I. Lo Scheduling

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

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

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

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

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

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

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.

Sistemi Operativi. Scheduling dei processi

Sistemi Operativi SCHEDULING DELLA CPU

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

Lezione 3 Sistemi Operativi e misure di performance. Parleremo di

I Processi. Il Concetto di Processo

Il Concetto di Processo

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

Sistemi Operativi Esercizi Ordinamento Processi

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano

Il Sistema Operativo Ripasso

Lo scheduling. Tipici schedulatori

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

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

Ordinamento dei processi

Scheduling di processi: metriche, politiche e algoritmi

E-1: Scheduling dei processi

Sistemi Operativi. Modulo 4: Scheduling

I Processi. Il Concetto di Processo

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

2.2 Scheduling in Linux

Appunti di Sistemi Operativi. Enzo Mumolo address web address :

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

Trasparenze del Corso di Sistemi Operativi

Laboratorio di Sistemi Operativi Simulatori

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

Trasparenze del Corso di Sistemi Operativi

Scheduling della CPU

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

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

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

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

Esercitazione di Sistemi Operativi

Sistemi Operativi. Scheduling dei processi

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

Il Concetto di Processo

Scheduling della CPU

Processi e thread. Concetto di processo

Il Concetto di Processo

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

Dati: variabili globali Program Counter Alcuni registri di CPU Stack: parametri, variabili locali a funzioni/procedure

Introduzione ai thread

Sistemi Operativi. Processi e Thread

Sistemi Operativi. Modulo 5: Scheduling

Sistemi Operativi A.A. 2010/2011

Scheduling della CPU

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

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

Lo scheduling. Tipici schedulatori

Corso di Informatica

Processi e Thread. Concetto di processo

Schedulazione real-time di task PERIODICI

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

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

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

Sistemi operativi. Sistemi Operativi. Sistemi Operativi. Funzioni del Sistema Operativo

Sistemi Operativi T. Processi e Thread

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

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

Sistemi Operativi. La gestione delle risorse

Sistemi Operativi GESTIONE DEI PROCESSI. D. Talia - UNICAL. Sistemi Operativi 4.1

Transcript:

Scheduling della CPU Scheduling della CPU Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della CPU Scheduling della CPU: commuta l uso della CPU tra i vari processi Scheduler della CPU (a breve termine): è quella parte del SO che seleziona dalla coda dei processi pronti il prossimo processo al quale assegnare l uso della CPU Sistemi Operativi L-A - Scheduling della CPU 2

Coda dei processi pronti (ready( ): ready queue): primo ultimo PCB i PCB j PCB k contiene i descrittori (process( control block, PCB) dei processi pronti strategia di gestione della ready queue è realizzata mediante politiche (algoritmi) di scheduling Sistemi Operativi L-A - Scheduling della CPU 3 Terminologia: CPU burst & I/O burst Ogni processo alterna (burst = raffica) CPU burst: fasi in cui viene impiegata soltanto la CPU senza I/O I/O burst: fasi in cui il processo effettua I/O da/verso una risorsa (dispositivo) del sistema CPU burst I/O burst Quando un processo è in I/O burst, la CPU non viene utilizzata: in un sistema multiprogrammato, lo scheduler assegna la CPU a un nuovo processo Sistemi Operativi L-A - Scheduling della CPU 4

Terminologia: processi I/O bound & CPU bound A seconda delle caratteristiche dei programmi eseguiti dai processi, è possibile classificare i processi in I/O bound: prevalenza di attività di I/O Molti CPU burst di breve durata, intervallati da I/O burst di lunga durata CPU bound: prevalenza di attività di computazione CPU burst di lunga durata, intervallati da pochi I/O burst di breve durata Sistemi Operativi L-A - Scheduling della CPU 5 Terminologia: pre-emption emption Gli algoritmi di scheduling si possono classificare in due categorie: senza prelazione (non pre-emptive): la CPU rimane allocata al processo running finché esso non si sospende volontariamente o non termina con prelazione (pre-emptive): il processo running può essere prelazionato, cioè SO può sottrargli la CPU per assegnarla ad un nuovo processo I sistemi a divisione di tempo hanno uno scheduling pre-emptive Sistemi Operativi L-A - Scheduling della CPU 6

Politiche & meccanismi Lo scheduler decide a quale processo assegnare la CPU A seguito della decisione, viene attuato il cambio di contesto (context-switch) Dispatcher: è la parte di SO che realizza il cambio di contesto Scheduler = POLITICHE Dispatcher = MECCANISMI Sistemi Operativi L-A - Scheduling della CPU 7 Criteri di scheduling Per analizzare e confrontare i diversi algoritmi di scheduling, vengono considerati alcuni parametri: Utilizzo della CPU: percentuale media di utilizzo CPU nell unità di tempo Throughput (del sistema): numero di processi completati nell unità di tempo Tempo di Attesa (di un processo): tempo totale trascorso nella ready queue Turnaround (di un processo): tempo tra la sottomissione del job e il suo completamento Tempo di Risposta (di un processo): intervallo di tempo tra la sottomissione e l inizio della prima risposta (a differenza del turnaround, non dipende dalla velocità dei dispositivi di I/O) Sistemi Operativi L-A - Scheduling della CPU 8

Criteri di scheduling In generale: devono essere massimizzati Utilizzo della CPU Throughput invece, devono essere minimizzati Turnaround (sistemi batch) Tempo di Attesa Tempo di Risposta (sistemi interattivi) Sistemi Operativi L-A - Scheduling della CPU 9 Criteri di scheduling Non è possibile ottimizzare tutti i criteri contemporaneamente A seconda del tipo di SO, gli algoritmi di scheduling possono avere diversi obiettivi nei sistemi batch: massimizzare throughput e minimizzare turnaround nei sistemi interattivi: minimizzare il tempo medio di risposta dei processi minimizzare il tempo di attesa Sistemi Operativi L-A - Scheduling della CPU 10

Algoritmo di scheduling FCFS First-Come-First-Served: la coda dei processi pronti viene gestita in modo FIFO i processi sono schedulati secondo l ordine di arrivo nella coda algoritmo non pre-emptive Esempio: tre processi [Pa, Pb, Pc] (diagramma di Gantt) Pa Pb Pc 0 32 36 43 t T attesa medio = (0 + 32 + 36)/3 = 22,7 Sistemi Operativi L-A - Scheduling della CPU 11 Algoritmo di scheduling FCFS Esempio: se cambiassimo l ordine di scheduling [Pb, Pc, Pa] Pb Pc Pa 0 4 11 43 t T attesa medio = (0 + 4 + 11)/3 = 5 Sistemi Operativi L-A - Scheduling della CPU 12

Problemi dell algoritmo FCFS Non è possibile influire sull ordine dei processi: nel caso di processi in attesa dietro a processi con lunghi CPU burst (processi CPU bound), il tempo di attesa è alto Possibilità di effetto convoglio se molti processi I/O bound seguono un processo CPU bound: scarso grado di utilizzo della CPU Sistemi Operativi L-A - Scheduling della CPU 13 Algoritmo di scheduling FCFS: effetto convoglio Esempio: [P1, P2, P3, P4] P1 è CPU bound; P2, P3, P4 sono I/O bound P1 effettua I/O nell'intervallo [t1,t2] P4 P3 P2 P1 t1 CPU inattiva t2 Sistemi Operativi L-A - Scheduling della CPU 14

Algoritmo di scheduling SJF (Shortest Job First) Per risolvere i problemi dell algoritmo FCFS: per ogni processo nella ready queue, viene stimata la lunghezza del prossimo CPU-burst viene schedulato il processo con il CPU burst più corto (Shortest Job First) Pb Pc Pa 0 4 11 43 t si può dimostrare che il tempo di attesa è ottimale Sistemi Operativi L-A - Scheduling della CPU 15 Algoritmo di scheduling SJF SJF può essere: non pre-emptive (Shortest Job First) pre-emptive: (Shortest Remaining Time First, SRTF) se nella coda arriva un processo (Q) con CPU burst minore del CPU burst rimasto al processo running (P) pre-emption Problema è difficile stimare la lunghezza del prossimo CPU burst di un processo (di solito, uso del passato per predire il futuro) Sistemi Operativi L-A - Scheduling della CPU 16

Stimare la lunghezza di CPU burst Unica cosa ragionevole: stimare probabilisticamente la lunghezza in dipendenza dai precedenti CPU burst di quel processo Possibilità molto usata: exponential averaging th tn = actual length of n CPU burst τ n+ 1 = predicted value for the next CPU burst α, 0 α 1 ( ) τ α α τ = n 1 t + + n 1 n Sistemi Operativi L-A - Scheduling della CPU 17 Stimare la lunghezza di CPU burst Unica cosa ragionevole: stimare probabilisticamente la lunghezza in dipendenza dai precedenti CPU burst di quel processo Possibilità molto usata: exponential averaging th tn = actual length of n CPU burst τ n+ 1 = predicted value for the next CPU burst α, 0 α 1 ( ) τ α α τ = n 1 t + + n 1 n Sistemi Operativi L-A - Scheduling della CPU 18

SJF con exponential averaging α =0 τ n+1 = τ n ovvero la storia recente degli attuali valori non conta α =1 τ n+1 = α t n ovvero conta solo l ultimo valore reale Sviluppando l espressione: τ n+1 = α t n +(1 - α)α t n-1 + +(1 - α ) j α t n -j + +(1 - α ) n +1 τ 0 ogni termine successivo ha meno peso del termine precedente Sistemi Operativi L-A - Scheduling della CPU 19 Scheduling con priorità Ad ogni processo viene assegnata una priorità: lo scheduler seleziona il processo pronto con priorità massima processi con uguale priorità vengono trattati in modo FCFS Priorità possono essere definite internamente: SO attribuisce ad ogni processo una priorità in base a politiche interne esternamente: criteri esterni al SO (es: nice in UNIX) Le priorità possono essere costanti o variare dinamicamente Sistemi Operativi L-A - Scheduling della CPU 20

Scheduling con priorità Algoritmi di scheduling con priorità possono essere non-preemptive pre-emptive: se arriva in coda un processo con priorità maggiore del processo running pre-emption SJF è un esempio di algoritmo con priorità per ogni processo, la priorità è 1/CPU burst la priorità è variabile Sistemi Operativi L-A - Scheduling della CPU 21 Scheduling con priorità Problema: starvation dei processi Starvation: si verifica quando uno o più processi di priorità bassa vengono lasciati indefinitamente nella coda dei processi pronti, perchè vi è sempre almeno un processo pronto di priorità più alta Soluzione: invecchiamento (aging) dei processi ad esempio la priorità cresce dinamicamente con il tempo di attesa del processo la priorità decresce al crescere del tempo di CPU già utilizzato Sistemi Operativi L-A - Scheduling della CPU 22

Algoritmo di scheduling round robin Process È tipicamente usato in sistemi time sharing: Ready queue gestita come una coda FIFO circolare (FCFS) ad ogni processo viene allocata la CPU per un intervallo di tempo costante Δt (time slice o, quanto di tempo) il processo usa la CPU per Δt (oppure si blocca prima) allo scadere del quanto di tempo: prelazione della CPU e reinserimento in coda Burst Time 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 l algoritmo RR può essere visto come un estensione di FCFS con pre-emption periodica Sistemi Operativi L-A - Scheduling della CPU 23 Round robin Obiettivo principale è la minimizzazione del tempo di risposta (adeguato per sistemi interattivi) Tutti i processi sono trattati allo stesso modo (assenza di starvation) Problemi: dimensionamento del quanto di tempo Δt piccolo (ma non troppo: Δt>>T context switch ) tempi di risposta ridotti, ma alta frequenza di context switch Δt grande overhead di context switch ridotto, ma tempi di risposta più alti trattamento equo dei processi possibilità di degrado delle prestazioni del SO Sistemi Operativi L-A - Scheduling della CPU 24

Approcci misti Nei SO reali, spesso si combinano diversi algoritmi di scheduling Esempio: Multiple Level Feedback Queues più code, ognuna associata a un tipo di job diverso (batch, interactive, CPU-bound,...) ogni coda ha una diversa priorità: scheduling delle code con priorità ogni coda viene gestita con scheduling FCFS o Round Robin i processi possono muoversi da una coda all altra, in base alla loro storia: passaggio da priorità bassa ad alta: processi in attesa da molto tempo (feedback positivo) passaggio da priorità alta a bassa: processi che hanno già utilizzato molto tempo di CPU (feedback negativo) Sistemi Operativi L-A - Scheduling della CPU 25 Multi Level Feedback Queue Sistemi Operativi L-A - Scheduling della CPU 26

Esempio di Multi Level Feedback Queue 3 code Q 0 RR con time quantum=8ms Q 1 RR con time quantum=16ms Q 2 FCFS Scheduling Un processo nuovo entra in Q 0 ; quando acquisisce la CPU ha 8ms per utilizzarla; se non termina nel quanto di tempo viene spostato in Q 1 In Q 1 il processo è servito ancora RR e riceve 16ms di CPU; se non termina nel quanto di tempo, viene spostato in Q 2 Priorità elevata a processi con breve uso CPU Sistemi Operativi L-A - Scheduling della CPU 27 Scheduling in UNIX (BSD 4.3) Obiettivo: privilegiare i processi interattivi Scheduling MLFQ: più livelli di priorità (circa 160): più grande è il valore, più bassa è la priorità Viene definito un valore di riferimento pzero: Priorità pzero: processi di utente ordinari Priorità < pzero: processi di sistema (ad es. esecuzione di system call), non possono essere interrotti da segnali (kill) Ad ogni livello è associata una coda, gestita con Round Robin (quanto di tempo: 100 ms) Sistemi Operativi L-A - Scheduling della CPU 28

Scheduling in UNIX Aggiornamento dinamico delle priorità: ad ogni secondo viene ricalcolata la priorità di ogni processo La priorità di un processo decresce al crescere del tempo di CPU già utilizzato feedback negativo di solito, processi interattivi usano poco la CPU: in questo modo vengono favoriti L utente può influire sulla priorità: comando nice (ovviamente soltanto per decrescere la priorità) Sistemi Operativi L-A - Scheduling della CPU 29 Scheduling in Solaris2 per i processi interattivi o time-sharing Sistemi Operativi L-A - Scheduling della CPU 30

Priorità in MS WindowsXP classe variable classe real-time Priorità variabile con aumento in caso di rilascio da waiting Sistemi Operativi L-A - Scheduling della CPU 31 Linux scheduling (da( v2.5) Due algoritmi: time-sharing e real-time Time-sharing Con priorità dinamiche, basato su crediti processi con più crediti schedulati prima Crediti vengono decrementati in base a timer Quando crediti=0, il processo viene deschedulato Si rialza il credito di tutti quando tutti i processi arrivano a credito=0 Real-time Soft real-time con priorità statiche Conforme a POSIX.1b compliant due classi FCFS e RR all interno della stessa priorità processo a priorità maggiore esegue sempre per primo Sistemi Operativi L-A - Scheduling della CPU 32

Linux scheduling (da( v2.5) Due algoritmi: time-sharing e real-time Time-sharing Con priorità dinamiche, basato su crediti processi con più crediti schedulati prima Crediti vengono decrementati in base a timer Quando crediti=0, il processo viene deschedulato Si rialza il credito di tutti quando tutti i processi arrivano a credito=0 Real-time Soft real-time con priorità statiche Conforme a POSIX.1b compliant due classi FCFS e RR all interno della stessa priorità processo a priorità maggiore esegue sempre per primo Sistemi Operativi L-A - Scheduling della CPU 33 Scheduling dei thread Java Java Virtual Machine (JVM) usa scheduling con prelazione e basato su priorità FIFO Queue usata fra thread con stessa priorità JVM mette in stato di running un thread quando: 1. thread che sta usando la CPU esce dallo stato Runnable 2. un thread a priorità più alta entra nello stato Runnable * NB: JVM non specifica se i thread hanno quanto di tempo o no Sistemi Operativi L-A - Scheduling della CPU 34

Time-Slicing Siccome JVM non garantisce time-slicing, andrebbe usato il metodo yield(), per trasferire il controllo ad altro thread di uguale priorità: while (true) { // perform CPU-intensive task... thread.yield(); } Si possono assegnare valori di priorità tramite il metodo setpriority() Sistemi Operativi L-A - Scheduling della CPU 35 Valutazione algoritmi di scheduling tramite simulazione Sistemi Operativi L-A - Scheduling della CPU 36