Lo scheduling. Tipici schedulatori



Documenti analoghi
Scheduling della CPU:

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

Corso di Informatica

Processi e Thread. Scheduling (Schedulazione)

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

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

La schedulazione. E.Mumolo

Scheduling della CPU

SCHEDULATORI DI PROCESSO

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

Lo schedulatore del kernel

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

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

Scheduling. Scheduling 14/12/2003 1/7

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

Sistemi Operativi Kernel

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

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

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

Scheduling della CPU

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

I processi Unix. Entry della tabella dei processi

Algoritmi di scheduling

Architettura degli Elaboratori 2

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

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

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

Sistemi Operativi. Scheduling dei processi

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

Sistemi Operativi. Schedulazione della CPU

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

Scheduling della CPU Simulazione in linguaggio Java

Scheduling. Livelli Algoritmi

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

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

Processo - generalità

Lo scheduler di UNIX (1)

Capitolo 6: CPU scheduling

J. Assfalg Appunti di Sistemi Operativi

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

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

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

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

Scheduling della CPU

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

5. Scheduling della CPU

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Gli stati di un processo

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

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

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

Algoritmi di scheduling - Parte 2

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

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

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

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

Scheduling della CPU (2) CPU bursts (2)

Pronto Esecuzione Attesa Terminazione

Sistemi Real-Time Ing. Rigutini Leonardo

ESERCIZI SULLO SCHEDULING DEI PROCESSI

Principi di Schedulazione in tempo reale

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

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

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

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

Algoritmi di scheduling

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

GESTIONE DEI PROCESSI

Scheduling della CPU

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

1.5: Gestione dei Processi e della CPU

Pianificazione e controllo delle risorse

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

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

SCHEDULING DEI PROCESSI

Scheduling di processi HRT

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

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

Sistemi operativi e reti A.A Lezione 2

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistemi Operativi a.a Esercizi - 2

Sistemi Operativi (modulo di Informatica II) I processi

Il memory manager. Gestione della memoria centrale

Transcript:

Lo scheduling Un processo durante la sua evoluzione è o running o in attesa di un evento. Nel secondo caso trattasi della disponibilità di una risorsa (CPU, I/O, struttura dati, ecc.) di cui il processo attende l allocazione. Se un processo è in attesa di un evento il suo PCB è in una coda da cui sarà rimosso quando l evento si verifica. Queste code sono dette code di scheduling ed è detto schedulatore o scheduler il segmento del S.O. che effettua la selezione del processo in coda a cui allocare la risorsa e algoritmo di scheduling l algoritmo che esso implementa Tipici schedulatori lo schedulatore a breve termine o scheduler della CPU lo schedulatore a medio termine o schedulatore di swap (swapper) lo schedulatore a lungo termine o schedulatore di job lo schedulatore del disco, della stampante, ecc. 1

Obiettivi di un algoritmo di scheduling Un algoritmo di scheduling persegue uno o più obiettivi quali: imparzialità: ad es. garantire ad ogni processo la sua giusta quota di tempo di CPU efficienza: ad es. tenere la CPU impegnata al 100% del tempo tempo di risposta: ad es. minimizzare il tempo di risposta per gli utenti interattivi turnaroud: minimizzare il tempo che gli utenti batch devono attendere per ricevere i risultati dei propri job throughput: massimizzare il numero di job elaborati per ora tempo medio di attesa: minimizzare il tempo medio che un processo deve attendere per accedere ad una risorsa Il prerilascio Gli algoritmi di scheduling si suddividono in: algoritmi a prerilascio (preemptive) algoritmi a completamento (non preemptive) I primi, a differenza dei secondi, ammettono che il S.O. possa forzare il rilascio di una risorsa da parte di un processo e, quindi, attivare lo scheduling per la sua nuova assegnazione. Il rilascio forzato implica necessariamente che sia possibile salvare lo stato di avanzamento del processo sulla risorsa in modo da permettere successivamente la sua ripresa. 2

Scheduling first come - first served (FCFS) tipico algoritmo di scheduling non preemptive ha il vantaggio della semplicità può dar luogo a tempi medi di attesa in coda molto lunghi. consente la gestione efficiente di una risorsa può essere indicato per lo scheduling di processi in attesa di risorse usualmente disponibili non può essere utilizzato come algoritmo di scheduling della CPU in sistemi time sharing nello scheduling della CPU può dar luogo all effetto convoy. Scheduling Roud Robin (RR) Tipico algoritmo di scheduling della CPU per sistemi time_sharing Nasce dalla trasformazione preemptive del FCFS mediante l impiego di un timer Le prestazioni dell algoritmo sono dipendenti dalla durata del periodo del timer che definisce il quanto di tempo di massimo utilizzo della risorsa o time slice Aumentando il time slice tende a trasformarsi in FCFS mentre diminuendolo aumentano i salvataggi e ripristini di stato dei processi e quindi l overhead del S.O.. 3

