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

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

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

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

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

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

Sistemi Operativi: Sistemi realtime

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

Dettagli

Implementazione di sistemi real time

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

Dettagli

Lezione R14. Sistemi embedded e real-time

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

Dettagli

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

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

Dettagli

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

Principi di Schedulazione in tempo reale

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

Dettagli

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 IN TEMPO REALE

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

Dettagli

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

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

Dettagli

Sistemi Real-Time Ing. Rigutini Leonardo

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

Dettagli

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

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

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

Dettagli

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

Introduzione ai sistemi operativi

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

Dettagli

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

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

Dettagli

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

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

Dettagli

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 I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia

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

Dettagli

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche

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

Dettagli

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

G. Piscitelli Politecnico di Bari 1 of 23

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

Dettagli

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

Low Power Scheduling per Sistemi Real Time

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

Dettagli

CAPITOLO 5 - Sistemi Operativi Moderni

CAPITOLO 5 - Sistemi Operativi Moderni CAPITOLO 5 - Sistemi Operativi Moderni PRESENTAZIONE DI INSIEME Vedremo ora come si è evoluta nel tempo la struttura di un sistema operativo, per passare dalle vecchie strutture di tipo normalmente modulari,

Dettagli

Capitolo 1: Introduzione

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

Dettagli

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

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

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

Dettagli

Linux?!? A cura di: Carmine Stolfi Roberto Lacava

Linux?!? A cura di: Carmine Stolfi Roberto Lacava Linux?!? A cura di: Carmine Stolfi Roberto Lacava Panoramica su Linux Cosè Linux Perchè Linux è libero Cosè Linux? Linux è un Sistema Operativo Agisce da interfaccia tra l' uomo e la macchina fornendo

Dettagli

Altre due categorie non rientrano né nel software di sistema, né in quello applicativo pur contenendo elementi tipici di entrambi sono:

Altre due categorie non rientrano né nel software di sistema, né in quello applicativo pur contenendo elementi tipici di entrambi sono: 3. Il Software TIPI DI SOFTWARE La macchina come insieme di componenti hardware di per sé non è in grado di funzionare. Sono necessari dei programmi progettati dall uomo che indicano la sequenza di istruzioni

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

Università Politecnica delle Marche

Università Politecnica delle Marche Università Politecnica delle Marche Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica e dell Automazione Porting su architettura Cris AXIS ETRAX 100LX del sistema operativo Xenomai Tesi di

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

1.4. Caratteristiche generali dei Sistemi Operativi

1.4. Caratteristiche generali dei Sistemi Operativi 1.4. Caratteristiche generali dei Sistemi Operativi 1.4.1. Funzione primaria di un S.O. Il sistema operativo è la parte più importante del software di base ed ha il compito primario di costituire l interfaccia

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

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

Dipartimento di Informtica e Sistemistica Università di Roma La Sapienza

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

Dettagli

Introduzione al Software Libero e a GNU/Linux

Introduzione al Software Libero e a GNU/Linux Introduzione al Software Libero e a GNU/Linux Enrico Albertini 1 Di cosa stiamo parlando? L'hardware è la parte del computer che possiamo toccare, ciò che è composto da atomi. Il software, invece, è una

Dettagli

Funzioni del Sistema Operativo

Funzioni del Sistema Operativo Il Software I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (ferramenta). La struttura del calcolatore può essere schematizzata come una serie di

Dettagli

Calcolo numerico e programmazione. Sistemi operativi

Calcolo numerico e programmazione. Sistemi operativi Calcolo numerico e programmazione Sistemi operativi Tullio Facchinetti 25 maggio 2012 13:47 http://robot.unipv.it/toolleeo Sistemi operativi insieme di programmi che rendono

Dettagli

Software. Definizione, tipologie, progettazione

Software. Definizione, tipologie, progettazione Software Definizione, tipologie, progettazione Definizione di software Dopo l hardware analizziamo l altra componente fondamentale di un sistema di elaborazione. La macchina come insieme di componenti

Dettagli

SOFTWARE far funzionare l hardware. Informatica Applicata Prof.Emanuela Zilio

SOFTWARE far funzionare l hardware. Informatica Applicata Prof.Emanuela Zilio SOFTWARE far funzionare l hardware 1 SOFTWARE cos è E l insieme dei dati e dei programmi che rendono possibile l inserimento dei dati e dei comandi da parte dell utente, volti all elaborazione da lui desiderata

