Algoritmi per lo scheduling di task real-time su piattaforme multicore

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Algoritmi per lo scheduling di task real-time su piattaforme multicore"

Transcript

1 Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Sistemi Real Time Algoritmi per lo scheduling di task real-time su piattaforme multicore Anno Accademico 2014/2015 Candidato: Federico Gargiulo matr. N

2 Ai ragazzi della Capricorni, ma soprattutto a tutti gli arrivisti incontrati

3 Indice Indice... III Introduzione... 4 Capitolo 1: Panoramica Terminologia Problematiche delle piattaforme Multicore Capitolo 2: La prelazione nelle piattaforme multicore System Model, Assunzioni e Notazioni Policy e algoritmo di MPN Analisi di schedulabilità degli algoritmi MPN-* Capitolo 3: Algoritmo di scheduling PAS-SRTMS Capitolo 4: Bilanciamento del carico computazionale System Model, Assunzioni e Notazioni Scheduler Real-Time di Partizionamento Load Balancing Based Task Partitioning (LBTP) Schedulabilità in LBTP Capitolo 5: Applicazioni Mixed-Criticality Time-Triggered and Synchronisation-based strategy (TTS) Policy Schedulabilità e certificazione in TTS Conclusioni Bibliografia... 32

4 Introduzione I sistemi real-time sono quei sistemi il cui corretto funzionamento dipende anche dal tempo di risposta. Non basta, quindi, che la logica operazionale sia esatta ma è necessario anche che le operazioni vengano compiute nel rispetto di vincoli temporali ben definiti. Molteplici sono i settori di impiego: nel controllo di produzioni industriali, nell'ingegneria biomedica, nell'aviazione, nelle telecomunicazioni, nella sorveglianza ambientale etc. Il grado di affidabilità da garantire è spesso tanto elevato da far obbligo al progettista di ricorrere a tecniche di programmazione ad hoc allo scopo di avere un controllo maggiore del sistema. Vengono spesso usate tecniche di progetto più accurate, metodologie di analisi statica del codice sorgente, e meccanismi per la gestione della variabile tempo. A questo va aggiunto che la progettazione deve essere tale da garantire il perfetto funzionamento anche a fronte della peggiore combinazione possibile di eventi. Ai fini progettuali, un sistema di tipo real-time dovrà essere per così dire prevedibile. Nulla dovrà essere lasciato al caso e i tempi di reazione di ciascun componente dovranno essere sempre predicibili. Per semplicità di progettazione vengono spesso adottati calcolatori meno complessi, in genere mono core, e sistemi operativi minimali. Oggi, però, la crescente richiesta di maggiori performance, in termini temporali e di calcolo, assieme all'esplosione del mercato dei processori multicore hanno attirato l'attenzione della comunità scientifica sulla ricerca di nuove tecniche per lo scheduling di task real-time. Oltretutto bisogna ricordare che il parallel computing ormai è ovunque. Le architetture multicore stanno dominando il mercato e trovano largo impiego in sistemi che vanno dagli embedded, ai personal computer fino ai supercalcolatori ad alte performance. Le tecnologie hardware hanno però mantenuto un passo diverso da quelle software. Le CPU multicore necessitano di tecniche di programmazione ovviamente diverse da quelle monocore, ma soprattutto il calcolo in parallelo e la gestione esplicita della memoria aggiungono complessità alla progettazione dei sistemi. Una complessità che si ripercuote 4

5 per forza di cose anche nei sistemi real-time, dove certamente non è possibile lasciare nulla al caso. Un po' sospinti dai mutamenti del mercato hardware e un po' costretti dalle esigenze di applicazione, l'attenzione dei team di ricerca sui sistemi real-time si è spostata per gran parte anche sulle piattaforme multicore. 5

6 Capitolo 1: Panoramica La bontà di un sistema di calcolo è data da una molteplicità di fattori che vanno da caratteristiche fisiche, ai meccanismi di nucleo, fino agli applicativi. Ovviamente i meccanismi di gestione dell'hardware devono essere accompagnati da modelli matematici precisi che permettono di avere una stima dei comportamenti del sistema a tutti i possibili stimoli in ingresso. Questo pieno controllo può essere possibile solo attraverso un'adeguata chiaroveggenza da parte degli algoritmi software di controllo. Questa prevedibilità diventa così il cardine dell'intero apparato. Affinché un sistema possa essere adottato in un contesto particolarmente delicato, nelle procedure ciascun parametro temporale dovrà essere noto a priori e perché si possano anticipare i comportamenti, è indispensabile che essi siano descritti da un modello matematico esatto che tenga conto anche dei peggiori scenari di esecuzione. Arriviamo dunque a capire la motivazione che spinge i progettisti ad adottare configurazioni fisiche semplici (e spesso anche non recenti) nelle quali vengono disabilitati dispositivi e meccanismi che introducono aleatorietà nei comportamenti, come Cache, DMA, Interrupt etc. E' ovvio che non tutti i casi applicativi richiedano garanzie troppo forti, anzi può capitare che i tempi di risposta siano importanti ma non tanto da inficiare la sicurezza di chi ne fa uso. Garantire una maggiore affidabilità comporta maggiori costi di sviluppo e produzione, dei costi che alla fine saranno a carico del cliente, motivo per cui non sempre è necessario adottare strategie eccessivamente drastiche per il design del sistema. Altre volte invece su uno stesso apparato può essere utile integrare sistemi di diverso grado di affidabilità, ad esempio basti pensare che può tornare utile aggiungere anche un'interfaccia utente per il controllo di alcuni parametri o per avere semplicemente la possibilità di leggere dei report dal sistema. E' facile pensare che ad una interfaccia utente non sarà riservata la stessa attenzione rivolta alla parte che si interessa del controllo vero e proprio, quindi i vincoli temporali non assumeranno la medesima importanza. Dal momento che il mercato lascia spazio a tipologie di sistemi real-time i cui vincoli sono 6

