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

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

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera L. De Giovanni AVVERTENZA: le note presentate di seguito non hanno alcuna pretesa di completezza, né hanno lo scopo di sostituirsi

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

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione Processi (di sviluppo del) software Fase di Analisi dei Requisiti Un processo software descrive le attività (o task) necessarie allo sviluppo di un prodotto software e come queste attività sono collegate

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

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina Cosa è il DSS L elevato sviluppo dei personal computer, delle reti di calcolatori, dei sistemi database di grandi dimensioni, e la forte espansione di modelli basati sui calcolatori rappresentano gli sviluppi

Dettagli

SOA GOVERNANCE: WHAT DOES IT MEAN? Giorgio Marras

SOA GOVERNANCE: WHAT DOES IT MEAN? Giorgio Marras SOA GOVERNANCE: WHAT DOES IT MEAN? Giorgio Marras 2 Introduzione Le architetture basate sui servizi (SOA) stanno rapidamente diventando lo standard de facto per lo sviluppo delle applicazioni aziendali.

Dettagli

Algoritmo euclideo, massimo comun divisore ed equazioni diofantee

Algoritmo euclideo, massimo comun divisore ed equazioni diofantee Algoritmo euclideo, massimo comun divisore ed equazioni diofantee Se a e b sono numeri interi, si dice che a divide b, in simboli: a b, se e solo se esiste c Z tale che b = ac. Si può subito notare che:

Dettagli

IL SAMPLE AND HOLD UNIVERSITÀ DEGLI STUDI DI MILANO. Progetto di Fondamenti di Automatica. PROF.: M. Lazzaroni

IL SAMPLE AND HOLD UNIVERSITÀ DEGLI STUDI DI MILANO. Progetto di Fondamenti di Automatica. PROF.: M. Lazzaroni UNIVERSITÀ DEGLI STUDI DI MILANO FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea in Informatica IL SAMPLE AND HOLD Progetto di Fondamenti di Automatica PROF.: M. Lazzaroni Anno Accademico

Dettagli

Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova. Metodi per supportare le decisioni relative alla gestione di progetti

Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova. Metodi per supportare le decisioni relative alla gestione di progetti Project Management Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova Project Management 2 Metodi per supportare le decisioni relative alla gestione di progetti esempi sono progetti nell

Dettagli

Informatica. Scopo della lezione

Informatica. Scopo della lezione 1 Informatica per laurea diarea non informatica LEZIONE 1 - Cos è l informatica 2 Scopo della lezione Introdurre le nozioni base della materia Definire le differenze tra hardware e software Individuare

Dettagli

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti Dai sistemi concorrenti ai sistemi distribuiti Problemi nei sistemi concorrenti e distribuiti I sistemi concorrenti e distribuiti hanno in comune l ovvio problema di coordinare le varie attività dei differenti

Dettagli

Flusso a costo minimo e simplesso su reti

Flusso a costo minimo e simplesso su reti Flusso a costo minimo e simplesso su reti La particolare struttura di alcuni problemi di PL può essere talvolta utilizzata per la progettazione di tecniche risolutive molto più efficienti dell algoritmo

Dettagli

1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame.

1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame. 1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame. (a) Da quanti bit è costituito l indirizzo logico? (b) Da quanti bit

Dettagli

Guida Dell di base all'acquisto dei server

Guida Dell di base all'acquisto dei server Guida Dell di base all'acquisto dei server Per le piccole aziende che dispongono di più computer è opportuno investire in un server che aiuti a garantire la sicurezza e l'organizzazione dei dati, consentendo

Dettagli

Parte 2. Determinante e matrice inversa

Parte 2. Determinante e matrice inversa Parte. Determinante e matrice inversa A. Savo Appunti del Corso di Geometria 013-14 Indice delle sezioni 1 Determinante di una matrice, 1 Teorema di Cramer (caso particolare), 3 3 Determinante di una matrice

Dettagli

Da una a più variabili: derivate

