Lo Scheduling Real Time in Linux. Ivan Gualandri

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Lo Scheduling Real Time in Linux. Ivan Gualandri"

Transcript

1 Lo Scheduling Real Time in Linux Ivan Gualandri 3 gennaio 2010

2 2

3 Indice Introduzione i 1 Scheduling e sistemi multi-core I processori multicore Cosa è lo scheduling Scheduling Real-Time Sistemi Real-Time Algoritmi Real-Time Rate Monothonic Scheduler EDF Scheduler Linux e lo scheduling Cenni Su Linux Lo scheduling in Linux Lo scheduling non real-time Lo scheduling RealTime Esempio di scheduling Real Time Perfomance Test Sistemi utilizzati per l esecuzione dei test Hardware Sistema Operativo Tool utilizzati per i test Sampling Kernel Debug tools Tymetest Tipologie di test effettuate Analisi Risultati e Grafici Task Singolo Due Task task concorrenti Conclusioni A Siti web di riferimento 43 3

4 4 INDICE B Glossario 45 C Script usati per i test 47 C.1 Test1.sh C.2 test2.sh

5 Elenco delle figure 2.1 Livelli di priorità di linux, e i relativi scheduler CPU Ideale del CFS RBTree dei processi Scenario iniziale di esempio Valori di pri active prima della push Valori di pri active dopo la push Le code dopo le operazioni di push e pull Grafico priorità/runtime processo nel caso di task singolo Grafico Runtime/Numero di Loop Grafico Tempi Latenza/Livello Priorità Grafico Durata Loop/Livello Priorità Grafico Durata Loop/Livello Priorità Grafico Latenza/Livello Priorità Grafico Latenza/Livello Priorità con scheduler FIFO Grafico Latenza/Livello Priorità con scheduler RR

6 6 ELENCO DELLE FIGURE

7 Elenco delle tabelle 1.1 Tabella con valori dell esempio per RMS Tabella con valori dell esempio per EDF Tabella con valori dell esempio per lo scheduler Linux Valori tipici di priorità per processi convenzionali Tabella con valori dell esempio per lo scheduler O(1) I

8 II ELENCO DELLE TABELLE YOU HAVE TO START OUT LEARNING TO BELIEVE THE LITTLE LIES. So we can believe the big ones? YES. JUSTICE. MERCY. DUTY. THAT SORT OF THING. They re not the same at all! YOU THINK SO? THEN TAKE THE UNIVERSE AND GRIND IT DOWN TO THE FINEST POWDER AND SIEVE IT THROUGH THE FINEST SIEVE AND THEN SHOW ME ONE ATOM OF JUSTICE, ONE MOLECULE OF MERCY. AND YET YOU ACT AS IF THERE IS SOME IDEAL ORDER IN THE WORLD, AS IF THERE IS SOME... SOME RIGHTNESS IN THE UNIVERSE BY WHICH IT MAY BE JUDGED.... Terry Pratchett - The Hogfather A tutti coloro che hanno creduto in me e mi hanno incitato a proseguire anche quando volevo fermarmi!!! (per non escludere nessuno :) )

9 Introduzione Obiettivi Gli obiettivi di questa tesi sono: Approfondire la conoscenza dei sistemi operativi real-time, con una particolare attenzione al kernel Linux Eseguire uno studio approfondito sul funzionamento dei vari scheduler di Linux che si sono susseguiti fino ad oggi. Analizzare il comportamento del kernel Linux in scenari in cui si utilizzano processi real-time Organizzazione del lavoro Il lavoro è diviso principalmente in 3 parti: 1. La prima parte introduce i concetti chiave, quali scheduling, real-time, processi, necessari per una comprensione chiara del testo. 2. La seconda parte invece spiega quali soluzioni sono state adottate nel sistema operativo Linux per le tematiche introdotte nella prima parte 3. La terza e ultima parte invece spiega come sono stati eseguiti i test, l hardware che stato adottato, e ne analizza i risultati, traendone le dovute conclusioni Prerequisiti Per una corretta lettura e comprensione del seguente lavoro sono richieste conoscenze almeno di massima dei seguenti argomenti: Sistemi Operativi Linux/Unix Shell Scripting Nozioni di C i

10 ii INTRODUZIONE Strumenti utilizzati per la stesura della tesi Nella stesura di questo lavoro sono stati utilizzati diversi strumenti, tutti quanti con una caratteristica comune: sono tutti Open Source (vedi glossario). Qui di seguito un breve elenco di cosa e stato utilizzato: L A TEX Con il quale è stata scritta la tesina. Si tratta di un linguaggio di mark-up per la preparazione di testi, basato sul programma di composizione tipografica TEX Gnuplot si tratta di un potente strumento per generare grafici Kile un ottimo ide per scrivere documenti latex e ovviamente l immancabile editor di testo vi per scrivere e modificare i vari sorgenti Per i dettagli sull hardware utilizzato, si veda il paragrafo 3.1. Come è strutturata la tesi Questo lavoro è diviso principalmente in tre parti. La prima parte, si occupa di creare un background teorico alla problematica, introducendo brevemente i concetti chiave dello scheduling, del real-time, presentando alcuni algoritmi di esempio. Mentre la seconda parte si occupa piu da vicino di quello che è lo scheduling di Linux, gli algoritmi che si sono succeduti nel tempo, e il suo approccio al Real-Time, spiegando anche qua quali algoritmi usa, come funziona la patch che e stata installata, i suoi pregi e difetti. Ogni algoritmo presentato è corredato di un esempio per comprenderne meglio il funzionamento. La terza e ultima parte invece si occupa di effettuare una serie di test sul kernel con la patch real-time. Verrà presentato l hardware su cui sono state eseguite le prove, le tipologie di test che sono state effettuate, i vari tools che sono stati utilizzati (cosa sono, come funzionano,...) e verranno presentati i risultati di questi test, cercando di evidenziare i punti di forza e debolezza dell approccio di linux al real-time. Dove è che le performance sono ottimali, e dove invece degradano, e per quale motivo lo fanno. Infine gli appendici conterranno i link ai vari siti dove è stato prelevato il materiale necessario allo svolgimento dei test, il glossario con i termini principali utilizzati nella stesura di questo lavoro

11 Capitolo 1 Scheduling e sistemi multi-core In questo capitolo ci si occuperà dello scheduling nei sistemi operativi. Verrà spiegato brevemente cosa si intende per scheduling, verranno illustrate le varie tipologie di scheduling, verrà introdotto lo scheduling real-time e verranno accennate alcune tecniche avanzate come il Group Scheduling. Inoltre si introdurrà anche il concetto di processore multicore. 1.1 I processori multicore I processori multicore sono una tipologia di processori nata nel 2001 (il primo modello fu il POWER4 della IBM) ma che ha avuto una visibilità maggiore nel 2005, quando furono introdotti sul mercato i modelli dual-core dei due maggiori produttori di CPU: Intel e AMD. Questi tipi di processori normalmente si trovano nel formato: dual, quad, six core (i six core sono stati annunciati sul mercato proprio in questi giorni). Questo tipo di processori uniscono 2 o più core, le rispettive cache e i controller in un singolo package (vedi [6]), ciò permette di aumentare la potenza di calcolo senza aumentare la frequenza di lavoro, a vantaggio del calore dissipato e del consumo elettrico. Il passaggio a questa tecnologia è stato deciso, quando i progettisti dei vari processori si resero conto, che per aumentare le prestazioni di un processore non era piu conveniente aumentare la frequenza di un core unico. Questa tecnica infatti pesava troppo in termini di consumo (i processori erano arrivati a consumare anche 100W) e di calore dissipato. Decisero quindi 1