7 meno stringenti, la comunità scientifica sta partorendo nuovi algoritmi per gestire processi Real-Time anche su piattaforme multicore, la cui adozione solo fino a qualche anno fa poteva sembrare utopica. Dei primi modelli matematici per il dimensionamento software sono stati introdotti ma non soddisfano ancora appieno tutti i gradi di affidabilità (o di calcolo) richiesti dal mercato. Oltretutto l'introduzione di CPU multicore ha aperto molte strade ancora da percorrere e nuove problematiche, alle quali un prima soluzione si è iniziata a dare. In questo lavoro ci soffermeremo sugli ultimi sviluppi in questo campo e faremo una fotografia dello state-of-art, trattando dapprima la terminologia tecnica usata, successivamente introducendo le problematiche affrontate e in fine entrando nel dettaglio di alcune soluzioni proposte. Passiamo quindi ad introdurre alcuni concetti chiave. 1.1 Terminologia Task. Con la parola Task intendiamo una sequenza di istruzioni che viene eseguita dal processore in modo continuativo fino al suo completamento. Spesso viene tradotto in Italiano con la parola Processo. Scheduler. Col termine scheduler si intende l'algoritmo che, presi in ingresso un insieme di Task, definisce un ordine gerarchico per l'accesso alle risorse (siano esse fisiche o virtuali) allo scopo di conseguire, in modo efficiente, un coordinamento tra i processi in esecuzione. Questo algoritmo può essere ottimizzato per scopi diversi. Ad esempio un sistema operativo per un utente client sarà caratterizzato da tempi di attesa per l'utente nettamente inferiori rispetto ad un sistema operativo server. Questi tempi di attesa sono una diretta conseguenza delle politiche di scheduling. Vincoli su risorse. Alcune risorse, siano esse istruzioni, dati o quant'altro, possono essere mutuamente esclusive, questo comporta che un task che voglia farvi accesso deve sottostare ad una policy di scheduling che garantisca un coordinamento tale da 7

8 impedire più accessi in contemporanea e mantenere la consistenza delle strutture dati interne. Queste tipologie di risorse prendono il nome di risorse mutuamente esclusive e le relative porzioni di codice, il cui accesso è sempre mutuamente esclusivo, prendono il nome di sezioni critiche. Rispettare un vincolo su risorsa significa quindi sincronizzare i processi che tentano un accesso simultaneo, al fine di consentire un uso della struttura dati condivisa, mutuamente esclusivo. Stati di un processo. Si considerino due processi J 1 e J 2, che utilizzano una struttura dati condivisa. Supponiamo che i due processi possano subire preemption, ossia una sospensione dovuta a una prelazione di task più importanti, e supponiamo che J 1 sia più importante di J 2. In queste condizioni, se il task J 2 viene attivato per primo, e J 1 arriva quando J 2 è all'interno della sezione critica, si ha la situazione riportata in figura 1.1 Nell'istante t 2, il processo J 1 tenta di entrare nella sezione critica occupata dal processo J 2. Il sistema blocca l'accesso di J 1 per garantire la mutua esclusione sulla risorsa e restituisce il processore a J 2. J 1 può riprendere l'esecuzione solo quando, all'istante t 2, J 2 libera la sezione critica. I processi in attesa di risorse condivise occupate si dicono bloccati sulla risorsa, e vengono accodati in una coda associata al meccanismo di protezione della risorsa. Il 8

9 sistema operativo deve prevedere uno stato apposito per la sospensione dei processi bloccati su risorse, che chiameremo stato dei processi bloccati (BLOCKED). Un processo entra nello stato BLOCKED ogni volta che tenta l'accesso ad una risorsa occupata e ne esce quando la risorsa viene liberata. Scheduler Real-Time. Uno scheduler viene definito di tipo Real-Time quando tiene conto di vincoli temporali dettati dal contesto di applicazione. Una schedulazione in questo caso si dice fattibile se esiste un assegnamento dei task al processore tale che tutti i task siano completati rispettando un insieme di vincoli prefissati. Un insieme di task si dice schedulabile se per esso esiste una schedulazione fattibile. Infine si definisce preemptive se il processo in esecuzione può essere sospeso in qualsiasi istante, allo scopo di assegnare il processore ad un altro task secondo una strategia prefissata. In questo caso è possibile che un processo sia eseguito in intervalli di tempo disgiunti (ovvero non consecutivi). Deadline. La parola Deadline (scadenza, in italiano) viene usata per definire un particolare vincolo temporale attribuito ad un task. Essa rappresenta il tempo 9

10 massimo entro cui un processo deve terminare la propria esecuzione al fine di non provocare malfunzionamenti nel sistema. Classificazione. Le conseguenze dettate da un missed deadline sono il discrimine con cui possiamo distinguere processi Hard Real-Time da processi Soft Real-Time. Essi hanno un grado di importanza nettamente differente, poiché nei primi una violazione temporale può avere conseguenze di elevata rilevanza (come disastri ferroviari, aerei, fallimenti di apparecchiature biomediche etc.) mentre nei secondi al più si possono avere degradi prestazionali. Un sistema operativo dotato di uno scheduler in grado di processare task Hard realtime viene definito di tipo hard, analogamente uno dotato di scheduler in grado di processare solo task Soft real-time viene definito di tipo soft. Esiste un connubio rappresentato dai sistemi Mixed-Criticality i quali si occupano di schedulare un insieme di task con differente livello di importanza. Multicore. Introduciamo adesso il concetto di CPU multicore. Per aumentare le performance dei processori, negli anni si è cercato di incrementare la frequenza di clock e conseguentemente il numero di istruzioni eseguite in un quanto di tempo. Questo approccio è stato possibile fintanto che la miniaturizzazione dei transistori e il calore dissipato dal dispositivo non sono diventati un ostacolo troppo difficile da superare. Integrare in una CPU più nuclei di calcolo ha permesso di valicare questi impedimenti, incrementando l'efficienza di calcolo e riducendo contemporaneamente anche il costo energetico. Le CPU composte da più processori fisici, i nuclei di calcolo, prendono il nome di multicore. 1.2 Problematiche delle piattaforme Multicore Come sempre, non tutto è oro quello che luccica. Le piattaforme basate su componenti di calcolo multicore hanno portato con sé una sfilza di problemi ai quali ancora oggi si sta cercando di ovviare. La crescente complessità delle componenti hardware si traduce in una più difficoltosa gestione delle risorse fisiche e virtuali. Nei Sistemi Real-Time queste 10