Da una a più variabili: derivate Da una a più variabili: derivate ( ) 5 gennaio 2011 Scopo di questo articolo è di evidenziare le analogie e le differenze, relativamente al calcolo differenziale, fra le funzioni di una variabile reale

Dettagli

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it il server? virtualizzalo!! Se ti stai domandando: ma cosa stanno dicendo? ancora non sai che la virtualizzazione è una tecnologia software, oggi ormai consolidata, che sta progressivamente modificando

Dettagli

Descrizioni VHDL Behavioral

Descrizioni VHDL Behavioral 1 Descrizioni VHDL Behavioral In questo capitolo vedremo come la struttura di un sistema digitale è descritto in VHDL utilizzando descrizioni di tipo comportamentale. Outline: process wait statements,

Dettagli

1. Intorni di un punto. Punti di accumulazione.

1. Intorni di un punto. Punti di accumulazione. 1. Intorni di un punto. Punti di accumulazione. 1.1. Intorni circolari. Assumiamo come distanza di due numeri reali x e y il numero non negativo x y (che, come sappiamo, esprime la distanza tra i punti

Dettagli

1 LA CORRENTE ELETTRICA CONTINUA

1 LA CORRENTE ELETTRICA CONTINUA 1 LA CORRENTE ELETTRICA CONTINUA Un conduttore ideale all equilibrio elettrostatico ha un campo elettrico nullo al suo interno. Cosa succede se viene generato un campo elettrico diverso da zero al suo

Dettagli

Architettura dei Calcolatori

Architettura dei Calcolatori Architettura dei Calcolatori Sistema di memoria parte prima Ing. dell Automazione A.A. 2011/12 Gabriele Cecchetti Sistema di memoria parte prima Sommario: Banco di registri Generalità sulla memoria Tecnologie

Dettagli

Process mining & Optimization Un approccio matematico al problema

Process mining & Optimization Un approccio matematico al problema Res User Meeting 2014 con la partecipazione di Scriviamo insieme il futuro Paolo Ferrandi Responsabile Tecnico Research for Enterprise Systems Federico Bonelli Engineer Process mining & Optimization Un

Dettagli

Il CIO del futuro Report sulla ricerca

Il CIO del futuro Report sulla ricerca Il CIO del futuro Report sulla ricerca Diventare un promotore di cambiamento Condividi questo report Il CIO del futuro: Diventare un promotore di cambiamento Secondo un nuovo studio realizzato da Emerson

Dettagli

MATEMATICA. { 2 x =12 y 3 y +8 x =0, si pone il problema di trovare, se esistono, un numero x ed un numero y che risolvano entrambe le equazioni.

MATEMATICA. { 2 x =12 y 3 y +8 x =0, si pone il problema di trovare, se esistono, un numero x ed un numero y che risolvano entrambe le equazioni. MATEMATICA. Sistemi lineari in due equazioni due incognite. Date due equazioni lineari nelle due incognite x, y come ad esempio { 2 x =12 y 3 y +8 x =0, si pone il problema di trovare, se esistono, un

Dettagli

I Valori del Manifesto Agile sono direttamente applicabili a Scrum:!

I Valori del Manifesto Agile sono direttamente applicabili a Scrum:! Scrum descrizione I Principi di Scrum I Valori dal Manifesto Agile Scrum è il framework Agile più noto. E la sorgente di molte delle idee che si trovano oggi nei Principi e nei Valori del Manifesto Agile,

Dettagli

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN)

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) System Overview di Mattia Bargellini 1 CAPITOLO 1 1.1 Introduzione Il seguente progetto intende estendere

Dettagli

Parte 3. Rango e teorema di Rouché-Capelli

Parte 3. Rango e teorema di Rouché-Capelli Parte 3. Rango e teorema di Rouché-Capelli A. Savo Appunti del Corso di Geometria 203-4 Indice delle sezioni Rango di una matrice, 2 Teorema degli orlati, 3 3 Calcolo con l algoritmo di Gauss, 6 4 Matrici

Dettagli

Elementi di UML (7): Diagrammi dei componenti e di deployment

Elementi di UML (7): Diagrammi dei componenti e di deployment Elementi di UML (7): Diagrammi dei componenti e di deployment Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005 Laboratorio

Dettagli

Architetture CISC e RISC

Architetture CISC e RISC FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Architetture CISC e RISC 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n.

Dettagli

Progettazione di sistemi Embedded

Progettazione di sistemi Embedded Progettazione di sistemi Embedded Corso introduttivo di progettazione di sistemi embedded A.S. 2013/2014 proff. Nicola Masarone e Stefano Salvatori Eccetto dove diversamente specificato, i contenuti di

Dettagli

DataFix. La soluzione innovativa per l'help Desk aziendale

DataFix. La soluzione innovativa per l'help Desk aziendale DataFix D A T A N O S T O P La soluzione innovativa per l'help Desk aziendale La soluzione innovativa per l'help Desk aziendale L a necessità di fornire un adeguato supporto agli utenti di sistemi informatici

Dettagli

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE Oracle Business Intelligence Standard Edition One è una soluzione BI completa, integrata destinata alle piccole e medie imprese.oracle

Dettagli

Sizing di un infrastruttura server con VMware

Sizing di un infrastruttura server con VMware Sizing di un infrastruttura server con VMware v1.1 Matteo Cappelli Vediamo una serie di best practices per progettare e dimensionare un infrastruttura di server virtuali con VMware vsphere 5.0. Innanzitutto

Dettagli

Modello OSI e architettura TCP/IP

Modello OSI e architettura TCP/IP Modello OSI e architettura TCP/IP Differenza tra modello e architettura - Modello: è puramente teorico, definisce relazioni e caratteristiche dei livelli ma non i protocolli effettivi - Architettura: è

Dettagli

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: G.C.D.( a d, b d ) = 1 Sono state introdotte a lezione due definizioni importanti che ricordiamo: Definizione

Dettagli

Il ciclo di vita del software

Il ciclo di vita del software Il ciclo di vita del software Il ciclo di vita del software Definisce un modello per il software, dalla sua concezione iniziale fino al suo sviluppo completo, al suo rilascio, alla sua successiva evoluzione,

Dettagli

I componenti di un Sistema di elaborazione. CPU (central process unit)

I componenti di un Sistema di elaborazione. CPU (central process unit) I componenti di un Sistema di elaborazione. CPU (central process unit) I componenti di un Sistema di elaborazione. CPU (central process unit) La C.P.U. è il dispositivo che esegue materialmente gli ALGORITMI.

Dettagli

I n d i c e. 163 Appendice B Questionari su utilità e uso delle Strategie di Studio (QS1 e QS2)

I n d i c e. 163 Appendice B Questionari su utilità e uso delle Strategie di Studio (QS1 e QS2) I n d i c e 9 Introduzione 11 CAP. 1 I test di intelligenza potenziale 17 CAP. 2 La misura dell intelligenza potenziale nella scuola dell infanzia 31 CAP. 3 La misura dell intelligenza potenziale nella

Dettagli

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica

Università degli Studi di Parma. Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica A.A. 2007-08 CORSO DI INGEGNERIA DEL SOFTWARE Prof. Giulio Destri http://www.areasp.com (C) 2007 AreaSP for

Dettagli

Orientamenti sulla valutazione ex ante dei Programmi 2014-2020. Il sistema di indicatori nella programmazione 2014-2020

Orientamenti sulla valutazione ex ante dei Programmi 2014-2020. Il sistema di indicatori nella programmazione 2014-2020 Orientamenti sulla valutazione ex ante dei Programmi 2014-2020 Il sistema di indicatori nella programmazione 2014-2020 Simona De Luca, Anna Ceci UVAL DPS Roma 11 luglio 2013 Indice 1. Indicatori: un modo

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

Rational Unified Process Introduzione

Rational Unified Process Introduzione Rational Unified Process Introduzione G.Raiss - A.Apolloni - 4 maggio 2001 1 Cosa è E un processo di sviluppo definito da Booch, Rumbaugh, Jacobson (autori dell Unified Modeling Language). Il RUP è un

Dettagli

LA MOLTIPLICAZIONE IN PRIMA ELEMENTARE

LA MOLTIPLICAZIONE IN PRIMA ELEMENTARE LA MOLTIPLICAZIONE IN PRIMA ELEMENTARE E bene presentarla confrontando tra loro varie tecniche: addizione ripetuta; prodotto combinatorio (schieramenti). Rispetto a quest'ultima tecnica, grande utilità

Dettagli

UNIVERSITA DI PISA FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA ELETTRONICA ANNO ACCADEMICO 2004-2005 TESI DI LAUREA

UNIVERSITA DI PISA FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA ELETTRONICA ANNO ACCADEMICO 2004-2005 TESI DI LAUREA UNIVERSITA DI PISA FACOLTA DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA ELETTRONICA ANNO ACCADEMICO 2004-2005 TESI DI LAUREA SVILUPPO DI METODI DECONVOLUTIVI PER L INDIVIDUAZIONE DI SORGENTI INDIPENDENTI

Dettagli

Cos è l Ingegneria del Software?

Cos è l Ingegneria del Software? Cos è l Ingegneria del Software? Corpus di metodologie e tecniche per la produzione di sistemi software. L ingegneria del software è la disciplina tecnologica e gestionale che riguarda la produzione sistematica

Dettagli

Sempre attenti ad ogni dettaglio Bosch Intelligent Video Analysis

Sempre attenti ad ogni dettaglio Bosch Intelligent Video Analysis Sempre attenti ad ogni dettaglio Bosch Intelligent Video Analysis 2 Intervento immediato con Bosch Intelligent Video Analysis Indipendentemente da quante telecamere il sistema utilizza, la sorveglianza

Dettagli

END-TO-END SERVICE QUALITY. LA CULTURA DELLA QUALITÀ DAL CONTROLLO DELLE RISORSE ALLA SODDISFAZIONE DEL CLIENTE

END-TO-END SERVICE QUALITY. LA CULTURA DELLA QUALITÀ DAL CONTROLLO DELLE RISORSE ALLA SODDISFAZIONE DEL CLIENTE END-TO-END SERVICE QUALITY. LA CULTURA DELLA QUALITÀ DAL CONTROLLO DELLE RISORSE ALLA SODDISFAZIONE In un mercato delle Telecomunicazioni sempre più orientato alla riduzione delle tariffe e dei costi di

Dettagli

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi. 1 Mattia Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it a.a. 2008/09 1 c 2009 M.. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

Dettagli

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1 DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica

Dettagli

Il presente documento è conforme all'originale contenuto negli archivi della Banca d'italia

Il presente documento è conforme all'originale contenuto negli archivi della Banca d'italia Il presente documento è conforme all'originale contenuto negli archivi della Banca d'italia Firmato digitalmente da Sede legale Via Nazionale, 91 - Casella Postale 2484-00100 Roma - Capitale versato Euro

Dettagli

Esistenza di funzioni continue non differenziabili in alcun punto

Esistenza di funzioni continue non differenziabili in alcun punto UNIVERSITÀ DEGLI STUDI DI CAGLIARI FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI CORSO DI LAUREA IN MATEMATICA Esistenza di funzioni continue non differenziabili in alcun punto Relatore Prof. Andrea

Dettagli

UNIVERSITA POLITECNICA DELLE MARCHE. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Informatica e dell Automazione.

UNIVERSITA POLITECNICA DELLE MARCHE. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Informatica e dell Automazione. UNIVERSITA POLITECNICA DELLE MARCHE Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica e dell Automazione Tesi di Laurea Progettazione e sviluppo di un modulo per il task-scheduling per il

Dettagli

L : L/2 = 1 : ½ = 2 : 1

L : L/2 = 1 : ½ = 2 : 1 LA SCALA PITAGORICA (e altre scale) 1 IL MONOCORDO I Greci, già circa 500 anni prima dell inizio dell era cristiana, utilizzavano un semplice strumento: il monocordo. Nel monocordo, un ponticello mobile

Dettagli

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997 1 RAPPRESENTAZIONE BINARIA DEI NUMERI Andrea Bobbio Anno Accademico 1996-1997 Numeri Binari 2 Sistemi di Numerazione Il valore di un numero può essere espresso con diverse rappresentazioni. non posizionali:

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

Rappresentazione dei numeri in un calcolatore

Rappresentazione dei numeri in un calcolatore Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri

Dettagli

La Termodinamica ed I principi della Termodinamica

La Termodinamica ed I principi della Termodinamica La Termodinamica ed I principi della Termodinamica La termodinamica è quella branca della fisica che descrive le trasformazioni subite da un sistema (sia esso naturale o costruito dall uomo), in seguito

Dettagli

Enrico Fontana. L Health Technology Assessment applicato ai Sistemi informativi. Prefazione di Massimiliano Manzetti. Presentazione di Nicola Rosso

Enrico Fontana. L Health Technology Assessment applicato ai Sistemi informativi. Prefazione di Massimiliano Manzetti. Presentazione di Nicola Rosso A09 Enrico Fontana L Health Technology Assessment applicato ai Sistemi informativi Prefazione di Massimiliano Manzetti Presentazione di Nicola Rosso Copyright MMXV ARACNE editrice int.le S.r.l. www.aracneeditrice.it

Dettagli

> MULTI TASKING > MULTI PROCESS > MULTI CORE

> MULTI TASKING > MULTI PROCESS > MULTI CORE > MULTI TASKING > MULTI PROCESS > MULTI CORE WorkNC V21 multicore 64 bits : Benefici di WorkNC Aumento generale della produttività, grazie alle nuove tecnologie multi-core, 64 bit e Windows 7 Calcolo di

Dettagli

Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani

Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani Ricerca Operativa Esercizi sul metodo del simplesso Luigi De Giovanni, Laura Brentegani 1 1) Risolvere il seguente problema di programmazione lineare. ma + + 3 s.t. 2 + + 2 + 2 + 3 5 2 + 2 + 6,, 0 Soluzione.

Dettagli

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica

Dettagli

progettiamo e realizziamo architetture informatiche Company Profile

progettiamo e realizziamo architetture informatiche Company Profile Company Profile Chi siamo Kammatech Consulting S.r.l. nasce nel 2000 con l'obiettivo di operare nel settore I.C.T., fornendo servizi di progettazione, realizzazione e manutenzione di reti aziendali. Nel

Dettagli

Ottimizzazione della gestione del data center con Microsoft System Center

Ottimizzazione della gestione del data center con Microsoft System Center Ottimizzazione della gestione del data center con Microsoft System Center Declinazione di responsabilità e informazioni sul copyright Le informazioni contenute nel presente documento rappresentano le conoscenze

Dettagli

CARATTERISTICHE DELLE CRYPTO BOX

CARATTERISTICHE DELLE CRYPTO BOX Secure Stream PANORAMICA Il sistema Secure Stream è costituito da due appliance (Crypto BOX) in grado di stabilire tra loro un collegamento sicuro. Le Crypto BOX sono dei veri e propri router in grado

Dettagli

Neomobile incentra l infrastruttura IT su Microsoft ALM, arrivando a 40 nuovi rilasci a settimana

Neomobile incentra l infrastruttura IT su Microsoft ALM, arrivando a 40 nuovi rilasci a settimana Storie di successo Microsoft per le Imprese Scenario: Software e Development Settore: Servizi In collaborazione con Neomobile incentra l infrastruttura IT su Microsoft ALM, arrivando a 40 nuovi rilasci

Dettagli

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi

AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Unified Process. Prof. Agostino Poggi AOT Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Unified Process Prof. Agostino Poggi Unified Process Unified Software Development Process (USDP), comunemente chiamato

Dettagli

Elementi di Statistica

Elementi di Statistica Elementi di Statistica Contenuti Contenuti di Statistica nel corso di Data Base Elementi di statistica descrittiva: media, moda, mediana, indici di dispersione Introduzione alle variabili casuali e alle

Dettagli

Verifica sismica di dighe a gravità in calcestruzzo

Verifica sismica di dighe a gravità in calcestruzzo Verifica sismica di dighe a gravità in calcestruzzo Keywords: dighe a gravità in calcestruzzo, verifica sismica, metodi semplificati, programmi di calcolo. Autore: L. Furgoni, Relatore: Prof. C. Nuti,

Dettagli

Agilent OpenLAB Chromatography Data System (CDS)

Agilent OpenLAB Chromatography Data System (CDS) Agilent OpenLAB Chromatography Data System (CDS) EZChrom Edition e ChemStation Edition Requisiti hardware e software Agilent Technologies Informazioni legali Agilent Technologies, Inc. 2013 Nessuna parte

Dettagli

White Paper. Operational DashBoard. per una Business Intelligence. in real-time

White Paper. Operational DashBoard. per una Business Intelligence. in real-time White Paper Operational DashBoard per una Business Intelligence in real-time Settembre 2011 www.axiante.com A Paper Published by Axiante CAMBIARE LE TRADIZIONI C'è stato un tempo in cui la Business Intelligence

Dettagli

LINEE GUIDA E DI COORDINAMENTO ATTUATIVE DEL REGOLAMENTO PER L AGGIORNAMENTO E SVILUPPO PROFESSIONALE CONTINUO

LINEE GUIDA E DI COORDINAMENTO ATTUATIVE DEL REGOLAMENTO PER L AGGIORNAMENTO E SVILUPPO PROFESSIONALE CONTINUO LINEE GUIDA E DI COORDINAMENTO ATTUATIVE DEL REGOLAMENTO PER L AGGIORNAMENTO E SVILUPPO PROFESSIONALE CONTINUO nota tecnica ACCREDITAMENTO DELLE INIZIATIVE DI FORMAZIONE A DISTANZA Sommario 1. Iniziative

Dettagli

Business Process Management

Business Process Management Corso di Certificazione in Business Process Management Progetto Didattico 2015 con la supervisione scientifica del Dipartimento di Informatica Università degli Studi di Torino Responsabile scientifico

Dettagli

ALGEBRA: LEZIONI DAL 13 OTTOBRE AL 3 NOVEMBRE

ALGEBRA: LEZIONI DAL 13 OTTOBRE AL 3 NOVEMBRE ALGEBRA: LEZIONI DAL 13 OTTOBRE AL 3 NOVEMBRE 1 DIPENDENZA E INDIPENDENZA LINEARE Se ho alcuni vettori v 1, v 2,, v n in uno spazio vettoriale V, il sottospazio 1 W = v 1,, v n di V da loro generato è

Dettagli

Matematica B - a.a 2006/07 p. 1

Matematica B - a.a 2006/07 p. 1 Matematica B - a.a 2006/07 p. 1 Definizione 1. Un sistema lineare di m equazioni in n incognite, in forma normale, è del tipo a 11 x 1 + + a 1n x n = b 1 a 21 x 1 + + a 2n x n = b 2 (1) = a m1 x 1 + +

Dettagli

Guida alle offerte di finanziamento per le medie imprese

Guida alle offerte di finanziamento per le medie imprese IBM Global Financing Guida alle offerte di finanziamento per le medie imprese Realizzata da IBM Global Financing ibm.com/financing/it Guida alle offerte di finanziamento per le medie imprese La gestione

Dettagli

Corso di Amministrazione di Sistema Parte I ITIL 3

Corso di Amministrazione di Sistema Parte I ITIL 3 Corso di Amministrazione di Sistema Parte I ITIL 3 Francesco Clabot Responsabile erogazione servizi tecnici 1 francesco.clabot@netcom-srl.it Fondamenti di ITIL per la Gestione dei Servizi Informatici Il

Dettagli

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme 1. L insieme R. Per lo svolgimento del corso risulta particolarmente utile considerare l insieme R = R {, + }, detto anche retta reale estesa, che si ottiene aggiungendo all insieme dei numeri reali R

Dettagli

10. Insiemi non misurabili secondo Lebesgue.

10. Insiemi non misurabili secondo Lebesgue. 10. Insiemi non misurabili secondo Lebesgue. Lo scopo principale di questo capitolo è quello di far vedere che esistono sottoinsiemi di R h che non sono misurabili secondo Lebesgue. La costruzione di insiemi

Dettagli

SIASFi: il sistema ed il suo sviluppo

SIASFi: il sistema ed il suo sviluppo SIASFI: IL SISTEMA ED IL SUO SVILUPPO 187 SIASFi: il sistema ed il suo sviluppo Antonio Ronca Il progetto SIASFi nasce dall esperienza maturata da parte dell Archivio di Stato di Firenze nella gestione

Dettagli

ALGEBRA I: NUMERI INTERI, DIVISIBILITÀ E IL TEOREMA FONDAMENTALE DELL ARITMETICA

ALGEBRA I: NUMERI INTERI, DIVISIBILITÀ E IL TEOREMA FONDAMENTALE DELL ARITMETICA ALGEBRA I: NUMERI INTERI, DIVISIBILITÀ E IL TEOREMA FONDAMENTALE DELL ARITMETICA 1. RICHIAMI SULLE PROPRIETÀ DEI NUMERI NATURALI Ho mostrato in un altra dispensa come ricavare a partire dagli assiomi di

Dettagli

IT FINANCIAL MANAGEMENT

IT FINANCIAL MANAGEMENT IT FINANCIAL MANAGEMENT L IT Financial Management è una disciplina per la pianificazione e il controllo economico-finanziario, di carattere sia strategico sia operativo, basata su un ampio insieme di metodologie

Dettagli

Circuiti Elettrici. Schema riassuntivo. Assumendo positive le correnti uscenti da un nodo e negative quelle entranti si formula l importante

Circuiti Elettrici. Schema riassuntivo. Assumendo positive le correnti uscenti da un nodo e negative quelle entranti si formula l importante Circuiti Elettrici Schema riassuntivo Leggi fondamentali dei circuiti elettrici lineari Assumendo positive le correnti uscenti da un nodo e negative quelle entranti si formula l importante La conseguenza

Dettagli

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

Dettagli

Linguaggi. Claudio Sacerdoti Coen 11/04/2011. 18: Semantica della logica del prim ordine. Universitá di Bologna

Linguaggi. Claudio Sacerdoti Coen 11/04/2011. 18: Semantica della logica del prim ordine. <sacerdot@cs.unibo.it> Universitá di Bologna Linguaggi 18: Semantica della logica del prim ordine Universitá di Bologna 11/04/2011 Outline Semantica della logica del prim ordine 1 Semantica della logica del prim ordine Semantica

Dettagli

ALGEBRA I: CARDINALITÀ DI INSIEMI

ALGEBRA I: CARDINALITÀ DI INSIEMI ALGEBRA I: CARDINALITÀ DI INSIEMI 1. CONFRONTO DI CARDINALITÀ E chiaro a tutti che esistono insiemi finiti cioè con un numero finito di elementi) ed insiemi infiniti. E anche chiaro che ogni insieme infinito

