Scheduling della CPU: Sistemi Operativi I

Slides:



Advertisements
Presentazioni simili
Scheduling (Schedulazione) Susanna Pelagatti – Università di Pisa
Advertisements

STRUTTURA DEL SISTEMA OPERATIVO
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
Il Sistema Operativo Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: gestire.
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
Scheduling A. Ferrari.
Gestione dei processi A. Ferrari.
Il Sistema Operativo.
Orario definitivo Martedì Aula 2 Polo Mercoledì Aula 1 Fondi Palazzina delle Scienze Giovedì 9-11 Aula 1 Fondi Palazzina delle Scienze Nota:
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Obiettivo della tesi Percorso
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Scheduling in Linux (Kernel 2.6)
Il sistema operativo.
5.1 Sistemi operativi Scheduling della CPU Concetti di base Criteri di scheduling Algoritmi di scheduling Scheduling in sistemi con più processori Valutazione.
Scheduling della CPU Concetti fondamentali Criteri di scheduling
Processi Concetto di processo Scheduling dei processi
Scheduling della CPU Concetti di base Criteri di scheduling
INTRODUZIONE AI SISTEMI OPERATIVI
Processi e Thread.
Gestione dei processi Un sistema operativo multitasking è in grado di gestire più processi Un processo corrisponde ad un programma in esecuzione. Un programma.
Threads: Sistemi Operativi I Corso di Laurea in Ingegneria Informatica
Introduzione: Sistemi Operativi I
Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 6 1 Programmi concorrenti: quanto è lungo un millisecondo? In un normale personal computer.
Struttura dei sistemi operativi (panoramica)
I Thread.
Scheduling della CPU.
Sistemi Operativi SCHEDULING DELLA CPU.
Sistemi Operativi GESTIONE DEI PROCESSI.
Introduzione ai Sistemi Operativi
1 Scheduling in Windows 2000 Un thread entra in modalità kernel e chiama lo scheduler quando: Si blocca su un oggetto di sincronizzazione (semaforo, mutex,
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
La schedulazione dei processi
IL PROBLEMA DELLO SCHEDULING
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
Il Sistema Operativo (1)
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
Struttura di un SO Menu Struttura SO Algoritmo Programma Processo
Scheduling della CPU.
Informatica Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Sistema Operativo (Software di base)
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
I processi.
1 Gestione del Processore (Scheduling). 2 Scheduling dei processi È l’attività mediante la quale il sistema operativo effettua delle scelte tra i processi,
Gestione del Processore (Scheduling)
SISITEMI MONOPROGRAMMATI E MULTI PROGRAMMATI
Il nucleo del Sistema Operativo
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Gestione del processore (Scheduler)
Informatica Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
1 Processi e Thread Processi e thread in Windows 2000.
Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi.
1 Processi e Thread Scheduling (Schedulazione). 2 Scheduling Introduzione al problema dello Scheduling (1) Lo scheduler si occupa di decidere quale fra.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Informatica Generale Marzia Buscemi
I primi elaboratori Anni ‘50 Rigidamente sequenziali
IL NUCLEO Avvio e terminazione dei processi Assegnazione della CPU ai diversi processi Sincronizzazione tra i processi Sincronizzazione dei processi con.
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
Le basi di dati.
Scheduler e politiche di Marco Arcamone.
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
1 Informatica di Base Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
IL NUCLEO Le funzioni del nucleo sono: Avvio e terminazione dei processi Assegnazione della CPU ai diversi processi Sincronizzazione tra i processi Sincronizzazione.
Il Sistema Operativo Processi e Risorse
Il Sistema Operativo Gestione dei Processi
Transcript della presentazione:

Scheduling della CPU: Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Docente: Francesco Quaglia Scheduling della CPU: Tipi di scheduling Metriche Algoritmi di scheduling classici Scheduling multiprocessore Scheduling in sistemi operativi attuali (NT/UNIX)

Tipi di scheduling A lungo termine Decisioni sull’aggiunta di un nuovo processo all’insieme dei processi attivi A medio termine Decisioni sull’inserimento, totale o parziale di un processo attivo in memoria di lavoro Decisioni su quale processo debba impegnare la CPU A breve termine (dispatching) Di I/O Decisioni sulla sequenzializzazione di richieste da servire sui dispositivi

Tipi di scheduling e stati di processi Lungo termine Exit New Running Ready Blocked Breve termine Medio termine Ready Suspended Blocked Suspended

Scheduling a lungo termine: alcuni dettagli Decisione di attivazione di processo raggiungimento di un dato livello di multiprogrammazione mistura conveniente di processi I/O bound e CPU bound Attivazione dello scheduler alla terminazione di un processo su richiesta quando la percentuale di utilizzo della CPU scende sotto valori specifici Attivazione di processo governata dalle condizioni di carico del sistema Tipicamente non controlla applicazioni interattive Tipico di sistemi batch multiprogrammati

Criteri per il dispatching Orientamento all’utente decisioni di dispatching funzione di come gli utenti percepiscono il comportamento del sistema (es. tempo di risposta) Orientamento al sistema decisioni di dispatching tese a ottimizzare il comportamento del sistema nella sua globalita’ (es. utilizzazione di risorse) Orientamento a metriche prestazionali approccio quantitativo parametri facilmente misurabili (monitorabili), analizzabili Orientamento a metriche non prestazionali parametri tipicamente qualitativi o non facilmente misurabili

Criteri orientati all’utente Prestazionali tempo di risposta ovvero il tempo necessario affinche’ un processo inizi a produrre l'output tempo di turnaround ovvero del tempo totale intercorrente tra l'istante di creazione e l'istante di completamento di un processo scadenze ovvero una deadline di completamento Altri prevedibilita’ possibilita’ di supportare esecuzioni conformi a determinati parametri indipendentemente dal livello di carico del sistema

Criteri orientati al sistema Prestazionali throughput processi completati per unita’ di tempo utilizzazione del processore percentuale del tempo in cui la CPU risulta impegnata Altri fairness capacita’ di evitare stairvation dei processi attivi priorita’ capacita’ di distinguere tra livelli di priorita’ multipli dei processi attivi bilanciameno delle capacita’ di equilibrare l’utilizzo delle risorse risorse al fine di a

Priorita’, round-robin, prelazione e stairvation processore RQ0 RQ1 RQn-1 Prelazione (prerilascio) Attesa evento

Scheduling FCFS Caratteristiche Svantaggi - i processi nello stato Ready vengono mandati in esecuzione secondo l'ordine di inserimento nella "Ready List" non vi e' prelazione, quindi ogni processo rimane in esecuzione fino al suo completamento, oppure fino a che esso non rilascia la CPU spontaneamente Svantaggi non minimizza il tempo di attesa, e di conseguenza neanche il tempo di turnaround - inadeguato per la gestione di processi interattivi puo' causare sottoutilizzo dei dispositivi di I/O a causa del fatto che i processi interattivi non necessariamente vengono favoriti

Scheduling Round-Robin (time-slicing) Caratteristiche i processi nello stato Ready vengono mandati in esecuzione a turno per uno specifico quanto di tempo vi e' prelazione, quindi un processo puo’ essere sospeso anche se non ha completato la sua traccia o non vuole rilasciare la CPU spontaneamente Svantaggi sfavorisce processi I/O bound rispetto a processi CPU bound - non propriamente adeguato per la gestione di processi interattivi puo' causare sottoutilizzo dei dispositivi di I/O a causa del fatto che i processi I/O bound vengono sfavoriti Criticita’ della scelta del time-slice Impatto sul numero di quanti per attivare una richiesta di I/O

Scheduling Round-Robin Virtuale Separazione tra processi prelazionati e non Quanto = time-slice Priorita’ bassa Prelazionati processore Quanto = time-slice – X Priorita’ alta Back from I/O X = consumo di quanto precedente

Scheduling SPN Caratteristiche - i processi nello stato Ready vengono mandati in esecuzione in funzione della lunghezza del loro prossimo "CPU Burst". In particolare, essi vengono mandati in esecuzione secondo ordine crescente della lughezza del prossimo CPU burst (priorita’ legata al CPU burst) puo' esservi (SRTN) o non prelazione. In caso negativo ogni processo rimane in esecuzione fino al suo completamento, oppure fino a che esso non rilascia la CPU spontaneamente, ovvero al termine del CPU Burst Vantaggi - minimizza il tempo di attesa, e di conseguenza il tempo di turnaround relativamente adeguato per la gestione di processi interattivi in caso di prelazione in generale non causa sottoutilizzo dei dispositivi in caso di prelazione Problemi - necessita di meccanismi di predizione della lunghezza dei CPU Burst puo' causare stairvation a causa del particolare trattamento della priorita'

Stima dei CPU burst Media aritmetica Media esponenziale Alpha vicino all’unita’ determina maggior peso per osservazioni recenti Impatto sulla stabilita’ in presenza di alta varianza

Scheduling highest response ratio next (HRRN) Proccessi selezionati in base al Rapporto di Risposta Dove : w = tempo di attesa s = tempo di servizio (di esecuzione) favorisce gli I/O bound (caratterizzati da piccoli valori di s) affronta il problema della stairvation dovuto alle priorita’

Scheduling feedback Non necessita di informazioni (predette o monitorate) come SPN, SRTN e HRRN Uso di code di priorita’ multiple processore RQ0 processore RQ1 processore RQn-1 Quanto di tempo fisso per tutte le priorita’: stairvation sui processi molto lunghi Soluzione parziale: quanto di tempo pari a dove i e’ a priorita’

La realta': caratteristiche del carico Frequenza delle occorrenze Comportamento I/O Bound Comportamento CPU bound Durata di un CPU burst

Scheduling UNIX tradizionale (SVR3 – 4.3 BSD) Caratteristiche - code multiple con feedback - un livello di priorita' distinto per ciacuna coda - gestione di tipo Round-Robin nell'ambito di ciascuna coda Passaggio da una coda all'altra (feedback) - in caso di rientro nello stato Ready dopo un passaggio nello stato Blocked - in caso di variazione della priorita' imposto dal sistema (su base periodica) Prior. M Prior. 0 (admit level) Processi CPU bound Prior. –(N-1) (Back I/O) Prior. -N (Back from swap out)

Scheduling multiprocessore Caratteristiche architetturali processori (CPU) multiple che condividono una memoria principale comune i processori sono controllati da un unico sistema operativo Tightly coupled system (sistema strettamente accoppiato) Problematiche assegnazione dei processi ai processori uso (o non) di politiche classiche di multiprogrammazione sui singoli processori selezione del’entita’ schedulabile da mandare in esecuzione

Assegnazione dei processi ai processori Statica overhead ridotto poiche’ l’assegnazione e’ unica per tutta la durata del processo possibilita’ di sottoutilizzo dei processori Dinamica overhead superiore dovuto a riassegnazioni multiple migliore utilizzo dei processori Approccio master/slave il sistema operativo viene eseguito su uno specifico processore richiesta esplicita di accesso a stutture del kernel da parte degli altri processori semplicita’ di progetto (estensione di kernel classici per monoprocessori) Approccio peer il sistema operativo viene eseguito su tutti i processori problemi di coerenza di informazione del kernel (sincronizzazione delle azioni) complessita’ di progetto

Multiprogrammazione sui singoli processori? Non piu’ mandatorio quando sono disponibili molti processori, il livello di utilizzo del processore non e’ piu’ un fattore cosi’ critico (dato il costo proporzionalmente ridotto del processore rispettoa quelli dell’intera architettura) rientra in gioco la metrica del tempo di turnaround delle applicazioni Monoprogrammazione su multiprocessori un’unica coda di applicazioni in attesa di assegnazione di processore 1) costo non minimale di sincronizzazione degli accessi alle strutture dati del kernel in caso di modello di sistema peer 2) buona distribuzione del carico code multiple di distribuzione delle applicazioni sui processori 1) costo di sincronizzazione di accesso a strutture dati del kernel limitato 2) possibilita’ di sbilanciamento del carico