11 problematiche di gestione si accentuano al punto da diventare probabilmente le tematiche portanti della ricerca scientifica in questo campo. Innanzitutto i task attivi in un istante qualsiasi possono essere molteplici, quindi l'accesso alle risorse condivise deve essere regolato tenendo presente anche le richieste provenienti da più processi, a seconda della policy adottata vi sarà un vincitore e gli altri processi che hanno partecipato alla contesa si troveranno a cambiare stato, passando in quello di blocked. Non capita raramente che si abbiano contemporaneamente core liberi e molti processi in stato di blocked, causando quindi un decadimento dell'efficienza d'uso della CPU. A queste si aggiungono problematiche di tipo energetico, in quanto spesso le CPU sono capaci di adattarsi al contesto di lavoro, aumentando i livelli prestazionali. Un cattivo bilanciamento del carico computazionale aumenta la spesa energetica, uno scenario che può diventare critico in sistemi embedded che non sono collegati alla rete elettrica (ad es in dispositivi biomedici come i pacemaker). Ulteriori problemi per questo tipo di piattaforme sorgono per l'uso della memoria Cache, una memoria ad alte prestazioni di piccola quantità che viene spesso integrata nelle CPU. Un task che richiede un dato, dovrà prima cercarlo in memoria cache e se la ricerca non dovesse andare a buon fine, passare in memoria centrale, inoltre alcuni livelli di Cache, nei processori commerciali, sono spesso in comune tra i core causando un numero considerevole di competizioni per l'accesso. Entrambe possono essere delle operazioni non predicibili temporalmente e quindi fonti di non determinismo. A queste problematiche se ne aggiungono molte altre, come la gestione di bus comuni, l'uso del DMA, etc., ma che esulano dal compito di questo elaborato. 11

12 Capitolo 2: La prelazione nelle piattaforme multicore Negli ultimi anni, la maggior parte delle teorie di scheduling real-time per piattaforme multicore si è focalizzata su scheduling full-preemptive. Può capitare, però, che a seconda della natura dei task, sia necessario per alcuni di essi (anche solo una piccola parte di un set), che durante la loro esecuzione non vengano prelazionati da altri. Nei sistemi non realtime ovviamente sono state già adottate diverse soluzione ma non negli RTOS. Vale a dire che finora non vi è stata possibilità di una via di mezzo tra politiche fully-preemptive o nonpreemtive. Solo recentemente si è introdotto l' MPN (mixed preemptive/non-preemptive) policy, grazie al quale ciascun task può essere di tipo preemptive o non-preemptive. Prima di introdurre l'algoritmo vero e proprio, trattiamo brevemente le assunzioni e le notazioni da fare per il System Model dopodichè passiamo a valutare l'affidabilità di questa politica osservando il test di analisi correlato. 2.1 System Model, Assunzioni e Notazioni Ciascun task τ i Φ (insieme di tutto il set di task) è rappresentato da (T i,c i, D i ), dove T i D i è il tempo minimo tra due invocazioni successive, C i è il worst-case execution time, e è la relativa deadline. Per ciascun τ i Τ, introduciamo un parametro addizionale Y i che indica la proprietà di prelazione del rispettivo task. 2.2 Policy e algoritmo di MPN Passiamo ora a descrivere la politica di preemption di MPN. La decisione viene presa innanzitutto sulla base di un parametro Y i del task τ i. Cioè, se Y i =1 (Y i =0), un job di τ i può (o non può) essere prelazionato dagli altri job a priorità maggiore durante la sua esecuzione. Chiameremo questa politica con l'appellativo di mixed preemptive/non- 12

13 preemptive (MPN) policy. Da adesso useremo mpn-* per indicare l'algoritmo di scheduling che adotta MPN e * per indicare genericamente la sua politica di preemption o non-preemption. L'esempio riportato di seguito fornisce una descrizione di un mpn-* algoritmo di scheduling una piattaforma multicore. Dal momento che ci possono essere alcuni job non-preemptive sotto mpn-*, il Job Release avanza agli step 4 e 5 esentando gli job non-preemptive attualmente in esecuzione dall'essere prelazionati da job appena invocati. Questa è la principale differenza tra uno scheduler fp-* (algoritmi con fully-preemptive policy) a un mpn-*. L'overhead implementato da mpn-* non è significativo in quanto la maggior parte degli steps dell'algoritmo sono anche richiesti dall'algoritmo fp-*. Cioè mpn-* in aggiunta richiede la verifica della condizione di Y k=1 nello step 4 e la seconda condizione di «if» nello step 5, e la memorizzazione di un bit addizionale (Y ) k per il task. D'altronde, mentre tutti i task sotto fp-* possono essere prelazionati, soltanto alcuni task sotto mpn-* possono incorrere in preemption e migration. Quando adottiamo EDF come prioritization policy, mpn-edf determina le priorità dei job a seconda delle rispettive deadline. Perciò la deadline dei job è usata per comparare le 13

