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



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

Sistemi Operativi SCHEDULING 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

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

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

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

Scheduling della CPU:

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

Scheduling della CPU

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

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

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

La schedulazione. E.Mumolo

Sistemi Operativi. Scheduling dei processi

Lo scheduling. Tipici schedulatori

Scheduling. Livelli Algoritmi

Capitolo 6: CPU scheduling

Sistemi Operativi. Schedulazione della CPU

Corso di Informatica

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

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

Scheduling. Scheduling 14/12/2003 1/7

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

Scheduling della CPU

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

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

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

Processi e Thread. Scheduling (Schedulazione)

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

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

5. Scheduling della CPU

Scheduling della CPU Simulazione in linguaggio Java

ESERCIZI SULLO SCHEDULING DEI PROCESSI

Scheduling della CPU

Sistemi Operativi Kernel

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

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

Lo scheduler di UNIX (1)

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

SCHEDULATORI DI PROCESSO

Gli stati di un processo

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

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

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

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

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

Scheduling della CPU

Pronto Esecuzione Attesa Terminazione

Lo schedulatore del kernel

Architettura degli Elaboratori 2

Algoritmi di scheduling

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

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

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

Processo - generalità

Sistemi Operativi (modulo di Informatica II) I processi

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

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

Scheduling della CPU (2) CPU bursts (2)

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

GESTIONE DEI PROCESSI

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

Memoria secondaria. Struttura del disco. Scheduling del disco. Gestione dell unità a disco. Affidabilità dei dischi: RAID

Capitolo 3 -- Silberschatz

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

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

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

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

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

SCHEDULING DEI PROCESSI

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni

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

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

Corso di Sistemi di Elaborazione delle informazioni

Sistemi operativi e reti A.A Lezione 2

Gestione della memoria centrale

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

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

Dipartimento di Informtica e Sistemistica Università di Roma La Sapienza

Gestione del processore e dei processi

J. Assfalg Appunti di Sistemi Operativi

Transcript:

Criteri di Scheduling Algoritmi di Scheduling Multiple-Processor Scheduling Asymmetric/Symmetric multiprocessing Processori Multicore 5.2 Silberschatz, Galvin and Gagne 2005 1

Massimizzare lʼutilizzo della CPU mediante multiprogrammazione CPU I/O Burst Cycle Processo alterna cicli di CPU ad attese di I/O Distribuzione dei cicli di CPU (CPU-burst) 5.3 Silberschatz, Galvin and Gagne 2005 5.4 Silberschatz, Galvin and Gagne 2005 2

5.5 Silberschatz, Galvin and Gagne 2005 Sceglie tra i processi pronti quello da eseguire e vi alloca la CPU La Schedulazione della CPU avviene quando un processo: 1. Passa da attivo in stato di attesa 2. Passa da attivo a stato di pronto 3. Passa da stato di attesa a stato di pronto 4. Termina Scheduling secondo 1 e 4 eʼ non-preemptive (senza prelazione) Se si schedula secondo 2 e 3, preemptive (con prelazione) 5.6 Silberschatz, Galvin and Gagne 2005 3

Il Dispatcher passa il controllo della CPU al processo selezionato dallo schedulatore a breve termine: Cambia il contesto (context switch) Passa in modalitaʼ utente Salta alla locazione giusta da cui il processo schedulato deve ripartire Latenza di Dispatch latency tempo necessario al dispatcher per fermare un processo e farne ripartire un altro 5.7 Silberschatz, Galvin and Gagne 2005 Utilizzo della CPU utilization CPU quasi sempre occupata Throughput # di processi completati per unitaʼ di tempo Tempo di Turnaround tempo necessario per completare un particolare processo Tempo di attesa tempo trascorso dal processo nella coda di dei processi in stato di pronto Tempo di risposta tempo trascorso dal momento in cui una richiesta viene sottoposta al sistema fino al momento in cui una prima risposta appare in output (importante in ambienti time-sharing) 5.8 Silberschatz, Galvin and Gagne 2005 4

