Strumenti di monitoraggio delle prestazioni in ambiente real-time: confronto tra le piattaforme VxWorks e QNX

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Strumenti di monitoraggio delle prestazioni in ambiente real-time: confronto tra le piattaforme VxWorks e QNX"

Transcript

1 Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Sistemi Real-Time Strumenti di monitoraggio delle prestazioni in ambiente real-time: confronto tra le piattaforme VxWorks e QNX Anno Accademico 2013/2014 Candidato: Gaetano Rucco matr. N

2 A tutti quelli che mi hanno sempre sostenuto e che mi fanno sentire vivo ed importante.

3 Indice Indice... III Introduzione... 4 Capitolo 1: VxWorks Caratteristiche generali Gestione delle interruzioni Componenti della piattaforma VxWorks Virtualization Profile Strumenti di monitoraggio delle prestazioni Trace Recorder e Tracealyzer WindView Spy Data Monitor Capitolo 2: QNX Neutrino Caratteristiche generali QNX Momentics Monitoring tools QNX System Profiler SAT (System Analysis Toolkit) Capitolo 3: Tool suite a confronto Conclusioni Ringraziamenti Bibliografia... 36

4 Introduzione Il monitoraggio del comportamento di un sistema real-time è fondamentale per via dei requisiti temporali che lo stesso deve soddisfare, i quali possono riferirsi ad aspetti più o meno critici (infatti le attività real-time sono suddivise in soft, firm e hard real-time). D altronde i sistemi real-time sono quei sistemi di calcolo nei quali si ha un doppio concetto di correttezza di funzionamento: logica ( it does the right thing ) e temporale ( it does it on time ). Pertanto la bontà del sistema non dipende solo dalla validità dei risultati ottenuti, ma anche dal tempo in cui questi sono conseguiti: i task real-time devono infatti rispettare le proprie deadline, in maniera più o meno stringente a seconda della loro classe di criticità. L altro concetto fondamentale riguarda la parola reale, la quale indica che la risposta del sistema agli eventi esterni deve avvenire durante l evolversi degli eventi stessi. E chiaro quindi che il concetto di tempo reale non è una proprietà intrinseca di un sistema di controllo né tantomeno un concetto associato alla velocità di reazione del sistema, bensì una caratteristica strettamente legata all ambiente in cui esso opera, giacchè il tempo interno di sistema e quello dell ambiente devono essere misurati con lo stesso riferimento temporale. Infatti è d obbligo ricordare che, mentre l obiettivo generale di un elaborazione veloce è quello di minimizzare il tempo di risposta medio di un insieme di processi, il target di una elaborazione real-time è quello di soddisfare i requisiti temporali individuali di ciascun task real-time [2]. Lo scopo principale del monitoring di un sistema è quello di fornire statistiche ed aiutare lo sviluppatore nell apportare miglioramenti al sistema: in tal senso il 4

5 monitoraggio di un sistema si diversifica dal debugging, il quale mira invece a scoprire potenziali bug nel sistema che possono portare quest ultimo al failure (malfunzionamento, ossia l incapacità del software di comportarsi secondo le aspettative o le specifiche) a run-time. Esistono diversi tool commerciali per il monitoraggio delle prestazioni di un sistema real-time e per il logging delle informazioni ottenute; tuttavia non sempre è possibile adattare tali strumenti a tutti i sistemi ed alcuni di essi possono essere usati solo in fase di sviluppo del sistema. Al fine di offrire garanzie più robuste circa il funzionamento di un sistema real-time, possono essere previsti dei meccanismi del kernel atti a gestire esplicitamente la variabile tempo : infatti la maggior parte dei sistemi real-time si avvale di sistemi operativi real-time (RTOS, Real-Time Operating System), i quali introducono algoritmi di scheduling dei task, meccanismi di mutua esclusione e sincronizzazione tra task, comunicazione con scambio di messaggi, gestione delle interrupt e della memoria, virtualizzazione delle risorse hardware e cosi via. In tal modo è possibile realizzare software di controllo con linguaggi di programmazione di alto livello (cosi da avere una maggiore flessibilità e da semplificare lo sviluppo dei programmi) e con maggiore robustezza rispetto al soddisfacimento dei vincoli temporali. La maggior parte degli RTOS fornisce anche un supporto per la programmazione concorrente attraverso processi e thread. Lo scheduler è tipicamente di tipo preemptive (perché consente di avere latenze più basse ed una maggiore efficienza nell utilizzo di risorse) e basato su priorità fisse. Tuttavia la qualità principale che deve avere un RTOS è la prevedibilità, ossia la capacità di determinare in anticipo se uno o più task riusciranno a completare la loro esecuzione entro le proprie deadline; pertanto l obiettivo degli sviluppatori di RTOS è quello di favorire tale proprietà fondamentale ed in generale di eliminare le fonti di non determinismo dovute appunto alle politiche di gestione realizzate dai SO general-purpose e ad altri fattori ad essi correlati (scheduling, system calls, concorrenza e semafori, gestione delle periferiche, e cosi via), nonché a meccanismi interni al processore (ad esempio interrupt, DMA, MMU e cache). 5

