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

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

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

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

Lezione R14. Sistemi embedded e real-time

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

Dettagli

Sistemi 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

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

SISTEMI IN TEMPO REALE

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

Dettagli

Sistemi Real-Time Ing. Rigutini Leonardo

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

Dettagli

Scheduling della CPU

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

Dettagli

Principi di Schedulazione in tempo reale

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

Dettagli

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Università di Padova - Corso di Laurea in Governo delle Amministrazioni - Informatica per ufficio

Università di Padova - Corso di Laurea in Governo delle Amministrazioni - Informatica per ufficio Il lavoro d ufficio La posta elettronica Intranet e Internet Browser OpenSource Mail server Utente 1 Utente 2 Apparato Rete Mail Server Server di posta POP3: (Post Office Protocol) protocollo per gestire

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

Linux nei sistemi Real-Time. Andrea Sambi

Linux nei sistemi Real-Time. Andrea Sambi Linux nei sistemi Real-Time Andrea Sambi Sistemi Real-Time Sistema Real-Time (RT) non è sinonimo di sistema veloce. Un Processo Real-Time deve terminare rispettando i vincoli temporali (le deadline) stabiliti

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

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

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

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

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

Dettagli

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata

Dettagli

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

Colloquio di informatica (5 crediti)

Colloquio di informatica (5 crediti) Università degli studi della Tuscia Dipartimento di Scienze Ecologiche e Biologiche Corso di laurea in Scienze Ambientali A.A. 2013-2014 - II semestre Colloquio di informatica (5 crediti) Prof. Pier Giorgio

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

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

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

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

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

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

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

Parte VI SISTEMI OPERATIVI

Parte VI SISTEMI OPERATIVI Parte VI SISTEMI OPERATIVI Sistema Operativo Ogni computer ha un sistema operativo necessario per eseguire gli altri programmi Il sistema operativo, fra l altro, è responsabile di riconoscere i comandi

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

Software Libero. Nicola Asuni

Software Libero. Nicola Asuni Software Libero Nicola Asuni Software "programmi e procedure utilizzati per far eseguire determinati compiti agli elaboratori elettronici (computer) o qualsiasi altro apparato con capacità di elaborazione

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

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

Parte VI SISTEMI OPERATIVI

Parte VI SISTEMI OPERATIVI Parte VI SISTEMI OPERATIVI Sistema Operativo Ogni computer ha un sistema operativo necessario per eseguire gli altri programmi Il sistema operativo, fra l altro, è responsabile di riconoscere i comandi

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

Real-time EDF scheduling per il kernel FreeBSD: analisi, implementazione e risultati sperimentali

Real-time EDF scheduling per il kernel FreeBSD: analisi, implementazione e risultati sperimentali Real-time EDF scheduling per il kernel FreeBSD: analisi, implementazione e risultati sperimentali Marco Trentini m.trentini@campus.unimib.it Relatore: Dott. Sergio Ruocco Correlatore: Prof. Francesco Tisato

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

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi a.a. 2010/2011 Francesco Fontanella Il Sistema Operativo Sistema Operativo 2 Il Sistema Operativo Il Sistema Operativo è uno strato

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

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

Università Politecnica delle Marche

Università Politecnica delle Marche Università Politecnica delle Marche Facoltà di Ingegneria Corso di Laurea di Ingegneria Elettronica Porting su architettura ARM Marvell 88F6281 ed analisi comparativa delle patch real-time RTAI e Xenomai

Dettagli

6 CPU Scheduling. 6.1 Concetti Fondamentali dello Scheduling della CPU. 6.1 Concetti Fondamentali

6 CPU Scheduling. 6.1 Concetti Fondamentali dello Scheduling della CPU. 6.1 Concetti Fondamentali 1 6 CPU Scheduling La gestione della CPU (soltanto) può rendere la multi-programmazione più efficiente della mono-programmazione Infatti, la multiprogrammazione permette di ottenere l utilizzazione massima

Dettagli

Secondo la Free Software Foundation, un software si può definire libero solo se garantisce quattro "libertà fondamentali":

Secondo la Free Software Foundation, un software si può definire libero solo se garantisce quattro libertà fondamentali: OPEN SOFTWARE Tecnicamente, Open Source significa a codice sorgente aperto. La maggior parte dei programmi sono infatti scritti in linguaggi (più o meno) leggibili dagli umani, quali il C, C++, C#, ecc.;

Dettagli

UD 1.5c: Il Sistema Operativo (parte 1)

UD 1.5c: Il Sistema Operativo (parte 1) Prof. Alberto Postiglione Scienze della e Facoltà di Lettere e Filosofia Università degli Studi di Salerno UD 1.5c: Il Sistema Operativo (parte 1) Informatica Generale (Laurea in Scienze della e) Sistemi

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

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