Dettagli

SICUREZZA SENZA COMPROMESSI PER TUTTI GLI AMBIENTI VIRTUALI. Security for Virtual and Cloud Environments

SICUREZZA SENZA COMPROMESSI PER TUTTI GLI AMBIENTI VIRTUALI. Security for Virtual and Cloud Environments SICUREZZA SENZA COMPROMESSI PER TUTTI GLI AMBIENTI VIRTUALI Security for Virtual and Cloud Environments PROTEZIONE O PRESTAZIONI? Già nel 2009, il numero di macchine virtuali aveva superato quello dei

Dettagli

Intalio. Leader nei Sistemi Open Source per il Business Process Management. Andrea Calcagno Amministratore Delegato

Intalio. Leader nei Sistemi Open Source per il Business Process Management. Andrea Calcagno Amministratore Delegato Intalio Convegno Open Source per la Pubblica Amministrazione Leader nei Sistemi Open Source per il Business Process Management Navacchio 4 Dicembre 2008 Andrea Calcagno Amministratore Delegato 20081129-1

Dettagli

Panoramica su ITIL V3 ed esempio di implementazione del Service Design

Panoramica su ITIL V3 ed esempio di implementazione del Service Design Master Universitario di II livello in Interoperabilità Per la Pubblica Amministrazione e Le Imprese Panoramica su ITIL V3 ed esempio di implementazione del Service Design Lavoro pratico II Periodo didattico