6 Attualmente esistono circa un centinaio di RTOS commerciali e la loro scelta dipende anche dai tool software che gli fanno da corredo e che favoriscono lo sviluppo di applicazioni real-time, quali performance profiler, schedulability analyzer, memory analyzer, tracer, strumenti di monitoraggio real-time (per visualizzare lo stato delle variabili durante l esecuzione di un programma) e code analyzer (per determinare i worst-case execution time (WCET) dei task su architetture specifiche). Chiaramente nella scelta di un RTOS bisogna valutare i vari trade-off (costi, efficienza, tempi di risposta, ecc.) e inoltre è bene ricordare che l utilizzo di un RTOS non è la soluzione a tutti i problemi relativi allo sviluppo di sistemi real-time: nel progetto di sistemi critici bisogna fare sempre delle assunzioni pessimistiche sull ambiente nel quale questi operano (worst case analysis), in modo da tenere in conto tutte le situazioni più gravose. Questo elaborato va ad analizzare gli strumenti di monitoraggio più importanti nel panorama real-time relativamente alle due piattaforme sotto analisi: VxWorks e QNX Neutrino, che sono due tra i RTOS commerciali più utilizzati per lo sviluppo di applicazioni real-time. In particolare, il primo è un RTOS Unix-like proprietario progettato essenzialmente per sistemi embedded che richiedono performance deterministiche e real-time, anche se nel corso degli anni sono stati sviluppati diversi profili al fine di specializzare il prodotto su un vasto range di aree di mercato: automotive, automazione industriale e robotica, area medica e networking, elettronica di consumo, aerospaziale. Anche QNX è un RTOS proprietario Unix-like, conforme allo standard POSIX ed alla sua estensione real-time (RT-POSIX). Esso è usato essenzialmente per progetti ed applicazioni mission critical quali controllori industriali, apparecchiature mediche, router internet, sistemi di controllo del traffico aereo e sistemi di difesa. Nel seguito dell elaborato saranno esposte le caratteristiche principali di questi due importanti RTOS, e infine sarà sostenuto un confronto tra le tool suite prese in considerazione per le due piattaforme, nonché un piccolo parallelo tra queste ultime considerando alcuni parametri e studi sperimentali. 6

7 Capitolo 1: VxWorks Installato su oltre 1,5 miliardi di dispositivi, VxWorks è il principale RTOS al mondo. E stato scelto come RTOS da aziende ed agenzie leader nei relativi settori, quali Alcatel, Boeing, Huawei, Mitsubishi e NASA. VxWorks è un RTOS sviluppato come software proprietario dalla Wind River Systems di Alameda (California) ed è commercializzato come il componente run-time della piattaforma di sviluppo Tornado, la quale però è stata sostituita dall IDE Eclipse-based Wind River Workbench a partire da VxWorks 6.x. Esso supporta numerose architetture hardware quali ARM, Intel, MIPS, Hitachi H8, PowerPC e altre. Le piattaforme VxWorks forniscono il supporto a sistemi uniprocessore (UP) e multiprocessore, comprese le architetture multiprocessore SMP (Symmetric MultiProcessing) e AMP (Asymmetric MultiProcessing); inoltre il RTOS può essere installato anche in modalità multi-boot. Il prodotto è fornito con un kernel multitasking, tecnologie middleware, BSPs (Board Support Packages, cioè l implementazione di uno specifico codice di supporto per una determinata scheda che sia conforme al SO, tipicamente costituito da un bootloader minimale per caricare il kernel del SO ed i device driver per tutte le periferiche della scheda in questione), la suite di sviluppo Wind River Workbench, software di terze parti e tecnologie hardware. Nell ultima versione (VxWorks 7) è stato fatto un lavoro di re-engineering (cioè il processo attraverso il quale un sistema esistente subisce delle modifiche al fine di essere ricostruito in una nuova forma) del RTOS per migliorare la modularità e l evolvibilità, cosi che il kernel possa essere separato da middleware, applicazioni 7

8 ed altri package: in questo modo è possibile aggiungere o effettuare l upgrade di diversi package senza dover modificare il kernel, consentendo quindi ai clienti di correggere eventuali bug e di aggiornare prodotti senza dover revisionare o testare nuovamente l intero sistema [4]. Inoltre sono state migliorate scalabilità, safety, security, grafica e connettività per adattare il RTOS all Internet of Things (IoT) [7], vale a dire la possibile evoluzione dell uso della rete che ha come fine quello di collegare qualsiasi oggetto fisico a questa, fornendo ad esso un identità elettronica ed una certa intelligenza (si pensi ad esempio ad una sveglia che suona prima dell orario impostato se viene rilevato traffico o ad una pianta che comunica all innaffiatoio quando è il momento di essere annaffiata). Infine è utile ricordare che VxWorks presenta anche un simulatore integrato chiamato VxSim, il quale è appunto in grado di simulare un sistema target: tale utility può essere utilizzata ad esempio nello sviluppo del prototipo di un sistema e per il testing del sistema target. Nel corso del capitolo verranno esposte le caratteristiche della piattaforma VxWorks ed i tool software per le varie analisi in ambiente real-time. 1.1 Caratteristiche generali VxWorks offre il supporto al multitasking; il suo kernel utilizza di default uno scheduler preemptive a priorità fisse (in totale abbiamo 256 livelli di priorità), anche se è possibile adottare una politica di tipo Round-Robin (RR); inoltre un task può modificare la sua priorità a run-time a seconda di alcuni parametri. Per quanto riguarda l IPC (Inter-Process Comunication) il kernel offre numerosi meccanismi, fra i quali: shared memory, semafori per la mutua esclusione e per la sincronizzazione, code di messaggi, socket e RPC (Remote Procedure Call). Al fine di evitare il problema della priority inversion (un task ad alta priorità viene bloccato per un tempo indefinito da un task a bassa priorità) nel caso di accesso a risorse condivise con il classico meccanismo semaforico è possibile anche abilitare sui 8

9 semafori di mutua esclusione il protocollo di Priority Inheritance, che però non previene problematiche rilevanti come il deadlock e le catene di bloccaggi. Per quanto concerne i meccanismi di protezione, VxWorks si basa sugli stati gerarchici di privilegio, consentendo la doppia modalità di esecuzione (kernel mode e user mode). Storicamente VxWorks ha sempre fornito solo la modalità kernel; poi, dalla versione 6, è stato introdotto il modello RTP (Real-Time Processes), il quale definisce appunto la demarcazione tra task in user-mode (RTP) e task in kernel-mode. Ad ogni modo gli RTP possono comunque beneficiare indirettamente delle routine del kernel, il quale è protetto da applicazioni che eseguono in user-mode e consente una allocazione affidabile delle risorse ai task. Figura 1.1 : Diagramma a blocchi dell architettura RTP Come si vede infatti dalla figura 1.1, gli RTP eseguono in user-mode e possono condividere opzionalmente delle shared libraries, le quali migliorano l efficienza e la riusabilità del codice, cosi come la velocità di sviluppo del codice ed il debugging. Inoltre VxWorks 6.x consente ai produttori di aumentare l affidabilità dei loro device attraverso la protezione di memoria basata su MMU (Memory Management Unit), supporto hardware che consente la rilocazione dinamica, ossia ritarda l associazione degli indirizzi logici agli indirizzi fisici alla fase di esecuzione cosi che un processo (o meglio la sua immagine) possa essere spostato da un 9