Sistemi operativi e reti A.A. 2015-16. Lezione 2

Sistemi operativi e reti A.A. 2015-16. Lezione 2 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 2 Giovedì 8-10-2015 Sistemi batch multiprogrammati La causa principale

Dettagli

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

LPIC-1 Junior Level Linux Certification

LPIC-1 Junior Level Linux Certification Corso 2012/2013 Introduzione a GNU/Linux Obiettivi Il percorso formativo ha l obiettivo di fornire ai partecipanti le competenze basilari necessarie per installare, configurare e gestire un server/workstation

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

Lezione E1. Sistemi embedded e real-time

Lezione E1. Sistemi embedded e real-time Lezione E1 Sistemi embedded e real-time 3 ottobre 2012 Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata SERT 13 E1.1 Di cosa parliamo in questa lezione?

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

uomo Software (sistema operativo) hardware

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

Dettagli

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

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

Progettazione di sistemi Embedded

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

Dettagli

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

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

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

Sistemi Operativi. ugoerr+so@dia.unisa.it 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Sistemi Operativi. ugoerr+so@dia.unisa.it 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08 Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 5 LEZIONE SCHEDULING DELLA CPU CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione Introduzione

Dettagli

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

Sistemi Operativi. Schedulazione della CPU

Sistemi Operativi. Schedulazione della CPU Sistemi Operativi (modulo di Informatica II) Schedulazione della CPU Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Concetti di base Come si realizza il multi-tasking Come si

Dettagli

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

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

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

Linux e il real time in applicazioni spaziali

Linux e il real time in applicazioni spaziali Linux e il real time in applicazioni spaziali ESA-ESTEC TEC-SWE Seminario nell ambito del corso di Sistemi Operativi in Tempo Reale tenuto dal Prof. Aldo Franco Dragoni Contenuti Introduzione Linux e il

Dettagli

boot loader partizioni boot sector

boot loader partizioni boot sector IL SISTEMA OPERATIVO Il sistema operativo (S.O.) è un software che fa da interfaccia tra l uomo e l hardware, mettendo a disposizione un ambiente per eseguire i programmi applicativi. Grazie al S.O. un

Dettagli

Gli stati di un processo

Gli stati di un processo Roberta Gerboni 1 Gli stati di un processo Gli stati possibili nei quali si può trovare un processo sono: Hold (parcheggio): il programma (chiamato job) è stato proposto al sistema e attende di essere

Dettagli

L'Innovazione è ciò che distingue un Leader da un follower Steve Jobs. (Ambiente Sicurezza Salute)

L'Innovazione è ciò che distingue un Leader da un follower Steve Jobs. (Ambiente Sicurezza Salute) L'Innovazione è ciò che distingue un Leader da un follower Steve Jobs. (Ambiente Sicurezza Salute) Come nasce: È una Rete di Impresa, nata con lo scopo di raggruppare persone interessate a collaborare

Dettagli

Il software: natura e qualità

Il software: natura e qualità Sommario Il software: natura e qualità Leggere Cap. 2 Ghezzi et al. Natura e peculiarità del software Classificazione delle qualità del software Qualità del prodotto e del processo Qualità interne ed esterne

Dettagli

Novell ZENworks Configuration Management in ambiente Microsoft * Windows *

Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Guida GESTIONE SISTEMI www.novell.com Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Novell ZENworks Configuration Management in ambiente Microsoft Windows Indice: 2..... Benvenuti

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

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

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

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

Parte 3. Sistemi Operativi. Sistema operativo. Il sistema operativo (Operating System - OS): offre le operazioni base necessarie per:

Parte 3. Sistemi Operativi. Sistema operativo. Il sistema operativo (Operating System - OS): offre le operazioni base necessarie per: Parte 3 Sistemi Operativi Sistema operativo Il sistema operativo (Operating System - OS): offre le operazioni base necessarie per: l uso efficace del computer mediante funzionalità che non sono fornite

Dettagli

Il Concetto di Processo

Il Concetto di Processo Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono

Dettagli

Software che sovrintende al funzionamento del computer eseguendo compiti diversi:

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

Dettagli

Sommario della lezione

Sommario della lezione Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 2 LEZIONE STRUTTURE DEI SISTEMI OPERATIVI CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione

Dettagli

Diagramma delle durate dei CPU burst. Lo scheduler della CPU. Criteri di scheduling. Dispatcher

Diagramma delle durate dei CPU burst. Lo scheduler della CPU. Criteri di scheduling. Dispatcher Schedulazione della CPU Scheduling della CPU Introduzione allo scheduling della CPU Descrizione di vari algorimi di scheduling della CPU Analisi dei criteri di valutazione nella scelta di un algoritmo

Dettagli