Scheduling a priorità Si parla di scheduling a priorità quando la scelta del processo tra i processi in attesa è fatta in funzione di una priorità che può essere sia statica che dinamica. Per impedire che processi prioritari facciano uso indefinito di una risorsa (starvation uno scheduling a priorità è sempre preemptive Es. di priorità statica: la priorità di un processo è definita a priori in funzione della sua importanza Es di priorità dinamica: la priorità di un processo dipende dalla frazione di tempo, rapportata alla slice, di ultimo utilizzo della risorsa per cui attende Scheduling a code multiple Algoritmi di scheduling a priorità che utilizzano per i processi tante code di attesa quanti sono i livelli di priorità previsti. Ad ogni coda è associato un quanto di tempo di utilizzo massimo della risorsa gestita decrescente al crescere della priorità La priorità di un processo varia dinamicamente. Tipicamente aumenta se è piccola la frazione di slice spesa per utilizzare in precedenza la risorsa e diminuisce se è stata utilizzata l intera slice. La priorità può anche aumentare con l aumentare dell attesa in coda (aging) 4

Scheduling shortest job (process) first SJF Nasce come algoritmo di scheduling a lungo termine E l algoritmo ottimale per minimizzare il tempo medio di attesa di assegnazione di una risorsa Richiede di conoscere a priori per quanto tempo una risorsa sarà impiegata dal processo una volta che la ha ottenuta. Poiché questo di solito non è noto si basa su una sua stima. Nel caso dello scheduler a lungo termine il tempo è quello stimato dall utente. Nel caso di scheduling di un processo può essere stimato con una media esponenziale che tiene conto dei tempi di utilizzo precedenti Scheduling shortest job (process) first SJF Media esponenziale: τ n+1 = t n α + τ n (1-α) τ n+1, τ n tempi stimati - t n tempo effettivo α coefficiente 0<= α <= 1 Algoritmo pesante ma semplice da implementare per α = 1/2 5

Esempio: lo scheduling della CPU in UNIX Lo scheduling si basa su una struttura di code a più livelli di priorità La priorità di un processo in stato utente varia nel tempo mentre quella in stato kernel viene ridefinita in funzione dell evento quando il processo va in attesa. Il ricalcolo della priorità in stato utente tende a privilegiare i processi che in tempi recenti hanno effettuato CPU burst brevi. Modalità di ricalcolo: Ogni secondo un daemon divide per due il contatore di utlizzi recente della CPU il cui valore definisce la nuova priorità e quindi la nuova posizione dei processi nelle code. Il contatore di utilizzo viene incrementato di 1 ogni 20 msec quando il processo è running. Scheduling garantito Divide il tempo di utilizzo di una risorsa tra gli n processi presenti La priorità di un processo in attesa dipende dall utilizzo complessivo precedente della risorse rapportato a 1/n Scheduling a lotteria Ad un processo sono assegnati uno o più ticket. Lo scheduler estrae un ticket per selezionare il processo in attesa 6

Lo scheduling nei sistemi Real Time E essenzialmente lo scheduling della CPU. Lo scheduler deve garantire che al manifestarsi di un evento un processo termini entro un tempo massimo predefinito. L evento può essere sia periodico che aperiodico Affinché un sistema possa gestire eventi multipli periodici deve essere schedulabile ossia: m Σ C i /P i <= 1 i=1 dove m sono gli eventi, P i il periodo dell evento i-esimo e C i i secondi di CPU richiesti per gestirlo Algoritmi di scheduling real time per eventi periodici Algoritmo rate monotonic Ciascun processo ha una priorità pari alla frequenza di attivazione e lo scheduler assegna sempre la CPU al più prioritario applicando il prerilascio se necessario. Algoritmo earliest deadline first Il scheduler sceglie il processo la cui successiva attivazione (deadline) è la più prossima nel tempo. Algoritmo laxity Lo scheduler sceglie il processo la cui elaborazione termina più vicina al suo tempo limite massimo per terminare. 7