10 segmento di memoria all altro a run-time: la CPU, quindi, vede solo indirizzi virtuali ed i processi possono accedere solo ai propri spazi di indirizzamento. Nel 2004 Wind River ha annunciato la conformità allo standard POSIX ed a RT-POSIX PSE54 [9]. Giacchè VxWorks è stato progettato essenzialmente per sistemi embedded, è normale l utilizzo della cross-compilazione, la quale viene largamente usata per la compilazione di applicazioni per tali sistemi che, avendo generalmente risorse molto limitate, non ne prevedono una normale. Lo sviluppo è quindi fatto su una macchina host che esegue il cross-compiler per compilare il codice sorgente, generando alla fine un file binario eseguibile su una macchina target con architettura diversa dalla macchina host. Tra gli host supportati da VxWorks abbiamo: Windows 8/7/Vista/XP, Ubuntu Desktop 9.04/8.04 e Solaris Gestione delle interruzioni Per quanto riguarda le interrupt, queste vengono gestite da ISR (Interrupt Service Routine) che hanno un livello di priorità maggiore di quello dei task del sistema ed eseguono in un contesto diverso rispetto a quello di tutti i task. Essendo prevista la preemption, anche le ISR possono essere interrotte a scapito di ISR relative ad interrupt a priorità maggiore. Per implementare i meccanismi semaforici di mutua esclusione, il supporto hardware è dato dalla disabilitazione delle interrupt: in VxWorks è possibile disabilitare ed abilitare le interrupt rispettivamente con le API proprietarie intlock() e intunlock(), eseguibili chiaramente solo in kernel-mode. 1.3 Componenti della piattaforma Come già detto nell introduzione, le piattaforme VxWorks sono ottimizzate per diversi settori applicativi. La piattaforma VxWorks general-purpose è composta da componenti run-time e strumenti di sviluppo. I primi consistono in: un Sistema Operativo, software per il supporto delle applicazioni (file system, stack di rete e IPC) e supporto hardware (device drivers e BSP). Per quanto riguarda invece gli 10

11 strumenti di sviluppo abbiamo gli elementi di base per ogni RTOS, vale a dire i compilatori (come GNU o Intel C++ Compiler), i debugger e gli editor. Abbiamo infine diversi tool di produttività a corredo del RTOS, la maggior parte dei quali sono integrati nella suite di sviluppo Wind River Workbench (in sostituzione alla piattaforma di sviluppo Tornado prevista nelle versioni precedenti a VxWorks 6). 1.4 VxWorks 7 L ultima versione di VxWorks consiste in una piattaforma modulare, configurabile ed espandibile per dispositivi connessi, nata con lo scopo di aiutare le grandi aziende a capitalizzare le opportunità offerte dall Internet of Things (IoT). Il RTOS è stato riprogettato, o meglio re-ingegnerizzato, cosi da separare il kernel dai vari package che compongono il sistema: come visto prima, ciò consente di evitare revisioni inutili dell intero sistema, andando cosi ad aumentare la scalabilità e la capacità di adattamento rapido ai mutamenti del mercato. Oltre alla modularità ed alla scalabilità, un altro importante miglioramento introdotto è quello relativo alla security: la connettività pervasiva dovuta all IoT espone chiaramente i dispositivi a più rischi in termini di sicurezza. VxWorks 7 offre un insieme personalizzabile di caratteristiche di sicurezza built-in per proteggere i dispositivi nelle fasi di sviluppo, accensione, trasmissione/ricezione dati e spegnimento. Altro aspetto soggetto al miglioramento è la safety (che, a differenza della security, è intesa piuttosto come incolumità per persone e cose), per la quale è stato ideato un modulo di partizionamento della safety che permette il partizionamento di tempo, spazio e risorse richiesto per la certificazione ARINC 653 (che è uno standard di interfacce software per applicazioni di avionica) ed altre certificazioni IEC. Altro punto cardine è la connettività, che è appunto un requisito fondamentale per l IoT: VxWorks 7 offre il supporto per una vasta gamma di standard e protocolli leader nei propri settori (come Bluetooth, USB e CAN), oltre che a funzionalità di rete ad alte prestazioni. Inoltre è stata arricchita la tool suite Wind River Workbench con 11

12 un sistema di analisi stato dell arte che consente l accesso immediato al codice, permettendo agli sviluppatori di ottimizzarlo e contemporaneamente rilevare bug e memory leak. Infine, l aspetto più interessante introdotto da VxWorks 7 è il Virtualization Profile, il quale permette ai clienti di consolidare più piattaforme hardware stand-alone su una singola piattaforma multi-core. Segue un focus su questo aspetto, partendo da una panoramica sul concetto di virtualizzazione ed approfondendo poi la descrizione del relativo profilo in VxWorks Virtualization Profile La potenza di calcolo e la complessità degli attuali sistemi informatici implica la ricerca di nuovi metodi per ottimizzarne la gestione e l utilizzo. Questo vale soprattutto per le macchine server che, per motivi di sicurezza e praticità, vengono sottoutilizzate: di norma, infatti, viene installata una sola applicazione per sistema operativo, vale a dire una sola applicazione per calcolatore! E evidente dunque l ingente spreco di spazio e di denaro, vista la necessaria presenza di un certo numero di calcolatori quando si vuole realizzare un determinato sistema informatico; bisogna considerare inoltre i costi dovuti alla gestione e soprattutto alla manutenzione di questi calcolatori. Per questo motivo la maggior parte delle aziende (in primis) ha deciso di virare sulla virtualizzazione, la quale permette ad un server fisico ospitante (in gergo, macchina host) di gestire più SO, o meglio più macchine virtuali (macchine guest), vale a dire l insieme delle componenti hardware virtuali (CPU, RAM, Hard Disk, scheda di rete) che vengono astratte durante il processo di virtualization e sulle quali può essere installato il sistema operativo guest e le relative applicazioni. In questo modo le componenti hardware dei calcolatori vengono rese disponibili sotto forma di risorsa virtuale all host. Uno dei vantaggi chiari della virtualizzazione è l ottimizzazione delle risorse hardware della macchina host grazie ai meccanismi di distribuzione delle risorse disponibili di una piattaforma fisica: difatti le macchine virtuali che girano su una macchina host condividono le risorse fisiche di quest ultima e le eventuali contese 12

