Porting su architettura ARM ed analisi comparativa delle patch real-time PREEMPT_RT e Xenomai per il kernel Linux

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Porting su architettura ARM ed analisi comparativa delle patch real-time PREEMPT_RT e Xenomai per il kernel Linux"

Transcript

1 Università Politecnica delle Marche Facoltà di Ingegneria Dipartimento di Ingegneria dell Informazione Corso di Laurea in Ingegneria Informatica e dell Automazione Porting su architettura ARM ed analisi comparativa delle patch real-time PREEMPT_RT e Xenomai per il kernel Linux Tesi di: Alessandro Galdelli Relatore: Prof. Aldo Franco Dragoni Correlatore: Dott. Andrea Claudi Anno Accademico 2011/2012

2 Alla mia famiglia

3 Ringraziamenti La seguente tesi rappresenta la parte finale di questo primo percorso di studi, costituito da momenti di difficoltà e sconforto ma anche di gioia e felicità. Desidero ringraziare tutte le persone che hanno contribuito al raggiungimento di tale traguardo e che mi hanno permesso di realizzare questa tesi. Ringrazio il Prof. Dragoni per la sua totale disponibilità, per aver reso possibile questo lavoro di tesi e per i suoi consigli che mi hanno aiutato a superare gli inconvenienti incontrati durante la sua realizzazione. Desidero ringraziare di cuore Andrea Claudi che quotidianamente mi ha seguito e sostenuto durante tutta la durata del tirocinio, aiutandomi a risolvere qualsiasi tipologia di difficoltà e senza il quale non avrei potuto terminare il lavoro di tesi. Un sentito ringraziamento va ai miei genitori Enzo e Mariangela, a mia sorella Lucia e mia nonna Maria per avermi sostenuto in tutti i miei anni di studio, per avermi incoraggiato, per aver gioito insieme nei momenti felici e per avermi permesso di continuare gli studi in tutta serenità. Grazie di cuore. Un ringraziamento speciale va anche ai miei nonni, Giovanni e Gemma, i quali sarebbero stati molto soddisfatti del traguardo raggiunto. Un grandissimo ringraziamento va alla mia fidanzata Mariasole, per essermi stata sempre vicina e per aver sopportato tutti i miei sbalzi d'umore soprattutto in questa fase conclusiva di studi. Desidero ringraziare tutti i miei amici conosciuti durante gli anni universitari, in particolar modo Feida, Matteo e Andrea con i quali ho preparato la maggior parte degli esami sostenuti. Infine ringrazio tutti i parenti e gli amici di vecchia data per essermi stati sempre vicino e per avermi aiutato a crescere come persona. Grazie a tutti! Ancona, Luglio 2012 Alessandro Galdelli i

4 Sommario Il lavoro svolto in questa tesi ha come obiettivo quello di portare una suite di test per sistemi operativi in tempo reale su architettura ARM. Il lavoro complessivo è diviso in tre parti principali. La prima parte è basata sullo studio e documentazione del sistema operativo Linux e della scheda ARM utilizzata, approfondendo in particolar modo lo studio dei sistemi in tempo reale, basati sempre sul kernel Linux; l'implementazione di un sistema real-time è stata ottenuta tramite l'applicazione di due diverse patch, quella PREEMPT_RT e quella di Xenomai, che riescono a fornire al sistema operativo originale funzionalità real-time. Nella seconda parte del lavoro svolto, tutto lo sforzo è stato incentrato nella configurazione e nella cross compilazione del kernel Linux nelle diverse modalità real-time per la scheda ARM e nel porting della suite di test. Infine, l'ultima parte del lavoro è stata quella di verificare la funzionalità e le prestazioni delle diverse configurazioni utilizzando la suite di test, raggruppando i risultati ottenuti in apposite tabelle. ii

5 Indice Introduzione...1 Stato dell'arte Caratteristiche generali di un RTOS Task periodici/aperiodici e hard/soft real-time Sistemi Hard e Soft real time Schedulazione dei sistemi real time Classificazione degli algoritmi di scheduling Caratteristiche di un sistema real time Standard per sistemi real-time GNU/Linux GPL Scenario di utilizzo dei RTOS Soluzioni real time per il kernel Linux PREEMPT_RT Schedulazione CFS Preemption Patch Low Latency Patch Xenomai Architettura del progetto Adeos pipeline Adeos e Xenomai I domini di Xenomai Intercettare le chiamate di sistema Propagazione degli interrupt Board Marvell SheevaPlug Architettura ARM Il microcontrollore come sistema embedded CPU Marvell 88F Contatori e timers iii

6 2.5.5 La cross-compilazione Il lavoro svolto Lavoro di porting Installazione della toolchain CodeSourcery PREEMPT_RT su piattaforma ARM MV88F Xenomai su piattaforma ARM MV88F Valutazione delle soluzioni rispetto agli aspetti implementativi Test Cyclictest PREEMPT_RT Latency Test Xenomai Risultati dei test Conclusioni e sviluppi futuri Bibliografia iv

