Scheduling della CPU Concetti di base Criteri di scheduling

Slides:



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

STRUTTURA DEL SISTEMA OPERATIVO
Gestione della Memoria
Meccanismi di IPC Problemi classici di IPC
Gestione della memoria centrale
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.
Capitolo 3 Risorse e Stallo 3.1. Risorse 3.2. Introduzione
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.
Gestione del processore
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.
Memoria virtuale Memoria virtuale – separazione della memoria logica dell’utente dalla memoria fisica. Solo alcune parti di un programma devono trovarsi.
5.1 Sistemi operativi Scheduling della CPU Concetti di base Criteri di scheduling Algoritmi di scheduling Scheduling in sistemi con più processori Valutazione.
I processi Concetto di processo Scheduling dei processi
Deadlock Modello del sistema Caratterizzazione dei deadlock
Scheduling della CPU Concetti fondamentali Criteri di scheduling
Processi Concetto di processo Scheduling dei processi
Dipartimento di Ingegneria dell’informazione Università di Siena
Algoritmi Paralleli e Distribuiti a.a. 2008/09
7. Teoria delle Code Una coda è costituita da 3 componenti fondamentali: i serventi i clienti uno spazio in cui i clienti attendono di essere serviti.
Risorse e Stallo.
1 Matteo Cristani Dipartimento di Informatica Facoltà di Scienze MM. FF. NN. Università degli Studi di Verona Corso di.
Gestione dei processi Un sistema operativo multitasking è in grado di gestire più processi Un processo corrisponde ad un programma in esecuzione. Un programma.
Scheduling della CPU: Sistemi Operativi I
Il lavoro dipende dal percorso??
Scheduling dei processi.
Scheduling della CPU.
Linguaggi di programmazione
Sistemi Operativi SCHEDULING DELLA CPU.
Sistemi Operativi GESTIONE DEI PROCESSI.
Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE.
Introduzione ai Sistemi Operativi
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
Elementi di Informatica di base
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
La schedulazione dei processi
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
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.
Processi.
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.
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)
Il nucleo del Sistema Operativo
1 Esercitazione Sistemi distribuiti: sistemi che risisedono su più calcolatori interconnessi da una rete di comunicazione Algoritmi distribuiti: programmi.
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
Gestione del processore (Scheduler)
Calcolatori Elettronici Valutazione delle Prestazioni Francesco Lo Presti Rielaborate da Salvatore Tucci.
Informatica Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
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.
Informatica Generale Marzia Buscemi
Fabio Garufi - TAADF Tecniche Automatiche di Acquisizione Dati Sistemi operativi.
IL NUCLEO Avvio e terminazione dei processi Assegnazione della CPU ai diversi processi Sincronizzazione tra i processi Sincronizzazione dei processi con.
Fabio Garufi - TAADF Tecniche Automatiche di Acquisizione Dati Sistemi operativi.
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
Scheduler e politiche di Marco Arcamone.
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
POLITICHE DI SCELTA DEI PROCESSI Alunna D’Amato C. Classe IV F Anno Scolastico
Il Sistema Operativo Gestione dei Processi
Transcript della presentazione:

Scheduling della CPU Concetti di base Criteri di scheduling Algoritmi di scheduling Scheduling in sistemi con più processori Valutazione degli algoritmi Sistemi operativi

 Istogramma burst di CPU Concetti di base Il massimo impiego della CPU è ottenuto con la multiprogrammazione. Ciclo di CPU–I/O burst – L’esecuzione di un processo consiste di cicli di esecuzione di CPU ed attese di I/O. Distribuzione dei burst di CPU  Istogramma burst di CPU Sistemi operativi

Scheduler della CPU Seleziona uno dei processi in memoria che sono pronti ad essere eseguiti ed alloca la CPU a questo processo. Le decisioni dello scheduling di CPU hanno luogo quando un processo: 1. Passa da stato running a stato waiting. 2. Passa da stato running a stato ready. 3. Passa da stato waiting a stato ready. 4. Termina. Se lo scheduling è solo nelle condizioni 1 e 4, si dice che lo schema di scheduling è non–preemptive (senza prelazione). Altrimenti si ha uno schema preemptive. Sistemi operativi

