Corso di Informatica



Похожие документы
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 della CPU:

Lo scheduling. Tipici schedulatori

Processi e Thread. Scheduling (Schedulazione)

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

Scheduling. Scheduling 14/12/2003 1/7

Scheduling della CPU

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

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler 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.

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

Lo schedulatore del kernel

La schedulazione. E.Mumolo

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

SCHEDULATORI DI PROCESSO

Sistemi Operativi Kernel

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

Architettura degli Elaboratori 2

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

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

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

Sistemi Operativi. Scheduling dei processi

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

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

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

Algoritmi di scheduling

Lo scheduler di UNIX (1)

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

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

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

Scheduling della CPU Simulazione in linguaggio Java

Scheduling. Livelli Algoritmi

Il Sistema Operativo

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

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

Sistemi Operativi. Schedulazione della CPU

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

Processo - generalità

Scheduling della CPU

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

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

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

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

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

5. Scheduling della CPU

Pronto Esecuzione Attesa Terminazione

Scheduling della CPU

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

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

Capitolo 6: CPU scheduling

Sistema operativo: Gestione dei processi

J. Assfalg Appunti di Sistemi Operativi

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

Scheduling della CPU (2) CPU bursts (2)

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

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

Gli stati di un processo

Esercitazione E1 Scheduling, deadlock, monitor

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

Corso di Informatica

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

Sistemi Operativi (modulo di Informatica II) I processi

J. Assfalg Appunti di Sistemi Operativi

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

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

Il Sistema Operativo (1)

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

GESTIONE DEI PROCESSI

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

ESERCIZI SULLO SCHEDULING DEI PROCESSI

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

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

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

40. Le transizioni fra stati Lo schema di transizione fra stati può essere rappresentato graficamente nel modo seguente :

Il sistema monetario

Gestione del processore e dei processi

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

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

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

Sistemi operativi e reti A.A Lezione 2

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

Corso di Informatica

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Corso Sistemi Informativi Aziendali, Tecnologie dell Informazione applicate ai processi aziendali. Sistemi informativi aziendali

Транскрипт:

Corso di Informatica Modulo T3 3-Schedulazione 1 Prerequisiti Concetto di media Concetto di varianza 2 1

Introduzione Come sappiamo, l assegnazione della CPU ai processi viene gestita dal nucleo, attraverso un meccanismo detto schedulazione. Si tratta di algoritmi speficatamente studiati per massimizzare l efficienza del sistema. Quali requisiti deve rispettare un algoritmo di schedulazione? Come può funzionare uno schedulatore? Come gestisce il nucleo interi lotti di lavori? A queste domande diamo una risposta in questa Unità. 3 Obiettivi della schedulazione La schedulazione è un algoritmo del nucleo che ha il compito di ordinare le richieste da parte dei processi (di avanzare e di ottenere risorse). Per fare ciò deve lo schedulatore tenere conto di due obiettivi: tempi di esecuzione utilizzo delle risorse 4 2

Obiettivi della schedulazione - tempi di esecuzione Per questo parametro, possiamo valutare: tempo di completamento (turnaround time): indica l intervallo di tempo compreso fra l inizio del processo e il suo completamento; tempo di risposta: indica intervallo di tempo tra l invio di una richiesta e la prima risposta prodotta; tempo di attesa: indica la somma degli intervallo di tempo trascorsi in attesa nella ready list; tasso di servizio, indica il numero medio di processi serviti nell unità di tempo. 5 Obiettivi della schedulazione - tempi di esecuzione Per cui, da un lato occorre: garantire l avanzamento di tutti i processi, (condizione detta fairness) senza tempi di attesa eccessivi o indefiniti; dall altro occorre: minimizzare il tempo di completamento minimizzare i tempi di attesa: fare in modo che sia massimo il numero di utenti interattivi che nell esecuzione dei comandi abbiano risposte in tempi accettabili; minimizzare la varianza dei tempi di attesa: far sì che il tempo di attesa medio degli utenti nell eseguire i comandi sia prevedibile; massimizzare il tasso di servizio dei processi (throughput); 6 3