Massimizza uso di CPU Massimizza throughput Minimizza turnaround Minimizza tempo dʼattesa Minimizza tempo di risposta 5.9 Silberschatz, Galvin and Gagne 2005 Process Burst Time P 1 24 P 2 3 P 3 3 I processi arrivano nellʼordine: P 1, P 2, P 3 Il diagramma di Gantt per la schedulazione: P 1 P 2 P 3 0 24 27 30 Tempo di attesa: P 1 = 0; P 2 = 24; P 3 = 27 Tempo medio di attesa: (0 + 24 + 27)/3 = 17 5.10 Silberschatz, Galvin and Gagne 2005 5

Consideriamo ora lʼordine di arrivo P 2, P 3, P 1 Il diagramma di Gantt diventa: P 2 P 3 P 1 0 3 6 30 Tempi di attesa: P 1 = 6; P 2 = 0 ; P 3 = 3 Tempo medio di attesa: (6 + 0 + 3)/3 = 3 Miglioramento significativo Evitato lʼeffetto convoglio: processi brevi dopo processi lunghi 5.11 Silberschatz, Galvin and Gagne 2005 Scegli il processo con il piuʼ piccolo CPU burst Schemi possibili: Non-preemptive una volta assegnata la CPU ad un processo attendi fino a completamento del CPU burst preemptive se un nuovo processo arriva con CPU burst piuʼ breve del tempo rimanente al CPU burst del processo in esecuzione, prelaziona Schema noto come: Shortest-Remaining-Time-First (SRTF) SJF ottimizza (minimizza) il tempo medio di attesa 5.12 Silberschatz, Galvin and Gagne 2005 6

Process Arrival Time Burst Time 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 media di attesa = (0 + 6 + 3 + 7)/4 = 4 5.13 Silberschatz, Galvin and Gagne 2005 Process Arrival Time Burst Time 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 Tempo medio di attesa = (9 + 1 + 0 +2)/4 = 3 16 5.14 Silberschatz, Galvin and Gagne 2005 7

Possiamo solo stimare tale lunghezza Possibilitaʼ: usa le lunghezza dei precedenti CPU bursts Es.: media esponenziale 1. t n = lunghezza effettiva dell'n mo CPU burst 2. τ n +1 = valore atteso del prossimo CPU burst 3. α, 0 α 1 4. Definisci : τ n +1 = α t n + ( 1 α)τ n. 5.15 Silberschatz, Galvin and Gagne 2005 5.16 Silberschatz, Galvin and Gagne 2005 8

α =0 τ n+1 = τ n La storia recente non ha valore α =1 τ n+1 = α t n Solo il precedente CPU burst ha valore Se espandiamo la formula otteniamo: τ n+1 = α t n +(1 - α)α t n -1 + +(1 - α ) j α t n -j + +(1 - α ) n +1 τ 0 Nota che α e (1 - α) sono 1, quindi ogni termine nella formula pesa meno del precedente 5.17 Silberschatz, Galvin and Gagne 2005 Ogni processo ha associato un valore di prioritaʼ (intero) La CPU eʼ allocata al processo con prioritaʼ piuʼ alta (spesso nueri piccoli indicano prioritaʼ alta) Preemptive Non-preemptive SJF eʼ uno sceduling a prioritaʼ definita dal tempo previsto di CPU burst. Problemi: Starvation processi con prioritaʼ bassa potrebbero essere dimenticati Soluzione: Aging incrementare la prioritaʼ dei processi in funzione del tempo trascorso in stato di pronto 5.18 Silberschatz, Galvin and Gagne 2005 9

Ogni processo riceve la CPU per un breve intervallo (time quantum), tipicamente 10-100 millisecondi. Passato tale quanto di tempo, il processo ritorno all fine della coda dei processi in stato di pronto. Se n processi in coda di pronto e quanto di tempo = q, ogni processo riceve 1/n di CPU time in blocchi di q unitaʼ per volta. Nessun processo attende piuʼ di (n-1)q unitaʼ. Performance q grande FIFO q piccolo q deve esser maggiore del tempo di context switch, per evitare eccessivo 5.19 Silberschatz, Galvin and Gagne 2005 Process Burst Time P 1 53 P 2 17 P 3 68 P 4 24 Il diagramma di Gantt: 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 Tipicamente, rispetto a SJF, tempo di turnround piuʼ alto, ma migliore tempo di risposta 5.20 Silberschatz, Galvin and Gagne 2005 10