Scheduling di processi Limitato impatto della politica di selezione 1 processore 2 processori Throughput RR/throughput FCFS 1 Coefficiente di variazione Deviazione standard tempo di servizio Tempo di servizio medio

Scheduling di threads Fattori nuovi la decomposizione di applicazioni in threads introduce criteri di selezione innovativi rispetto alle priorita’ classiche (interattivita’) un processo puo’ essere sia CPU che I/O bound dipendendo dal comportamento dei singoli thread che lo compongono I/O Synchronization Ritardo addizionale Thread A Thread B Thread A Synchronization I/O Thread B Thread A Thread A

Politiche di scheduling di threads (I) Load sharing coda globale di threads pronti ad eseguire possibilita’ di gestire priorita’ distribuzione uniforme del carico non necessita scheduler centralizzato (problemi di efficienza in caso di larga taglia dell’architettura) ridotta efficienza del caching in caso di cambio di processore da parte dei thread FCFS SNTF (smallest number of threads first), con e senza preemption Processore dedicato ogni thread di un processo viene eseguito si di uno specifico processore (valido per architettue con elevato numero di processori) opposto alla politica load sharing criticita’ del numero di processori dedicati ad un dato processo (legato all’ activity working set) – possibilita’ di thrashing del processore

Politiche di scheduling di threads (II) Gang scheduling si seleziona un insieme di thread correlati da eseguire su un insieme di processori riduzione del costo di sincronizzazione e del costo di cambio di processi riduzione dell’overhead di scheduling (decisioni singole per assegnazioni multiple) Time slicing uniforme |gang| Time slicing pesato #processori Gang A Gang B Gang A Gang B Processori occupati Processori liberi