14 priorità dei job nell'algoritmo di Job Realese agli step 4 e 5 e Job Completion al primo step dell'algoritmo. D'altronde, mpn-fp determina le priorità su quelle fissate dai task, e quindi, la task priority è usata per le comparazioni. Si noti che la descrizione dell'algoritmo, per ora, soddisfa le politiche di priorità nelle quali la priorità di ciascun job non cambia nel tempo (EDF, FP etc.), tuttavia può essere esteso anche a politiche a priorità dinamica. Quindi la politica di MPN e l'algoritmo mpn-* sono delle generalizzazioni di non-preemptive e preemptive policies, e di np-* e fp-* come dichiarato nel seguente lemma. Lemma 1 : La politica MPN assume le politiche preemptive e non-preemptive, mentre gli algoritmi di scheduling mpn-edf e mpn-fp assumono np-edf e fp-edf, e np-fp e fp-fp, rispettivamente. La prova è abbasta semplice. La non-preemptive (o preemptive) policy è equivalente alla MPN policy con mpn-edf con fp-fp. Y i =0(Y i =1) Y i =0(Y i =1) per tutti i task per tutti i task τ ϕ τ ϕ e np-edf (o fp-edf) è equivalente a. Lo stesso vale per mpn-fp con np-fp e 2.3 Analisi di schedulabilità degli algoritmi MPN-* 14

15 L'analisi di schedulabilità per gli algoritmi MPN-* è data dalle due relazioni del teorema che segue. Teorema. Quando un insieme di task Φ è schedulato da un algoritmo di schedulazione mpn-*, un upper-bound del tempo di risposta di un task preemptive τ k Y k =1 Φ è R k =R k x tale che R k (x+1) R k x soddisfi la seguente espressione, partendo da R k 0 =C k x+1 R k C k + 1 m min (I k i(f x k ), F x k ) τ i εφ {τ i } E un upper-bound del tempo di risposta di un task non-preemptive τ k Y k = 0 Ф è R k = F k x + C k 1tale che F k x+1 F k x soddisfi la seguente espressione, partendo da F k 0 = 1 F k x m τ i Ф {τ k } min (I k i (F x k ), F x k ) Quindi se R k D k è soddisfatta per tutti i task τ k Ф, allora Ф è schedulabile secondo l algoritmo. 15

16 Capitolo 3: Il consumo energetico di un Sistema Real-Time può essere un fattore di particolare importanza in quei sistemi dotati di alimentazione propria e quindi non collegati ad una fonte energetica continua. L impiego di dispositivi dotati di accumulatori di corrente è in forte crescita, basti pensare che in ambito biomedico numerose protesi elettroniche funzionano per mezzo di batterie, oppure un caso analogo può essere quello di apparecchiature professionali portatili. L assorbimento energetico della CPU è spesso tra i fattori cruciali di consumo all interno di un calcolatore. La cosa si accentua nel momento in cui la complessità e le performance richieste aumentano considerevolmente, la potenza dissipata da un processore generalmente cresce in modo proporzionale alle sue performance. Spesso i processori sono in grado di adattarsi dinamicamente al contesto di lavoro, qualora non fosse richiesta un eccessiva complessità di calcolo, la frequenza di lavoro della CPU potrebbe quindi ridursi permettendo un risparmio di corrente, come accade ad esempio con la tecnologia DVFS, la quale viene implementata su gran parte delle CPU e apporta ad esse la capacità di adattare la frequenza di lavoro in base alle necessità. E facile capire che un aumento eccessivo della frequenza di clock, causa spesso un degrado dell efficienza energetica. Questa è una problematica che attanaglia ogni tipologia di CPU, sia multiprocessore che multicore. Le soluzioni che vengono adottate generalmente si dividono in due categorie: si può decidere di adottare uno scheduler partizionato, ossia per un dato task, ciascuna sua esecuzione può avvenire sempre sullo stesso core, oppure si può adottare uno scheduler di tipo globale che permette le esecuzioni di un task su core differenti, ma restano soluzioni di tipo euristiche. Un metodo di schedulazione introdotto di recente per il contenimento del consumo di energia è il Power Aware Scheduling of fixed priority tasks in Soft Real-Time Multicore System (PAS-SRTMS). La particolarità dell algoritmo PAS-SRTMS è che opera sia con uno scheduling statico (Offline method) sia uno scheduling di tipo dinamico (Online method). Grazie a tale algoritmo è possibile ridurre il consumo di potenza nei sistemi 16

17 multicore nei sistemi Soft real-time avvalendosi della tecnologia DVFS. 3.1 Algoritmo di scheduling PAS-SRTMS L algoritmo di Power Aware Scheduling of fixed priority tasks in Soft Real-Time Multicore System innanzitutto nasce per sistemi di tipo Soft Real-Time e si basa su priorità fisse assegnate attraverso tecniche come Deadline Monotonic (DM), Rate Monotonic (RM) etc. Per semplicità useremo DM, indi i task con deadline più grandi assumeranno delle priorità inferiori e viceversa. Come già detto l algoritmo può essere visto come il connubio di due metodi, offline e online. Esso consiste nello scegliere frequenze di lavoro crescenti da assegnare ai core, in modo che nello step successivo i task vengano assegnati ai core sulla base della priorità, in modo proporzionale. Il metodo offline viene usato per la ricerca e il settaggio della tensione e della 17