7 Elenco delle figure Figura 1 - Parametri temporali caratteristici di un processo... 6 Figura 2 - Coda di processi pronti in attesa di esecuzione Figura 3 - Macchina a stati che modella l'evoluzione di un task Figura 4 - Dispositivi di comunicazione con il sistema domotico Figura 5 - Applicazioni pratiche nel "Sistema-casa" Figura 6 - Struttura di sistema operativo basato sul primo approccio (sinistra) e sul secondo approccio (destra) Figura 7 - Esempio di RB-Albero Figura 8 - Schema dell'architettura di Xenomai Figura 9 - Schema dell'astrazione introdotta dalla pipeline Adeos Figura 10 - Gestione di Adeos su domini multipli con n CPU Figura 11 - Migrazione tra domini Figura 12 - Interrupt shield Figura 13 - Schema a blocchi della board Marvell 88F Figura 14 - Tipico scenario applicativo della board Marvell 88F Figura 15 - Schermata del menuconfig di PREEMPT_RT Figura 16 - Schermata del menuconfig di Xenomai Figura 17 - Messaggi in fase di avvio di Linux relativi al nanokernel Xenomai Figura 18 - Grafico ad area dei risultati del test Cyclictest Figura 19 - Esecuzione del programma in background Figura 20 - Grafico ad area della somma delle latenze del secondo test con il kernel "vanilla" e PREEMPT_RT Figura 21 - Grafico ad area della somma delle latenze del terzo test con il kernel "vanilla" e PREEMPT_RT Figura 22 - Istogramma valori latenze massime dei diversi test con Xenomai Figura 23 - Istogramma valori latenze medie dei diversi test con Xenomai Figura 24 - Istogramma valori latenze minime dei diversi test con Xenomai v

8 Elenco delle tabelle Tabella 1- Confronto degli aspetti implementativi di Xenomai e PREEMPT_RT 64 Tabella 2 - Risultati test Cyclictest per PREEMPT_RT e "vanilla" Tabella 3 - Risultati test Cyclictest con programma in background per PREEMPT_RT e "vanilla" Tabella 4 - Risultati test Cyclictest con ping per PREEMPT_RT e "vanilla" Tabella 5 - Risultati test Cyclictest con funzione di analisi abilitata per PREEMPT_RT e "vanilla" Tabella 6 - Risultati Latency test del nanokernel Xenomai Tabella 7 - Risultati Latency test con programma in background del nanokernel Xenomai Tabella 8 - Risultati test con ping del nanokernel Xenomai vi

9 Capitolo 1 Introduzione Il lavoro svolto in questa tesi ha come obiettivo quello di portare una suite di test per sistemi operativi in tempo reale su architettura ARM. L'architettura ARM (precedentemente Advanced RISC Machine, prima ancora Acorn RISC Machine) definisce una famiglia di microprocessori RISC a 32-bit sviluppata da ARM Holdings e utilizzata in una moltitudine di sistemi embedded. Grazie alle sue caratteristiche di basso consumo (rapportato alle prestazioni) l'architettura ARM domina il settore dei dispositivi mobili dove il risparmio energetico delle batterie è fondamentale. Attualmente la famiglia ARM copre il 75% del mercato mondiale dei processori a 32 bit per applicazioni embedded, ed è una delle più diffuse architetture a 32 bit del mondo. I processori ARM vengono utilizzati in palmari, cellulari, tablet, lettori multimediali, videogiochi portatili e periferiche per computer (come router, hard disk di rete ecc). Oggigiorno i sistemi embedded sono molto diffusi nel mondo dell'informatica e dell'elettronica, e ciò è dovuto al prezzo ridotto e alle prestazioni che possono offrire questi tipi di sistemi. Per sistemi embedded intendiamo tutti quei sistemi elettronici di elaborazione a microprocessore progettati appositamente per una determinata applicazione, spesso con una piattaforma hardware ad hoc, integrati nel sistema che controllano ed in grado di gestirne tutte o parte delle funzionalità richieste. Lo scopo di questa tesi è quello di testare l'efficienza dell'ultima versione del sistema operativo Linux in versione real-time su una scheda ARM di ultima generazione e di valutarne le prestazioni. La suite di test presa in considerazione ha lo scopo di fornire una serie di test affidabili per la valutazione delle funzionalità e delle performance di sistemi real-time come RTAI, Xenomai, RT PREEMPT e naturalmente del kernel Linux stesso. Un sistema operativo real-time è usato quando sono richiesti rigidi vincoli di tempo sulle operazioni del processore o sul flusso di dati, quindi spesso è impiegato come dispositivo di controllo per un'applicazione dedicata. Un sistema operativo real-time ha come 1

10 CAPITOLO 1 - INTRODUZIONE 2 obiettivo quello di minimizzare la latenza dei suoi processi, definita generalmente come l'intervallo di tempo tra l'istante di occorrenza di un evento e l'inizio dell'azione corrispondente a quell'evento. Un sistema operativo real-time non deve necessariamente essere veloce: non è importante l'intervallo di tempo in cui il sistema operativo deve reagire; l'importante è che risponda entro un tempo massimo pre-determinato o scadenza (detta anche deadline). In altre parole il sistema deve essere prevedibile. I sistemi operativi in tempo reale rivestono un ruolo fondamentale nella nostra società coprendo diversi settori applicativi, quali il controllo di impianti industriali, il controllo di impianti sanitari, i sistemi di regolazione di volo, il controllo del traffico aereo, navale e ferroviario, il trasferimento dei dati nelle telecomunicazioni, i sistemi di difesa militari, le missioni spaziali, i sistemi multimediali, l'automazione industriale e la robotica. Oggigiorno, la soluzione di utilizzare il sistema operativo Linux per applicazioni in tempo reale è molto diffusa, grazie soprattutto alla robustezza e performance del sistema stesso. Ciò nonostante, Linux è stato progettato per essere un sistema general-purpose e dunque si possono verificare problemi quando vengono eseguite applicazioni real-time; Linux infatti, può presentare latenze impredicibili e una risoluzione dei tempi non ottimale per il contesto di sistemi operativi in tempo reale. A tal proposito sono sorte alcune modifiche, sottoforma di patch, per prevenire questi problemi e per aggiungere le caratteristiche real-time al kernel "vanilla" di Linux. In questo lavoro di tesi è stata svolta una indagine sulle varie alternative real-time disponibili sul kernel Linux, cioè quella relative alla patch RT PREEMPT e alla patch Xenomai per la scheda ARM, sia in termini di costo temporale nell'implementazione del porting sulla board che per quanto riguarda le prestazioni real-time; in particolare, per lo svolgimento di questa tesi la scheda utilizzata è la board Marvell "SheevaPlug" con processore MV88F6281 (con set di istruzioni ARMv5te). I risultati ottenuti sono conformi a ciò che ci aspettavamo, cioè che nella modalità real-time il kernel è molto più prestazionale del kernel "vanilla", sia in termini di latenza che di velocità computazionale. La tesi è stata organizzata illustrando nel Capitolo 1 i concetti base che caratterizzano i sistemi embedded, facendo una panoramica sull'architettura ARM e sui sistemi real-time. Nel capitolo 2 vengono descritte le caratteristiche generali