Dispatcher Il modulo dispatcher da il controllo della CPU al processo selezionato dallo scheduler a breve termine; questo comporta: Context switch Passaggio a modo utente Salto alla posizione corretta del programma utente per riavviarne l’esecuzione Latenza di dispatch – è il tempo che impiega il dispatcher per fermare un processo e avviare l’esecuzione di un altro. Sistemi operativi

Criteri di Scheduling Utilizzo di CPU – la CPU deve essere più attiva possibile Throughput – numero di processi che completano la loro esecuzione per unità di tempo Tempo di turnaround – tempo impiegato per l’esecuzioned di un determinato processo Tempo di attesa – tempo durante il quale un processo si è trovato nella coda ready Tempo di risposta – tempo che intercorre tra la sottomissione di una richiesta e la prima risposta prodotta. In un sistema time–sharing il tempo di turnaround può essere limitato dalla velocità del dispositivo di output Sistemi operativi

Criteri di ottimizzazione Max utilizzo di CPU Max throughput Min tempo di turnaround Min tempo di attesa Min tempo di risposta Sistemi operativi

Scheduling First–Come, First–Served (FCFS) Esempio: Processo Burst Time P1 24 P2 3 P3 3 Supponendo che i processi arrivino nel seguente ordine: P1, P2, P3 llo schema di Gantt è il seguente: Tempi di attesa P1 = 0; P2 = 24; P3 = 27 Tempo di attesa medio: (0 + 24 + 27)/3 = 17 P1 P2 P3 24 27 30 Sistemi operativi

Scheduling FCFS Se l’ordine di arrivo è il seguente: P2, P3, P1. Lo schema di Gantt è il seguente: Tempi di attesa: P1 = 6; P2 = 0; P3 = 3 Tempo di attesa medio: (6 + 0 + 3)/3 = 3 Molto migliore del caso precedente, in cui si aveva un effetto convoglio: i processi piccoli attendono che un grande processo liberi la CPU P2 P3 P1 3 6 30 Sistemi operativi

Scheduling Shortest–Job–First (SJF) Si associa a ciascun processo la lunghezza del suo successivo burst di CPU. SI impiegano queste lunghezze per assegnare alla CPU il processo con il burst più breve. Due schemi: nonpreemptive – una volta che la CPU viene assegnata al processo, non può essere assegnata ad un altro processo fino a che quello corrente non termina il burst di CPU. preemptive – se arriva un nuovo processo con burst di CPU minore del tempo rimasto per il processo corrente, il nuovo processo viene sostituito all’altro. Questo schema è noto come Shortest–Remaining–Time–First (SRTF). SJF è ottimale – rende minimo il tempo medio di attesa per un dato insieme di processi. Sistemi operativi

Esempio di SJF nonpreemptive Processo Tempo di arrivo Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 SJF (non-preemptive) tempo medio di attesa = (0 + 6 + 3 + 7)/4 - 4 P1 P3 P2 P4 3 7 8 12 16 Sistemi operativi

Esempio di SJF Preemptive Processo Tempo di arrivo Burst Time P1 0.0 7 P2 2.0 4 P3 4.0 1 P4 5.0 4 SJF (preemptive) tempo medio di attesa = (9 + 1 + 0 +2)/4 - 3 P1 P2 P3 P2 P4 P1 11 16 2 4 5 7 Sistemi operativi

Predizione della lunghezza del busrt di CPU successivo Può soltanto stimare la lunghezza. Può essere stimato utilizzando la lunghezza dei burst di CPU precedenti, impiegando una media esponenziale. 1) tn lunghezza dell’n-mo burst di CPU 2) n+1 valore stimato per il CPU–burst successivo 3) , 0    1 4) n+1 =  tn + (1-  )n tau n=1 deve essere cambiato in tau n+1 Sistemi operativi