13 di risorse vengono gestite dai software di virtualizzazione (come ad esempio VMware, VirtualBox, vsphere) che si occupano della gestione dell ambiente. Il componente centrale di un sistema basato su macchine virtuali è l hypervisor (o VMM, Virtual Machine Monitor), il quale si occupa di creare ed eseguire le macchine virtuali, ed in generale di eseguire attività di controllo e di allocazione di risorse sul sistema host. In particolare possiamo avere un hypervisor di tipo 1 (anche detto nativo o bare-metal (da zero) in quanto viene eseguito direttamente sull hardware della macchina host), il quale ha il compito di controllare la piattaforma hardware sul quale esso è eseguito e di gestire i sistemi operativi guest che vengono eseguiti ad un livello superiore rispetto a quello dell hypervisor stesso, ed un hypervisor di tipo 2: entrambi sono esemplificati in figura 1.2: Figura 1.2 : Tipi di hypervisor Il Virtualization Profile di VxWorks estende la scalabilità della piattaforma VxWorks integrando un hypervisor real-time di tipo 1 nel kernel del RTOS. Tale componente rende possibile la virtualizzazione, la quale permette ai clienti di combinare più workloads su un unico processore multi-core, come è mostrato nella figura 1.3 suggerita dagli sviluppatori del Virtualization Profile: 13

14 Figura 1.3 : Consolidamento di funzionalità e sistemi operativi eterogenei grazie al Virtualization Profile. Secondo gli sviluppatori di tale RTOS questa soluzione è ottimale e rispetta il principio ingegneristico dell anticipazione del cambiamento : un architettura in grado di adattarsi ed evolversi per soddisfare le mutevoli esigenze del mercato e dei clienti, e per affrontare al meglio le innovazioni tecnologiche. Inoltre rappresenta una struttura all avanguardia per l IoT, per il quale sono richieste essenzialmente tre proprietà: connettività, scalabilità e sicurezza [10]. Tale profilo sviluppato dalla Wind River è parte dell investimento fatto nelle tecnologie multi-core (intrapreso dagli anni 2000 con la versione 6 di VxWorks) per la safety e la security in tutti i mercati, dai controlli automatici alle apparecchiature mediche ai sistemi di controllo avionici. Tra le key features di questo profilo abbiamo un throttling framework ( framework di strozzamento ) contenuto nell hypervisor che permette di rallentare i sistemi operativi general-purpose guest che stanno consumando troppe risorse a livello di sistema (come ad esempio il bus di memoria e la PCI), in maniera tale da preservare le attività real-time esegsuite dal RTOS di base: ciò è particolarmente utile per sistemi o processi hard real-time. Inoltre l hypervisor garantisce un elevato throughput ed una bassa latenza per quanto riguarda l IPC. 14

15 1.5 Strumenti di monitoraggio delle prestazioni VxWorks è ricco di tool che consentono di fare system monitoring. In particolare l IDE Wind River Workbench 3.3 prevede sei tool per l analisi a run-time di un sistema real-time, i quali offrono una visualizzazione dinamica e molto dettagliata dei componenti del sistema. Nel seguito della trattazione andremo ad analizzare gli strumenti di monitoraggio più interessanti per la piattaforma VxWorks Trace Recorder e Tracealyzer Questi tool nascono col fine di registrare dati rilevanti da un sistema real-time in azione. Sono presentati dal progetto di ricerca Remodel [11] e possono essere adattati manualmente su ogni sistema che utilizza la piattaforma VxWorks. Il Trace Recorder memorizza il comportamento dei task nel sistema, andando a registrare quale task è in esecuzione e quando lo fa. Tracealyzer è un tool offline che va invece a caricare le informazioni nel log creato dal Trace Recorder, le analizza e le mostra in un ambiente grafico all utente. Il primo tool è in grado di monitorare le interrupt ed i context-switch dei task, ma anche delle sonde e/o dei task virtuali definiti dall utente a seconda delle necessità. Le sonde vengono definite dall utente al fine di memorizzare delle informazioni desiderate in un log che può essere analizzato offline. I task virtuali invece sono utilizzati per misurare il tempo di esecuzione di un determinato blocco di codice al fine di valutare il WCET per eventuali task da creare e lanciare o per task e/o funzioni già esistenti. Quando un file di log viene creato a partire dal tracing di determinate informazioni, questo può essere analizzato dal Tracealyzer: un esempio di utilizzo è mostrato in figura 1.4, situata nella pagina successiva. E possibile zoomare nella traccia (il file di log ha appunto estensione.trc), osservare l utilizzo della CPU da parte dei task, i loro execution time e response time, il loro livello di priorità, mostrare la comunicazione tra processi (IPC events), ricercare specifici task o eventi (ad esempio l acquisizione/rilascio di semafori o l invio/ricezione di messaggi) e generare rapporti statistici su un insieme di task 15

16 (contenenti ad esempio il fattore di utilizzazione della CPU U i, il WCET C i, la lateness L i e lo start time r i ) in formato HTML. Infine è molto importante sottolineare che il codice sorgente del Trace Recorder e del Tracealyzer è disponibile ed è modificabile: tale aspetto è non banale e non usuale per i tool. Figura 1.4: Execution view di un task in Tracealyzer WindView WindView è un tool grafico sviluppato dalla Wind River ed integrato nella piattaforma di sviluppo Tornado, utilizzata da VxWorks 5.x. Questo tiene traccia di diversi eventi: l esecuzione dei task, i context-switch, l acquisizione/rilascio di semafori, l utilizzo della memoria, le interrupt e cosi via. Il programma prevede una finestra grafica ed è molto user-friendly : l utente deve premere il pulsante GO per far partire la registrazione delle informazioni del sistema real-time target 16