11 CAPITOLO 1 - INTRODUZIONE 3 di un sistema real-time, la tecnica di scheduling utilizzata nella patch RT PREEMPT e in quella di Xenomai, la classificazione degli algoritmi di scheduling e gli standard attualmente in uso per i sistemi a tempo reale. In particolar modo vengono descritte nel dettaglio tutte le caratteristiche delle due soluzioni real-time adottate, della licenza GNU utilizzata da Linux e dei componenti principali della scheda ARM SheevaPlug. Nel capitolo 3 vengono illustrate le procedure di installazione di Xenomai e di RT PREEMPT sulla board SheevaPlug, il lavoro di porting della suite di test e i risultati ottenuti dai test nelle diverse configurazioni del kernel Linux. Infine nel capitolo 4 vengono espresse le conclusioni su questo lavoro di tesi e gli sviluppi futuri sia sul campo scientifico che in quello industriale.

12 Capitolo 2 Stato dell'arte 2.1 Caratteristiche generali di un RTOS Un sistema operativo a tempo reale, chiamato brevemente anche RTOS, è un sistema operativo specializzato per il supporto ad applicazioni software real-time. I sistemi che controllano esperimenti scientifici, come i sistemi per la rappresentazione di immagini in medicina, i sistemi di controllo industriale e alcuni sistemi di visualizzazione sono tutti sistemi real-time. Si possono considerare tali anche alcuni sistemi per autovetture a iniezione, controllori di apparecchiature domestiche e sistemi d'arma. Nonostante la vastità degli scenari coinvolti, la maggior parte dei sistemi real-time viene ancora progettata con tecniche empiriche, senza l'ausilio di una metodologia scientifica consolidata. La conseguenza di ciò è una scarsa affidabilità del software che, in applicazioni critiche, può causare gravi danni a cose o persone. Questi sistemi vengono utilizzati tipicamente in ambito industriale (controllo di processo, pilotaggio di robot, trasferimento dati nelle telecomunicazioni) o comunque dove sia necessario ottenere una risposta dal sistema entro un tempo prefissato. Un sistema operativo real-time non deve essere necessariamente veloce: non è importante l'intervallo di tempo in cui il sistema operativo/applicativo deve reagire; l'importante è che risponda entro un tempo massimo pre-determinato. In altre parole il sistema deve essere prevedibile. In pratica un sistema real-time deve garantire che una elaborazione (o task) termini entro un dato vincolo temporale o scadenza (detta in gergo deadline). Per garantire questo è richiesto che la schedulazione delle operazioni sia fattibile. Il concetto di fattibilità di 4

13 CAPITOLO 2 - STATO DELL'ARTE 5 schedulazione è alla base della teoria dei sistemi real-time ed è quello che ci permette di dire se un insieme di task sia eseguibile o meno in funzione dei vincoli temporali dati Task periodici/aperiodici e hard/soft real-time I task di un sistema real-time possono essere: periodici : quando un task consiste in una sequenza di attività avviate con cadenza regolare aperiodici : quando un task consiste in una sequenza di attività avviate ad intervalli irregolari I task periodici sono propri di un sistema di controllo a tempo discreto. Quando si ha a che fare con task di tipo periodico si parla anche di periodo di esecuzione con il quale si identifica il lasso di tempo che intercorre tra due attivazioni del task. Solitamente si fa coincidere la deadline con la fine del periodo poiché questo è il limite massimo di esecuzione di un task. Un ulteriore distinzione dei task real-time è la seguente: soft real-time: un task che non rispetta la sua scadenza (in gergo si dice sfondare la deadline) provoca un danno non irreparabile al sistema. Il superamento della deadline produce un degrado delle prestazioni proporzionale al tempo di superamento della deadline. hard real-time: un task che nel caso superi temporalmente la sua deadline provoca un danno irreparabile al sistema. Sostanzialmente questa distinzione si traduce nella diversa quantificazione dei costi di una possibile inesattezza temporale del sistema. Un esempio di task soft real-time può essere un riproduttore DVD, in cui il mancato rispetto dei vincoli si traduce in un degrado della qualità del filmato, ma non pregiudica il proseguimento della riproduzione; mentre un task hard real-time può essere il

14 CAPITOLO 2 - STATO DELL'ARTE 6 controllore della temperatura del nocciolo di una centrale nucleare, dove il mancato rispetto dei vincoli temporali può provocare un evidente disastro. I sistemi operativi general purpose non supportano la funzionalità hard real-time ma possono supportare quelle di tipo soft (ad esempio Linux è un sistema soft real-time). In generale un sistema operativo di tipo real-time sarà caratterizzato sia da task di tipo hard che di tipo soft. I parametri che caratterizzano il comportamento temporale di un processo sono i seguenti: arrival time (a): istante di tempo in cui il task diventa pronto per l esecuzione; computation time (C): tempo necessario al processore per eseguire completamente un task senza interruzioni; deadline (d): istante di tempo entro cui il task deve essere completato; start time (s): istante di tempo in cui il task va in esecuzione per la prima volta; finishing time (f): istante di tempo in cui il task termina la sua esecuzione. Il significato e le relazioni tra i parametri sopra definiti sono chiariti nella Figura 1. Figura 1 - Parametri temporali caratteristici di un processo Esistono altri tre parametri che caratterizzano temporalmente un task e sono utilizzati per analizzare le prestazioni di un algoritmo di schedulazione: lateness (L): rappresenta il ritardo di completamento del task rispetto alla deadline ed è così definita: L = f - d