18 frequenza ottimale dei core. Ad esempio se prendiamo un processore con due core (core A e core B), l algoritmo dovrà dividere l insieme dei task in due categorie, quella ad alta e quella a bassa priorità. Ad esempio, nel nostro caso, usando Deadline Monotonic, vediamo in figura che alla seconda riga avviene l assegnazione delle priorità. Dalla settima inizia la procedura di settaggio della tensione e della frequenza ai core. Più in basso, alla riga 17, avviene la ricerca della tensione e della frequenza minima che al contempo garantisce la schedulabilità. Si nota che queste righe restano all interno del costrutto for della settima riga, questo vuol dire che il processo viene iterato un numero di volte sufficiente a trovare il miglior compromesso tra consumo energetico e schedulabilità. Il metodo online prende coscienza del lavoro svolto allo step precedente e si preoccupa di schedulare i task. Possiamo vedere nell esempio riportato sotto, che l algoritmo prende dalla coda Ready i task, verifica la priorità e assegna il task al core corrispondente. Viene poi effettuato un resoconto di eventuali deadline sforate e della potenza dissipata. 18

19 L algoritmo ammette la possibilità che possano capitare delle deadline misses, questo perché è impiegato per sistemi di tipo Soft Real-Time, ossia i vincoli temporali sono imposti al solo scopo di garantire un adeguato standard prestazionale e nel caso non venissero rispettati ciò non inficerebbe in alcun modo la sicurezza degli utenti o di quanti hanno contatto con il sistema. 19

20 Capitolo 4: Bilanciamento del carico computazionale Per sfruttare appieno i processori multicore, le applicazioni real-time dovrebbero fornire un elevato grado di parallelismo, grazie al quale i task real-time possono utilizzare più core in contemporanea. Per garantire delle prestazioni real-time, rendendo l uso della CPU efficiente, è richiesta una schedulazione di alta complessità capace anche di distribuire il carico in modo bilanciato su tutti i core, una caratteristica che al contempo permette di ottenere una riduzione anche dei costi energetici. Molti metodi di scheduling real-time per piattaforme multicore proposti si focalizzano sull efficacia della schedulabilità o del load balancing, ma mai su entrambi (spesso due caratteristiche mutuamente esclusive). Una prima soluzione proposta dal Computer Science Laboratory Samsung di San Josè, California, consiste in un approccio separatista, focalizzando l attenzione ai processi indipendenti per cui non ci sono chiari vincoli inter-task o relazioni. Il metodo si chiama Load Balancing based Task Partitioning (LBTP), il quale rende i task schedulabili in scenari complessi e, allo stesso tempo, fornisce un effettiva capacità di bilanciamento del carico. Il meccanismo di ripartizione dei task viene eseguito senza effettuare un test di schedulabilità durante la divisione dei processi ma con un test di bilanciamento del carico, garantendo al contempo un soddisfacente rispetto dei vincoli di deadline. Il meccanismo si ferma quando non può più effettuare operazioni di bilanciamento o quando oppure quando le migliorie sono di lieve entità e questa caratteristica riduce l overhead causato dalla ripartizione. L LBTP non si propone come il miglior algoritmo di schedulazione per piattaforme multicore ma solo come miglior compromesso tra capacità di schedulazione e bilanciamento del carico. 4.1 System Model, Assunzioni e Notazioni Consideriamo un set di Task T = {t 1, t 2,, t n }, dove n è il numero di task, e un omogeneo 20

21 sistema multicore C = {c 1, c 2,, c m }, dove m è il numero di core. Ciascun task t i è caratterizzato dalla coppia (e i, p i ), dove e i è il worst case execution time (WCET) del task t i e p i è il periodo di task t i. Assumiamo che il periodo è implicitamente uguale alla relativa deadline. Il grado di utilizzazione dei task t i, u i, è rappresentato da u i = e i /p i. L utilizzazione totale del set di task T, U tot è data da U tot = i=1 u i = ( e i i=1. Si noti che la condizione necessaria di fattibile schedulabilità sugli m core identici è che il fattore di utilizzazione non sia maggiore della capacità totale di calcolo del sistema. U tot m L insieme di task assegnati al core c i è denotato con Π i. Conseguentemente l utilizzazione di un core dato un task assegnato ad un core, sarà U i = n tk Π i u k. Un task sarà schedulabile se e solo se tutte le sue istanze vengono completate entro le deadline. Per quanto riguarda il load balance, introduciamo un metodo di quantificazione, definito come il coefficiente di variazione, ossia il rapporto tra deviazione standard del carico tra i nuclei e il carico medio. La misura dello squilibrio ci dà la deviazione dal corrente schema di bilanciamento del carico rispetto a un bilanciamento perfetto. La deviazione standard di un assegnazione, σ, è rappresentata da σ = (U i μ) 2 dove μ = i=1 (ossia il valore di utilizzazione del core). Maggiore è il valore di squilibrio, minore è l efficacia di bilanciamento del carico. Infine introduciamo una proposizione utile in seguito per lo studio di schedulabilità. Proposizione 3.1. Esiste uno squilibrio di carico se e solo se per due core, c i e c j, si verifica che U i U j > u k, laddove t k Π i. m U i m n p i ) 4.2 Scheduler Real-Time di Partizionamento L algoritmo di schedulazione usato per il partizionamento è stato realizzato partendo dalla riduzione della problematica di schedulazione nei processori multipli ad un insieme di problemi per processori singoli. L approccio consiste in due step. Nel primo si assegna ciascun task ad un core in modo che 21