17 (l utente può anche scegliere cosa loggare), e fermare l analisi premendo il pulsante STOP. Inoltre è anche possibile loggare gli eventi definiti dall utente utilizzando la funzione wvevent della libreria C di VxWorks wvlib, la quale consente di memorizzare le informazioni desiderate in un buffer. In figura 1.5 la semantica del grafico è questa: il task tnettask è nello stato pronto nell intervallo compreso tra i numeri 1 e 2; nell intervallo compreso tra 3 e 4 il task viene prelazionato e viene eseguita la ISR relativa alla interrupt interrupt35 ; la bandierina rossa nel punto 5 indica che è stato rilasciato un semaforo. Figura 1.5 : Esempio di file di log ottenuto con WindView Si tratta dunque di uno strumento molto potente che consente di effettuare un analisi accurata dell ambiente VxWorks con un interfaccia utente molto semplice da utilizzare. Il trade-off è che quando si effettua il logging di dati del sistema target viene creato un nuovo task che va quindi ad incrementare l overhead sul sistema di una quantità sconosciuta (dipendente dalla dimensione del file di log 17

18 e dagli eventi da registrare selezionati dall utente), anche per via del context-switch. Infine un altro svantaggio è che l analisi dei file di log può essere fatta solo nell ambiente Tornado, il quale ha una licenza molto costosa e che è stato sostituito dall IDE Wind River Workbench dalla versione 6 di VxWorks Spy Anche Spy è un tool di monitoraggio molto semplice ed intuitivo da usare; esso stila dei rapporti ciclici sull utilizzazione della CPU da parte dei task di un sistema real-time. Figura 1.6: Il rapporto grafico di Spy lanciato dalla piattaforma Tornado Questo tool esiste sia sulla piattaforma Tornado (si lancia facilmente dalla toolbar) sia come funzione della libreria C di VxWorks spylib : in questo ultimo caso, per lanciare il tool deve essere chiamata la funzione spy() o da un applicazione o dalla shell. Spy mostra periodicamente la quantità di tempo di CPU usata da ogni task, la quantità di tempo spesa in interrupt level (cioè il contesto in cui vengono eseguite le ISR), il tempo speso in kernel-mode ed il tempo in cui il task è nello stato idle. Il vantaggio di Spy è che si tratta di un tool che mostra in maniera molto semplice l utilizzazione della CPU corrente. Gli svantaggi sono dovuti all overhead 18

19 apportato dalla funzione che mostra il rapporto periodicamente e dal fatto che i risultati non sono esatti al 100 % in quanto Spy effettua un campionamento delle informazioni dal sistema e non una vera e propria osservazione di queste Data Monitor Questo ultimo tool grafico in ambiente real-time fa parte dell IDE Wind River Workbench 3.3 ed è utilizzato per monitorare variabili, strutture dati e locazioni di memoria nel sistema real-time di interesse. E possibile fare un analisi live, mentre il nostro programma è in esecuzione, andando a monitorare set specifici di variabili ed i loro valori assunti nel corso dell esecuzione, osservare valori di picco, controllare eventuali errori del tipo out-of-range (grazie al focus sulle locazioni di memoria accedute), modificare il valore delle variabili mentre il programma esegue e salvare tutte le informazioni di interesse su un file. Il vantaggio più grande di questo tool è che fornisce un analisi in tempo reale, senza stoppare o comunque rallentare l applicazione real-time in esecuzione che stiamo monitorando. In figura 1.7 è mostrato un esempio di monitoraggio effettuato con Data Monitor.. Figura 1.7: Esempio di monitoraggio con Data Monitor 19

20 Capitolo 2: QNX Neutrino QNX fu sviluppato nei primi anni 80 dalla compagnia canadese Quantum Software Systems, ma nel 2010 la società è stata acquisita dalla BlackBerry. Il prodotto è indirizzato principalmente al mercato dei sistemi embedded, anche se ha trovato ampia diffusione in altre aree di mercato, come il campo automobilistico e quello dei cellulari. Molte importanti aziende come Cisco, Delphi, Siemens e General Electric fanno ampio affidamento sulla piattaforma software costituita dal RTOS QNX e dai tool di corredo. Negli anni recenti ha avuto un particolare successo commerciale: nell aprile 2011 infatti è stato lanciato sul mercato il BlackBerry PlayBook, un tablet basato appunto sul sistema operativo QNX; qualche mese fa, nel marzo 2014, è invece la Apple a rilasciare il sistema CarPlay per l informatica mobile su auto, basato anch esso sul RTOS QNX Neutrino. In realtà QNX e QNX Neutrino non sono proprio dei nomi interscambiabili: quest ultimo nome è relativo alla versione sviluppata nel 2001, quando il RTOS viene esteso per il supporto nativo a sistemi SMP e quando viene ufficializzata la conformità allo standard POSIX ed alla sua estensione real-time RT-POSIX. Quasi contemporaneamente la QNX System divenne membro del consorzio Eclipse e rilasciò QNX Momentics, un IDE Eclipse-based con plug-in dedicati allo sviluppo di QNX Neutrino. Sebbene in precedenza QNX forniva una licenza d uso utilizzabile per scopi non commerciali, oggi questa non è più prevista ed è possibile scaricare l intero sistema solo in versione di prova per 30 giorni; inoltre, nonostante la licenza proprietaria, nel 2007 è stato rilasciato il codice sorgente di QNX sotto una licenza open-source ibrida, nel senso che il codice è stato fornito solo parzialmente. Attualmente QNX 20

Gianluigi Magnasco easitec S.r.l. Parma, 16 Settembre 2010

Gianluigi Magnasco easitec S.r.l. Parma, 16 Settembre 2010 Soft Control facile con RTX e Windows Embedded Standard 7 RTX 2009: funzionalità ed uso pratico Gianluigi Magnasco easitec S.r.l. Parma, 16 Settembre 2010 Definizione di Sistema Tempo Reale: Definizione