12 2 CAPITOLO 1. SCHEDULING E SISTEMI MULTI-CORE di indirizzare lo sviluppo nella direzione del parallelismo sui chip multicore. Naturalmente ogni innovazione ha i suoi pro e contro. Un sicuro vantaggio della tecnologia multicore è di rendere possibile l esecuzione di due o più thread contemporaneamente (ovviamente dipende dal numero dei core). Mentre uno degli svantaggi è che per sfruttare al meglio le caratteristiche di questo tipo di processori bisogna scrivere del software orientato all utilizzo di più thread contemporaneamente, in modo da tenere impegnati i vari core al fine di non renderli inutilizzati. 1.2 Cosa è lo scheduling In un sistema multitasking, i processi alternativamente o utilizzano il processore o aspettano (semplicemente il proprio turno, o anche il completamento di qualche evento), questo permette all utente di far girare più programmi contemporaneamente, anche in presenza di un solo processore. Esistono principalmente tre tipi di scheduling 1. Long-Term Scheduling Si decide di aggiungere un processo all insieme dei processi che devono essere eseguiti 2. Mid-Term Scheduling Si decide di aggiungere un processo all insieme di quelli che sono parzialmente o completamente in memoria 3. Short-Term Scheduling Si decide quale processo disponibile sar eseguito dal processore. Alcune delle caratteristiche che deve uno scheduler sono: Essere trasparente al programmatore, ovvero chi si occupa di scrivere programmi per un sistema operativo, non deve curarsi del comportamento dello scheduler. Cambiare da un processo all altro in maniera veloce, in modo da aumentare la quantità di tempo dedicata all esecuzione del processo vero e proprio. Bilanciare il carico in maniera equa Assicurare che se vi sono task con una priorità maggiore, questi vengano eseguiti prima degli altri. I processi interattivi devono rispondere velocemente agli stimoli da parte dell utente.

13 1.3. SCHEDULING REAL-TIME 3 Ai job che lavorano in background deve comunque essere garantita la possibilità di portare a termine il loro lavoro in tempi ragionevoli. Nessun processo dovrebbe soffrire di starvation (vedere il glossario per il significato di starvation) 1.3 Scheduling Real-Time Sistemi Real-Time Quando si parla di Sistemi Operativi Real-Time (spesso si usa anche la sigla RTOS), si parla di sistemi nei quali i tempi di risposta di alcuni processi sono fondamentali, esempi di quando utilizzare un sistema operativo realtime sono: Applicazioni Militari Controllo di esperimenti di laboratorio Controllo di apparecchiature mediche Nei sistemi di questo tipo quindi ad essere importante non è il throughput, ma che venga garantita la deadline dei vari processi che la richiedono. Per meglio capire il concetto di Tempo Reale, definiamone anche i task. Innanzitutto è da notare che in questi sistemi non tutti i task possiedono questa caratteristica, e normalmente sono un numero limitato. I task realtime possono essere principalmente di due tipi: Hard Real-Time Questi sono dei task che devono essere eseguiti entro la loro scadenza altrimenti potrebbero causare malfunzionamenti. Soft Real-Time Ha una scadenza associata, che è desiderabile, ma non obbligatoria. Inoltre questo gli eventi che li generano possono essere o periodici o aperiodici il primo prevede che il processo real-time sia eseguito una volta ogni intervallo di tempo T, mentre il secondo invece prevede una scadenza in cui il task venga servito. Un sistema potrebbe dover rispondere a più task periodici di questo tipo, e in base a quanto tempo ogni task richieda, potrebbe non essere possibile gestirli tutti. Se per esempio abbiamo m task periodici con un periodo P i e richiede C i secondi di tempo CPU per gestire ogni evento, allora il carico di task periodici può essere dato solamente da: m i=1 C i P i 1

14 4 CAPITOLO 1. SCHEDULING E SISTEMI MULTI-CORE Uno degli obiettivi quindi dello scheduling real-time è fare in modo che l esecuzione dei processi rispetti il maggior numero di deadline (scadenze) possibile. La teoria dello scheduling real-time si può considerare divisa in 2 parti: Progettazione e implementazione dello scheduler L analisi dello scheduler nella quale si cerca di vedere se un certo scheduler soddisfi tutte le deadline di tutti i processi. Attenzione: Real-Time, non vuol dire migliori performance, ma bensì si determinismo e rispetto delle scadenze di un processo. 1.4 Algoritmi Real-Time Una delle cose interessanti da notare che la maggior parte dei sistemi operativi real-time odierni non è in grado di gestire le scadenze di un processo (come da definizione precedente), mentre tutti sono progettati per cercare di essere il più pronti possibile ai task in tempo reale, ovvero cercando di eseguirli con il minor ritardo possibile ed evitando se possibili altre interruzioni. Gli algoritmi per questi sistemi possono essere di due tipi principalmente: Dinamici, che effettuano le decisione in run-time Statici che invece prendono le loro decisioni quando il sistema viene lanciato. Vediamo brevemente alcuni di questi algoritmi Rate Monothonic Scheduler Il Rate Monothonic Scheduler (abbreviato RMS) è uno dei primi algoritmi studiati messo a punto da Liu e Layland nel In pratica questo algoritmo assegna le priorità ai task in base ai loro periodi. Dove per periodo T si intende la quantità di tempo compresa fra l arrivo di un istanza del task e la successiva. La frequenza di un task è l inverso del suo periodo. Normalmente la fine del periodo di un task coincide anche con la sua scadenza. Il tempo di esecuzione C è la quantità di tempo di elaborazione richiesta da ogni occorrenza del task, in un sistema mono processore il tempo di esecuzione non deve essere più grande del periodo, per cui si ha C < T

