Lo scheduler di UNIX (1)



Documenti analoghi
Algoritmi di scheduling

Processi e Thread. Scheduling (Schedulazione)

Sistemi Operativi SCHEDULING DELLA CPU

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

Concetti di base. Scheduling della CPU. Diagramma della durata dei CPU-burst. Sequenza Alternata di CPU Burst e I/O Burst

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

Scheduling della CPU:

J. Assfalg Appunti di Sistemi Operativi

Corso di Informatica

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

Scheduling della CPU

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

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

Lo scheduling. Tipici schedulatori

Scheduling. Scheduling 14/12/2003 1/7

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

Scheduling della CPU

Scheduling della CPU Simulazione in linguaggio Java

Sistemi Operativi Kernel

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

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

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

SCHEDULATORI DI PROCESSO

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

Java Virtual Machine

Esercitazione E1 Scheduling, deadlock, monitor

La schedulazione. E.Mumolo

Lo schedulatore del kernel

Sistemi operativi. Esempi di sistemi operativi

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

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

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

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

Scheduling. Livelli Algoritmi

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

Lo Scheduling Real Time in Linux. Universita degli studi di Roma La Sapienza Ivan Gualandri Matricola Relatore: Giorgio Richelli

Sistemi Operativi (modulo di Informatica II) I processi

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

J. Assfalg Appunti di Sistemi Operativi

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

Schedulazione in RTAI

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

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Pronto Esecuzione Attesa Terminazione

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

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

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

Gli stati di un processo

Architettura di un sistema operativo

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

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

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

OSCILLOSCOPIO SOFTWARE

Scheduling della CPU (2) CPU bursts (2)

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

Capitolo 5: I thread

Sistemi Operativi. Schedulazione della CPU

Sistema operativo: Gestione dei processi

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Introduzione ai Sistemi Operativi

MODULO 02. Iniziamo a usare il computer

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

Esercitazione E6 Esercizi d esame

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

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

5. Scheduling della CPU

Capitolo 6: CPU scheduling

Come ottimizzare il Consigliere Esperto (Expert Advisor) BuyTradeOnly.ex4 in Metatrader (MT4)

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

STRUTTURE DEI SISTEMI DI CALCOLO

SISTEMI DI NUMERAZIONE E CODICI

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

Cosa è un foglio elettronico

SISTEMI OPERATIVI. Deadlock (blocco critico) Domande di verifica. Luca Orrù Centro Multimediale Montiferru 04/06/2007

Organizzazione Monolitica

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Il Sistema Operativo

Università Ca' Foscari Venezia - Corso di Laurea in Informatica Sistemi Operativi. Problemi di riepilogo sulla prima parte del corso

Sistemi operativi e reti A.A Lezione 2

Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job.

1

RTAI e scheduling. Andrea Sambi

Linux I/O Scheduling overview

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

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

Transcript:

Lo scheduler di UNIX (1) Lo scheduling a basso livello è basato su una coda a più livelli di priorità 1 Lo scheduler di UNIX (2) Si esegue il primo processo della prima coda non vuota per massimo 1 quanto (tipicamente 100ms) Scheduling round robin fra processi della stessa coda Il numero di coda si calcola con priorità/costante Una volta al secondo tutte le priorità vengono ricalcolate: priorità = cpu _usage + nice + base cpu _usage : numero di clock tick per secondo che il processo ha avuto negli ultimi secondi nice : valore intero nell intervallo [-20, +20] base : valore intero che dipende da cosa sta facendo il processo ha il valore della priorità precedente se il processo sta eseguendo elaborazione normale in user mode ha un valore negativo molto basso se sta effettuando I/O da disco o da terminale 2 1

Lo scheduler di UNIX (3) Meccanismo di aging (invecchiamento) usato per il calcolo di cpu _usage : Fissiamo un intervallo di decadimento t I tick ricevuti mentre il processo P è in esecuzione vengono accumulati in una variabile temporanea tick Ogni t cpu _usage = cpu _usage / 2 + tick / 2 tick = 0 Il peso dei tick utilizzati decresce col tempo La penalizzazione dei processi che hanno utilizzato molta CPU diminuisce nel tempo 3 Lo scheduler di Linux (1) Vengono schedulati i thread, non i processi Tre classi di thread : real-time FIFO (non prerilasciabile), real-time Round Robin, Timesharing Ogni thread ha una priorità nell intervallo [0, +40], generalmente all inizio la priorità di default è 20 un quanto (misurato in jiffy = 10ms) Lo scheduler calcola la goodness (gdn) di ogni thread pronto come if (class == real-time) gdn = 1000 + priority if (class == timeshar && quantum > 0) gdn = quantum + priority if (class == timeshar && quantum == 0) gdn = 0 4 2

Lo scheduler di Linux (2) Algoritmo di scheduling : Ogni volta viene selezionato il thread con goodness maggiore Ogni volta che arriva un tick il quanto del thread in esecuzione viene decrementato Un thread viene de-schedulato se si verifica una delle seguenti condizioni il quanto diventa 0 il thread si blocca diventa ready un thread con una goodness maggiore 5 Lo scheduler di Linux (3) Algoritmo di scheduling (cont.): Poiché i quanti continuano ad essere decrementati, prima o poi, tutti i quanti dei thread ready andranno a 0. A questo punto lo scheduler ricalcola il quanto di ogni thread (anche se blocked) come segue : quantum = quantum / 2 + priority Se dovesse avvenire un nuovo ricalcolo del quanto, un processo bloccato che non ha ancora ottenuto l uso della CPU tende ad acquisire un valore del quanto sempre più alto. In questo modo vengono favoriti i thread I/O bound. Due thread CPU-bound, con questo sistema, tendono ad occupare la CPU in proporzione alla priorità. 6 3

Scheduling in Windows 2000 (1) Le API Win32 permettono all utente di specificare : priorità di un processo (6 livelli diversi) priorità di un thread all interno di un processo (7 livelli diversi) Windows 2000 mappa le 42 combinazioni possibili su 32 livelli di priorità Windows 2000 non possiede un thread centrale per la schedulazione, è il thread stesso che, quando non può continuare l esecuzione per qualche motivo, entra in modo kernel, attiva lo scheduler e si sceglie il successore. 7 Scheduling in Windows 2000 (2) Corrispondenza fra le priorità di Win32 e quelle di Windows 2000 8 4

Scheduling in Windows 2000 (3) Windows 2000 fornisce 32 priorità diverse per i thread 9 Scheduling in Windows 2000 (4) Algoritmo di scheduling : Si esegue il primo thread della prima coda non vuota per massimo 1 quanto (20ms--120ms) Scheduling round robin fra thread con la stessa priorità Come variano le priorità nel tempo : i thread tipicamente entrano a priorità 8 la priorità viene elevata se: viene completata una operazione di I/O (+1 disco, +2 linea seriale, +6 tastiera, +8 scheda audio ) termina l attesa su un semaforo, mutex, evento (+1 background, +2 foreground) l input nella finestra di dialogo associata al thread è pronto 10 5

Scheduling in Windows 2000 (5) Algoritmo di scheduling : Come variano le priorità nel tempo (cont.): la priorità viene abbassata se: un thread usa tutto il suo quanto (-1), fino a ritornare alla priorità base se un thread non ha girato per un tempo maggiore di una soglia fissata, allora passa per 2 quanti a priorità 15 Quando una finestra va in foreground il quanto dei thread corrispondenti viene allungato 11 6