15 CAPITOLO 2 - STATO DELL'ARTE 7 si osservi che per un task che completa la propria esecuzione prima della deadline la lateness è negativa. tardiness (E): rappresenta il tempo in cui un processo è rimasto attivo oltre la propria deadline: E = max{0,l} è detto anche exceeding time. laxity (LX): rappresenta il ritardo di attivazione massimo che un task attivo può subire nella ready queue senza per questo violare la deadline: LX = d - a - C Sistemi Hard e Soft real time Esistono due tipi di sistemi real-time. Un sistema hard real-time garantisce che i compiti critici siano completi in un dato intervallo di tempo; tale requisito può essere garantito se tutti i tempi di attesa nel sistema sono ben delimitati, dal prelievo dei dati memorizzati al tempo necessario al sistema operativo per completare le operazioni richieste su tali dati. I vincoli temporali impongono l'uso di dispositivi hardware che sono generalmente presenti nei sistemi hard real-time, mentre è limitata, o addirittura mancante, una memoria secondaria di qualsiasi tipo, poiché i dati sono memorizzati in una memoria a breve termine o in una di sola lettura (ROM). Quest'ultima, diversamente dalla maggior parte degli altri tipi di memorie, è posta in dispositivi di memorizzazione non volatili che conservano il proprio contenuto anche in caso di interruzione dell'energia elettrica. I sistemi real-time mancano di gran parte delle caratteristiche comuni agli altri sistemi operativi avanzati, dal momento che questi ultimi tendono a separare l'utente dall'hardware e rendono incerto il tempo di esecuzione di una operazione. Sistemi

16 CAPITOLO 2 - STATO DELL'ARTE 8 real-time con caratteristiche meno restrittive sono i sistemi soft real-time dove i task real-time critici hanno priorità sugli altri task e la mantengono sino al completamento dell'esecuzione. Come nei sistemi hard real-time le attese del kernel devono essere limitate: un task real-time non può restare indefinitamente in attesa che il kernel lo metta in esecuzione. Le caratteristiche soft real-time possono essere inserite in sistemi di altro tipo, che hanno comunque un'utilità più limitata dei sistemi hard real-time; infatti la mancanza di supporto a elaborazioni con vincoli di tempo ne rende pericoloso l'utilizzo nel controllo industriale e nella robotica. Ci sono comunque diverse aree tra cui multimedialità, realtà virtuale, progetti di ricerca scientifica avanzati, come l'esplorazione sottomarina e planetaria, in cui tali sistemi sono molto utili. Essi necessitano di caratteristiche avanzate dei sistemi operativi che non possono essere supportate dai sistemi hard real-time. L'utilizzo sempre più diffuso delle funzionalità soft real-time ne ha indotto l'introduzione nei più attuali sistemi operativi, comprese le principali versioni di UNIX. Per chiarire meglio il concetto si può pensare ad un sistema real-time come ad un sistema che, dato un insieme di task, ognuno con i propri vincoli temporali (deadline del task -esimo), è in grado di minimizzare la funzione di costo definita come: dove è la funzione di costo del task -esimo definita come: se il task -esimo è di tipo hard real-time, o come: se il task -esimo è di tipo soft real-time, dove si è indicato con una funzione monotona crescente all'aumentare del tempo che scorre. I task di tipo hard real-time dovranno quindi essere schedulati in modo da terminare ad un istante minore della deadline in modo da far valere la funzione di costo 0 e non ; mentre i task soft real-time dovranno anche loro far valere 0

17 CAPITOLO 2 - STATO DELL'ARTE 9 la funzione di costo relativa ma, in questo caso, uno sfondamento della deadline non manderà il costo globale del sistema all'infinito (equivalente al disastro). In entrambi i casi, il comportamento real time è ottenuto dividendo un programma in processi il cui comportamento è prevedibile e noto in anticipo. Questi processi hanno normalmente una vita breve e possono essere eseguiti nella loro completezza in un tempo inferiore al secondo. Nel momento in cui viene rilevato un evento esterno, lo scheduler dei processi ha il compito di determinare un'opportuna sequenza di esecuzione dei processi tale da garantire il rispetto di tutte le scadenze. Come descritto nella sezione precedente, gli eventi a cui un sistema real time deve poter reagire possono essere classificati in task periodici e aperiodici. Nel caso di eventi periodici, se esistono m task e se il task i-esimo arriva con periodo Pi e richiede Ci secondi di tempo di CPU per essere gestito, il carico può essere gestito solo se: M Ci Pi i=1 1 Un sistema real time che rispetta questo vincolo è detto schedulabile. Ad esempio, consideriamo un sistema soft real time con tre eventi periodici di periodo 100, 200 e 500 millisecondi, rispettivamente. Se questi eventi richiedono rispettivamente 50, 30 e 100ms di tempo di CPU per la loro esecuzione, il sistema è schedulabile in quanto: 50/100+30/ /500 = 0, 5 + 0, , 2 1. Se un quarto evento, con periodo di 1 secondo, si aggiunge al sistema, l'insieme dei processi rimarrà schedulabile fino a quando a questo evento non richiederà più di 150ms di tempo di CPU per occorrenza. Notare che nel calcolo precedente si suppone implicitamente che l'overhead per il cambio di contesto sia così piccolo da poter essere trascurato. I sistemi operativi general purpose non supportano la funzionalità hard real-time ma possono supportare quelle di tipo soft (ad esempio Linux è un sistema soft real-time).