Esempi di media esponenziale  =0 n+1 = n La storia recente non è presa in considerazione.  =1 n+1 = tn Viene preso in considerazione solo l’ultimo burst di CPU. Espandendo la formula si ottiene: n+1 =  tn+(1 - )  tn -1 + … +(1 -  )j  tn -1 + … +(1 -  )n=1 tn 0 Dato che sia  che (1 - ) sono minori o uguali a 1, ciascun termine successivo ha minor peso del suo predecessore. Sistemi operativi

Scheduling a priorità Un valore di priorità (intero) è associato con ciascun processo. La CPU è allocata al processo con la più grande priorità (intero più basso  priorità più alta). preemptive nonpreemptive SJF è uno scheduling a priorità dove la priorità è il successivo tempo di burst stimato. Problema  Starvation (blocco indefinito) – i processi a bassa priorità potrebbero non venir mai eseguiti. Soluzione  Aging (invecchiamento) – aumento graduale della priorità dei processi che si trovano in attesa nel sistema da lungo tempo. Sistemi operativi

Round Robin (RR) Ciascun processo prende una piccola unità di tempo di CPU (quanto di tempo), generalmente 10-100 millisecondi. Dopo che questo tempo è trascorso, il processo è forzato a rilasciare la CPU e aggiunto alla fine della coda dei processi pronti (ready queue). Se ci sono n processi nella ready queue e il quanto di tempo è q, ciascun processo prende 1/n del tempo di CPU in frazioni di, al più, q unità di tempo. Nessun processo attende per più di (n-1)q unità di tempo. Performance q grande  FIFO q piccolo  q deve essere grande rispetto al tempo di context switch, altrimenti l’overhead è troppo alto. Sistemi operativi

Esempio: RR con quanto di tempo = 20 Processo Burst Time P1 53 P2 17 P3 68 P4 24 Lo schema di Gantt è: In genere si ha un tempo medio di turnaround maggiore rispetto a SJF, tuttavia si ha una migliore risposta. P1 P2 P3 P4 20 37 57 77 97 117 121 134 154 162 Sistemi operativi

Un quanto di tempo minore incrementa i context switch Sistemi operativi

Tempo di turnaround varia con il quanto di tempo Sistemi operativi

Scheduling con code multiple La ready queue è suddivisa in code separate: foreground (interattiva) background (batch) Ciascuna coda ha il proprio algoritmo di scheduling, foreground – RR background – FCFS Inoltre è necessario uno scheduling tra code. Scheduling a priorità fissa; es. serve tutti i processi in foreground poi in background. Rischio di starvation. Time slice – ciascuna coda prende un certo tempo di CPU che può suddividere fra i propri processi. Ad esempio 80% per foreground in RR 20% per background in FCFS Sistemi operativi

Code multiple con feedback Un processo può spostarsi fra le varie code; l’aging può essere implementato in questo modo. Lo scheduler con code multiple con feedback è definito dai seguenti parametri: numero di code algoritmi di scheduling per ciascuna coda metodo impiegato per determinare quando spostare un processo in una coda a priorità maggiore metodo impiegato per determinare quando spostare un processo in una coda a priorità minore metodo impiegato per determinare in quale coda deve essere posto un processo quando richiede un servizio Sistemi operativi

Esempio di code multiple con feedback Tre code: Q0 – quanto di tempo di 8 millisecondi. Q1 – quanto di tempo di 16 millisecondi. Q2 – FCFS Scheduling Un nuovo job viene immeso nella coda Q0 che è servita FCFS. Quando prende possesso della CPU il job riceve 8 millisecondi. Se non termina in 8 millisecondi il job è spostato alla coda Q1. Nella coda Q1 il job è ancora servito FCFS e riceve ancora 16 millisecondi. Se ancora non ha terminato, viene mosso nella coda Q2. Sistemi operativi

Valutazione degli algoritmi Modellazione deterministica – prende in considerazione un carico di lavoro predeterminato e definisce le prestazioni di ciascun algoritmo per tale carico di lavoro Modelli di code. Simulazioni Realizzazione Sistemi operativi