22 venga rispettata la propria deadline. I processi possono essere ordinati secondo i criteri più comuni (per deadline, per utilizzazione etc.). Nel secondo step, una volta assegnati i task, viene applicato un algoritmo di schedulazione per sistemi uniprocessori (come EDF, RM etc.) per schedulare i task assegnati all interno della time line di ciascun core. 4.3 Load Balancing Based Task Partitioning (LBTP) Entriamo adesso nel dettaglio dell algoritmo LBTP (Load Balancing based Task Partitioning). Esso consiste in tre step fondamentali: 1. Task ordering: I task vengono ordinati seguendo il fattore di utilizzazione in modo decrescente. 2. Task partitioning : I task vengono assegnati al primo core libero che può soddisfare i vincoli di deadline. 3. Task repartitioning: Questo passaggio può essere svolto solo dopo che una schedulazione fattibile è stata trovata nello step precedente di partizionamento. Utilizzando l ordine inverso di ordinamento dei processi (cioè al crescere del fattore di utilizzazione), ciascun task è riassegnato al core con la minima utilizzazione. Questa ripartizione effettua intrinsecamente un test per il bilanciamento del carico e non è necessario testare di nuovo la schedulabilità per ciascun task durante questa procedura. Il primo meccanismo di partizionamento implementato si chiama First Fit Deacresing 22

23 Utilization (FFDU), il quale produce una schedulabilità dalle buone performance ma soprattutto si assicura il completamento dell esecuzione dei task rispettando la deadline, caratteristica fondamentale degli scheduler real-time. Durante la procedura di partizione, ciascun task è verificato attraverso un test di schedulabilità per ciascun core disponibile, dopodiché viene assegnato al primo tra quelli per il quale il risultato è positivo. Si passerà al terzo step soltanto quando sarà stata trovata una soluzione praticabile dall FFDU assignment. Una volta entrati nel passo successivo, entra in gioco un meccanismo di Worst-Fit per la ripartizione dei processi, l assegnazione avverrà con una logica diametralmente opposta. I task vengono riassegnati in ordine crescente di utilizzazione e questa tecnica permette di mantenere la condizione di fattibilità senza avvalersi nuovamente del test. Questa tecnica combinata con il partizionamento Worst-Fit e l ordinamento per utilizzazione crescente prende il nome di Worst-Fit Increasing Utilization (WFIU). Il meccanismo termina quando i benefici di bilanciamento non riescono più ad aumentare. 4.4 Schedulabilità in LBTP L algoritmo di LBTP può sempre generare una soluzione fattibile a condizione che anche FFDU ne possa generare una, mentre il test di schedulabilità non viene eseguito durante l esecuzione di ripartizione. Teorema. Se FFDU è in grado di generare una soluzione fattibile allora anche LBTP è in grado di generare una soluzione fattibile. Per provare questa tesi, dobbiamo partire dalla considerazione che per ciascun core, il fattore di utilizzazione sarà minore o uguale ad 1 e che quindi tutti i vincoli di deadline possono essere soddisfatti. U i 1, dove t k Π i (3.1) Al core con valore di utilizzo minore, si riassegna un task e il suddetto valore non supera 1 23

Sistemi di Controllo Real Time

Sistemi di Controllo Real Time Sistemi di Controllo Real Time Automazione 13/10/2015 Vincenzo Suraci STRUTTURA DEL NUCLEO TEMATICO SISTEMI REAL TIME CLASSIFICAZIONE DEI SISTEMI REAL TIME PARALLELISMO E PROGRAMMAZIONE CONCORRENTE SISTEMI

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

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

Low Power Scheduling per Sistemi Real Time

Low Power Scheduling per Sistemi Real Time Low Power Scheduling per Sistemi Real Time Corso di Sistemi Real Time A.A. 2007-08 Ing. Giordano Kaczynski Sistemi Real Time 1 Introduzione Il consumo di energia nei sistemi portatili negli ultimi anni

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

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

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

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

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

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

Riassunto di Sistemi in Tempo Reale LS

Riassunto di Sistemi in Tempo Reale LS Riassunto di Sistemi in Tempo Reale LS Silvia Cereda July 10, 2007 1 Schedulazione di processi periodici Condizione necessaria (ma non sufficiente) affinché un insieme di N processi sia schedulabile è

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

Scheduling di processi HRT

Scheduling di processi HRT Scheduling di processi HRT Primo modello per la schedulazione di processi periodici N processi P1, P2,, PN indipendenti senza vincoli di precedenza, senza risorse condivise; ogni processo Pj (j = 1, 2,,N)

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

Sistemi e schedulazione in tempo reale

Sistemi e schedulazione in tempo reale Sistemi e schedulazione in tempo reale 1 Sistemi in tempo reale Sistemi di calcolo in cui la correttezza del funzionamento dipende criticamente dal tempo in cui i risultati sono prodotti. Possibili campi

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

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

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

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

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

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

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

Dettagli

Corso di Elettronica dei Sistemi Programmabili. Sistemi Operativi Real Time. Introduzione. Aprile 2014 Stefano Salvatori 1/28

Corso di Elettronica dei Sistemi Programmabili. Sistemi Operativi Real Time. Introduzione. Aprile 2014 Stefano Salvatori 1/28 Corso di Elettronica dei Sistemi Programmabili Sistemi Operativi Real Time Introduzione Aprile 2014 Stefano Salvatori 1/28 Sommario Definizioni livelli di astrazione processi di tipo batch e processi interattivi

Dettagli

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache... Appunti di Calcolatori Elettronici Concetti generali sulla memoria cache Introduzione... 1 Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

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

SISTEMI IN TEMPO REALE

SISTEMI IN TEMPO REALE SISTEMI IN TEMPO REALE Definizione [Stankovic 88] I sistemi real-time (RT) sono quei sistemi di calcolo in cui la correttezza di funzionamento non dipende soltanto dalla validità dei risultati ottenuti

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

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

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

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

La Memoria Virtuale Ottimizzazione della memoria centrale

La Memoria Virtuale Ottimizzazione della memoria centrale La Memoria Virtuale Ottimizzazione della memoria centrale 1) Introduzione- Gerarchia della memoria Da un punto di vista funzionale, ogni dispositivo di memorizzazione elettronica di informazioni presenta

Dettagli

La Gestione delle risorse Renato Agati

La Gestione delle risorse Renato Agati Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File

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

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

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

La gestione della memoria