Obiettivi della schedulazione - utilizzo delle risorse Il requisito di utilizzo delle risorse richiede: utilizzo teorico CPU al 100%; garanzia di assegnazione (assunzione di progresso finito). In pratica, occorre: stabilire priorità tra le risorse, ossia un ordine di importanza di queste in base al loro pregio (CPU, memoria centrale e memoria secondaria); favorire un utilizzo uniforme, evitando il sovraccarico di alcune risorse a vantaggio di altre in certi intervalli di tempo; minimizzare il costo della schedulazione, ossia evitare algoritmi di scheduling complessi al punto da assorbire eccessivamente le risorse, come tempo o quantità (scheduling overhead). 7 La schedulazione dei processi avviene di solitto su un modello gerarchico a due livelli: basso livello (breve termine ) alto livello (lungo termine) Il livello indica il tipo di risorsa gestita, per cui il primo tipo di schedulazione riguarda i processori, quello di alto livello riguarda i job. Possiamo anche considerare un terzo livello intermedio che riguarda la memoria, ma per semplicità ci riferiamo solo ai primi due. 8 4

- a basso livello Come sappiamo, viene detto anche schedulatore a breve termine (Short Term Scheduler o Dispatcher) e serve a gestire in modo ottimale i processori. Dato un processo P in esecuzione, questo schedulatore agisce nelle seguenti transizioni: esecuzione blocco (P prerilascia la CPU poichè richiede I/O) rilascio volontario della CPU da parte di P (P termina o abortisce) esecuzione pronto (P prerilascia la CPU poichè termina il quanto) esecuzione di un processo P in luogo di P (P priorità maggiore di P) 9 - a basso livello L algoritmo di scheduling viene eseguito con un frequenza molto alta (anche migliaia di volte al secondo) pertanto deve essere: molto efficiente svolto interamente dal nucleo Occorre tenere presente che il tempo di assegnazione della CPU: non deve essere troppo breve, per evitare troppi context switch con conseguente riduzione di efficienza della CPU; non deve essere troppo lungo, per non appesantire i tempi di risposta, specialmente con processi interattivi. 10 5

- a basso livello (round robin) Illustriamo, in ordine evolutivo, le tre tecniche utilizzate per lo schedulatore a basso livello nel caso di sistemi interattivi: round robin foreground-background multilevel feedback 11 - a basso livello (round robin) La tecnica round robin utilizza il prerilascio, tipica del time-sharing. Ad ogni processo è assegnato a turno un quanto di tempo (time slice). Se un processo presente nella ready list (che è gestita con disciplina FIFO, quindi come una coda) richiede un operazione di I/O di durata superiore al quanto, esso abbandona la ready list. 12 6

- a basso livello (round robin) L avvicendamento dei vari processi alla coda può avvenire con provenienze diverse, come mostrato dallo schema sottostante. 13 - a basso livello (foreground-background) La tecnica foreground-background è un miglioramento della tecnica precedente e consiste nel far sì che i processi che richiedono I/O siano favoriti rispetto a quelli che richiedono computazione. Ciò è realizzato ripartendo i due tipi di processi in due code con differente priorità: coda background, per priorità più basse coda foreground, per priorità più alte Per evitare che processi con una priorità alta vengano eseguiti indefinitamente, lo scheduler decrementa la priorità del processo in esecuzione ad ogni interrupt del clock. 14 7