15 1.4. ALGORITMI REAL-TIME 5 Se tutti i processi vengono eseguiti sempre fino al termine, allora si può calcolare l utilizzazione del processore come: U = C T In questo tipo di algoritmo il task che ha la priorità piu alta è quello con il periodo pi breve. In un ambiente con priorità assegnate staticamente l RMS si può considerare un algoritmo ottimo. Liu & Layland hanno dimostrato che per un insieme di n task periodici esiste una schedulazione che soddisfi tutte le scadenze se è sotto un certo limite di tempo. Il test di schedulabilità per l RMS è una condizione necessaria ma non sufficiente con la quale viene garantito che tutti i processi vengano schedulati entro le loro scadenze, ed è data da: U = n i=1 C i T i n( n 2 1) dove C i e` il tempo di CPU richiesto, e T i è il tempo di rilascio. e n è il numero di processi che devono essere schedulati. Ora se il numero di processi tende a infinito, questa espressione tende a: lim n( n 2 1) = ln n Ovvero RMS può garantire tutte le scadenze con una utilizzazione del processore intrno al 69,3% e quindi il restante 30,7% della cpu può quindi essere utilizzato per la schedulazione di processi non real-time. L assegnazione delle priorità del RMS è anche ottima, ovvero se esiste un algoritmo di scheduling con priorità statiche può soddisfare tutte le deadlines, allora anche l RMS può farlo. Esempio Abbiamo il seguente scenario con 3 processi: Tabella 1.1: Tabella con valori dell esempio per RMS Processo Tempo di esecuzione Periodo P1 1 8 P2 2 5 P L utilizzazione del processore è data da: = 0,

16 6 CAPITOLO 1. SCHEDULING E SISTEMI MULTI-CORE Mentre la condizione sufficiente per cui possiamo dire che è un sistema schedulabile è: Ora dato che U = n( n 2 1) = 3( 3 2 1) = 0, , 725 < 0, possiamo concludere che il sistema è schedulabile EDF Scheduler Questo tipo di scheduling utilizza una coda di priorità e tiene in considerazione le scadenze di ogni task. Ogni volta che viene chiamata la funzione di schedulazione (il processo termina il suo lavoro, un nuovo processo viene lanciato) la coda viene analizzata alla ricerca del processo più vicino alla sua scadenza. Questo sar il prossimo a dover essere schedulato per l esecuzione. L EDF è un algoritmo ottimo su sistemi uniprocessore con prerilascio. Ovvero se una collezione di jobs indipendenti, ognuno dei quali con un suo istante di arrivo, una richiesta di esecuzione e una scadenza (deadline) questo verrà schedulato in modo tale che tutti i jobs completino il loro lavoro prima della scadenza. Nel caso ci sono processi periodici, che hanno anche questi delle scadenze (uguali al loro periodo) EDF ha una utilizzazione vicina al 100%. Il test di schedulabilità per EDF è quindi: U = m i=1 C i P i 1 Dove C i è il tempo di calcolo richiesto dal processo i-esimo e P i e il periodo del processo. Grazie a questo test EDF garantisce che tutte le scadenze sono rispettate e l utilizzazione totale della CPU non è al 100% Teorema 1. 1 Dato un insieme di tasks periodici or sporadici, con le relative scadenze uguali al periodo,l insieme dei task è schedulabile da EDF se e solo se: m C i U = 1 P i i=1 Corollario 1. EDF è un algoritmo ottimo, nel senso che se un insieme di tasks è schedulabile allora, è schedulabile anche da EDF. Dimostrazione. Infatti se U > 11 nessun algoritmo può schedulare con successo l insieme di task dato. Invece se U 1 allora tale insieme di tasks è schedulabile da EDF (e forse anche da altri algoritmi). 1 Per maggiori informazioni sulla dimostrazione consultare [20]

17 1.4. ALGORITMI REAL-TIME 7 Rispetto ad un algoritmo come l RMS l EDF garantisce il rispetto di tutte le scadenze anche con un carico molto alto. Ma questo algoritmo presenta anche alcune problematiche: Se il sistema è sovraccarico il numero di processi che non rispettano la scadenza non si puo prevedere. È un algoritmo molto difficile da implementare, e uno dei principali problemi è come rappresentare le scadenze e anche come arrotondarle. Per questo l EDF non si trova molto spesso come algoritmo per sistemi Real Time industriali. Anche se esistono alcuni sistemi operativi che lo implementano (per esempio Shark RTOS, ERIKA Enterprise, vedi appendici). Esempio Di schedulabilità Siano dati i seguenti 3 processi: Tabella 1.2: Tabella con valori dell esempio per EDF Processo Tempo di esecuzione Periodo P1 1 8 P2 2 5 P Eseguiamo il test di schedulabili`ta: U = m i=1 C i 1 = 1 P i = 0, 925 = 92, 5% 10 Ora dato che il limite per EDF di schedulabilita è il 100% della CPU, allora il sistema è schedulabile.

18 8 CAPITOLO 1. SCHEDULING E SISTEMI MULTI-CORE