5.21 Silberschatz, Galvin and Gagne 2005 5.22 Silberschatz, Galvin and Gagne 2005 11

La coda dei processi pronti divisa in code separate: foreground (interactive) background (batch) Ogni coda eʼ gestita al proprio algoritmo di scheduling foreground RR background FCFS Scheduling tra le code Scheduling a prioritaʼ fissa; (prima tutti I processi in foreground quindi quelli in background). Rischio di starvation. Time slice ogni coda ha assegnata una percentuale di tempo di CPUin cui puoʼ schedulare I propri processi; es.: 80% to foreground in RR 20% to background in FCFS 5.23 Silberschatz, Galvin and Gagne 2005 5.24 Silberschatz, Galvin and Gagne 2005 12

Processi possono cambiare coda; Possibilitaʼ di implementare tecniche di aging Parametri critici: numero di code Algoritmo di scheduling usato in ciascuna coda Criterio di promozione dei processi tra le code Criterio di declassamento dei processi tra le code Criterio di assegnazione di un processo ad una coda in funzione del servizio richiesto 5.25 Silberschatz, Galvin and Gagne 2005 Tre code: Q 0 RR con q=8 milliseconds Q 1 RR con q=16 milliseconds Q 2 FCFS Scheduling Ogni nuovo job eʼ ammesso alla coda Q 0 servita con FCFS. Quando attivo, il processo ha 8 milliseconds per completare. Se non completa passa alla coda Q 1. In Q 1 i job sono schedulati con criterio FCFS con q=16. Se tale quanto non risulta sufficiente, il processo passa in Q 2. 5.26 Silberschatz, Galvin and Gagne 2005 13

5.27 Silberschatz, Galvin and Gagne 2005 w : tempo speso dal processo in attesa in stato di pronto s : tempo totale necessario al processo per arrivare a terminazione R = (w+s)/s Lo scheduling HRRN sceglie il processo con max R Processi brevi hanno prioritaʼ Implementa una sorta di aging implicito 5.28 Silberschatz, Galvin and Gagne 2005 14

Code Multilivello con retroazione CPU(i) = CPU(i-1)/2 stima del tempo di CPU P(i) = Base + CPU(i)/2 + nice Un valore alto di P(i) indica prioritaʼ bassa Base : serve per definire le code o classi di processi Processi che usano molta CPU vengono penalizzati 5.29 Silberschatz, Galvin and Gagne 2005 CPU scheduling deve bilanciare il carico e le condivisioni tra I vari processori Multiprogrammazione asimmetrica: un solo processore accede alle strutture dati di sistema e gestisce la suddivisione per tutti Multiprogrammazione Simmetrica: ogni processore fa scheduling autonomamente; 5.30 Silberschatz, Galvin and Gagne 2005 15

Multiprocessing Simmetrico: ogni processore si schedula autonomamente; Alternative: Coda comune Code separate Affinitaʼ di processo: meglio evitare che un processo passi da un processore allʼaltro Affinitaʼ forte: no switching Affinitaʼ debole: no switching preferito ma non garantito Bilanciamento del carico (in contrasto con lʼaffinitaʼ di processo) Migrazione mediante push Migrazione mediante pull 5.31 Silberschatz, Galvin and Gagne 2005 Processori multipli sullo stesso chip Ogni core ha il suo insieme di registri Risparmio energetico e piuʼ veloce Multi-threading I Core possono schedulare diversi thread Multi-Thread gestito in hardware Dual core, dual thread = (virtualmente) 4 processori Scheduling parallelo di processi e (hw thread) 5.32 Silberschatz, Galvin and Gagne 2005 16