Scheduling UNIX SVR4 Caratteristiche 160 livelli di priorita’ 3 classi di priorita’: Tempo Reale (159-100), Kernel (99-60), Time-Sharing (59-0) kernel preemptabile (identificazione di safe places) bitmap per determinare i livelli non vuoti quanto di tempo variabile in funzione della classe e, in alcune classi, del livello Sequenza di scheduling Tempo reale (159-100) Kernel (99-60) Time sharing (99-60)

Scheduling in NT Caratteristiche code multiple distinte in due fasce: Real-Time e Varible un livello di priorita' distinto per ciacuna coda (0-15 nella fascia Variable e 16-31 nella fascia Real-Time) gestione di tipo Round-Robin nell'ambito di ciascuna coda priorita’ base per i processi priorita’ dinamica entro vincoli per i threads (base –2 come limite inferiore) prerilascio basato su piorita’ Passaggio da una coda all'altra (feedback) non ammesso nella fascia Real-Time ammesso nella fascia Variable (rilascio della CPU allo scadere del quanto provoca diminuzione della priorita', rilascio anticipato provoca incremento) Real-Time (16-31) Variable (0-15)

Priorita’ dei threads in NT Livello 15 Classe variable (0-15) Priorita’ base di processo Priorita’ base di thread Livello 0