18 CAPITOLO 2 - STATO DELL'ARTE Schedulazione dei sistemi real time Quando un singolo calcolatore deve portare a termine l'esecuzione di più processi, si pone il problema di individuare una strategia di gestione che sequenzializzi l'uso della macchina fisica in base ad un criterio prefissato: Figura 2 - Coda di processi pronti in attesa di esecuzione L'algoritmo di scheduling è l'insieme di regole che determinano la scelta del processo da mandare in esecuzione tra i processi pronti. In genere, l'ordinamento della coda pronti viene fatto in modo che il processo da eseguire sia il primo della coda. Alcuni sistemi prevedono che il processo in esecuzione possa essere interrotto in qualsiasi istante e riportato in coda pronti, al fine di consentire ad un processo attivo più importante di completare la sua esecuzione. L'operazione di liberare il processore e riportare il processo in esecuzione in coda pronti viene detta preemption. L'assegnazione effettiva del processore al processo pronto schedulato viene detta dispatching ed è effettuata dal sistema operativo dopo l'operazione di scheduling. Ciò che differenzia un sistema non real-time da un RTOS è principalmente lo schedulatore. Nei sistemi operativi real-time la preemption offre i seguenti vantaggi: Quando i task hanno diversi livelli di importanza, la preemption permette di anticipare l'esecuzione dei task più importanti. Le routine che devono gestire le eccezioni del sistema operativo devono poter interrompere il task in esecuzione per svolgere le azioni appropriate nel più breve tempo possibile. Una schedulazione preemptive consente una maggiore efficienza nell'uso

19 CAPITOLO 2 - STATO DELL'ARTE 11 delle risorse di calcolo, permettendo un maggiore carico computazionale in presenza di vincoli temporali. Lo schedulatore è un algoritmo che controlla l'accesso alla CPU da parte dei vari processi del computer. La schedulazione dei processi è fondamentale per garantire l'efficienza computazionale del computer, garantendo un utilizzo ottimizzato della CPU tra processi che evolvono parallelamente, tenendo conto degli interrupt prodotti dai controller delle varie unità I/O, dalle memorie, dagli hard-disk Concetti generali I possibili stati di un task sono: New. Il processo viene creato. Running. Le istruzioni vengono eseguite. Waiting. Il processo attende che si verifichi qualche evento (come il completamento di un I/O o la ricezione di un segnale). Ready. Il processo attende di essere assegnato a un processore. Terminated. Il processo ha terminato l'esecuzione. Figura 3 - Macchina a stati che modella l'evoluzione di un task Le decisioni riguardanti lo scheduling di CPU possono essere prese nelle seguenti circostanze: 1. Quando un processo passa da stato running a stato waiting 2. Quando un processo passa da stato running a stato ready 3. Quando un processo passa da stato waiting a stato ready 4. Quando un processo termina

20 CAPITOLO 2 - STATO DELL'ARTE Quando un nuovo task è ammesso alla coda ready Diversi algoritmi di scheduling della CPU hanno proprietà differenti e possono favorire una particolare classe. Per il confronto tra gli algoritmi di scheduling della CPU sono stati suggeriti molti criteri. Le caratteristiche utilizzate per il confronto possono incidere in modo rilevante sulla scelta dell'algoritmo migliore. Di seguito sono riportati alcuni tra i criteri utilizzati: Utilizzo di CPU. La CPU deve essere attiva il più possibile, ovvero devono essere ridotti al minimo i possibili tempi morti. Throughput: il numero di processi completati in una determinata quantità di tempo. Tempo di completamento: il tempo che intercorre tra la sottomissione di un processo ed il completamento della sua esecuzione. Tempo d'attesa: il tempo in cui un processo pronto per l'esecuzione rimane in attesa della CPU. Tempo di risposta: il tempo che trascorre tra la sottomissione del processo e l'ottenimento della prima risposta. Tra i criteri sopra elencati, l'unico utile alla valutazione degli algoritmi di scheduling real-time è il tempo di risposta, che deve essere inferiore alla deadline per ogni task Classificazione degli algoritmi di scheduling A seconda delle ipotesi che si assumono sui processi e sul tipo di architettura hardware di supporto all'applicazione, gli algoritmi di scheduling per sistemi real-time possono essere suddivisi in diverse classi, tra loro ortogonali: Preemptive. Sono quegli algoritmi in cui il processo in esecuzione può essere sospeso in qualsiasi istante, allo scopo di assegnare il processore ad un altro processo attivo. Non-preemptive. Sono quegli algoritmi in cui un processo, una volta ricevuto il processore, continua l'esecuzione fino al suo completamento. Le