Dettagli

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

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

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

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

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

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

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

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi Evoluzione dei sistemi operativi (4) Sistemi multiprogrammati! più programmi sono caricati in contemporaneamente, e l elaborazione passa periodicamente dall uno all altro Evoluzione dei sistemi operativi

Dettagli

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

Architettura di un sistema operativo

Architettura di un sistema operativo Architettura di un sistema operativo Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi basati su kernel Sistemi con microkernel Sistemi con

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

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

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

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

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

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

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

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

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

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

Scheduling della CPU. Contenuti delle lezioni del 23 e del 26 Marzo 2009. Sequenza alternata di CPU burst e di I/O burst.

Scheduling della CPU. Contenuti delle lezioni del 23 e del 26 Marzo 2009. Sequenza alternata di CPU burst e di I/O burst. Contenuti delle lezioni del 23 e del 26 Marzo 2009 Scheduling della CPU Introduzione allo scheduling della CPU Descrizione di vari algoritmi di scheduling della CPU Analisi dei criteri di valutazione nella

Dettagli

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

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 STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

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 per Sistemi di Elaborazione Ubiqui

Sistemi Operativi per Sistemi di Elaborazione Ubiqui Griglie e Sistemi di Elaborazione Ubiqui Sistemi Operativi per Sistemi di Elaborazione Ubiqui Griglie e Sistemi Ubiqui - D. Talia - UNICAL 1 Sistemi Operativi per Ubiquitous Computing Palm OS Symbian OS

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

Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari. Copyright 2005 The McGraw-Hill Companies srl

Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari. Copyright 2005 The McGraw-Hill Companies srl Capitolo 7 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: correttezza e precision; anywhere, anytime; affidabilità,

Dettagli

Real-Time Systems GmbH (RTS) Partition where you can Virtualize where you have to. Real Time Hypervisor

Real-Time Systems GmbH (RTS) Partition where you can Virtualize where you have to. Real Time Hypervisor Real-Time Systems GmbH (RTS) Partition where you can Virtualize where you have to Real Time Hypervisor Esperti di Real-Time e Sistemi Embedded Real-Time Systems GmbH Gartenstrasse 33 D-88212 Ravensburg

Dettagli

27/03/2013. Contenuti

27/03/2013. Contenuti Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano Contenuti Virtualizzazione - 3 Macchina virtuale - 4 Architetture delle macchine virtuali - 6 Tipi di virtualizzazione - 7 Monitor della

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

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

Università degli Studi di Milano Bicocca Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea Specialistica in Informatica

Università degli Studi di Milano Bicocca Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea Specialistica in Informatica Università degli Studi di Milano Bicocca Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea Specialistica in Informatica Real-time EDF scheduling per il kernel FreeBSD: analisi, implementazione

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

Tecniche Automatiche di Acquisizione Dati

Tecniche Automatiche di Acquisizione Dati Tecniche Automatiche di Acquisizione Dati Sistemi operativi Fabio Garufi - TAADF 2005-2006 1 Cosa sono i sistemi operativi I sistemi operativi sono dei programmi software che svolgono le funzioni di interfaccia

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

Analisi di soluzioni per il real-time monitoring

Analisi di soluzioni per il real-time monitoring Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Sistemi Real-Time Analisi di soluzioni per il real-time monitoring Anno Accademico 2013-2014 Candidato:

Dettagli

Logic Lab. un progetto italiano. www.axelsw.it. soluzioni SOFTWARE PER L'AUTOMAZIONE INDUSTRIALE

Logic Lab. un progetto italiano. www.axelsw.it. soluzioni SOFTWARE PER L'AUTOMAZIONE INDUSTRIALE Logic Lab soluzioni SOFTWARE PER L'AUTOMAZIONE INDUSTRIALE un progetto italiano www.axelsw.it Logic Lab La garanzia e l economia degli standard più diffusi sul mercato LogicLab è un ambiente di sviluppo

Dettagli

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O

Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario L hardware di I/O Struttura Interazione tra computer e controllori

Dettagli

Corso di Informatica

Corso di Informatica CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Funzioni dei Sistemi Operativi!2 Le funzioni principali del SO Gestire le risorse dell elaboratore

Dettagli

2.3.2 Servire gli interrupt 42 2.3.3 System call 47 Riepilogo 50 Domande 51 Problemi 51 Note bibliografiche 52

2.3.2 Servire gli interrupt 42 2.3.3 System call 47 Riepilogo 50 Domande 51 Problemi 51 Note bibliografiche 52 Indice generale. Prefazione XIX Ringraziamenti dell Editore XXI Guida alla lettura XXII Parte 1 - Panoramica 2 1 Introduzione 5 1.1 Viste di un sistema operativo 5 1.2 Obiettivi di un SO 8 1.2.1 Uso efficiente

Dettagli

Strutture dei Sistemi Operativi

Strutture dei Sistemi Operativi Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate di sistema Programmi di sistema Struttura del sistema Macchine virtuali Progetto e implementazione di sistemi

Dettagli

Il supporto al Sistema Operativo

Il supporto al Sistema Operativo Il supporto al Sistema Operativo Obiettivi e funzioni del S.O. Il Sistema Operativo è il software che controlla l esecuzione dei programmi e amministra le risorse del sistema. Ha due obiettivi principali:

Dettagli

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

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

Protezione del Kernel Tramite Macchine Virtuali

Protezione del Kernel Tramite Macchine Virtuali Protezione del Kernel Tramite Macchine Virtuali Fabio Campisi Daniele Sgandurra Università di Pisa 27 Novembre 2007 1/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa Sommario della

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

Automazione di Test di Sistemi Embedded. Sintesi

Automazione di Test di Sistemi Embedded. Sintesi UNIVERSITÀ DEGLI STUDI DI MILANO - BICOCCA Facoltà di Scienze Matematiche, Fisiche e Naturali Dipartimento di Informatica Sistemistica e Comunicazione Corso di Laurea Magistrale in Informatica Automazione

