Scheduling. Scheduling 14/12/2003 1/7



Documenti analoghi
Corso di Informatica

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano

Sistemi Operativi SCHEDULING DELLA CPU

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

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

Lo scheduling. Tipici schedulatori

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU

Scheduling della CPU

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

Processi e Thread. Scheduling (Schedulazione)

Scheduling. Sistemi Operativi e Distribuiti A.A Bellettini - Maggiorini. Concetti di base

La schedulazione. E.Mumolo

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

Sistemi Operativi. Scheduling dei processi

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

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

Lo schedulatore del kernel

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

SCHEDULATORI DI PROCESSO

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

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

Sistemi Operativi Kernel

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

Scheduling della CPU. Contenuti delle lezioni del 23 e del 26 Marzo Sequenza alternata di CPU burst e di I/O burst.

Algoritmi di scheduling

Architettura degli Elaboratori 2

Scheduling della CPU Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica

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

ESERCIZI SULLO SCHEDULING DEI PROCESSI

Lo scheduler di UNIX (1)

Scheduling. Livelli Algoritmi

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

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

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

Scheduling della CPU

Capitolo 6: CPU scheduling

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

SISTEMI OPERATIVI. Schedulazione della CPU. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

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

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

Calcolatori Elettronici A a.a. 2008/2009

Sistemi Operativi. Schedulazione della CPU

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

5. Scheduling della CPU

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

Scheduling della CPU Simulazione in linguaggio Java

Scheduling della CPU

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

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

GESTIONE DEI PROCESSI

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

Sistemi Operativi. Rappresentazione e gestione delle attività e della computazione: processi e thread

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

Sistemi operativi e reti A.A Lezione 2

Scheduling della CPU (2) CPU bursts (2)

Sistemi Real-Time Ing. Rigutini Leonardo

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

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

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

J. Assfalg Appunti di Sistemi Operativi

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

Scheduling della CPU

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

Scheduling di processi HRT

Sistemi Operativi a.a Esercizi - 2

Sistemi Operativi: Sistemi realtime

J. Assfalg Appunti di Sistemi Operativi

Processo - generalità

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

Mul&programmazione. Ges&one dei processi. Esecuzione parallela. MAC OSX Monitoraggio a9vità. Linux System monitor. Windows Task Manager. A.

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

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Algoritmi di scheduling

Il Sistema Operativo

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

Riassunto di Sistemi in Tempo Reale LS

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

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

Esempio: aggiungere j

Gli stati di un processo

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

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Esercitazione E6 Esercizi d esame

Low Power Scheduling per Sistemi Real Time

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

Il memory manager. Gestione della memoria centrale

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

SCHEDULING DEI PROCESSI

Pronto Esecuzione Attesa Terminazione

Algoritmi di scheduling - Parte 2

Esercitazione E1 Scheduling, deadlock, monitor

Sebbene le durate varino secondo il processo e secondo il calcolatore, la curva di frequenza è simile a quella qui riportata.

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

Gestione della memoria centrale

Sistemi operativi. Esempi di sistemi operativi

Transcript:

Scheduling In un computer multiprogrammato più processi competono per l'uso della CPU. La parte di sistema operativo che decide quale processo mandare in esecuzione è lo scheduler. Batch OS: scheduling semplice: run to completion, FIFO Timesharing OS: utenti batch e interattivi, background daemons => problema scheduling più complesso Criteri/obiettivi 1. fairness: tutti i processi devono avere una parte della CPU 2. efficienza: 100% uso CPU 3. throughput: massimizzare n.job/ora 4. tempo di risposta: minimizzare tempo di attesa degli utenti interattivi 5. tempo di turnaround: minimizzare attesa output di job batch 1-5 sono in parte in conflitto; p.es. 4 vs. 5 (batch di notte/giorno) e, più in generale, i requisiti di classi di utenti diverse (Kleinrock) Inoltre per sistemi real-time occorre rispettare le deadline (scadenze) e garantire predicibilità del sistema operativo Per 1 e 4 è indispensabile il preemptive scheduling (clock-driven): + fairness, tempo di risposta context switch complicato (gestione interrupt) e con overhead (pseudo)parallelismo non richiesto dal programmatore => necessità di controllo/coordinazione NB: preemptive s. inevitabile per general purpose time sharing non-preemptive s. (detto anche run-to-completion): utile se OS/scheduler ha informazioni sui tempi di esecuzione dei processi (p.es. scheduler DB) Scheduling 14/12/2003 1/7