21 CAPITOLO 2 - STATO DELL'ARTE 13 decisioni di scheduling vengono effettuate solo dopo il completamento di un task. Statici. Sono quegli algoritmi in cui la regola di decisione è basata su parametri fissi, che sono assegnati ai processi una volta per tutte, prima della loro attivazione. Dinamici. Sono quegli algoritmi in cui la regola di decisione è basata su parametri dinamici, che possono variare durante l'esecuzione dei processi. Off-line. Rappresentano quegli algoritmi in cui tutte le decisioni scheduling sono prese prima dell'attivazione dei processi, sulla base di informazioni note a priori. La schedulazione viene memorizzata in una tabella, che a run time viene eseguita da un dispatcher. On-line. Rappresentano quegli algoritmi in cui le decisioni di scheduling vengono effettuate a run time sull'insieme corrente dei processi attivi. L'ordinamento dei task viene quindi ricalcolato ad ogni nuova attivazione. Ottimi. Sono algoritmi in grado di produrre una soluzione che minimizza una data funzione di costo definita sull'insieme di task. Euristici. Sono algoritmi che operano in base ad una funzione di costo definita globalmente su tutto l'insieme di task, ma che, al fine di ridurre la complessità di calcolo, producono soluzioni non ottimali. Negli algoritmi off-line i vincoli di precedenza e di mutua esclusione possono essere integrati implicitamente nello scheduling (implicit synchronization), nel senso che ciascun processo può essere attivato solo quando le risorse da esso richieste sono disponibili e quando tutti i suoi predecessori sono stati eseguiti. Viceversa, negli algoritmi on-line, i vincoli di precedenza e di mutua esclusione devono essere forzati da costrutti di sincronizzazione espliciti. Se i vincoli di precedenza e di mutua esclusione vengono integrati nello scheduling, il problema di trovare una schedulazione off-line fattibile equivale ad un problema di ricerca su un grafo di complessità non polinomiale (NP). Tuttavia, in alcuni casi non è richiesta una soluzione ottima e ci si accontenta di algoritmi

22 CAPITOLO 2 - STATO DELL'ARTE 14 euristici. Tra gli algoritmi di scheduling più utilizzati per i sistemi real-time troviamo: EDF (Earliest Deadline First), EDD (Earliest Due Date) e RM (Rate Monotonic). L'EDF ha le seguenti caratteristiche: Tutti i task arrivano simultaneamente. La priorità è dinamica. Non necessita di preemption. Minimizza la Lateness. L'EDD ha le seguenti caratteristiche: I task possono arrivare in un qualsiasi istante. Priorità dinamica in base alla deadlines imminente. Utilizza la capacità dei task di fare preemption su altri. Minimizza la Lateness. RM è utilizzabile solo per task periodici, ha le seguenti caratteristiche: Ai task viene assegnata una priorità statica proporzionale alla frequenza di arrivo. Un gruppo di task è schedulabile se conosciuta la funzione di utilizzazione U è U<U_lub. La funzione U esprime il tasso di utilizzazione del processore, la funzione risulta limitata superiormente ed è SupU=1, indicando con U_lub fattore di utilizzazione minimo. Diremo che una funzione è certamente schedulabile con Rate Monotonic se U<U_lub, risulta invece non schedulabile se U>1. Se U_lub<U<1 non abbiamo certezza sulla schedulabilità. L'algoritmo EDF in alcune circostanze risulta migliore di RM perché garantisce la schedulabilità semplicemente per U<1. Per approfondire la conoscenza su questi algoritmi di scheduling e per conoscerne altri meno comuni, si consiglia di vedere [1].

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

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

Sistemi Operativi Kernel

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

Dettagli

Sistemi Operativi. Scheduling della CPU 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

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

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

LICENZE D'USO E TIPOLOGIE DI SOFTWARE

LICENZE D'USO E TIPOLOGIE DI SOFTWARE LICENZE D'USO E TIPOLOGIE DI SOFTWARE Il software è tutelato dalle leggi sul diritto d'autore, in maniera simile a quanto avviene per le opere letterarie. Il contratto che regola l'uso del software è la

Dettagli

Le licenze d uso. Le principali tipologie di licenze

Le licenze d uso. Le principali tipologie di licenze Le licenze d uso La legge 633/41 attribuisce in via esclusiva all autore dell opera software tutti i diritti derivanti dall opera stessa, e vieta e punisce ogni abuso che leda questi diritti esclusivi.

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

Software Libero. Terra Futura - Firenze

Software Libero. Terra Futura - Firenze Cosa è il Software Libero Terra Futura - Firenze Simone Piccardi: piccardi@softwarelibero.it April 10, 2005 1 L Associazione Software Libero L Associazione Software Libero, è una associazione culturale

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

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

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

Il Sistema Operativo (1)

Il Sistema Operativo (1) E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale

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

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

Il software. E' una serie di istruzioni eseguite dal PC.

Il software. E' una serie di istruzioni eseguite dal PC. Corso "Software Open Source per il commercio elettronico Modulo: Applicazioni di ecommerce L'OPEN SOURCE Il software E' una serie di istruzioni eseguite dal PC. I programmatori Sono degli informatici che

Dettagli

Sistemi operativi. Esempi di sistemi operativi

Sistemi operativi. Esempi di sistemi operativi Sistemi operativi Un sistema operativo è un programma che facilita la gestione di un computer Si occupa della gestione di tutto il sistema permettendo l interazione con l utente In particolare un sistema

Dettagli

L Open Source un mondo che forse dovresti conoscere? Viaggio alla scoperta dell open source e le sue caratteristiche.

L Open Source un mondo che forse dovresti conoscere? Viaggio alla scoperta dell open source e le sue caratteristiche. L Open Source un mondo che forse dovresti conoscere? Viaggio alla scoperta dell open source e le sue caratteristiche. Le licenze Cosa è la licenza? licenza o contratto d'uso è il contratto con il quale

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

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

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

Porting su architettura ARM Marvell 88F6281 ed analisi comparativa delle patch real-time RTAI e Xenomai per il kernel Linux

Porting su architettura ARM Marvell 88F6281 ed analisi comparativa delle patch real-time RTAI e Xenomai per il kernel Linux UNIVERSITÀ POLITECNICA DELLE MARCHE FACOLTÀ DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria Elettronica Porting su architettura ARM Marvell 88F6281 ed analisi comparativa delle patch real-time

Dettagli

Concetti di base di ingegneria del software

Concetti di base di ingegneria del software Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza

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

SCHEDULATORI DI PROCESSO

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

Dettagli

ARCHITETTURA DI RETE FOLEGNANI ANDREA