La gestione della memoria La gestione della memoria Nella gestione della memoria il sistema operativo deve perseguire l'obiettivo di allocare il maggior numero di processi in memoria centrale per aumentare la probabilità che ci

Dettagli

Esercizi di Ricerca Operativa I

Esercizi di Ricerca Operativa I Esercizi di Ricerca Operativa I Dario Bauso, Raffaele Pesenti May 10, 2006 Domande Programmazione lineare intera 1. Gli algoritmi per la programmazione lineare continua possono essere usati per la soluzione

Dettagli

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

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore. I processi Cos è un processo? Un processo è una attività, controllata da un programma, che si svolge su un processore. Il programma è una entità statica che descrive la sequenza di istruzioni che devono

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. 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

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

uomo Software (sistema operativo) hardware

uomo Software (sistema operativo) hardware uomo Software (sistema operativo) hardware 1 Sistema operativo Insieme di programmi che svolgono funzioni essenziali per l uso del sistema di elaborazione Questi programmi sono i primi ad essere eseguiti

Dettagli

LabVIEW offre un ambiente di programmazione grafica

LabVIEW offre un ambiente di programmazione grafica 03 COME OTTIMIZZARE IN LABVIEW APPLICAZIONI DI TEST AUTOMATIZZATI PER PROCESSORI MULTICORE David Hall Vediamo come delle applicazioni scritte in LabVIEW possono essere ottimizzate sfruttando tecniche di

Dettagli

Schedulazione in RTAI

Schedulazione in RTAI Schedulazione in RTAI RTAI: modulo kernel rt_hello_km.c #include #include Thread real-time... Ciclo infinito RT_TASK task; Periodico... void task_routine() { while(1) { /* Codice

Dettagli

Software che sovrintende al funzionamento del computer eseguendo compiti diversi:

Software che sovrintende al funzionamento del computer eseguendo compiti diversi: Sistema Operativo dispensa a cura di Alessandro Bellini Software che sovrintende al funzionamento del computer eseguendo compiti diversi: 1. Gestire interazione utente macchina 2. Fornire un interfaccia

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

Corso di Architettura degli Elaboratori

Corso di Architettura degli Elaboratori Corso di Architettura degli Elaboratori Valutazione delle prestazioni DOCENTE Luigi Palopoli AA. 2011/2012 Valutare le Prestazioni La complessita di un moderno calcolatore rende la valutazione delle prestazioni

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

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli

Sistema Operativo e Applicativi

Sistema Operativo e Applicativi Sistema Operativo e Applicativi Modulo di Informatica Dott.sa Sara Zuppiroli A.A. 2012-2013 Modulo di Informatica () Software A.A. 2012-2013 1 / 36 Software Conosciamo due classi di software: Programmi

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

SCHEDULING SCHEDULING

