SCHEDULATORI DI PROCESSO



Похожие документы
Lo scheduling. Tipici schedulatori

Processi e Thread. Scheduling (Schedulazione)

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

Corso di Informatica

Lo schedulatore del kernel

Sistemi Operativi Kernel

Scheduling della CPU:

Sistemi Operativi SCHEDULING DELLA CPU

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

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

Scheduling. Scheduling 14/12/2003 1/7

Sistemi Operativi. Scheduling dei processi

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

Scheduling della CPU

Algoritmi di scheduling

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

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

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

J. Assfalg Appunti di Sistemi Operativi

La schedulazione. E.Mumolo

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

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

Architettura degli Elaboratori 2

Scheduling della CPU Simulazione in linguaggio Java

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

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

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

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

ESERCIZI SULLO SCHEDULING DEI PROCESSI

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

Lo scheduler di UNIX (1)

Scheduling della CPU

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

Algoritmi di scheduling

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

Pronto Esecuzione Attesa Terminazione

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

Sistema operativo: Gestione dei processi

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

Processo - generalità

La Gestione delle risorse Renato Agati

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

Esercitazione E1 Scheduling, deadlock, monitor

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

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

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

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

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

RETI DI TELECOMUNICAZIONE

Sistemi Operativi. Schedulazione della CPU

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

J. Assfalg Appunti di Sistemi Operativi

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

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

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

Scheduling. Livelli Algoritmi

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 del processore e dei processi

La valorizzazione dei movimenti di magazzino

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

5. Scheduling della CPU

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

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

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

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

Cosa è un foglio elettronico

Sistemi Operativi (modulo di Informatica II) I processi

Sistemi operativi. Esempi di sistemi operativi

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

RINTRACCIABILITA' MATERIALI

GESTIONE DEI PROCESSI

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

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

Capitolo 6: CPU scheduling

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

MODELLISTICA DI IMPIANTI E SISTEMI 2

Java Virtual Machine

Il memory manager. Gestione della memoria centrale

Corso di Sistemi di Elaborazione delle informazioni

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

SCHEDULING DEI PROCESSI

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

Calcolatori: Algebra Booleana e Reti Logiche

Guida all uso del Portale Web

Транскрипт:

Indice 5 SCHEDULATORI DI PROCESSO...1 5.1 Schedulatore Round Robin...1 5.2 Schedulatore a priorità...2 5.2.1 Schedulatore a code multiple...3 5.3 Schedulatore Shortest Job First...3 i

5 SCHEDULATORI DI PROCESSO Nei sistemi operativi multi tasking e multi utente occorre ottimizzare l'uso della CPU per i molti processi che sono gestiti dal Sistema Operativo, come i processi del kernel e quelli utente. La parte del sistema operativo che presiede alla decisione di quale processo debba ottenere la CPU prende il nome di schedulatore e il criterio mediante il quale esso opera prende il nome di algoritmo di schedulazione. Gli algoritmi di schedulazione vengono implementati in base ad opportuni criteri quali: 1. Equità: assicurare che ogni processo possa utilizzare prima o poi la CPU. 2. Efficienza: mantenere utilizzata la CPU il 100 % del tempo. 3. Rapidità: minimizzare il tempo di risposta per gli utenti interattivi. 4. Attesa: minimizzare il tempo di attesa per i processi batch. 5. Prestazione: massimizzare il numero di lavori processati nel tempo. Gli schedulatori sono suddivisi in due categorie in base alla strategia adottata per la gestione dei processi che sono logicamente eseguibili (processi nello stato di pronto, possiedono tutte le risorse meno la CPU). 1. Schedulatori a prelazione (preemptive scheduler): basati sul principio che se un processo non dispone di risorse di I/O esso viene sospeso e quindi lascia la CPU a disposizione di altri processi. 2. Schedulatori senza prelazione (non preemptive scheduler) : basati sul principio di esecuzione di un processo fino al suo completamento. Prendono anche il nome di schedulatori di lavoro, tipicamente utilizzati nella gestione di processi batch (a lotti). 5.1 Schedulatore Round Robin Il più semplice metodo di schedulazione è chiamato convenzionalmente Round Robin (carosello), è basato sul criterio che tutti i processi siano paritari. Ad ogni processo viene assegnato un quanto di tempo Tq (quantum) durante il quale esso detiene in modo esclusivo la CPU, alla fine di tale intervallo la CPU viene prelazionata (assegnata) a un altro processo. Il processo può utilizzare solo una parte di tale intervallo nel caso in cui esso termina oppure quando viene bloccato su una richiesta di utilizzo di risorse di I/O. Tra l'istante in cui un processo rilascia la CPU e l'istante in cui un'altro la preleva intercorre un tempo, chiamato tempo di commutazione di contesto Tc, durante il quale avviene il salvataggio dello stato del processo corrente e il ripristino dello stato del processo entrante. Il rapporto tra il tempo di commutazione di contesto e il quanto è un indice di prestazione dello schedulatore. La struttura dati con la quale viene realizzato l'algoritmo di schedulazione è una coda (Fig. 1) che contiene gli identificatori di processo in cui il processo entrante viene estratto sempre dalla testa della coda e i processi che rilasciano la CPU per esaurimento del quanto o per risveglio dallo stato di bloccato vengono inseriti in coda. Fig. 5.1 Schedulatore Round Robin. (a) Lista dei processi nello stato di pronto. (b) Lista dei processi dopo che il processo 2 rilascia la CPU. 1

