Parte II Processi e Thread

Documenti analoghi
Processi. Creazione di processi. Processi. Parte II. Processi e Thread

Obiettivo della multiprogrammazione: massimizzazione dell utilizzo della 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.

Sistemi Operativi. Lezione 3 Processi e Thread

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

Scheduling della CPU. Sistemi Operativi L-A AA

Scheduling della CPU

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

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

Sistemi Operativi 2003/2004. Lo scheduling dei processi

Processi e Thread. Meccanismi di IPC (1)

Sistemi Operativi 1. Lezione IV: Processi e thread. Mattia Monga. 11 marzo 2008

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

coda arrivo burst P 1 A 0 20ms P 2 C 10 25ms P 3 B 15 20ms P 4 A 25 20ms

Sistemi Operativi 1. Mattia Monga. 11 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

I THREAD O PROCESSI LEGGERI

Sistemi Operativi. Lezione 5 Lo scheduling

Sistemi Operativi: Concetti Introduttivi

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)

Il Sistema Operativo Ripasso

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

Corso di Informatica

Sistemi Operativi Modulo I. Lo Scheduling

Concetto di Processo Scheduling dei Processi Operazioni sui Processi Processi cooperanti Comunicazione tra processi

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

il Nucleo e la gestione dei processi

Scheduling della CPU. Capitolo 6 - Silberschatz

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

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

Sistemi Operativi. La gestione delle risorse

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

Corso di Informatica

Il supporto al sistema operativo

Sistemi operativi. Lez. 9: primitive per la concorrenza i semafori

Sistemi Operativi (modulo di Informatica II) I processi

Sistemi Operativi. Processi e Thread

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

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

Bootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:

Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per:

Cenni di sistemi operativi

Il Concetto di Processo

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

Lezione 3 Sistemi Operativi e misure di performance. Parleremo di

2.2 Scheduling in Linux

I Processi. Il Concetto di Processo

Prof. G. Ascia. Sistema Operativo

5 Thread. 5 Thread. 5 Thread. Ad un generico processo, sono associati, in maniera univoca, i seguenti dati e le seguenti informazioni:

Sistemi in tempo reale: applicazioni alla robotica. Sistemi in tempo reale: applicazioni alla robotica p.1/15

Il Concetto di Processo

Le risorse. Se il processo può essere forzato a rilasciare una risorsa, la risorsa è chiamata prerilasciabile.

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

Gestione dei Processi

Il Concetto di Processo

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

Lab 1: Java Multithreading

Introduzione al Multithreading

Scheduling della CPU

Processi. Descrittore di Processo (PCB) Context Switch Primitive per la creazione e terminazione dei processi. Il descrittore di processo (PCB)

Processi e thread. Concetto di processo

Processi. Capitolo 3 -- Silberschatz

IL SISTEMA OPERATIVO

Processi e Thread. Concetto di processo

Scheduling della CPU:

Sistemi Operativi T. Processi e Thread

Sistemi Operativi T Processi e Thread

Il Sistema Operativo

I thread. Non bastavano i processi?

ESERCITAZIONE 6 - Soluzioni. Processi e thread

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano

Richiami sui Concetti Fondamentali dei Processi

TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati

Consentire a utenti/processi diversi la condivisione delle risorse

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

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

Sistemi Operativi 9 luglio 2013 Compito

Sistemi Operativi SCHEDULING DELLA CPU

I sistemi operativi (prima parte) Agostino Lorenzi I sistemi operativi - Atlas

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

Sommario. Processi e Programmi. Che cosa e un Processo? Lezione 5 Processi e Threads

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