Dettagli

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table Universita' di Ferrara Dipartimento di Matematica e Informatica Algoritmi e Strutture Dati Rappresentazione concreta di insiemi e Hash table Copyright 2006-2015 by Claudio Salati. Lez. 9a 1 Rappresentazione

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello del sistema 4 2.1 Requisiti hardware........................ 4 2.2 Requisiti software.........................

Dettagli

PRINCIPI BASILARI DI ELETTROTECNICA

PRINCIPI BASILARI DI ELETTROTECNICA PRINCIPI BASILARI DI ELETTROTECNICA Prerequisiti - Impiego di Multipli e Sottomultipli nelle equazioni - Equazioni lineari di primo grado e capacità di ricavare le formule inverse - nozioni base di fisica

Dettagli

Bus di sistema. Bus di sistema

Bus di sistema. Bus di sistema Bus di sistema Permette la comunicazione (scambio di dati) tra i diversi dispositivi che costituiscono il calcolatore E costituito da un insieme di fili metallici che danno luogo ad un collegamento aperto

Dettagli

VERSO UN SISTEMA NAZIONALE INFEA COME INTEGRAZIONE DEI SISTEMI A SCALA REGIONALE

VERSO UN SISTEMA NAZIONALE INFEA COME INTEGRAZIONE DEI SISTEMI A SCALA REGIONALE LINEE DI INDIRIZZO PER UNA NUOVA PROGRAMMAZIONE CONCERTATA TRA LO STATO, LE REGIONI E LE PROVINCE AUTONOME DI TRENTO E BOLZANO IN MATERIA IN.F.E.A. (INFORMAZIONE-FORMAZIONE-EDUCAZIONE AMBIENTALE) VERSO