ARCHITETTURA DI RETE FOLEGNANI ANDREA ARCHITETTURA DI RETE FOLEGNANI ANDREA INTRODUZIONE È denominata Architettura di rete un insieme di livelli e protocolli. Le reti sono organizzate gerarchicamente in livelli, ciascuno dei quali interagisce

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

J. Assfalg Appunti di Sistemi Operativi

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

Dettagli

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

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

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

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 1 Sistema software 1 Prerequisiti Utilizzo elementare di un computer Significato elementare di programma e dati Sistema operativo 2 1 Introduzione In questa Unità studiamo

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

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

Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria

Università degli Studi Roma Tre Dipartimento di Informatica ed automazione. Facoltà di Ingegneria Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea AUTENTICAZIONE PER APPLICAZIONI WEB Relatore

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

MService La soluzione per ottimizzare le prestazioni dell impianto

MService La soluzione per ottimizzare le prestazioni dell impianto MService La soluzione per ottimizzare le prestazioni dell impianto Il segreto del successo di un azienda sta nel tenere sotto controllo lo stato di salute delle apparecchiature degli impianti. Dati industriali

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

Application note. CalBatt NomoStor per i sistemi di accumulo di energia

Application note. CalBatt NomoStor per i sistemi di accumulo di energia 1. Panoramica Application note CalBatt NomoStor per i sistemi di accumulo di energia Gli Energy Management Systems () sono dispositivi atti al controllo dei flussi di energia dalle sorgenti di produzione

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al

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

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

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

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

Introduzione alla Virtualizzazione

Introduzione alla Virtualizzazione Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: luca.tasquier@unina2.it Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema

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

FONDAMENTI di INFORMATICA L. Mezzalira

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

Dettagli

TECNICHE DI SIMULAZIONE

TECNICHE DI SIMULAZIONE TECNICHE DI SIMULAZIONE INTRODUZIONE Francesca Mazzia Dipartimento di Matematica Università di Bari a.a. 2004/2005 TECNICHE DI SIMULAZIONE p. 1 Introduzione alla simulazione Una simulazione è l imitazione

Dettagli

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

della manutenzione, includa i requisiti relativi ai sottosistemi strutturali all interno del loro contesto operativo.

della manutenzione, includa i requisiti relativi ai sottosistemi strutturali all interno del loro contesto operativo. L 320/8 Gazzetta ufficiale dell Unione europea IT 17.11.2012 REGOLAMENTO (UE) N. 1078/2012 DELLA COMMISSIONE del 16 novembre 2012 relativo a un metodo di sicurezza comune per il monitoraggio che devono

Dettagli

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede

Dettagli

11. Evoluzione del Software

11. Evoluzione del Software 11. Evoluzione del Software Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 11. Evoluzione del Software 1 / 21 Evoluzione del Software - generalità Cosa,

Dettagli

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione Lezione 4 La Struttura dei Sistemi Operativi Introduzione Funzionamento di un SO La Struttura di un SO Sistemi Operativi con Struttura Monolitica Progettazione a Livelli di un SO 4.2 1 Introduzione (cont.)

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

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

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

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

Dettagli

Il modello generale di commercio internazionale

Il modello generale di commercio internazionale Capitolo 6 Il modello generale di commercio internazionale [a.a. 2013/14] adattamento italiano di Novella Bottini (ulteriore adattamento di Giovanni Anania) 6-1 Struttura della presentazione Domanda e

Dettagli

3. Introduzione all'internetworking

3. Introduzione all'internetworking 3. Introduzione all'internetworking Abbiamo visto i dettagli di due reti di comunicazione: ma ce ne sono decine di tipo diverso! Occorre poter far comunicare calcolatori che si trovano su reti di tecnologia

Dettagli

Software per Helpdesk

Software per Helpdesk Software per Helpdesk Padova - maggio 2010 Antonio Dalvit - www.antoniodalvit.com Cosa è un helpdesk? Un help desk è un servizio che fornisce informazioni e assistenza ad utenti che hanno problemi nella

Dettagli

DMA Accesso Diretto alla Memoria

DMA Accesso Diretto alla Memoria Testo di rif.to: [Congiu] - 8.1-8.3 (pg. 241 250) 08.a DMA Accesso Diretto alla Memoria Motivazioni Organizzazione dei trasferimenti DMA Arbitraggio del bus di memoria Trasferimento di un blocco di dati

Dettagli

Scheduling della CPU:

Scheduling della CPU: Coda dei processi pronti (ready( queue): Scheduling della CPU primo ultimo PCB i PCB j PCB k contiene i descrittori ( process control block, PCB) dei processi pronti. la strategia di gestione della ready

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

DOMOTICA. Vidotto Davide

DOMOTICA. Vidotto Davide DOMOTICA Vidotto Davide Cos è la domotica? La domotica, detta anche home automation, è la disciplina che si occupa di studiare le tecnologie atte a migliorare la qualità della vita nella casa. Il termine

Dettagli

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi

Dettagli

ALTRA ECONOMIA. Le licenze nel software. di virtualmondo. terza parte del seminario sul software libero. per contatti luciano@aniene.

ALTRA ECONOMIA. Le licenze nel software. di virtualmondo. terza parte del seminario sul software libero. per contatti luciano@aniene. ALTRA ECONOMIA Le licenze nel software di virtualmondo terza parte del seminario sul software libero per contatti luciano@aniene.net Le licenze L'utilizzo del software può essere concesso gratuitamente

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

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

12. Evoluzione del Software

12. Evoluzione del Software 12. Evoluzione del Software Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 12. Evoluzione del Software 1 / 21 Evoluzione del Software - generalità Cosa,

Dettagli

1) Descrivere dettagliatamente a quale problema di scheduling corrisponde il problema.