- a basso livello (multilevel feedback) La tecnicamultilevel feedback, considerata la migliore, consiste nel decomporre lo stato di pronto in tante code (classi di priorità) quante sono le priorità dei processi presenti. Il nucleo selezionerà il processo da porre in esecuzione, partendo dalla coda con priorità massima. 15 - a basso livello (multilevel feedback) La coda Q1 è quella a priorità massima. Se un processo utilizza esclusivamente il quanto T1, allo scadere di questo terminerà, altrimenti verrà inserito in Q2 e riceverà, al momento opportuno, un quanto T2 (T2>T1). Se esaurisce anche il quanto T2, passerà in Q3 e riceverà un quanto T3 e così via. In molti casi si ha T i+1 =2*T i, per agevolare i processi più pesanti. Il quanto T i viene assegnato comunque in time sharing, scomponendolo in n i quanti 16 8

- a basso livello (multilevel feedback) Ad esempio. Windows 2000 adotta una strategia di scheduling a code multiple con priorità, in modo da agevolare, da un lato, i processi che richiedono I/O rispetto a quelli che richiedono la sola computazione, ma dall altro anche cercando di favorire l interattività. Ad esempio, supponiamo: di avere due processi P1 e P2 con la stessa priorità; che T sia il quanto di tempo; che P1 sia in esecuzione; se P2 termina un operazione di I/O, Windows agisce in modo che P1 prerilasci il processore, in favore di P2, favorendo quindi un buon livello di interattività. 17 - ad alto livello Nel caso di sistemi a lotti (batch) la tecnica utilizzata consiste nel multiprogrammare gruppi di processi su processori diversi. Il sistema valuta con cadenza costante le percentuali di utilizzo dei processori da parte dei processi e: seleziona quelli che usano maggiormente tempo di CPU, rispetto a quelli che usano maggiormente processori di I/O; diminuisce la priorità dei processi del primo tipo e aumenta quella dei processi del secondo tipo, in modo che essi risultino favoriti a beneficio della produttività del sistema. 18 9

- ad alto livello Lo schedulatore ad alto livello, detto anche schedulatore a lungo termine (Long Term Scheduler o Job Scheduler) è tipico dei sistemi a lotti in cui occorre gestire i vari job presenti. Ovviamente, affinchè lo scheduler possa operare, i vari job devono prevedere: le risorse necessarie, indicate nelle apposite schede iniziali del job; le operazioni richieste sulle risorse (montare volumi a disco o nastro, caricare carta speciale sulla stampante, ecc) che possono coinvolgere l intervento dell operatore e che comportano quindi tempi lunghi (dell ordine dei minuti). 19 - ad alto livello Le operazioni sui vari job possono coivolgere: uso di periferiche: in questo caso l operatore assegna al job le risorse richieste agendo con comandi di console; uso di risorse privilegiate (memoria, spazio su disco): in questo caso l operazione è svolta da processi di sistema. Anche in questo tipo di schedulazione il nucleo è responsabile dell assegnazione delle risorse ai vari job e deve essere in grado di attuare il prerilascio delle risorse da parte di un job nel caso se ne presenti uno con priorità maggiore, curando il salvataggio dello stato del job precedente. 20 10

Altre tecniche di schedulazione - FCFS Nella tecnica FCFS (First Came First Served), i processi vengono gestiti con una coda, in base all ordine di arrivo. Esempio: P1 30 msec P2 48 msec P3 40 msec Si può calcolare il tempo medio di attesa con: T ma = (0 + 30 + 48) / 3 = 26 msec 21 Altre tecniche di schedulazione - SJF La tecnica SJF (Shortest Job First) dà la precedenza ai processi più brevi (in genere usato per lo scheduling ad alto livello). Esempio: P1 30 msec P2 40 msec P3 48 msec Si può calcolare il tempo medio di attesa con: T m = (0 + 30 + 70) / 3 = 33.3 msec 22 11

Argomenti Obiettivi della schedulazione Tempi di esecuzione a basso livello (round robin) (foreground-background) (multilevel feedback) ad alto livello Altre tecniche di schedulazione FCFS SJF 23 Altre fonti di informazione A. Lorenzi, D.Rossi I fondamenti della programmazione-atlas 24 12