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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Capitolo 20: Scelta Intertemporale

Capitolo 20: Scelta Intertemporale Capitolo 20: Scelta Intertemporale 20.1: Introduzione Gli elementi di teoria economica trattati finora possono essere applicati a vari contesti. Tra questi, due rivestono particolare importanza: la scelta

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

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

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

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

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

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

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

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

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

Applied Research & Technology Dept.

Applied Research & Technology Dept. 17/12/08 Elenco Tesi Disponibili Applied Research & Technology Dept. La Società MBDA La MBDA Italia è un azienda leader nella realizzazione di sistemi di difesa che con i suoi prodotti è in grado di soddisfare

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

Ordinamento degli eventi. Lezione 11. Osservazioni. Relazione verificato prima. Cenni ai sistemi operativi distribuiti 3. Coordinazione distribuita

Ordinamento degli eventi. Lezione 11. Osservazioni. Relazione verificato prima. Cenni ai sistemi operativi distribuiti 3. Coordinazione distribuita Lezione 11 Cenni ai sistemi operativi distribuiti 3. Coordinazione distribuita Ordinamento degli eventi Un sistema monoprocessore Unico clock Unica memoria Ordinamento degli eventi Mutua esclusione Deadlock

Dettagli

In realtà, non un solo microprocessore, ma un intera famiglia, dalle CPU più semplici con una sola pipeline a CPU molto complesse per applicazioni ad

In realtà, non un solo microprocessore, ma un intera famiglia, dalle CPU più semplici con una sola pipeline a CPU molto complesse per applicazioni ad Principi di architetture dei calcolatori: l architettura ARM. Mariagiovanna Sami Che cosa è ARM In realtà, non un solo microprocessore, ma un intera famiglia, dalle CPU più semplici con una sola pipeline

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

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

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

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

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

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

Analisi matriciale delle reti di Petri (P/T) - sifoni e trappole -

Analisi matriciale delle reti di Petri (P/T) - sifoni e trappole - Analisi matriciale delle reti di Petri (P/T) - sifoni e trappole - - richiami preliminari sulle proprietà strutturali - Abbiamo visto che alcune caratteristiche dei sistemi dinamici (DES compresi) non

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

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi : di base e applicativo L HardWare (monitor, tastiera, circuiti, stampante, ) è il nucleo fondamentale del calcolatore ma da solo non serve a nulla. Bisogna utilizzare il software per poterlo fare funzionare.

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

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

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

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

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

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

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

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

IL SISTEMA OPERATIVO

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO... è l insieme dei programmi che rende agevole l uso dell hardware, mascherando le caratteristiche delle risorse fisiche (interfaccia) gestisce le risorse fisiche ottimizzandone l

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

Principi dell ingegneria del software Relazioni fra

Principi dell ingegneria del software Relazioni fra Sommario Principi dell ingegneria del software Leggere Cap. 3 Ghezzi et al. Principi dell ingegneria del software Relazioni fra Principi Metodi e tecniche Metodologie Strumenti Descrizione dei principi

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

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

PROGRAMMAZIONE ANUALE DEL DIPARTIMENTO DI INFORMATICA E TELECOMUNICAZIONI ISTITUTO TECNICO a.s. 2015-16

PROGRAMMAZIONE ANUALE DEL DIPARTIMENTO DI INFORMATICA E TELECOMUNICAZIONI ISTITUTO TECNICO a.s. 2015-16 PROGRAMMAZIONE ANUALE DEL DIPARTIMENTO DI INFORMATICA E TELECOMUNICAZIONI ISTITUTO TECNICO a.s. 2015-16 SECONDO BIENNIO Disciplina: INFORMATICA La disciplina Informatica concorre a far conseguire allo

Dettagli

Il sistema operativo TinyOS

Il sistema operativo TinyOS tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Domenico Cotroneo candidato Giovanni Chierchia Matr. 534 / 804 ::. Obiettivi del lavoro di tesi Studio del sistema operativo TinyOS Studio

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

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

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

Software Testing. Lezione 2 Livelli di test. Federica Spiga. federica_spiga@yahoo.it. A.A. 2010-2011 Autori: F.Rabini/F.Spiga

Software Testing. Lezione 2 Livelli di test. Federica Spiga. federica_spiga@yahoo.it. A.A. 2010-2011 Autori: F.Rabini/F.Spiga Software Testing Lezione 2 Livelli di test Federica Spiga federica_spiga@yahoo.it A.A. 2010-2011 Autori: F.Rabini/F.Spiga 1 2 Livelli di test Unit Testing Integration Testing System Testing Unit Testing

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

Programmazione concorrente in Java. Dr. Paolo Casoto, Ph.D. - 2012 1

Programmazione concorrente in Java. Dr. Paolo Casoto, Ph.D. - 2012 1 + Programmazione concorrente in Java 1 + Introduzione al multithreading 2 La scomposizione in oggetti consente di separare un programma in sottosezioni indipendenti. Oggetto = metodi + attributi finalizzati

