Scheduling della CPU Concetti fondamentali Criteri di scheduling

Slides:



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

STRUTTURA DEL SISTEMA OPERATIVO
Gestione della Memoria
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.
Operating System Concepts
5.1 Sistemi operativi Scheduling della CPU Concetti di base Criteri di scheduling Algoritmi di scheduling Scheduling in sistemi con più processori Valutazione.
Memoria secondaria Struttura del disco Scheduling del disco
I processi Concetto di processo Scheduling dei processi
Realizzazione del file system
Memoria Virtuale Background Paginazione su richiesta
Gestione della memoria
Interfaccia del file system
Silberschatz, Galvin and Gagne Operating System ConceptsDeadlock Modello del sistema Caratterizzazione dei deadlock Metodi per la gestione dei.
Sincronizzazione fra processi
Processi Concetto di processo Scheduling dei processi
Scheduling della CPU Concetti di base Criteri di scheduling
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
FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario.
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,
Requisiti precedenti Contenuti Verifiche Bibliografia Maura Zini.
Silberschatz and Galvin Operating System Concepts CAP. 1 - INTRODUZIONE.
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.
Threads.
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
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:
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.
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.
Il Sistema Operativo Gestione dei Processi
Transcript della presentazione:

Scheduling della CPU Concetti fondamentali Criteri di scheduling Algoritmi di scheduling Valutazione degli algoritmi Operating System Concepts

Concetti fondamentali 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 da parte della CPU ed attese di I/O. Distribuzione dei burst di CPU Operating System Concepts

Scheduler della CPU Sceglie, fra i processi in memoria pronti ad essere eseguiti, un processo cui allocare la CPU. Lo scheduler della CPU deve prendere una decisione quando un processo… …passa da stato running a stato waiting (richiesta di I/O o attesa terminazione di un processo figlio); …passa da stato running a stato ready (interrupt); …passa da stato waiting a stato ready (completamento di un I/O); …termina. Se lo scheduling viene effettuato solo nei casi 1 e 4, si dice che lo schema di scheduling è non–preemptive (senza prelazione; es. Windows). Altrimenti si ha uno schema preemptive. Operating System Concepts

Dispatcher Il modulo dispatcher passa il controllo della CPU al processo selezionato dallo scheduler a breve termine; il dispatcher effettua: Context switch Passaggio a modo utente Salto alla posizione corretta del programma utente per riavviarne l’esecuzione Latenza di dispatch — è il tempo impiegato dal dispatcher per sospendere un processo e avviare una nuova esecuzione. Operating System Concepts

Criteri di scheduling Utilizzo di CPU — la CPU deve essere più attiva possibile. Throughput — numero di processi che completano la loro esecuzione nell’unità di tempo. Tempo di turnaround — tempo impiegato per l’esecuzione di un determinato processo. Tempo di attesa — tempo speso dal processo in attesa nella ready queue. 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 influenzato dalla velocità del dispositivo di output. Operating System Concepts

Criteri di ottimizzazione Massimo utilizzo di CPU Massimo throughput Minimo tempo di turnaround Minimo tempo di attesa Minimo tempo di risposta Operating System Concepts

Scheduling First–Come–First–Served (FCFS) ESEMPIO 1 Processo Tempo di burst P1 24 P2 3 P3 3 I processi arrivano al sistema nell’ordine: P1 , P2 , P3. Il diagramma di Gantt per lo scheduling FCFS è: Tempi di attesa: P1 = 0; P2 = 24; P3 = 27. Tempo medio di attesa = (0 + 24 + 27)/3 = 17. P1 P2 P3 24 27 30 Operating System Concepts

Scheduling FCFS Se l’ordine di arrivo è P2 , P3 , P1, il diagramma di Gantt risulta… Tempi di attesa: P1 = 6; P2 = 0; P3 = 3. Tempo medio di attesa = (6 + 0 + 3)/3 = 3. Non si verifica l’effetto convoglio, per cui processi di breve durata devono attendere che un processo molto lungo liberi la CPU. P1 P3 P2 6 3 30 Operating System Concepts