Dettagli

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

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

Dettagli

01/05/2014. Dalla precedente lezione. Ruolo dei sistemi operativi. Esecuzione dei programmi

01/05/2014. Dalla precedente lezione. Ruolo dei sistemi operativi. Esecuzione dei programmi Marco Lapegna Laboratorio di Programmazione Dalla precedente lezione 6. I sistemi operativi LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica I Sistemi Operativi Il linguaggi di programmazione

Dettagli

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

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

Dettagli

Sistemi Operativi. Scheduling dei processi

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

Dettagli

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

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

Dettagli

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

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

Dettagli

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

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

Dettagli

Applied Research & Technology Dept.

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

Dettagli

Infrastrutture Software

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

Dettagli

Software proprietario

Software proprietario Open Source Software proprietario NO Fino a tutti glianni sessanta, anche se in misura decrescente, la componente principale e costosa di un computer era l hardware. Da ciò la scelta dei produttori di

Dettagli

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

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

Dettagli

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

I programmi applicativi

I programmi applicativi I programmi applicativi Riferimenti: Curtin cap. 6-8 Console cap. 11.1, 11.3 Versione: 15/04/2007 Facoltà di Farmacia Corso di Informatica 1 Le applicazioni Per svariati compiti specifici Vari applicativi,

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

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

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

Sistema Operativo e Applicativi

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

Dettagli

Prefazione. Contenuti

Prefazione. Contenuti Prefazione Il sistema operativo costituisce uno dei componenti fondamentali di ogni sistema di elaborazione, in particolare è quello con cui l utente entra direttamente in contatto quando accede al sistema,

Dettagli

Software e Sistemi Operativi Prof. Maurizio Naldi A.A. 2015/16

Software e Sistemi Operativi Prof. Maurizio Naldi A.A. 2015/16 Software e Sistemi Operativi Prof. Maurizio Naldi A.A. 2015/16 Cosa vedremo Il software applicativo Categorie di SW Il sistema operativo Gestione programmi in esecuzione (processi) Gestione memoria Gestione

Dettagli

Scheduling. Scheduling 14/12/2003 1/7

Scheduling. Scheduling 14/12/2003 1/7 Scheduling In un computer multiprogrammato più processi competono per l'uso della CPU. La parte di sistema operativo che decide quale processo mandare in esecuzione è lo scheduler. Batch OS: scheduling

Dettagli

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica www.dis.uniroma1.it/~midlab Sistemi Operativi II Corso di Laurea in Ingegneria Informatica Prof. Roberto Baldoni Complementi: Buffer I/O Gestione dei buffer e I/O scheduling: 1. Richiami sulle tecniche

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

CAPITOLO 1 I SISTEMI OPERATIVI

CAPITOLO 1 I SISTEMI OPERATIVI CAPITOLO 1 I SISTEMI OPERATIVI Introduzione ai sistemi operativi pag. 3 La shell pag. 3 Tipi di sistemi operativi pag. 4 I servizi del sistema operativo pag. 4 La gestione dei file e il file system Il

Dettagli

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

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

Dettagli

Introduzione al Software Libero

Introduzione al Software Libero Introduzione al Software Libero Linux Day 6 23 novembre 2002 Il software Programma (codice) scritto in un particolare linguaggio di programmazione esistono molti linguaggi di programmazione (Di solito)

Dettagli

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

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

Dettagli

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

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

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

Dettagli

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

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

Dettagli

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

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

Dettagli

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

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

Dettagli

LEGGA ATTENTAMENTE IL SEGUENTE CONTRATTO PRIMA DI UTILIZZARE QUESTO SOFTWARE.

LEGGA ATTENTAMENTE IL SEGUENTE CONTRATTO PRIMA DI UTILIZZARE QUESTO SOFTWARE. LICENZA D USO PER SOFTWARE SONY LEGGA ATTENTAMENTE IL SEGUENTE CONTRATTO PRIMA DI UTILIZZARE QUESTO SOFTWARE. CON L UTILIZZAZIONE DEL SOFTWARE LEI ESPRIME LA SUA ACCETTAZIONE DEL CONTRATTO. IMPORTANTE

Dettagli

Il software. Capitolo 3 La potenza non è nulla senza il software. Informatica di Base -- R.Gaeta 1