Dettagli

Capitolo 3: Strutture dei sistemi operativi

Capitolo 3: Strutture dei sistemi operativi Capitolo 3: Strutture dei sistemi operativi Componenti del sistema Servizi di un sistema operativo Chiamate del sistema Programmi di sistema Struttura del sistema Macchine virtuali Progettazione e realizzazione

Dettagli

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Il presente esame scritto deve essere svolto in forma individuale in un tempo massimo di 60 minuti dalla sua

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

I Modelli della Ricerca Operativa

I Modelli della Ricerca Operativa Capitolo 1 I Modelli della Ricerca Operativa 1.1 L approccio modellistico Il termine modello è di solito usato per indicare una costruzione artificiale realizzata per evidenziare proprietà specifiche di

Dettagli

Reti combinatorie: Codificatori

Reti combinatorie: Codificatori Reti combinatorie: Codificatori P. Marincola (Rev..2) Come si ricorderà, i decodificatori hanno essenzialmente il compito di convertire un codice binario a n bit in un codice -su-m, dovem =2 n. In molte

Dettagli

Lezione n.19 Processori RISC e CISC

Lezione n.19 Processori RISC e CISC Lezione n.19 Processori RISC e CISC 1 Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni

Dettagli

Sistemi Operativi. Introduzione UNICAL. Facoltà di Ingegneria. Domenico Talia A.A. 2002-2003

Sistemi Operativi. Introduzione UNICAL. Facoltà di Ingegneria. Domenico Talia A.A. 2002-2003 Domenico Talia Facoltà di Ingegneria UNICAL A.A. 2002-2003 1.1 Introduzione Presentazione del corso Cosa è un Sistema Operativo? Sistemi Mainframe Sistemi Desktop Sistemi Multiprocessori Sistemi Distribuiti

Dettagli

STRUTTURE DEI SISTEMI DI CALCOLO

STRUTTURE DEI SISTEMI DI CALCOLO STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema

Dettagli

Sistemi operativi e reti A.A. 2013-14. Lezione 2

Sistemi operativi e reti A.A. 2013-14. Lezione 2 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 2 Giovedì 10-10-2013 1 Sistemi a partizione di tempo (time-sharing) I

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

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 UNICAL. Facoltà di Ingegneria. Domenico Talia A.A. 2002-2003 1.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi UNICAL. Facoltà di Ingegneria. Domenico Talia A.A. 2002-2003 1.1. Sistemi Operativi. D. Talia - UNICAL Domenico Talia Facoltà di Ingegneria UNICAL A.A. 2002-2003 1.1 Introduzione Presentazione del corso Cosa è un Sistema Operativo? Sistemi Mainframe Sistemi Desktop Sistemi Multiprocessori Sistemi Distribuiti

Dettagli

Il clustering. Sistemi Distribuiti 2002/2003

Il clustering. Sistemi Distribuiti 2002/2003 Il clustering Sistemi Distribuiti 2002/2003 Introduzione In termini generali, un cluster è un gruppo di sistemi indipendenti che funzionano come un sistema unico Un client interagisce con un cluster come

Dettagli

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Secondo biennio Articolazione Informatica TPSIT Prova Quarta Sistema operativo: gestione memoria centrale La Memoria Virtuale consente di superare i limiti della Memoria Centrale : A. no B. a volte C. si, ma non sempre e' adeguata D. si, attraverso tecniche di gestione

Dettagli

Copyright Università degli Studi di Torino, Progetto Atlante delle Professioni 2009 IT PROCESS EXPERT

Copyright Università degli Studi di Torino, Progetto Atlante delle Professioni 2009 IT PROCESS EXPERT IT PROCESS EXPERT 1. CARTA D IDENTITÀ... 2 2. CHE COSA FA... 3 3. DOVE LAVORA... 4 4. CONDIZIONI DI LAVORO... 5 5. COMPETENZE... 6 Quali competenze sono necessarie... 6 Conoscenze... 8 Abilità... 9 Comportamenti

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

Introduzione al sistema operativo. Laboratorio Software 2008-2009 C. Brandolese

Introduzione al sistema operativo. Laboratorio Software 2008-2009 C. Brandolese Introduzione al sistema operativo Laboratorio Software 2008-2009 C. Brandolese Che cos è un sistema operativo Alcuni anni fa un sistema operativo era definito come: Il software necessario a controllare

Dettagli

1 Introduzione al corso 3 1.1 Architettura del sistema di controllo... 6

1 Introduzione al corso 3 1.1 Architettura del sistema di controllo... 6 Indice 1 Introduzione al corso 3 1.1 Architettura del sistema di controllo................ 6 2 Elementi di modellistica 8 2.1 Modelli nel dominio del tempo................... 8 2.2 La trasformata di Laplace......................

Dettagli