Scheduling Shortest–Job–First (SJF) Si associa a ciascun processo la lunghezza del suo burst di CPU successivo. Si opera lo scheduling in base alla brevità dei CPU burst. Due schemi: non–preemptive — una volta che la CPU è stata allocata al processo, non gli può essere prelazionata fino al termine del CPU burst corrente; preemptive — se arriva un nuovo processo con burst di CPU minore del tempo rimasto per il processo corrente, il nuovo processo prelaziona la CPU. Questo schema è noto come Shortest–Remaining–Time–First (SRTF). SJF è ottimale — rende minimo il tempo medio di attesa per un dato insieme di processi. Operating System Concepts

Scheduling SJF non–preemptive ESEMPIO 2 Processo Tempo di arrivo Tempo di burst 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 7 3 16 P4 8 12 Operating System Concepts

Scheduling SJF preemptive ESEMPIO 3 Processo Tempo di arrivo Tempo di burst 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 P3 P2 4 2 11 P4 5 7 16 Operating System Concepts

Predizione della lunghezza del CPU burst successivo Può essere stimato utilizzando la lunghezza dei burst di CPU precedenti, impiegando una media esponenziale. Operating System Concepts

Esempi di media esponenziale  =0 n+1 = n La storia recente non è presa in considerazione.  =1 n+1 = tn Viene considerato soltanto l’ultimo CPU burst. Espandendo la formula si ottiene: n+1 =  tn+(1-)  tn-1 + … + (1- )j  tn-j + … +(1- )n+1 0 Poiché  e (1- ) sono entrambi minori o uguali ad 1, ciascun termine ha minor peso del suo predecessore. Operating System Concepts

Scheduling a priorità Un valore di priorità (intero) è associato a ciascun processo. La CPU viene allocata al processo con la priorità più alta (intero più basso  priorità più alta). preemptive non–preemptive SJF è uno scheduling a priorità dove la priorità è rappresentata dal successivo tempo di burst. 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. Operating System Concepts

Scheduling Round Robin (RR) A ciascun processo viene allocata una piccola unità di tempo di CPU (quanto di tempo), generalmente 10–100 millisecondi. Dopo un quanto di tempo, il processo è forzato a rilasciare la CPU e accodato alla ready queue. Se ci sono n processi nella ready queue ed il quanto di tempo è q, ciascun processo occupa 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. Prestazioni: q grande  FIFO q piccolo  q deve essere grande rispetto al tempo di context switch, altrimenti l’overhead è troppo alto. Operating System Concepts

Scheduling RR con quanto = 20 ESEMPIO 4 Processo Tempo di burst P1 53 P2 17 P3 68 P4 24 Il diagramma di Gantt è: In genere si ha un tempo medio di turnaround maggiore rispetto a SJF, tuttavia si ha una miglior tempo di risposta. P1 P2 P3 P4 20 37 57 77 97 117 121 134 154 162 Operating System Concepts

Quanto di tempo VS context switch Un quanto di tempo minore incrementa il numero di context switch Operating System Concepts

Quanto di tempo e tempo di turnaround Empiricamente: il quanto di tempo deve essere > o = dell’80% dei CPU burst. Variazione del tempo di turnaround in funzione della lunghezza del quanto di tempo Operating System Concepts

Scheduling con code multiple La ready queue è suddivisa in code separate: foreground (interattiva) background (batch) Ciascuna coda ha il suo proprio algoritmo di scheduling: foreground – RR background – FCFS È 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 occupa un certo tempo di CPU che suddivide fra i propri processi. Ad esempio: 80% per foreground in RR 20% per background in FCFS Operating System Concepts

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 Operating System Concepts

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 RR. Quando prende possesso della CPU il job riceve 8 millisecondi. Se non termina, viene spostato nella coda Q1. Nella coda Q1 il job è ancora servito RR e riceve ulteriori 16 millisecondi. Se ancora non ha terminato, viene mosso nella coda Q2. Operating System Concepts

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 — modelli statistici del comportamento del sistema. Simulazioni. Valutazione di scheduler di CPU tramite simulazione Operating System Concepts