Il software. Capitolo 3 La potenza non è nulla senza il software. Informatica di Base -- R.Gaeta 1 Il software Capitolo 3 La potenza non è nulla senza il software 1 Domande chiave 3.1 Quali sono le tendenze nel campo del software online? 3.2 Quali sono i tre componenti del software di sistema; che cosa

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

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

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) Gli elaboratori utilizzano memoria per Dati da elaborare Istruzioni eseguite dall elaboratore software differenti risoluzione problemi differenti Algoritmo

Dettagli

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

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

Dettagli

Introduzione alle architetture per il controllo dei manipolatori

Introduzione alle architetture per il controllo dei manipolatori Introduzione alle architetture per il controllo dei manipolatori Nicola SMALDONE Controllo digitale Perché un sistema di elaborazione dati? Le uscite dell impianto vengono campionate mediante un convertitore

Dettagli

Sistemi Operativi. Modulo 2. C. Marrocco. Università degli Studi di Cassino

Sistemi Operativi. Modulo 2. C. Marrocco. Università degli Studi di Cassino Sistemi Operativi Modulo 2 Schema di un Sistema di Calcolo Programmi Dati di Input Calcolatore Dati di output Modello di von Neumann Bus di sistema CPU Memoria Centrale Memoria di Massa Interfaccia Periferica

Dettagli

TECNICO SUPERIORE PER L AUTOMAZIONE INDUSTRIALE. Sistemi Operativi. Utilizzo dei sistemi operativi ELEMENTI DI INFORMATICA UFC_05

TECNICO SUPERIORE PER L AUTOMAZIONE INDUSTRIALE. Sistemi Operativi. Utilizzo dei sistemi operativi ELEMENTI DI INFORMATICA UFC_05 Sistemi Operativi Utilizzo dei sistemi operativi ELEMENTI DI INFORMATICA UFC_05 1 Software di sistema e applicativo Di sistema: controlla e regola il comportamento del sistema stesso il più importante

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 Open Source per sistemi embedded

Software Open Source per sistemi embedded Software Open Source per sistemi embedded Alberto Ferrante OSLab ALaRI, Facoltà di Informatica Università della Svizzera italiana ferrante@alari.ch Outline Introduzione Perché usare il software OS in ambito

Dettagli

Fase di offerta. Realizzazione del progetto

Fase di offerta. Realizzazione del progetto Linee guida per un buon progetto Commissione dell informazione e dei Sistemi di Automazione Civili e Industriali CONTENUTI A) Studio di fattibilità B) Progetto di massima della soluzione C) Definizione

Dettagli

Elementi del calcolatore: CPU

Elementi del calcolatore: CPU Elementi del calcolatore: CPU Elementi del calcolatore: Memoria Elementi del calcolatore: Memoria Elementi del calcolatore: Hard Disk Antefatto Sistema Operativo Come il computer appare Il calcolatore

Dettagli

Capitolo 3: Strutture dei sistemi operativi

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

Dettagli

L Informatica al Vostro Servizio

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

Dettagli

S o f t w a r e L i b e r o : p e r c h é? a cura di don Paolo La Terra

S o f t w a r e L i b e r o : p e r c h é? a cura di don Paolo La Terra S o f t w a r e L i b e r o : p e r c h é? a cura di don Paolo La Terra C o s a è i l S o f t w a r e L i b e r o? Tecnicamente ed eticamente parlando il Software Libero è quello che, a prescindere dal

Dettagli

ACQUISTARE LA WORKSTATION PERFETTA

ACQUISTARE LA WORKSTATION PERFETTA ACQUISTARE LA WORKSTATION PERFETTA UNA GUIDA ALL ACQUISTO PER OTTENERE IL MASSIME PRESTAZIONE E AFFIDABILITÀ CON IL CAD/CAM SOMMARIO Considerazioni sulle prestazioni... 2 1. CPU... 3 2. GPU... 3 3. RAM...

Dettagli

Scheduling. Livelli Algoritmi

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

Dettagli

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

INTERFACCIA UTENTE----------------------------------------------------------------------------------------------------

INTERFACCIA UTENTE---------------------------------------------------------------------------------------------------- IL FILE SYSTEM PROF. ANTONIO TUFANO Indice 1 FILE SYSTEM ------------------------------------------------------------------------------------------------------------------ 3 1.1. CARATTERISTICHE E STORIA

Dettagli

Processo - generalità

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

Dettagli