Il parametro che misura l'efficienza dello schedulatore è dato dal rapporto tra il tempo di commutazione di contesto Tc e il quanto Tq in percentuale : Mentre per quanto riguarda la rapidità di risposta essa viene misurata dal tempo medio di attesa per un processo nella coda (ipotizzando che il tempo di commutazione di contesto sia trascurabile rispetto al quanto). Il tempo medio di attesa Ta viene calcolato in base al numero di processi presenti che si suppone siano N. Ogni processo attende quelli che lo precedono per cui : ricordando che la somma dei primi N 1 numeri interi è data dalla seguente formula : si ottiene infine : quindi più piccolo è il valore del tempo medio di attesa Ta più rapido è lo schedulatore. 5.2 Schedulatore a priorità Diversamente dallo schedulatore Round Robin in cui tutti i processi sono trattati nello stesso modo, gli schedulatori a priorità assegnano ad ogni processo una priorità di esecuzione in modo che processi critici (es. processi del kernel) possano avanzare più rapidamente di altri (es. processi utente). La priorità può essere assegnata dallo schedulatore secondo due modalità : 1. Priorità statica: assegnata ai processi in base ai privilegi dell'utente al momento della creazione della sua login (logical input) oppure in base alla natura real time del processo. 2. Priorità dinamica: assegnata ai processi dal sistema operativo in base a criteri di ottimizzazione della rapidità di esecuzione. La priorità dinamica viene usata per prevenire il monopolio della CPU da parte dei processi ad alta priorità che impedirebbero l'avanzamento di quelli a bassa. La priorità di tutti i processi viene modificata dinamicamente dallo schedulatore dopo che ha utilizzato la CPU; se Tq è il tempo massimo di utilizzo e Te il tempo effettivamente utilizzato che può essere inferiore a Tq qualora il processo venga bloccato per la richiesta di risorse di I/O : si ha sempre che: 2

il rapporto f = Te /Tq detto frazione di utilizzo della CPU viene presa come parametro per il calcolo della successiva priorità secondo la formula: 5.2.1 per cui i processi che utilizzano interamente la CPU durante il quanto di tempo Tq avranno priorità P = 1 mentre quelli che ne utilizzano meno (bloccati su risorse di I/O) avranno una priorità maggiore di 1. 5.2.1 Schedulatore a code multiple L'implementazione dello schedulatore a priorità prevede l'uso di code multiple in cui accodare processi che hanno la stessa priorità, come riportato in figura 5.2, esso funziona secondo il seguente regole: A. Un processo, quando viene creato gli viene assegnata una priorità P = 1 ed inserito nella coda corrispondente (quella a più bassa priorità). B. Quando avviene la commutazione di contesto (per aver esaurito il quanto o per bloccaggio su una risorsa di I/O), al processo corrente gli viene ricalcolata la priorità secondo la formula 5.2.1 e reinserito nella coda identificata dal nuovo livello di priorità (immediatamente quando ha esaurito il quanto o successivamente quando esso viene risvegliato dallo stato di bloccato). C. Il processo entrante viene prelevato dalla coda a priorità più alta, nell'ipotesi che essa non sia vuota. Fig. 5.2 Schedulatore a priorità dinamica a code multiple. 5.3 Schedulatore Shortest Job First Lo schedulatore shortest shob to first (il più breve per primo) è utilizzato nel caso che si conosca in anticipo il tempo di esecuzione dei processi e fa parte degli schedulatori senza prelazione (non preemptive scheduler) ed è basato sul criterio di ottimizzazione del tempo medio di attesa Ta. Ogni processo da eseguire viene inserito in una coda e se la coda viene ordinata in base ai tempi di esecuzione, noti a priori, in ordine crescente i tempo medio di attesa ha il valore minimo. Nell'esempio di fig. 5.3 sono stati inseriti in una coda non ordinata 5 processi la cui durata è 4,2,7,21,6 minuti; il tempo medio viene ottenuto calcolando i tempo di attesa di ogni processo rispetto a quelli che lo precedono e calcolata la media (caso A), si può osservare che nel caso la coda venga ordinata in ordine crescente (caso B) il tempo medio è sempre inferiore. 3

Fig.5.3 Calcolo dei tempi medi di attesa. A) coda non ordinata. B) coda ordinata in ordine crescente. 4