1. Le componenti principali di un sistema operativo sono: interfaccia con l utente (interprete dei comandi e/o interfaccia

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

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

Il sistema operativo

Scheduling della CPU

Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java

I Sistemi Operativi. Prof.ssa Antonella Serra

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

Sistemi Operativi. Scheduling dei processi

Gestione del processore. Il modello a thread

Corso di Linguaggi di Programmazione

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

Transcript:

Parte II Processi e Thread Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 1

Processi Concetto fondamentale per lo svluppo dei sistemi operativi, e di applicazioni complesse Permette di decomporre l applicazione in un insieme di processi sequenziali I processi vengono elaborati a rotazione sulla CPU Su di un sistema uniprocessore l elaborazione in realtà non è parallela ma pseudoparallela Il programmatore può concentrarsi sul singolo processo come se avesse a disposizione l intero sistema Solo le interazioni esplicite con gli altri processi devono essere considerate Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 2

Processi Solo un programma è attivo in ogni istante La multiprogrammazione virtualizza la CPU È come se ogni processo avesse una CPU per se Il SO mantiene sotto controllo lo stato dei processi Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 3

Creazione di processi I processi vengono creati per svolgere precisi compiti All atto della creazione il SO li prende in carico e ne fa avanzare l esecuzione, secondo precise politiche Processi di sistema e processi utente Situazioni in cui vengono creati processi Al bootstrap del SO Viene avviato un primo processo (iniziatore) Questo crea altri processi per i servizi del SO Alcuni processi accettano richieste dell utente Per servire una richiesta dell utente Per avviare l esecuzione di un job batch Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 4

Terminazione di processi I processi possono terminare per cause diverse e con modalità diverse Questo può avvenire con o senza il loro consenso Tipiche situazioni di terminazione Uscita normale (volontaria) Uscita per errore (volontaria) Fatal error (involontaria) Ucciso da un altro processo (involontaria) Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 5

Gerarchie di processi Un processo può creare un altro processo Processo genitore (parent process) Processo figlio (child process) I figli possono creare altri figli: crescete e riproducetevi Nell ambito della gerarchia i padri (e gli avi) conservano particolari diritti sui figli, per esempio quello di ucciderli UNIX ha un concetto chiaro e netto di gerarchia, e organizza i processi in process group In Windows il concetto è più sfumato: i padri possono in qualche modo cedere i loro diritti sui figli Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 6

Stati fondamentali di un processo Un processo si trova a rotazione in uno dei tre stati Running: è in esecuzione sulla CPU Ready: pronto ad eseguire appena gli viene concessa la CPU Blocked: in attesa di un evento per riprendere l esecuzione Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 7

Cambiamenti di stato I cambiamenti di stato sono indotti: Tra ready e running (e vice-versa): dallo scheduler, il processo del SO che assegna la CPU Tra running e blocked: dal verificarsi di un evento che causa il blocco, es. richiesta di I/O, attesa di segnale Tra blocked e ready: dal verificarsi dell evento di cui il processo è in attesa, es. fine I/O, ricezione di segnale In tutti i casi il cambiamento viene indotto da una trap o da una interruzione Le trap e le interruzioni vengono gestite dal (micro)kernel Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 8

Stati dei processi Oltre agli stati fondamentali esistono molti altri stati Definizioni sofisticate e dipendenti dal SO Tipicamente lo stato contiene informazioni su Comportamento del processo in tempi recenti Risorse possedute dal processo, e.g. memoria Priorità Alcuni esempi Sleeping Hybernate Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 9

Implementazione dei processi Il sistema operativo mantiene per ciascun processo tutte le informazioni necessarie a gestirlo Identificazione e gerarchia Risorse assegnate Stato del processo Stato della CPU etc. Le informazioni sono riunite in una apposita struttura, la Process Table La struttura differisce nei dettagli a seconda del SO Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 10

La Process Table Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 11

Thread In un processo è possibile distinguere due componenti Le risorse allocate al processo: files aperti, processi figli, etc. (vedi Process Table) La sua esecuzione: e tutti i dettagli relativi, stato della CPU, stack etc. È pensabile e vantaggioso avere più esecuzioni per lo stesso processo, che ne condividono le risorse Ciascuna di queste è denominata thread I moderni sistemi operativi supportano i thread Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 12

Thread e processi (a) Tre processi ciascuno con un unico thread (b) Un unico processo con tre thread Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 13

Thread e processi (2) Alcuni item sono condivisi da tutti i thread di uno stesso processo Altri sono replicati per ogni thread Il SO mantiene parte dell informazione a livello di thread Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 14

Gestione dello stack Ogni thread ha il proprio stack Tutte le variabili locali si mantengono distinte Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 15

Benefici del multithreading Creazione e terminazione di un thread molto più leggere Modularità e flessibilità delle applicazioni Implementazione di server concorrenti: creazione dinamica di un thread per ogni nuova richiesta di servizio gestione implicita della concorrenza Parallelismo di esecuzione: uno stesso processo può essere elaborato in parallelo da più processori Aumento del livello di multiprogrammazione: migliore utilizzazione della/e CPU Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 16

Esempio: Web server Il dispatcher riceve le richieste e le alloca Ogni richiesta viene assegnata ad uno worker Gli worker se non occupati dormono Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 17

Web server: schema del codice (a) Schema del codice del dispatcher (b) Schema del codice dello worker Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 18

Web server con thread: vantaggi Aumenta il parallelismo all applicazione Possibile servire più richieste contemporaneamente Quando alcuni thread sono bloccate, altri possono essere ready ed andare in esecuzione sulla CPU Semplifica lo sviluppo dell applicazione Tutti i dettagli dell elaborazione concorrente di più richieste sono gestite implicitamente Il programmatore non deve tener conto di questi dettagli Rende l esecuzione complessiva più leggera Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 19

Esempio: word processor Possibile avere un thread per ciascun documento aperto contemporaneamente Fanno tutti la stessa cosa su documenti diversi Possibile avere anche più thread per gestire un solo documento Gestione interfaccia Gestione dei backup periodici Riformattazione del documento ES Con tre documenti aperti su Power Point, posso controllare sul Task Manager, e vedo che ho 8 thread Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 20

Esempio: Power Point Erano aperti tre documenti Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 21

Dati processo Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 22

Dati thread Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 23

Comunicazione tra processi Processi e thread sono spesso cooperanti nell ambito di una stessa applicazione o di uno stesso sistema Per cooperare necessitano di Scambiarsi informazioni (dati, messaggi) Sincronizzarsi, per garantire la correttezza della esecuzione L assenza di sincronizzazione può condurre ad una esecuzione i cui risultati dipendono da circostanze esterne (es. ordine di scheduling) Sincronizzazione necessarie in presenza di condizioni di corsa (race conditions) Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 24

Condizioni di corsa: esempio Due processi cercano di accedere contemporaneamente alla stessa slot nella directory di spool Se lo scheduler ci mette lo zampino, possono finire per assegnarsi la stessa slot Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 25

Sezione critica Per evitare le condizioni di corsa occorre individuare una sezione critica nel codice di ciascuno dei due processi La sezione critica racchiude un insieme di operazioni la cui esecuzione non può essere interrotta Le condizioni di corsa si possono verificare se entrambi i processi si trovano nella sezione critica Occorre imporre la mutua esclusione nell accesso alla sezione critica Se un processo entra, l altro deve aspettare che esca Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 26

Condizioni per la mutua esclusione Per assicurare una soluzione corretta ed efficiente alla mutua esclusione occorre garantire le seguenti condizioni Mai due processi devono poter essere nella loro sezione critica contemporaneamente Deve funzionare indipendentemente dal numero e dalla velocità delle CPU Nessun processo al di fuori della sua sezione critica deve poter bloccare un altro processo Nessun processo deve poter aspettare indefinitamente per entrare nella sua sezione critica Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 27

Sezione critica e mutua esclusione Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 28

Corse critiche e stallo La mutua esclusione può solo essere garantita tramite meccanismi e primitive offerte dal SO Le soluzioni proposte devono aggirare due problemi tra loro contrastanti I processi devono poter essere bloccati per evitare che entrino in più di uno nella sezione critica L esistenza di situazioni di blocco anche temporaneo può causare situazioni di stallo e di attesa indefinita Purtroppo tutte le soluzioni proposte sono relativamente complesse, ed implicano un dispendio di risorse Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 29

Atomicità delle operazioni Un processo prima di entrare nella sezione critica deve effettuare due operazioni: 1. Controllare se la sezione è libera 2. Entrare nella sezione, se essa è libera Alle due operazioni corrispondono almeno due istruzioni macchina, in genere molte di più L elaborazione di un processo può essere interrotta dopo qualsiasi istruzione macchina L intera azione non è atomica cioè indivisibile, e questo può provocare situazioni scorrette Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 30

Corsa critica: esempio I due Processi A e B condividono una sezione critica e si alternano sulla sezione critica A controlla se la sezione critica è libera La sezione critica è libera e A memorizza l informazione L elaborazione di A viene interrotta Viene ripresa l elaborazione di B B controlla se la sezione critica è libera La sezione critica è libera e B memorizza l informazione B entra nella sezione critica B continua a lavorare nella sezione critica L elaborazione di B viene interrotta Viene ripresa l elaborazione di A A entra nella sezione critica (aveva già controllato) Sia A che B si trovano nella sezione critica Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 31

Soluzione ingenua Proteggere la sezione critica con un flag LOCK LOCK=0: sezione critica libera LOCK=1: sezione critica occupata Un processo prima di entrare 1. Controlla LOCK 2. Se LOCK=0 pone LOCK=1 3. Entra Siccome i passi 1. e 2. richiedono istruzioni distinte, la corsa critica si riproduce nell accesso a LOCK La soluzione non funziona Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 32

Alternanza stretta (busy waiting) Corretta ma estremamente inefficiente Un processo può attendere anche se l altro non è nella sezione critica Viola una delle condizioni Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 33

TSL (Test Set an Lock) Soluzione che richiede l aggiunta di una istruzione macchina In una sola azione ininterrompibile la TSL op1,op2 Copia il valore dell operando op2 in op1 Forza il valore di op2 ad 1 Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 34

Esempio: produttore - consumatore Buffer Produttore Consumatore Lavora se trova uno slot libero N slot Lavora se trova uno slot pieno I due processi condividono il buffer Il produttore scrive nel buffer se trova almeno una slot libera; se no attende Il consumatore legge dal buffer se trova almeno una slot piena; se no attende Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 35

Produttore - consumatore: problemi Una soluzione al problema deve garantire che 1. I due processi non manipolino contemporaneamente il buffer (sezione critica) 2. Il produttore vada in condizione di blocco quando il buffer è pieno 3. Il consumatore vada in condizione di blocco quando il buffer è vuoto 4. Il produttore venga risvegliato se è in blocco e si libera una slot 5. Il consumatore venga risvegliato se è in blocco e viene riempita una slot Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 36

Semafori Variabili intere di sistema non negative modificabili solo tramite due primitive atomiche (ininterrompibili): DOWN(S) S > 0 : S S - 1 S = 0 : il processo attende su S UP(S) S > 0 : S S + 1 S = 0 : S S + 1; risveglia i processi in attesa su S L esecuzione delle primitive UP e DOWN è garantita dal SO Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 37

Semafori binari Sono un caso particolare: S {0,1} Vengono usati per controllare l accesso ad una sezione critica: Quando la sezione critica è libera: S=1 Per entrare un processo fa DOWN(S), quindi S diventa 0 Se un processo trova S=0 si mette in attesa Quando il processo esce dalla sezione critica, fa UP(S) e sveglia un eventuale processo in attesa Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 38

Produttore-Consumatore con semafori Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 39

Scheduling L assegnazione della CPU ai processi (thread) che sono nello stato ready è fatta dal processo scheduler Vengono utilizzati particolari discipline di scheduling, basati su criteri diversi, e spesso contrastanti massimizzare l utilizzazione della CPU minimizzare il tempo di esecuzione di un processo/thread minimizzare il tempo di risposta, attesa prima che un processo produca un output Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 40

Richieste di CPU (burst) Molto variabili e dipendono dalla natura del processo (a) CPU bound (b) I/O bound Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 41

Obiettivi dello scheduling L assegnazione della CPU ai processi (thread) che sono nello stato ready è fatta dal processo scheduler Vengono utilizzati particolari discipline di scheduling, basati su criteri diversi, e spesso contrastanti massimizzare l utilizzazione della CPU minimizzare il tempo di esecuzione di un processo/thread minimizzare il tempo di risposta, attesa prima che un processo produca un output Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 42

Obiettivi e tipologie di sistemi Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 43

Priorità e prelazione Ai processi e ai thread possono essere associate priorità per avvantaggiarli o per penalizzarli: Priorità statiche: sono una caratteristica intrinseca dei processi Priorità dinamiche: dipendono dai livelli di servizio conseguiti finora dal processo/thread Lo schema di assegnazione delle priorità può essere modificato dallo amministratore del sistema La prelazione è un caso estremo di priorità: consente di sottrarre la CPU ad un processo in stato running Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 44

Scheduling nei sistemi batch Obiettivi Massimizzare l utilizzazione della CPU Massimizzare il throughput (job/ora) Minimizzare il tempo di turnaround (media del tempo tra la sottomissione e la fine del job) Non interessa il tempo di risposta perché gli utenti non sono interattivi Molti grandi sistemi centralizzati hanno una parte del carico costituita da job batch Il carico batch viene elaborato a sistema scarico (a notte) Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 45

Scheduling nei sistemi interattivi L obiettivo prioritario è di minimizzare i tempi di risposta Si tende a favorire i processi con comportamento I/O bound, a scapito dei CPU bound Non ha senso lo scheduling a tre livelli Ha senso uno scheduling a due livelli Memory scheduling CPU scheduling Di seguito si discute il CPU scheduling Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 46

Scheduling FCFS FCFS: First Come First Served I processi vengono mandati in esecuzione nello stesso ordine in cui sono entrati nella ready list Non vi è prelazione: ogni processo rimane sulla CPU fino al suo completamento, o fino a quando esso non la rilascia spontaneamente Penalizza i processi I/O bound che chiedono poca CPU Favorisce i processi CPU bound Causa un sottoutilizzo dei dispositivi di I/O Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 47

Scheduling SSTF SSTF: Shortest Service Time First Viene scelto sempre il processo che richiede il tempo di servizio più corto I tempi di servizio richiesti non sono noti: vengono previsti in base alle esperienze recenti Disciplina interessante perché garantisce minimizzazione del tempo medio di risposta Però causa un peggioramento della varianza del tempo di risposta Interessante soprattutto in contesti interattivi Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 48

Scheduling SSTF: esempio (a) FCFS (8,4,4,4) Tempo totale 20 Tempo medio 13.5 Tempo minimo 8 Tempo massimo 20 (b) SSTF (4,4,4,8) Tempo totale 20 Tempo medio 11 Tempo minimo 4 Tempo massimo 20 Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 49

Scheduling Round-Robin tempo scaduto richiesta di I/O fine processo CPU processi ready Round-Robin : la giostra Ciascun processo/thread resta sulla CPU al massimo per un tempo τ, detto quantum Trascorso questo viene reinserito alla fine della coda Processi I/O-bound: fanno prevalentemente I/O e non sfruttano quasi mai il tempo di CPU concesso Processi CPU-bound: utilizzano tutto il tempo di CPU concesso, e devono fare molti giri Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 50

Round-Robin a code multiple Classi di priorità servite nell ordine, solo se le classi superiori sono esaurite Priorità dinamiche usate per riparare alle ingiustizie Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 51

Shortest process next Viene scelto il processo con la minore richiesta di CPU Problema: stimare a priori la durata dei burst di CPU richiesti dai vari processi Ci si basa sulla storia passata per aggiornare la stima Sia Θ n la stima accumulata al passo n e T n il tempo effettivamente sperimentato La nuova stima sarà Θ n+1 = α Θ n +(1-α) T n La costante α permette di stabilire quanto pesa la storia passata e quanto quella recente La tecnica di previsione si chiama aging Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 52

Guaranteed scheduling L idea è quella che ciascun processo abbia la fetta di CPU che gli spetta da una divisione equa Se i processi sono n la sua share dovrebbe essere 1/n Si accumula per ciascuno il tempo totale di CPU goduto Ad ogni passo si calcola per ogni processo il rapporto fra il tempo goduto e quello spettante Rapporti bassi significano ingiustizie subite Lo scheduler sceglie sempre il processo con il rapporto più basso Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 53

Scheduling nei sistemi real-time Elaborazione basata su eventi al cui servizio sono associate scadenze (deadline) Creato un processo per ogni evento, con vita breve e comportamento prevedibile Obiettivo dello scheduler: fare in modo che le deadline dei processi siano rispettate (in modo hard o soft) Due tipi di eventi Periodici: si presentano ad intervalli regolari Aperiodici: non prevedibili Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 54

Scheduling nei sistemi real-time (2) In genere ci sono diverse serie di eventi periodici Il requisito minimo e che il sistema possa sostenere il carico (schedulable system) Se ci sono m serie di eventi con richeste di CPU pari a C i e periodo P i, la condizione è Scheduling di tipo statico o dinamico Caso di particolare interesse i sistemi multimedia m i= 1 Ci P i 1 Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 II - 55