19 Capitolo 2 Linux e lo scheduling In questo capitolo verrà fatta una breve introduzione del sistema operativo Linux, e se ne illustreranno le caratteristiche dello scheduler, le tecniche adottate, come quali algoritmi usa (per il real-time e non), come e`strutturato un processo 2.1 Cenni Su Linux Linux è un sistema operativo nato nato nel 1991, da un idea di Linus Torvalds, si ispirava inizialmente al sistema operativo Minix creato da Andrew. S. Tanenbaum professore all università di Amsterdam per scopi didattici. Iniziato quasi per gioco, oggi è un sistema molto usato in ambito server, e si sta diffondendo anche per usi domestici e di workstation. E scritto interamente in C e Assembler, ed è disponibile per diverse architetture hardware, i sorgenti sono rilasciati sotto licenza GPL che lo rendono liberamente modificabile da chiunque. In realta Linux è il nome del kernel, mentre quando si parla del sistema operativo, si usa il termine GNU/Linux, dove GNU è il nome del progetto creato da Richard Stallman che aveva l intento di creare un clone compatibile di Unix, composto interamente di software Libero, e grazie al kernel creato da Linus Torvalds, potè diventare un sistema operativo completo. In realtà il progetto GNU si sarebbe dovuto basare principalmente sul kernel Hurd 1, in sviluppo dal 1984, ma dato che cresceva a rilento, all inizio si decise di usare Linux (che stava crescendo molto velocemente nei primi anni 90) come kernel in attesa del completamento di hurd, che ad oggi, anche se ancora in sviluppo non e avvenuto. La tipologia adottata da questo kernel è monolitico/modulare. Un kernel si dice monolitoco quando tutti i servizi del sistema operativo, girano nel thread del kernel. Per modulare invece si intende la possibilita di poter 1 Per maggiori informazioni: 9

20 10 CAPITOLO 2. LINUX E LO SCHEDULING compilare alcune componenti del sistema operativo, come moduli del kernel, che si possono caricare solo quando ce ne è bisogno. Ad oggi il mondo di Linux è composto da svariate distribuzioni, spesso molto differenti tra loro, alcune sviluppate prettamente per l ambito desktop (come per esempio Ubuntu, Mandriva, OpenSuse), altre sviluppate pensando ad ambienti server (come Red Hat, Debian), altre magari specializzate per l utilizzo in ambito scientifico, cinematografico, e così via. Anche se tutte queste distribuzioni sono diverse tra loro, tutte condividono lo stesso kernel, quello di Linux. 2.2 Lo scheduling in Linux Prima di entrare nel dettaglio dello scheduler cerchiamo di spiegare come Linux gestisce i processi. In Linux un processo (o task) è una istanza di un programma che comprende il codice del programma, il contenuto delle variabili e lo stato del programma. A parte il codice, il resto varia durante l esecuzione del processo. Le informazioni sullo stato del processo si trovano nel Process descriptor La filosofia adottata dal kernel Linux è principalmente quella del time sharing, per la schedulazione dei processi, questo vuol dire che un task, viene eseguito per un determinato periodo di tempo, entro il quale se non e terminato viene messo in uno stato di riposo, e ne viene eseguito un altro. Inoltre ogni processo ha definita una priorità. Che va da 0 a 140, e in base al livello che ha, si useraún certo tipo di scheduler. Infatti esistono almeno 3 classi di scheduling, che sono: SCHED NORMAL indicato anche con SCHED OTHER si usa per le priorità che vanno da 139 a 101, queste indicano normalmente i processi non real-time, e quindi utilizzano l algoritmo di scheduling fornito di default dal kernel (per la serie prima della sarà O(1), mentre per le successive sarà CFS, spiegati in questo paragrafo) SCHED FIFO per i processi con priorità da 100 a 0, questo è uno degli algoritmi di scheduling disponibile per i processi di tipo Real-Time In questo caso non è previsto prerilascio e quindi un processo quando viene lanciato, resta in esecuzione fino al suo termine. E una classica coda Firs Int - First Out SCHED RR anche in questo caso si usa nei processi real-time, ma questa volta si tratta di un algoritmo con prerilascio, anche questo si può usare per processi con priorità da 100 a 0. In questo caso l algoritmo usato è di tipo Round Robin Se la priorità va da 0 a 99, in questo caso e possibile scegliere quale algoritmo far usare al processo. Infatti come si può notare, esistono due tipi di algoritmi per questi livelli di priorità.

21 2.2. LO SCHEDULING IN LINUX 11 Figura 2.1: Livelli di priorità di linux, e i relativi scheduler Lo scheduling non real-time Fra la versione 2.4 del kernel, e la versione 2.6 si sono susseguite 3 versioni differenti dello scheduler. In questo paragrafo le illustreremo brevemente, cercando di evidenziarne i lati positivi e negativi. Scheduling nella serie 2.4.x Il tempo viene suddiviso in periodi detti epoche, che si ripetono ciclicamente. Ogni volta che viene creato un processo, gli viene anche assegnato un quanto di tempo, che viene inserito nel campo counter del descrittore del processo. E il valore di counter viene inserito poi nel campo priority. Il quanto di tempo definisce un limite superiore al tempo di utilizzo di della CPU nell epoca in questione. Normalmente il quanto di tempo iniziale è di 20 clock ticks (o jiffies 2 ), il valore più alto ammissibile senza compromettere la reattività del sistema. Mediante la funzione nice(int n) si può variare il valore iniziale del quanto. Tramite la formula: priority = 20 - n Quando tutti i processi che si trovano nello stato TASK RUNNING hanno terminato il loro quanto, l epoca corrente termina e ne inizia un altra. Viene quindi ricalcolato di nuovo il quanto di tempo da assegnare ad ogni processo, in questo caso la formula utilizzata è: counter = counter 2 + priority (2.1) Cosi si premiano i processi I/Obound. Per capire meglio come lo scheduler premia i processi CPU Bound facciamo un piccolo esempio. Alla fine di un epoca si ha il seguente scenario: 2 Nelle vecchie versioni del kernel questo termine indicava il numero di tick del timer, invece nelle ultime versioni vale 10ms

22 12 CAPITOLO 2. LINUX E LO SCHEDULING Tabella 2.1: Tabella con valori dell esempio per lo scheduler Linux 2.4 Processo Counter Priority P P P Supponiamo che nessuno dei tre abbia il valore priority variato tramite nice (ovvero per tutti e 3 è 20). Ora all inizio della nuova epoca verranno assegnati nuovi quanti di tempo secondo la formula nell equazione 2.1, vediamo che valori assumeranno: P 1.counter = 10 2 P 2.counter = = = 30 P 3.counter = = 20 2 Come possiamo vedere il processo P2, che ha utilizzato meno CPU degli altri (si riconosce dal valore del campo counter), è stato premiato con un nuovo quanto di tempo maggiore rispetto agli altri processi. Mentre P3, che ha il suo quanto lo ha esaurito, è stato penalizzato e ha ricevuto una porzione minima del quanto di tempo Tutti i processi che sono schedulati con SCHED OTHER gli si assegna una prioritá statica pari a 0, mentre quella dinamica è assegnata come sopra. Mentre i processi real-time hanno una prioritá statica che assegnata fra i valori 1 e 99, e questa non cambia mai durante l esecuzione del processo. I passi che segue la funzione schedule() sono i seguenti: Completa eventuali system call in corso Se si tratta di un processo con SCHED RR ed ha esaurito il suo quanto viene rimesso in fondo alla coda, e gliene viene assegnato uno nuovo. Si analizza la coda dei processi pronti per selezionare quale è il prossimo ad essere eseguito mediante la funzione goodness. Questa se é in grado di scegliere il nuovo task ne prepara l esecuzione, altrimenti inizia una nuova epoca. La funzione goodness può tornare i seguenti valori: 1. c = 1000 Indica che questo processo non deve essere mai selezionato, e questo si verifica se nella runqueue corrente ci sta il solo processo init. 2. c = 0 Il processo ha terminato il suo quanto, a meno che il processo non sia il primo della sua lista e tutti gli altri process hanno esaurito il loro quanto, questo non verra selezionato.

23 2.2. LO SCHEDULING IN LINUX < c < 1000 Si tratta di un normale processo che non ha terminato il proprio quanto. Più è alto questo valore, e meglio è. 4. c >= 1000 Si tratta di un processo realtime. I problemi di questo approccio sono i seguenti: Le prestazioni del kernel degradano all aumentare del numero di processi In sistemi con carico elevato il valore definito per il quanto può essere troppo grande. Il supporto fornito per i processi RealTime non é ottimale. O(1) Scheduler É lo scheduler introdotto a partire dalla versione 2.6 che è rimasto fino alla Chiamato anche Constant Time Scheduling e cerca di occuparsi di alcuni problemi del vecchio scheduler. Il nome deriva dalla notazione asintotica usata spesso nel calcolo della complessita degli algoritmi. Questo tipo di scheduler utilizza due code di esecuzione per lo stato STATE RUNNING: active ed expired. La prima coda, contiene i task pronti per essere eseguiti che ancora non hanno consumato il loro quanto di tempo. La seconda invece contiene quelli che hanno ancora lo stato di TASK RUNNING ma che ha svuotato il suo quanto di tempo. Ogni CPU ha le sue code active ed expired 3, tutti i task in una CPU iniziano dalla coda active, e appena terminano il loro quanto, questi vengono messi nella coda expired. Se nella coda dei processi attivi non ci sono più task che si possono eseguire, le 2 code (active ed expired) vengono scambiate. Quando un processo finisce il suo quanto, e viene messo nella coda expired, gli viene riassegnato anche un nuovo timeslice. La chiave di questo algoritmo, da cui ne deriva anche il nome, è proprio nel ricalcolo delle timeslice. Infatti dal momento che il nuovo quanto di tempo viene calcolato quando un processo lascia la coda degli active per quella degli expired, non si verifica mai il caso in cui tutti i task necessitino contemporaneamente del ricalcolo delle timeslice, che avrebbe una complessita pari ad O(n), invece essendo fatto di volta in volta sui singoli processi, ed essendo scambiate le liste di volta in volta, si evitano tutte le operazioni che potrebbero richiedere una complessita di tipo O(n), e si ha quindi una complessita costante. Le priorità dei processi normali vanno, come gia detto in precedenza, da 140 (livello più basso) a 100 (quello piú alto). Queste priorità sono anche usate per ottenere il quanto di tempo per il singolo processo. 3 dette runqueue

24 14 CAPITOLO 2. LINUX E LO SCHEDULING Quando il processo si sposta nella coda degli expired, allora il nuovo quanto di tempo è calcolato come segue: { (140 static priority) 20 se static priority < 120 basetimequantum = (140 static priority) 5 se static priority 120 Cosi il valore del quanto di tempo base è dato dalla priorità statica, e più è alta la priorità, maggiore è il quanto di tempo che gli viene assegnato. Quando lo scheduler prende un nuovo task per metterlo in esecuzione usa invece la Priorità dinamica Il kernel utilizza la priorità statica solamente come punto di partenza, e la adatta in base al comportamento del task. Per farlo utilizza un bonus, che viene calcolato basandosi su quanto è il tempo medio di sleep per un dato processo e può variare da 0 a 10 compreso. La priorità dinamica è cosi calcolata: dynamic priority = max (100, min (staticpriority bonus + 5, 139)) Il valore bonus è calcolato secondo la seguente formula: CURRENT_BONUS(p)=(NS_TO_JIFFIES((p)->sleep_avg)*MAX_BONUS/MAX_SLEEP_AVG) Cioè converte il tempo medio del processo di sleep in Jiffies, lo moltiplica per il massimo bonus ottenibile e lo divide per il tempo medio di sleep massimo (questo valore indica il tempo massimo che può raggiungere il valore sleep avg ed equivale a 10 9 ns, ovvero 1 secondo). Infine il kernel divide i tasks in due tipi: Interattivi e batch, il primo ha bisogno di girare piuttosto velocemente, ma non necessita di molto tempo. I secondi invece sono normalmente processi che lavorano in background Per decidere se un task è interattivo o job si usa la seguente equazione: dynamic priority 3 static priority (2.2) Se un task soddisfa questa equazione allora si tratta di un processo interattivo. Tabella 2.2: Valori tipici di priorità per processi convenzionali Prio descr. Prio. Nice Base Time Quantum Interactivedelta Soglia sleeptime Max ms ms High ms ms Default ms ms Low ms ms Min ms ms Il valore di nice, è un altro indicatore di priorità, si tratta di un numero che va da -20 a 19. Il valore più grande corrisponde alla priorità più bassa,

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

Lo Scheduling Real Time in Linux. Universita degli studi di Roma La Sapienza Ivan Gualandri Matricola 693512 Relatore: Giorgio Richelli Lo Scheduling Real Time in Linux Universita degli studi di Roma La Sapienza Ivan Gualandri Matricola 693512 Relatore: Giorgio Richelli Scopo Motivazione Obiettivi 1) Lo scopo di questo progetto è presentare

Dettagli

Algoritmi di scheduling

Algoritmi di scheduling Capitolo 3 Algoritmi di scheduling Come caso particolare di studio, di seguito è discussa in dettaglio la politica di scheduling del sistema operativo LINUX (kernel precedente alla versione 2.6). Sono

Dettagli

Sistemi Operativi. Scheduling dei processi

Sistemi Operativi. Scheduling dei processi Sistemi Operativi Scheduling dei processi Scheduling dei processi Se più processi sono eseguibili in un certo istante il sistema deve decidere quale eseguire per primo La parte del sistema operativo che

Dettagli

Real-time EDF scheduling per il kernel FreeBSD: analisi, implementazione e risultati sperimentali

Real-time EDF scheduling per il kernel FreeBSD: analisi, implementazione e risultati sperimentali Real-time EDF scheduling per il kernel FreeBSD: analisi, implementazione e risultati sperimentali Marco Trentini m.trentini@campus.unimib.it Relatore: Dott. Sergio Ruocco Correlatore: Prof. Francesco Tisato

Dettagli

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

Lezione 6. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata. Lezione 6 Sistemi operativi 31 marzo 2015 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 15 6.1 Di cosa parliamo in questa lezione? La schedulazione 1 e caratteristiche

Dettagli

Gli stati di un processo

Gli stati di un processo Roberta Gerboni 1 Gli stati di un processo Gli stati possibili nei quali si può trovare un processo sono: Hold (parcheggio): il programma (chiamato job) è stato proposto al sistema e attende di essere

Dettagli

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

Concetti di base. Scheduling della CPU. Diagramma della durata dei CPU-burst. Sequenza Alternata di CPU Burst e I/O Burst Impossibile visualizzare l'immagine. Scheduling della CPU Concetti di base La multiprogrammazione cerca di ottenere la massima utilizzazione della CPU. L esecuzione di un processo consiste in cicli d esecuzione

Dettagli

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

Scheduling della CPU. Contenuti delle lezioni del 23 e del 26 Marzo 2009. Sequenza alternata di CPU burst e di I/O burst. Contenuti delle lezioni del 23 e del 26 Marzo 2009 Scheduling della CPU Introduzione allo scheduling della CPU Descrizione di vari algoritmi di scheduling della CPU Analisi dei criteri di valutazione nella

Dettagli

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

Diagramma delle durate dei CPU burst. Lo scheduler della CPU. Criteri di scheduling. Dispatcher Schedulazione della CPU Scheduling della CPU Introduzione allo scheduling della CPU Descrizione di vari algorimi di scheduling della CPU Analisi dei criteri di valutazione nella scelta di un algoritmo

Dettagli

Lo scheduler di UNIX (1)

Lo scheduler di UNIX (1) 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

Dettagli

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

Capitolo 5: Scheduling della CPU! Scheduling della CPU! Concetti di Base! Alternanza di Sequenze di CPU- e I/O-Burst! Capitolo 5: Scheduling della CPU Criteri di Scheduling Algoritmi di Scheduling Cenni Scheduling per sistemi multprocessore Modelli Asimmetrico e Simmetrico Scheduling della CPU 5.2 Concetti di Base Alternanza

Dettagli

Università degli Studi di Milano Bicocca Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea Specialistica in Informatica

Università degli Studi di Milano Bicocca Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea Specialistica in Informatica Università degli Studi di Milano Bicocca Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea Specialistica in Informatica Real-time EDF scheduling per il kernel FreeBSD: analisi, implementazione

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 3 Martedì 15-10-2013 1 Struttura ed organizzazione software dei sistemi

Dettagli

Lezione R14. Sistemi embedded e real-time

Lezione R14. Sistemi embedded e real-time Lezione R14 Sistemi embedded e 22 gennaio 2013 Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata SERT 13 R14.1 Di cosa parliamo in questa lezione? In

Dettagli

Scheduling della CPU

Scheduling della CPU Scheduling della CPU Scheduling della CPU Concetti fondamentali Criteri di scheduling Algoritmi di scheduling Scheduling dei thread Scheduling multiprocessore Scheduling real time Scheduling in Linux Valutazione

Dettagli

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

Scheduling Introduzione Tipi di scheduler Scheduler di lungo termine (SLT) Scheduler di medio termine (SMT) Scheduler di breve termine (SBT) Scheduling Introduzione Con scheduling si intende un insieme di tecniche e di meccanismi interni del sistema operativo che amministrano l ordine in cui il lavoro viene svolto. Lo Scheduler è il modulo

Dettagli

Lo scheduling. Tipici schedulatori

Lo scheduling. Tipici schedulatori Lo scheduling Un processo durante la sua evoluzione è o running o in attesa di un evento. Nel secondo caso trattasi della disponibilità di una risorsa (CPU, I/O, struttura dati, ecc.) di cui il processo

Dettagli

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

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni Sistemi operativi real time basati su Linux: gestione delle risorse e dei processi. Tesina per l esame di Sistemi Operativi a cura di. Prof. Aldo Franco Dragoni Corso di laurea in Ingegneria Informatica

Dettagli

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

Sistemi Operativi. Rappresentazione e gestione delle attività e della computazione: processi e thread Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Rappresentazione e gestione delle attività e della computazione:

Dettagli

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

Un sistema operativo è un insieme di programmi che consentono ad un utente di INTRODUZIONE AI SISTEMI OPERATIVI 1 Alcune definizioni 1 Sistema dedicato: 1 Sistema batch o a lotti: 2 Sistemi time sharing: 2 Sistema multiprogrammato: 3 Processo e programma 3 Risorse: 3 Spazio degli

Dettagli

Sistemi Real-Time Ing. Rigutini Leonardo

Sistemi Real-Time Ing. Rigutini Leonardo Sistemi Real-Time Ing. Rigutini Leonardo Dipartimento di Ingegneria dell informazione Università di Siena Sistema Real-Time Sistema in cui la correttezza non dipende solamente dai valori di output ma anche

Dettagli

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base)

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base) Sistema Operativo (Software di base) Il Sistema Operativo Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei dati attraverso

Dettagli

J. Assfalg Appunti di Sistemi Operativi

J. Assfalg Appunti di Sistemi Operativi Lo scheduler di Linux (kernel 2.4) La politica di scheduling di Linux si propone il raggiungimento dei seguenti obiettivi (molti dei quali sono in contrasto): timesharing gestione di priorità dinamiche

Dettagli

Lezione T8 Gli scheduler CPU di Linux

Lezione T8 Gli scheduler CPU di Linux Lezione T8 Gli scheduler CPU di Linux Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2013/2014 Dipartimento di Scienze Fisiche, Informatiche e Matematiche Università di Modena e Reggio Emilia http://weblab.ing.unimo.it/people/andreolini/didattica/sistemi-operativi

Dettagli

Sistemi Operativi Kernel

Sistemi Operativi Kernel Approfondimento Sistemi Operativi Kernel Kernel del Sistema Operativo Kernel (nocciolo, nucleo) Contiene i programmi per la gestione delle funzioni base del calcolatore Kernel suddiviso in moduli. Ogni

Dettagli

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

Definizione di processo. Un processo è un programma (o una parte di una programma) in corso di esecuzione SISTEMI OPERATIVI (parte prima - gestione dei processi) Tra i compiti di un sistema operativo sicuramente troviamo i seguenti: Gestione dei processi Gestione della memoria Gestione del file-system Ci occuperemo

Dettagli

CAP. 6: Nucleo del sistema operativo (La gestione dei processi)

CAP. 6: Nucleo del sistema operativo (La gestione dei processi) Struttura interna del sistema operativo Linux CAP. 6: Nucleo del sistema operativo (La gestione dei processi) Architettura del sistema operativo shell Programmi utente Modo utente Interfaccia delle chiamate

Dettagli

Infrastrutture Software

Infrastrutture Software Infrastrutture Software I componenti fisici di un sistema informatico sono resi accessibili agli utenti attraverso un complesso di strumenti software finalizzati all utilizzo dell architettura. Si tratta

Dettagli

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

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

Dettagli

Il supporto al Sistema Operativo

Il supporto al Sistema Operativo Il supporto al Sistema Operativo Obiettivi e funzioni del S.O. Il Sistema Operativo è il software che controlla l esecuzione dei programmi e amministra le risorse del sistema. Ha due obiettivi principali:

Dettagli

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

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. I Sistemi Operativi Il Software di Base Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. Il sistema operativo è il gestore di tutte le risorse

Dettagli

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

Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job. Di cosa parliamo in questa lezione? Lezione 4 Cosa è un processo e come viene gestito dal SO 1 e job 2 Il blocco di controllo Sistemi operativi 3 Struttura di un file eseguibile 4 La schedulazione dei

Dettagli

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

Scheduling. Dipartimento di Informatica Università di Verona, Italy. Sommario Scheduling Dipartimento di Informatica Università di Verona, Italy Sommario Concetto di scheduling Tipi di scheduling Lungo termine Breve termine (scheduling della CPU) Medio termine Scheduling della CPU

Dettagli

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

Scheduling. Lo scheduler è la parte del SO che si occupa di Scheduling Lo scheduler è la parte del SO che si occupa di decidere quale fra i processi pronti può essere mandato in esecuzione L algoritmo di scheduling (la politica utilizzata dallo scheduler) ha impatto

Dettagli

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

Lez. 4 Lo scheduling dei processi. Corso: Sistemi Operativi Danilo Bruschi Sistemi Operativi Lez. 4 Lo scheduling dei processi 1 Cicli d'elaborazione In ogni processo i burst di CPU si alternano con i tempi di I/O 2 Uso tipico di un calcolatore 3 CPU-bound e I/O-bound Processi

Dettagli

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

5. Scheduling della CPU. 5.1 Concetti Fondamentali. 5.1.2. Lo scheduler della CPU 5. Scheduling della CPU 1 Il multitasking e il time sharing (quando è usato) cercano di massimizzare l utilizzo della CPU. Per questo, il progettista del SO deve stabilire delle regole per decidere, quando

Dettagli

5. Scheduling della CPU

5. Scheduling della CPU 1 5. Scheduling della CPU Il multitasking e il time sharing (quando è usato) cercano di massimizzare l utilizzo della CPU. Per questo, il progettista del SO deve stabilire delle regole per decidere, quando

Dettagli

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

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata

Dettagli

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

SISTEMI OPERATIVI. Gestione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 13/05/2007 2007 SISTEMI OPERATIVI Gestione dei processi Domande di verifica Luca Orrù Centro Multimediale Montiferru 13/05/2007 Gestione dei processi 1. Qual è la differenza tra un programma e un processo? Un programma

Dettagli

Implementazione di sistemi real time

Implementazione di sistemi real time Implementazione di sistemi real time Automazione 28/10/2015 Vincenzo Suraci STRUTTURA DEL NUCLEO TEMATICO HARDWARE ABSTRACTION LAYER IMPLEMENTAZIONE EVENT-DRIVEN IMPLEMENTAZIONE TIME-DRIVEN SISTEMI DI

Dettagli

Processi e Thread. Scheduling (Schedulazione)

Processi e Thread. Scheduling (Schedulazione) Processi e Thread Scheduling (Schedulazione) 1 Scheduling Introduzione al problema dello Scheduling (1) Lo scheduler si occupa di decidere quale fra i processi pronti può essere mandato in esecuzione L

Dettagli

Lezione T6 Scheduling e dispatching

Lezione T6 Scheduling e dispatching Lezione T6 Scheduling e dispatching Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2013/2014 Dipartimento di Scienze Fisiche, Informatiche e Matematiche Università di Modena e Reggio Emilia http://weblab.ing.unimo.it/people/andreolini/didattica/sistemi-operativi

Dettagli

Scheduling. Livelli Algoritmi

Scheduling. Livelli Algoritmi Scheduling Livelli Algoritmi Introduzione Lo scheduling Ha lo scopo di decidere quale processo eseguire in un dato istante Si realizza mediante un componente specifico del sistema operativo Lo scheduler

Dettagli

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

Scheduling della CPU. Concetti base. Criteri di Scheduling. Algoritmi di Scheduling Scheduling della CPU Concetti base Criteri di Scheduling Algoritmi di Scheduling 1 Scheduling di processi Obbiettivo della multiprogrammazione: esecuzione contemporanea di alcuni processi in modo da massimizzare

Dettagli

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1 SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

Linux I/O Scheduling overview

Linux I/O Scheduling overview Linux I/O Scheduling overview Roberto Vela 09/11/2013 www.nalug.net Roadmap Perché lo scheduling? Perché lo scheduling dell'i/o è importante? Principi dello scheduling I/O Scheduling del disco Disk scheduling

Dettagli

Lo schedulatore del kernel

Lo schedulatore del kernel Lo schedulatore del kernel Lo schedulatore Lo schedulatore è un programma del kernel che si occupa di scegliere un processo/lavoro che ha richiesto una risorsa. Lo schedulatore a lungo termine LTS è quello

Dettagli

Gianluigi Magnasco easitec S.r.l. Parma, 16 Settembre 2010

Gianluigi Magnasco easitec S.r.l. Parma, 16 Settembre 2010 Soft Control facile con RTX e Windows Embedded Standard 7 RTX 2009: funzionalità ed uso pratico Gianluigi Magnasco easitec S.r.l. Parma, 16 Settembre 2010 Definizione di Sistema Tempo Reale: Definizione

Dettagli

RTAI e scheduling. Andrea Sambi

RTAI e scheduling. Andrea Sambi RTAI e scheduling Andrea Sambi Scheduling Linux Due politiche di scheduling priority-driven possibili. FIFO priorità uguali Processo 1 iniziato Processo 1: iterazione 1 Processo 1: iterazione 2 Processo

Dettagli

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

SISTEMI OPERATIVI. Schedulazione della CPU. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II) SISTEMI OPERATIVI (MODULO DI INFORMATICA II) Schedulazione della CPU Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università degli Studi di Bergamo a.a. 2012-13 Sommario Concetti base

Dettagli

Sistemi Operativi. Schedulazione della CPU

Sistemi Operativi. Schedulazione della CPU Sistemi Operativi (modulo di Informatica II) Schedulazione della CPU Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Concetti di base Come si realizza il multi-tasking Come si

Dettagli

Scheduling. Scheduling 14/12/2003 1/7

Scheduling. Scheduling 14/12/2003 1/7 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

Dettagli

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

Scheduling. Sistemi Operativi e Distribuiti A.A. 2004-2005 Bellettini - Maggiorini. Concetti di base Scheduling Sistemi Operativi e Distribuiti A.A. 2-25 Bellettini - Maggiorini Concetti di base Il massimo utilizzo della CPU si ottiene mediante la multiprogrammazione Ogni processo si alterna su due fasi

Dettagli

Processi. Laboratorio Software 2008-2009 C. Brandolese

Processi. Laboratorio Software 2008-2009 C. Brandolese Processi Laboratorio Software 2008-2009 Introduzione I calcolatori svolgono operazioni simultaneamente Esempio Compilazione di un programma Invio di un file ad una stampante Visualizzazione di una pagina

Dettagli

Il Concetto di Processo

Il Concetto di Processo Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono

Dettagli

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli

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

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Sistemi Operativi SCHEDULING DELLA CPU

Sistemi Operativi SCHEDULING DELLA CPU Sistemi Operativi SCHEDULING DELLA CPU Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling

Dettagli

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario Processi e thread Dipartimento di Informatica Università di Verona, Italy Sommario Concetto di processo Stati di un processo Operazioni e relazioni tra processi Concetto di thread Gestione dei processi

Dettagli

Principi di Schedulazione in tempo reale

Principi di Schedulazione in tempo reale Principi di Schedulazione in tempo reale 1 Task in tempo reale Un task t i è una sequenza di processi in tempo reale τ ik ciascuno caratterizzato da q un tempo d arrivo r ik (r=release time, oppure a=arrival

Dettagli

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio)

GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio) GENERAZIONE PROCESSO FIGLIO (padre attende terminazione del figlio) #include void main (int argc, char *argv[]) { pid = fork(); /* genera nuovo processo */ if (pid < 0) { /* errore */ fprintf(stderr,

Dettagli

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

Mul&programmazione. Ges&one dei processi. Esecuzione parallela. MAC OSX Monitoraggio a9vità. Linux System monitor. Windows Task Manager. A. Mul&programmazione Ges&one dei processi A. Ferrari Tu9 i Sistemi Opera&vi moderni sono in grado di eseguire contemporaneamente più di un programma Il numero di programmi in esecuzione è superiore al numero

Dettagli

Embedded Software Sviluppo di uno Scheduler di base per PIC18. Tutorial. Embedded Software. Sviluppo di uno Scheduler di base per PIC18.

Embedded Software Sviluppo di uno Scheduler di base per PIC18. Tutorial. Embedded Software. Sviluppo di uno Scheduler di base per PIC18. Tutorial Embedded Software Sviluppo di uno Scheduler di base per PIC18 Pagina 1 Sommario 1. INTRODUZIONE... 3 2. COSA CI SERVE?... 3 3. UN PO DI TEORIA... 4 4. DALLA TEORIA ALLA PRATICA... 5 5. IMPLEMENTAZIONE...

Dettagli

Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia

Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Introduzione: 1. Principi di base dei sistemi operativi 2. Sistemi

Dettagli

1.5: Gestione dei Processi e della CPU

1.5: Gestione dei Processi e della CPU 1.5: Gestione dei Processi e della CPU Concetto di Processo Multitasking Operazioni sui processi Stati di un processo Eventi e risorse Context switch Scheduling dei processi A breve termine A medio/lungo

Dettagli

Algoritmi di scheduling

Algoritmi di scheduling Capitolo 2 Algoritmi di scheduling 2.1 Sistemi Real Time In un sistema in tempo reale (real time) il tempo gioca un ruolo essenziale. Le applicazioni di tali sistemi sono molteplici e di larga diffusione.

Dettagli

Dipartimento di Informtica e Sistemistica Università di Roma La Sapienza

Dipartimento di Informtica e Sistemistica Università di Roma La Sapienza Dipartimento di Informtica e stica Università di Roma La Sapienza Cosa è un sistema operativo Esempi di Insieme di componenti SW che gestiscono le operazioni di basso livello dell elaboratore Compiti di

Dettagli

Sistemi Operativi. ugoerr+so@dia.unisa.it 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Sistemi Operativi. ugoerr+so@dia.unisa.it 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08 Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione Introduzione

Dettagli

Parte VI SISTEMI OPERATIVI

Parte VI SISTEMI OPERATIVI Parte VI SISTEMI OPERATIVI Sistema Operativo Ogni computer ha un sistema operativo necessario per eseguire gli altri programmi Il sistema operativo, fra l altro, è responsabile di riconoscere i comandi

Dettagli

Scheduling della CPU

Scheduling della CPU Scheduling della CPU Scheduling della CPU Concetti fondamentali Criteri di scheduling Algoritmi di scheduling Scheduling dei thread Scheduling multiprocessore Scheduling real time Scheduling in Linux Valutazione

Dettagli

Lezione 10. Scheduling nei sistemi multiprocessori. Esempio: P=2 processori. Scheduling dei processi

Lezione 10. Scheduling nei sistemi multiprocessori. Esempio: P=2 processori. Scheduling dei processi Lezione 10 Cenni ai sistemi operativi distribuiti 2. Gestione della CPU e della memoria nei multiprocessori Gestione dei processi Scheduling Bilanciamento del carico Migrazione dei processi Gestione della

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 3-Schedulazione 1 Prerequisiti Concetto di media Concetto di varianza 2 1 Introduzione Come sappiamo, l assegnazione della CPU ai processi viene gestita dal nucleo, attraverso

Dettagli

Algoritmi di scheduling - Parte 2

Algoritmi di scheduling - Parte 2 Algoritmi di scheduling - Parte 2 Automazione I 12/11/2013 Vincenzo Suraci STRUTTURA DEL NUCLEO TEMATICO ALGORITMO DEADLINE MONOTONIC PRIORITY ORDERING (DMPO) ALGORITMO TIMELINE SCHEDULING (TS) SCHEDULING

Dettagli

Trasparenze del Corso di Sistemi Operativi

Trasparenze del Corso di Sistemi Operativi Università di Udine Facoltà di Scienze MM.FF.NN. Laurea in TWM A.A. 2015/16 Trasparenze del Corso di Sistemi Operativi Marina Lenisa Università di Udine Copyright c 2000-04 Marino Miculan (miculan@dimi.uniud.it)

Dettagli

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

6 CPU Scheduling. 6.1 Concetti Fondamentali dello Scheduling della CPU. 6.1 Concetti Fondamentali 1 6 CPU Scheduling La gestione della CPU (soltanto) può rendere la multi-programmazione più efficiente della mono-programmazione Infatti, la multiprogrammazione permette di ottenere l utilizzazione massima

Dettagli

Sistemi operativi e reti A.A. 2015-16. Lezione 2

Sistemi operativi e reti A.A. 2015-16. Lezione 2 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 2 Giovedì 8-10-2015 Sistemi batch multiprogrammati La causa principale

Dettagli

Scheduling della CPU

Scheduling della CPU Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux 6.1 Sistemi multiprocessori simmetrici Fin qui si sono trattati i problemi di scheduling

Dettagli

Corso di Informatica

Corso di Informatica CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Funzioni dei Sistemi Operativi!2 Le funzioni principali del SO Gestire le risorse dell elaboratore

Dettagli

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

Pag. 1. Introduzione allo scheduling. Concetti fondamentali. Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Algoritmi. Concetti fondamentali Scheduling della CU Introduzione allo scheduling Uno degli obbiettivi della multiprogrammazione è quello di massimizzare l utilizzo delle risorse e in particolare della CU er raggiungere

Dettagli

Capitolo 6: CPU scheduling

Capitolo 6: CPU scheduling Capitolo 6: CPU scheduling Concetti di base. Criteri di schedulazione. Gli algoritmi di schedulazione. Schedulazione per sistemi multiprocessore. Schedulazione per sistemi in tempo reale. Schedulazione

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella La Complessità del Hardware Il modello di Von Neumann è uno schema di principio. Attualmente in commercio esistono:

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 5 Martedì 21-10-2014 Thread Come abbiamo detto, un processo è composto

Dettagli

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

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti GESTIONE DEI PROCESSI 4.1 Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in diversi S.O. 4.2 Concetto di

Dettagli

INFORMATICA. INFORmazione automatica

INFORMATICA. INFORmazione automatica INFORMATICA INFORmazione automatica Insieme di discipline e tecniche per rappresentare, elaborare e trasmettere automaticamente delle informazioni. Computer - Elaboratore elettronico: e macchina concepita

Dettagli

SCHEDULATORI DI PROCESSO

SCHEDULATORI DI PROCESSO Indice 5 SCHEDULATORI DI PROCESSO...1 5.1 Schedulatore Round Robin...1 5.2 Schedulatore a priorità...2 5.2.1 Schedulatore a code multiple...3 5.3 Schedulatore Shortest Job First...3 i 5 SCHEDULATORI DI

Dettagli

Scheduling della CPU (2) CPU bursts (2)

Scheduling della CPU (2) CPU bursts (2) Scheduling della CPU (1) - La gestione delle risorse impone al SO di prendere decisioni sulla loro assegnazione in base a criteri di efficienza e funzionalità. - Le risorse più importanti, a questo riguardo,

Dettagli

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli

Introduzione ai sistemi operativi

Introduzione ai sistemi operativi Introduzione ai sistemi operativi Che cos è un S.O.? Shell Utente Utente 1 2 Utente N Window Compilatori Assembler Editor.. DB SOFTWARE APPLICATIVO System calls SISTEMA OPERATIVO HARDWARE Funzioni di un

Dettagli

Sistemi Operativi: Sistemi realtime

Sistemi Operativi: Sistemi realtime 1 Sistemi Operativi: Sistemi realtime Amos Brocco, Ricercatore, DTI / ISIN 30 luglio 2012 Basato su: [STA09] Operating Systems: Internals and Design Principles, 6/E, William Stallings, Prentice Hall, 2009

Dettagli

Linux e il real time in applicazioni spaziali

Linux e il real time in applicazioni spaziali Linux e il real time in applicazioni spaziali ESA-ESTEC TEC-SWE Seminario nell ambito del corso di Sistemi Operativi in Tempo Reale tenuto dal Prof. Aldo Franco Dragoni Contenuti Introduzione Linux e il

Dettagli

Sistemi di Elaborazioni delle Informazioni I

Sistemi di Elaborazioni delle Informazioni I Sistemi di Elaborazioni delle Informazioni I Docente: Marco Aldinucci aldinuc@di.unito.it http://www.di.unito.it/~aldinuc Ricevimento: Su appuntamento Esercitatore: Fabio Tordini tordini@di.unito.it 1

Dettagli

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007 2007 SISTEMI OPERATIVI Gestione della memoria Domande di verifica Luca Orrù Centro Multimediale Montiferru 18/06/2007 Gestione della memoria 1. Si descriva il concetto di memoria virtuale (esame del 19-06-2006)

Dettagli

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

Scheduling della CPU. Concetti fondamentali. Concetti fondamentali. Concetti fondamentali. Dispatcher. Scheduler della CPU Scheduling della CPU Concetti fondamentali Criteri di scheduling Algoritmi di scheduling Concetti fondamentali L obiettivo della multiprogrammazione è di avere processi sempre in esecuzione al fine di

Dettagli

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano

scheduling Riedizione modifi cata delle slide della Prof. DI Stefano scheduling Riedizione modifi cata delle slide della Prof. DI Stefano 1 Scheduling Alternanza di CPU burst e periodi di I/O wait a) processo CPU-bound b) processo I/O bound 2 CPU Scheduler Seleziona uno

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

Dettagli

Linux nei sistemi Real-Time. Andrea Sambi

Linux nei sistemi Real-Time. Andrea Sambi Linux nei sistemi Real-Time Andrea Sambi Sistemi Real-Time Sistema Real-Time (RT) non è sinonimo di sistema veloce. Un Processo Real-Time deve terminare rispettando i vincoli temporali (le deadline) stabiliti

Dettagli