Round robin ogni processo è eseguito per un quanto, uguale per tutti al tic, scheduler controlla se quanto del processo running esaurito se lo è, lo mette nella coda (dei processi ready) NB: running può anche: rinunciare a CPU deliberatamente (yield) rinunciare per attendere IO terminare Struttura dati per coda ready: Problema: scelta quanto (interattività vs. context switch overhead). Si sceglie circa 100ms = 10 7 istruzioni a 100MIPS. Caso particolare (POSIX): POSIX prevede più code, di varia priorità per ognuna delle code vale FIFO (sorta di run to completion) Scheduling 14/12/2003 2/7

Priorita' coda dei ready è una coda a priorità al tic, running viene sospeso solo se ha priorità < 1 ready Determinazione priorità: statica (p.es. criteri politici ) dinamica/1: a ogni tic, decrementa priorità running dinamica/2: abbassamento volontario (nice) dinamica/3: alta priorità a processi I/O bound: finché girano, non usano CPU (ma occupano memoria inutilmente) p.es. priorità=1/f, dove f = frazione ultimo quanto usata (non IO) Spesso si usa uno schema multiplo: classi/code di priorità diversa round robin all interno di classe Per fairness è opportuno permettere passaggi classe da bassa ad alta Strategia tipica: alte priorità/piccoli quanti, basse p./grandi q. => max interattività, non penalizza CPU bound, min context switch Scheduling 14/12/2003 3/7

SJF (Shortest Job First) Adatto per job batch (tempi di esecuzione noti/prevedibili). Risultato: minimizza tempo di attesa/turnaround medio. Applicabilità a ambiente interattivo: tempo di risposta singola interazione/comando viene considerato come il tempo di turnaround da minimizzare stima tempo di esecuzione comando come somma pesata: prossima stima = a(ultima stima) + (1-a)(ultimo tempo misurato) P.es. a=1/2 (facile da implementare con shift) dà stime: 1a stima: T 0 2a stima: T 0 /2+T 1 /2 3a stima: T 0 /4+T 1 /4+T 2 /2 4a stima: T 0 /8+T 1 /8+T 2 /4+T 3 /2 aging progressivo del peso delle stime passate a -> 0 dà più peso ai valori misurati, a->1 alle stime Problema: SJF ottimale solo se job disponibili tutti all inizio. Controesempio: A,B,C,D,E durano 2,4,1,1,1 e arrivano in 0,0,3,3,3. SJF on-the-fly dà A,B poi C,D,E: tempo di attesa medio = 4.6 scheduling B,C,D,E,A ha tempo di attesa medio = 4.4 (aspettare B=4 (lungo) ha permesso che arrivassero i 3 job brevi C,D,E) Scheduling 14/12/2003 4/7

Scheduling Real-time Nei sistemi real time è necessario tenere conto del tempo nel portare a termine un compito. Il risultato di un processo si considera corretto se viene fornito entro la propria deadline. ogni processo specifica una deadline (scadenza) entro cui terminare deadline espresse in genere come intervalli (es. terminare entro 10s) priorità = deadline più piccola => processo che ha più urgenza Per sistemi hard-real time mancare una deadline significa provocare effetti catastrofici. Per sistemi soft-real time mancare una deadline è non desiderato ma tollerabile. Earliest Deadline First (EDF) Scheduling la CPU viene data al processo che ha la deadline minore preemptive, toglie la CPU al processo corrente se un altro processo in ready ha deadline più vicina. la coda dei processi ready è ordinata in base alla deadline le priorità cambiano dinamicamente Analisi per verificare se le deadline saranno soddisfatte: Supponiamo che vi siano vari processi che vanno eseguiti periodicamente. Il periodo di ciascun processo è indicato con T i ; ciascuno richiede al massimo un tempo di computazione C i ed ha una deadline D i = T i Scheduling 14/12/2003 5/7

Scheduling Real-time Se l'utilizzazione U del sistema non è maggiore di 1 allora tutte le deadline saranno soddisfatte. U = Ci / Ti E' una condizione necessaria e sufficiente. Scheduling 14/12/2003 6/7

Rate Monotonic Scheduling (RMS) Ogni processo ha una priorità fissa che è assegnata pari alla frequenza del processo (il task con periodo più corto ha priorità più alta). Il processo mandato in esecuzione è quello a priorità più alta. Analisi per verificare se le deadline sono soddisfatte: Per i processi periodici si ha D i = T i ; le priorità sono uniche Se Ci / Ti <= n(2 1/n - 1) allora le deadline saranno soddisfatte. Non è una condizione necessaria, ma sufficiente. Scheduling 14/12/2003 7/7