SCHEDULING SCHEDULING Corso di Laurea Triennale in INGEGNERIA GESTIONALE Anno Accademico 2012/13 Prof. Davide GIGLIO 1 INDICE Esempio Introduttivo Generalità sui problemi di scheduling SINGLE MACHINE SPT (shortest processing

Dettagli

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi Evoluzione dei sistemi operativi (4) Sistemi multiprogrammati! più programmi sono caricati in contemporaneamente, e l elaborazione passa periodicamente dall uno all altro Evoluzione dei sistemi operativi

Dettagli

1. Classificazione delle risorse

1. Classificazione delle risorse 1. Classificazione delle risorse Classificazione delle risorse in base alla disponibilità. - Risorse rinnovabili Sono risorse utilizzate per l esecuzione di una attività per tutta la sua durata, ma sono

Dettagli

Schedulazione non omogenea

Schedulazione non omogenea SERVER APERIODICI Mario Collotta Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania mcollotta@diit.unict.it Schedulazione non omogenea Task periodici hard RT con RM

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

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

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 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

L Informatica al Vostro Servizio

L Informatica al Vostro Servizio L Informatica al Vostro Servizio Faticoni S.p.A. è Certificata UNI ENI ISO 9001:2008 N. CERT-02228-97-AQ-MILSINCERT per Progettazione, Realizzazione, Manutenzione di soluzioni Hardware e Software Soluzioni

Dettagli

Capitolo 1: Introduzione

Capitolo 1: Introduzione Capitolo 1: ntroduzione Che cos è un sistema operativo? Sistemi mainframe. Sistemi desktop. Sistemi multiprocessore. Sistemi distribuiti. Sistemi cluster. Sistemi in tempo reale. Sistemi palmari. Migrazione

Dettagli

Risparmio energetico nei Data Center

Risparmio energetico nei Data Center Risparmio energetico nei Data Center Danilo Ardagna, Mara Tanelli, Politecnico di Milano {ardagna,tanelli}@elet.polimi.it Politecnico di Milano, 22 Febbraio 2010 Consumi energetici dei Data Center: un

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

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

CAPITOLO 27 SCAMBIO DI MESSAGGI

CAPITOLO 27 SCAMBIO DI MESSAGGI CAPITOLO 27 SCAMBIO DI MESSAGGI SCAMBIO DI MESSAGGI Sia che si guardi al microkernel, sia a SMP, sia ai sistemi distribuiti, Quando i processi interagiscono fra loro, devono soddisfare due requisiti fondamentali:

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

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

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi 1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi Il processo E' un programma in esecuzione Tipi di processo Stati di un processo 1 indipendenti

Dettagli

Processo - generalità

Processo - generalità I processi Processo - generalità Astrazione di un attività; Entità attiva che ha un suo percorso evolutivo; Attività = azione dedicata al raggiungimento di uno scopo Il processo esegue istruzioni per svolgere

Dettagli

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

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1 GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2 Background Per essere eseguito un programma deve trovarsi (almeno

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

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

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

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

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

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella. Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Prestazioni Si valutano in maniera diversa a seconda dell

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

Sommario. G. Piscitelli

Sommario. G. Piscitelli Sommario Fondamenti dei Sistemi Operativi Device Manager Dispositivi di I/O Interfaccia (o controller) e software di pilotaggio (driver) di un dispositivo Schedulazione dei dischi: i parametri Schedulazione

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

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

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

G. Piscitelli Politecnico di Bari 1 of 23

G. Piscitelli Politecnico di Bari 1 of 23 SISTEMI IN TEMPO REALE Strongly recommended readings: Scheduling Algorithms and O.S. support for Real-Time Systems (January 1994) Real-Time Computing: A New Discipline of Computer Science and Engineering

Dettagli

Architettura di un sistema di calcolo

Architettura di un sistema di calcolo Richiami sulla struttura dei sistemi di calcolo Gestione delle Interruzioni Gestione della comunicazione fra processore e dispositivi periferici Gerarchia di memoria Protezione. 2.1 Architettura di un

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

Come funziona un sistema di elaborazione

Come funziona un sistema di elaborazione Introduzione Cosa è un Sistema Sste aoperativo? Come funziona un sistema di elaborazione Proprietà dei Sistemi Operativi Storia dei Sistemi di Elaborazione Sistemi Mainframe Sistemi Desktop Sistemi i Multiprocessori

Dettagli

Implementazione dei monitor tramite semafori Attesa condizionale Sincronizzazione nei sistemi operativi reali Transazioni atomiche

Implementazione dei monitor tramite semafori Attesa condizionale Sincronizzazione nei sistemi operativi reali Transazioni atomiche Implementazione dei monitor tramite semafori Attesa condizionale Sincronizzazione nei sistemi operativi reali Transazioni atomiche 5.1 Implementazione dei monitor con i semafori Un monitor è un tipo di

Dettagli

Università degli Studi di Salerno

Università degli Studi di Salerno Università degli Studi di Salerno Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Tesi di Laurea Algoritmi basati su formule di quadratura interpolatorie per GPU ABSTRACT

Dettagli

FUTURE INTERNET 4 FUTURE SERVICES

FUTURE INTERNET 4 FUTURE SERVICES Nel Semestre di Presidenza del Consorzio ELIS FUTURE INTERNET 4 FUTURE SERVICES Executive Summary Sistema integrato di iniziative formative di innovazione per la famiglia professionale ICT Febbraio 2011

Dettagli

40. Le transizioni fra stati Lo schema di transizione fra stati può essere rappresentato graficamente nel modo seguente :

40. Le transizioni fra stati Lo schema di transizione fra stati può essere rappresentato graficamente nel modo seguente : 32. Il Sistema Operativo : definizione e struttura Il SO è un insieme di programmi le cui funzioni principali sono costituire un interfaccia tra la macchina e l utente e gestire in modo ottimale le risorse

Dettagli

Sistemi in tempo reale Anno accademico 2008-2009

Sistemi in tempo reale Anno accademico 2008-2009 Sistemi in tempo reale Anno accademico 2008-2009 Introduzione ai sistemi di controllo in tempo reale Giuseppe Lipari http://feanor.sssup.it/~lipari Scuola Superiore Sant Anna Contenuti del corso Introduzione

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

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Sistemi Operativi. Struttura astratta della memoria. Gerarchia dei dispositivi di. Memoria centrale. Memoria secondaria (di massa)

Sistemi Operativi. Struttura astratta della memoria. Gerarchia dei dispositivi di. Memoria centrale. Memoria secondaria (di massa) Struttura astratta della memoria Memoria centrale il solo dispositivo di memoria al quale la CPU puo accedere direttamente Memoria secondaria (di massa) Estensione della memoria centrale che fornisce grande

Dettagli

Cosa è un Sistema Operativo (S.O.)

Cosa è un Sistema Operativo (S.O.) Cosa è un Sistema Operativo (S.O.) Modulo software costituito da un insieme di programmi per: permettere all utente l uso dell elaboratore senza la conoscenza approfondita dell hardware S.O. supporto all

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

JAVA REAL-TIME: ANALISI DELL ARCHITETTURA E VALUTAZIONE SPERIMENTALE DELLA PIATTAFORMA SOLARIS 10.9

JAVA REAL-TIME: ANALISI DELL ARCHITETTURA E VALUTAZIONE SPERIMENTALE DELLA PIATTAFORMA SOLARIS 10.9 JAVA REAL-TIME: ANALISI DELL ARCHITETTURA E VALUTAZIONE SPERIMENTALE DELLA PIATTAFORMA SOLARIS 10.9 Candidato: Marco Nanni RELATORE: Chiar.mo Prof. Eugenio Faldella CORRELATORI Chiar.mo Prof. Marco Prandini

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

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

LINUX. Che cos'e` un sistema operativo?

LINUX. Che cos'e` un sistema operativo? LINUX LINUX Introduzione Una versione completa e affidabile di UNIX Disponibile per PC x86 Intel/AMD e numerose altre piattaforme Strumento (quasi) indispensabile per le esercitazioni Include gli strumenti

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

Pronto Esecuzione Attesa Terminazione

Pronto Esecuzione Attesa Terminazione Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma

Dettagli

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche Sommario Definizione di S. O. Attività del S. O. Struttura del S. O. Il gestore dei processi: lo scheduler Sistemi Mono-Tasking e

Dettagli

Architettura degli elaboratori 2 I appello (versione A)

Architettura degli elaboratori 2 I appello (versione A) Quesito 1 (punti 7). Cinque processi batch, identificati dalle lettere A E rispettivamente, arrivano all elaboratore agli istanti 0, 2, 4, 6, 9 rispettivamente. Tali processi hanno un tempo di esecuzione

Dettagli