Dettagli

CS. Cinematica dei sistemi

CS. Cinematica dei sistemi CS. Cinematica dei sistemi Dopo aver esaminato la cinematica del punto e del corpo rigido, che sono gli schemi più semplificati con cui si possa rappresentare un corpo, ci occupiamo ora dei sistemi vincolati.

Dettagli

Release Management. Obiettivi. Definizioni. Responsabilità. Attività. Input

Release Management. Obiettivi. Definizioni. Responsabilità. Attività. Input Release Management Obiettivi Obiettivo del Release Management è di raggiungere una visione d insieme del cambiamento nei servizi IT e accertarsi che tutti gli aspetti di una release (tecnici e non) siano

Dettagli

Appunti di Sistemi Operativi. Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo

Appunti di Sistemi Operativi. Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo Appunti di Sistemi Operativi Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo Indice 1 Cenni su alcuni algoritmi del Kernel di Unix 1 1.1 Elementi di Unix Internals.................................

Dettagli

Così come le macchine meccaniche trasformano

Così come le macchine meccaniche trasformano DENTRO LA SCATOLA Rubrica a cura di Fabio A. Schreiber Il Consiglio Scientifico della rivista ha pensato di attuare un iniziativa culturalmente utile presentando in ogni numero di Mondo Digitale un argomento

Dettagli