Dettagli

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTÀ DI INGEGNERIA

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTÀ DI INGEGNERIA UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTÀ DI INGEGNERIA Corso di Sistemi Operativi Prof. Stefano Berretti SEMINARIO: VIRTUALIZZAZIONE DI INFRASTRUTTURE INFORMATICHE a cura di: Nicola Fusari A.A. 2012/2013

Dettagli

Componenti di Sistemi Operativi. System Call Programmi di sistema Componenti di un SO Servizi di SO

Componenti di Sistemi Operativi. System Call Programmi di sistema Componenti di un SO Servizi di SO Componenti di so 1 Componenti di Sistemi Operativi System Call Programmi di sistema Componenti di un SO Servizi di SO 2 System Call Le system call forniscono l'interfaccia tra running program e SO Generalmente

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

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

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Funzioni e strategie di progettazione: dai kernel monolitici

Dettagli

Pronto Esecuzione Attesa Terminazione

Pronto Esecuzione Attesa Terminazione Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma

Dettagli

Sistemi Operativi. Introduzione. C.d.L. in Informatica (laurea triennale) Anno Accademico 2013-2014. Dipartimento di Matematica e Informatica Catania

Sistemi Operativi. Introduzione. C.d.L. in Informatica (laurea triennale) Anno Accademico 2013-2014. Dipartimento di Matematica e Informatica Catania Sistemi Operativi C.d.L. in Informatica (laurea triennale) Anno Accademico 2013-2014 Dipartimento di Matematica e Informatica Catania Introduzione Prof. Mario Di Raimondo Sistemi Operativi 9 CFU (72 ore)

Dettagli

2. Strutture dei Sistemi Operativi

2. Strutture dei Sistemi Operativi 1 2. Strutture dei Sistemi Operativi Quali servizi un generico sistema operativo mette a disposizione degli utenti, e dei programmi che gli utenti vogliono eseguire? interfaccia col sistema operativo stesso

Dettagli

Virtualizzazione e Macchine Virtuali

Virtualizzazione e Macchine Virtuali Virtualizzazione e Macchine Virtuali Gabriele D Angelo, Ludovico Gardenghi {gda, garden}@cs.unibo.it http://www.cs.unibo.it/~gdangelo/ http://www.cs.unibo.it/~gardengl/ Università di Bologna Corso di Laurea

Dettagli

Capitolo 6: CPU scheduling

Capitolo 6: CPU scheduling Capitolo 6: CPU scheduling Concetti di base. Criteri di schedulazione. Gli algoritmi di schedulazione. Schedulazione per sistemi multiprocessore. Schedulazione per sistemi in tempo reale. Schedulazione

Dettagli

Lezione 10. Scheduling nei sistemi multiprocessori. Esempio: P=2 processori. Scheduling dei processi

Lezione 10. Scheduling nei sistemi multiprocessori. Esempio: P=2 processori. Scheduling dei processi Lezione 10 Cenni ai sistemi operativi distribuiti 2. Gestione della CPU e della memoria nei multiprocessori Gestione dei processi Scheduling Bilanciamento del carico Migrazione dei processi Gestione della

Dettagli

VIRTUALIZZAZIONE LUG - CREMONA. Linux Day - 25 Ottobre 2008

VIRTUALIZZAZIONE LUG - CREMONA. Linux Day - 25 Ottobre 2008 VIRTUALIZZAZIONE LUG - CREMONA Linux Day - 25 Ottobre 2008 VIRTUALIZZAZIONE In informatica la virtualizzazione consiste nella creazione di una versione virtuale di una risorsa normalmente fornita fisicamente

Dettagli

Sistemi Operativi. Rappresentazione e gestione delle attività e della computazione: processi e thread

Sistemi Operativi. Rappresentazione e gestione delle attività e della computazione: processi e thread Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Rappresentazione e gestione delle attività e della computazione:

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

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

JAVA REAL-TIME: ANALISI DELL ARCHITETTURA E VALUTAZIONE SPERIMENTALE DELLA PIATTAFORMA SOLARIS 10.9

JAVA REAL-TIME: ANALISI DELL ARCHITETTURA E VALUTAZIONE SPERIMENTALE DELLA PIATTAFORMA SOLARIS 10.9 JAVA REAL-TIME: ANALISI DELL ARCHITETTURA E VALUTAZIONE SPERIMENTALE DELLA PIATTAFORMA SOLARIS 10.9 Candidato: Marco Nanni RELATORE: Chiar.mo Prof. Eugenio Faldella CORRELATORI Chiar.mo Prof. Marco Prandini

Dettagli

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico Impossibile visualizzare l'immagine. Struttura di un sistema operativo Struttura dei Sistemi Operativi Servizi di un sistema operativo Interfaccia Utente Capitolo 2 -- Silberschatz Chiamate di sistema

Dettagli

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione Introduzione Fondamenti di Informatica: Sistemi Operativi 1 Elaboratori necessitano di SOFTWARE SOFTWARE DI SISTEMA (SISTEMI OPERATIVI): fanno funzionare le varie componenti del computer e permettono all

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Capitolo 2 -- Silberschatz

Capitolo 2 -- Silberschatz Struttura dei Sistemi Operativi Capitolo 2 -- Silberschatz Struttura di un sistema operativo Servizi di un sistema operativo Interfaccia Utente Chiamate di sistema Tipi di chiamate Programma di sistema

Dettagli

Corso di Laurea in Ingegneria Informatica e Biomedica. Sistemi Operativi A.A. (2002-2003)

Corso di Laurea in Ingegneria Informatica e Biomedica. Sistemi Operativi A.A. (2002-2003) Università degli Studi Magna Græcia di Catanzaro Corso di Laurea in Ingegneria Informatica e Biomedica Sistemi Operativi A.A. (2002-2003) Docente: Prof. Mario Cannataro cannataro@unicz.it www.icar.cnr.it

Dettagli

Il sistema operativo

Il sistema operativo Il sistema operativo Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Cos è un Sistema Operativo? Per capirlo, immaginiamo inizialmente