1) Descrivere dettagliatamente a quale problema di scheduling corrisponde il problema. Un veicolo viene utilizzato da una società di trasporti per trasportare beni a partire da un unico deposito verso prefissate località di destinazione. Si supponga che occorre trasportare singolarmente

Dettagli

IL SISTEMA INFORMATIVO

IL SISTEMA INFORMATIVO LEZIONE 15 DAL MODELLO DELLE CONDIZIONI DI EQUILIBRIO AL MODELLO CONTABILE RIPRESA DEL CONCETTO DI SISTEMA AZIENDALE = COMPLESSO DI ELEMENTI MATERIALI E NO CHE DIPENDONO RECIPROCAMENTE GLI UNI DAGLI ALTRI

Dettagli

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Scopo della lezione. Informatica. Informatica - def. 1. Informatica Scopo della lezione Informatica per le lauree triennali LEZIONE 1 - Che cos è l informatica Introdurre i concetti base della materia Definire le differenze tra hardware e software Individuare le applicazioni

Dettagli

SOFTWARE PER LA RILEVAZIONE DEI TEMPI PER CENTRI DI COSTO

SOFTWARE PER LA RILEVAZIONE DEI TEMPI PER CENTRI DI COSTO SOFTWARE PER LA RILEVAZIONE DEI TEMPI PER CENTRI DI COSTO Descrizione Nell ambito della rilevazione dei costi, Solari con l ambiente Start propone Time&Cost, una applicazione che contribuisce a fornire

Dettagli

L'Open Source nella cultura giuridica italiana. -e anche al di fuori di essa

L'Open Source nella cultura giuridica italiana. -e anche al di fuori di essa L'Open Source nella cultura giuridica italiana. -e anche al di fuori di essa Alberto Di Cagno Law student at Università Degli Studi di Bari Aldo Moro Specializing in tech law, italian certified electronic

Dettagli

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi Software relazione Hardware Software di base Software applicativo Bios Sistema operativo Programmi applicativi Software di base Sistema operativo Bios Utility di sistema software Software applicativo Programmi

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

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

e-dva - eni-depth Velocity Analysis

e-dva - eni-depth Velocity Analysis Lo scopo dell Analisi di Velocità di Migrazione (MVA) è quello di ottenere un modello della velocità nel sottosuolo che abbia dei tempi di riflessione compatibili con quelli osservati nei dati. Ciò significa

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento: martedì, 12.00-13.00. Dip. Di Matematica Modalità esame: scritto + tesina facoltativa 1

Dettagli

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI Un utilizzatore a valle di sostanze chimiche dovrebbe informare i propri fornitori riguardo al suo utilizzo delle sostanze (come tali o all

Dettagli

GESTIONE DELLE TECNOLOGIE AMBIENTALI PER SCARICHI INDUSTRIALI ED EMISSIONI NOCIVE LEZIONE 10. Angelo Bonomi

GESTIONE DELLE TECNOLOGIE AMBIENTALI PER SCARICHI INDUSTRIALI ED EMISSIONI NOCIVE LEZIONE 10. Angelo Bonomi GESTIONE DELLE TECNOLOGIE AMBIENTALI PER SCARICHI INDUSTRIALI ED EMISSIONI NOCIVE LEZIONE 10 Angelo Bonomi CONSIDERAZIONI SUL MONITORAGGIO Un monitoraggio ottimale dipende dalle considerazioni seguenti:

Dettagli

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo Il Sistema Operativo Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo ... ma Cos'è un S.O.? un PROGRAMMA!... ma Cos'è un programma? PROGRAMMA: 1. algoritmo sequenza

Dettagli

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli

Architettura di un sistema operativo

Architettura di un sistema operativo Architettura di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi

Dettagli

Strumenti di modellazione. Gabriella Trucco

Strumenti di modellazione. Gabriella Trucco Strumenti di modellazione Gabriella Trucco Linguaggio di modellazione Linguaggio formale che può essere utilizzato per descrivere (modellare) un sistema Il concetto trova applicazione soprattutto nell

Dettagli

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

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

Dettagli

Amplificatori Audio di Potenza

Amplificatori Audio di Potenza Amplificatori Audio di Potenza Un amplificatore, semplificando al massimo, può essere visto come un oggetto in grado di aumentare il livello di un segnale. Ha quindi, generalmente, due porte: un ingresso

Dettagli

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING Febbraio Inserto di Missione Impresa dedicato allo sviluppo pratico di progetti finalizzati ad aumentare la competitività delle imprese. COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING COS E UN

Dettagli

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione I semestre 04/05 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1

Dettagli

LICENZA USO SOFTWARE on line So.Ge.R. PRO interoperabile SISTRI

LICENZA USO SOFTWARE on line So.Ge.R. PRO interoperabile SISTRI LICENZA USO SOFTWARE on line So.Ge.R. PRO interoperabile SISTRI IMPORTANTE AVVISO: LEGGERE ACCURATAMENTE ED ASSICURARSI DI AVER COMPRESO IL PRESENTE CONTRATTO DI LICENZA CON L UTENTE FINALE PRIMA DI ACCETTARE

Dettagli

2 Gli elementi del sistema di Gestione dei Flussi di Utenza

2 Gli elementi del sistema di Gestione dei Flussi di Utenza SISTEMA INFORMATIVO page 4 2 Gli elementi del sistema di Gestione dei Flussi di Utenza Il sistema è composto da vari elementi, software e hardware, quali la Gestione delle Code di attesa, la Gestione di

Dettagli

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

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

Dettagli

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

Calcolo del Valore Attuale Netto (VAN)

Calcolo del Valore Attuale Netto (VAN) Calcolo del Valore Attuale Netto (VAN) Il calcolo del valore attuale netto (VAN) serve per determinare la redditività di un investimento. Si tratta di utilizzare un procedimento che può consentirci di

Dettagli