Dettagli

DATA: 21-09-08 CLASSE: V a EL. TITOLO: ELABORAZIONE DEL SISTEMA OPERATIVO PER mp0

DATA: 21-09-08 CLASSE: V a EL. TITOLO: ELABORAZIONE DEL SISTEMA OPERATIVO PER mp0 DATA: 21-09-08 CLASSE: V a EL. TITOLO: ELABORAZIONE DEL SISTEMA OPERATIVO PER mp0 nelle lezioni precedenti abbiamo preso in esame tutte le caratteristiche e le funzionalità del microprocessore didattico

Dettagli

Informatica di Base - 6 c.f.u.

Informatica di Base - 6 c.f.u. Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Informatica di Base - 6 c.f.u. Anno Accademico 2007/2008 Docente: ing. Salvatore Sorce Il Sistema Operativo Gerarchia del software

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

RTAI: un po di storia

RTAI: un po di storia RTAI Andrea Sambi RTAI: un po di storia Real-Time Application Interface Sviluppato presso il Politecnico di Milano Nato per rispondere alla richiesta di un sistema operativo a basso costo da utilizzarsi

Dettagli

Architettura di un sistema operativo

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

Dettagli

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

APPLICAZIONE COMPACTRIO DI RIFERIMENTO PER UN DATALOGGER A BORDO VEICOLO BASATO SU TIPS & TECHNIQUES

APPLICAZIONE COMPACTRIO DI RIFERIMENTO PER UN DATALOGGER A BORDO VEICOLO BASATO SU TIPS & TECHNIQUES APPLICAZIONE DI RIFERIMENTO PER UN DATALOGGER A BORDO VEICOLO BASATO SU COMPACTRIO Ryan King Q uesta applicazione presenta una soluzione software per un datalogger embedded stand-alone basato su hardware

Dettagli

Ottimizzazione dell infrastruttura per la trasformazione dei data center verso il Cloud Computing

Ottimizzazione dell infrastruttura per la trasformazione dei data center verso il Cloud Computing Ottimizzazione dell infrastruttura per la trasformazione dei data center verso il Cloud Computing Dopo anni di innovazioni nel settore dell Information Technology, è in atto una profonda trasformazione.

Dettagli

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli

Il Sistema Operativo (1)

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

Dettagli

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

D3.2 Documento illustrante l architettura 3D Cloud per la realizzazione di servizi in modalità SaaS

D3.2 Documento illustrante l architettura 3D Cloud per la realizzazione di servizi in modalità SaaS D3.2 Documento illustrante l architettura 3D Cloud per la realizzazione di servizi in modalità SaaS Il modello SaaS Architettura 3D Cloud Il protocollo DCV Benefici Il portale Web EnginFrame EnginFrame

Dettagli

Sistemi Operativi. Libri di Testo

Sistemi Operativi. Libri di Testo Sistemi Operativi Rocco Aversa Tel. 0815010268 rocco.aversa@unina2.it Ricevimento: Ma 14.00-16.00 Gi 14.00-16.00 1 Libri di Testo Testo Principale A.S. Tanenbaum, I moderni sistemi operativi (3 ed), Prentice-

Dettagli

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!! SISTEMI OPERATIVI

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!! SISTEMI OPERATIVI Buona lezione a tutti!! SISTEMI OPERATIVI Gli appunti sono disponibili per tutti gratis sul sito personale del Prof M. Simone al link: www.ascuoladi.135.it nella pagina web programmazione, sezione classi

Dettagli

Sistemi Operativi per Sistemi di Elaborazione Ubiqui

Sistemi Operativi per Sistemi di Elaborazione Ubiqui Griglie e Sistemi di Elaborazione Ubiqui Sistemi Operativi per Sistemi di Elaborazione Ubiqui Griglie e Sistemi Ubiqui - D. Talia - UNICAL 1 Sistemi Operativi per Ubiquitous Computing Palm OS SymbianOS

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

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

comuni ai moderni SO sui quali il corso è incentrato Definizione di sistema operativo

comuni ai moderni SO sui quali il corso è incentrato Definizione di sistema operativo Il Sistema Operativo (SO) è una parte essenziale di un sistema di calcolo In generale un SO è un insieme di programmi che agisce come intermediario tra utenti e hardware di un computer. Esiste un insieme

Dettagli

Architetture software. Virtualizzazione

Architetture software. Virtualizzazione Sistemi Distribuiti Architetture software 1 Virtualizzazione 2 1 Virtualizzazione (motivazioni) Sullo stesso elaboratore possono essere eseguiti indipendentemente d t e simultaneamente t sistemi i operativi

Dettagli

Cos e` un Sistema Operativo? Cos è un sistema operativo?

Cos e` un Sistema Operativo? Cos è un sistema operativo? Cos e` un Sistema Operativo? È un programma (o un insieme di programmi) che agisce come intermediario tra l utente e l hardware del computer: fornisce un ambiente di sviluppo e di esecuzione per i programmi

Dettagli

La genealogia di Windows. Windows NT e Windows 95/98. Dimensioni del codice. Parte IX. Windows

La genealogia di Windows. Windows NT e Windows 95/98. Dimensioni del codice. Parte IX. Windows La genealogia di Windows Parte IX Windows Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 1 DOS: sistema operativo monoutente Windows 3.1 interfaccia a finestre che gira su DOS Windows 95/98

Dettagli

Parte IX. Windows. Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 1

Parte IX. Windows. Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 1 Parte IX Windows Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 1 La genealogia di Windows DOS: sistema operativo monoutente Windows 3.1 interfaccia a finestre che gira su DOS Windows 95/98

Dettagli

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU Il sistema operativo Sistema operativo Gestione della CPU Primi elaboratori: Monoprogrammati: un solo programma in memoria centrale Privi di sistema operativo Gestione dell hardware da parte degli utenti

Dettagli

Informatica (A-K) 25. Il sistema operativo

Informatica (A-K) 25. Il sistema operativo Il sistema operativo Informatica (A-K) 25. Il sistema operativo Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi a cura di Pascoschi Giovanni 2 Cos è

Dettagli