4.6 Processo di build di ecos Applicazioni...53 Considerazioni finali e Conclusioni...55 Riferimenti Bibliografici...59

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "4.6 Processo di build di ecos...52 4.7 Applicazioni...53 Considerazioni finali e Conclusioni...55 Riferimenti Bibliografici...59"

Transcript

1 Sommario Ringraziamenti...3 Introduzione Sistemi operativi Realtime Concetto di Realtime RealTime OS Hard vs Soft Realtime Panoramica sui Sistemi operativi RealTime Content Switch, Stack, Task Control Block, Preemption e Timeslices Concorrenza Interrupt Scheduler Caratteristiche di ecos Dove è cominciato tutto Cygnus Solutions L'origine di ecos Configurabilità e configurazione I componenti chiave di ecos Supporto a processori e piattaforme di valutazione Supporto tecnico ad ecos Vione d'ineme del stema ecos Terminologia di ecos Il component framework Component Repotory Opzioni di Configurazione Pacchetti e componenti Target Template Caratteristiche di ecos Portabilità Caratteristiche di base di HAL Funzionalità di HAL Configurazione di HAL Componenti di configurazione comuni Componenti di configurazione specifici dell'architettura Inizializzazione di HAL Il kernel di ecos Meccanismi di gestione del tempo in ecos Scheduler nativi in ecos Bitmap Scheduling MLQ scheduler Sincronizzazione dei thread con ecos Esempio di applicazione usando ecos Processo di build di ecos Un'occhiata più da vicino Setup dell'hardware di sviluppo Tool di configurazione di ecos Redboot Installazione di RedBoot Boot di RedBoot

2 4.6 Processo di build di ecos Applicazioni...53 Conderazioni finali e Concluoni...55 Riferimenti Bibliografici

3 Ringraziamenti Ringrazio la Prof. Leonardi e il Prof. Valenti per la pazienza e la disponibilità che hanno avuto nei miei confronti durante il periodo di stesura dell'elaborato. Ringrazio immensamente Alfonso e Patrizia, i miei genitori, per la fiducia dimostrata in questi anni e per la sopportazione delle mie frequenti cri univertarie; senza di loro non sarei mai arrivato fino a questo punto e quindi a loro va tutto il mio rispetto, la mia riconoscenza e la mia stima. Ringrazio Alex, mio fratello, anche lui ha mi sopportato parecchio, soprattutto nelle mie richieste di aiuto notturne pre-esame e Cristiana, sua moglie, che più di una volta è data da fare per darmi aiuto con gli esami. Ringrazio poi mia nonna, i miei zii e i miei cugini che sono sempre interessanti di come stesse procedendo l'univertà. Ringrazio tutti i miei amici, in particolar modo Mattia, Lancia, Della, Menga e Bobby con cui ho passato diverse ore a studiare; sono dimostrati veri amici e credo potrò sempre contare su di loro. Non posso poi non menzionare Kenzo e Ruset per le goliardiche serate passate aseme. Un ulteriore grazie a tutti i compagni di attività sportive, specialmente quelli della pallanuoto con cui sono rimasto in contatto nonostante l'abbia dovuta abbandonare. Devo un grazie anche alle mie amiche Elisa e Alice che mi hanno sempre ascoltato e hanno sempre avuto parole di conforto quando ne avevo bisogno. Infine un grazie a tutti coloro che in qualche modo hanno creduto in me e mi hanno sostenuto. 3

4 Introduzione Un stema operativo (SO, o in inglese OS) è il componente di infrastruttura software di un stema informatico (computer) responsabile della gestione, del coordinamento delle attività e la condivione delle risorse hardware del computer. Il stema operativo mette a dispozione dell'utente una interfaccia software (grafica o testuale) per accedere alle risorse hardware (dischi, memoria, I/O in generale) del stema. Il compito principale del stema operativo è quello di permettere all'utente, umano o non, di interagire direttamente con la macchina. Quando invece parliamo di stema operativo realtime, intendiamo un stema operativo multitasking (che permette l'esecuzione contemporanea di più proces) programmato per applicazioni realtime cioè genericamente con vincoli temporali. Queste applicazioni includono stemi embedded (progettati per uno specifico scopo), robot industriali, macchine a controllo numerico, equipaggiamento scientifico, etc. Come vedrà nel capitolo uno del presente elaborato, un stema operativo realtime rende posbile la creazione di un stema realtime, ma non garantisce che il risultato finale a realtime; questo richiede infatti il corretto sviluppo del software. Un stema operativo realtime non deve necessariamente avere grandi capacità elaborative quanto piuttosto garantire di riuscire a fare il proprio lavoro entro i tempi prefissati. I SO realtime sono valutati in modo migliore più velocemente e/o deterministicamente rispondono a particolari eventi piuttosto che alla quantità di lavoro che riescono a svolgere in un determinato periodo. Nel capitolo uno inoltre vedremo poi come un stema realtime riesce attraverso algoritmi di scheduling (organizzazione del lavoro) a fornire gli strumenti che gli permettono di essere predicibile nel tempo. La diffuone di dispotivi embedded che utilizzano stemi operativi realtime è curamente sottostimata dalla popolazione media; questo perché sono generalmente nascosti. Solitamente hanno risorse limitate e sono studiati per avere una bassa interazione con l'uomo, oppure quando permettono l'interazione, questa avviene in maniera diversa rispetto a quella clasca mouse-tastiera-monitor. L'interazione, nei ca di stemi operativi realtime per dispotivi embedded, avviene solitamente con attuatori (pulsanti) e/o sensori. Un esempio di dispotivi commerciali che fanno uso di questo tipo di stemi operativi sono: lettori mp3, console portatili da gioco, stampanti, fotocamere, dispotivi GPS, robot, telefoni cellulari etc. 4

5 Vista la diffuone di questi stemi operativi, nel capitolo due andremo ad introdurre ecos, un stema operativo realtime, open source, royalty-free per stemi embedded, che viene utilizzato per il tipo di applicazioni poc'anzi descritte. Vedremo come e perché è nato, come è strutturato, quali sono i suoi componenti chiave, come configura e con quali piattaforme hardware può essere utilizzato. Il capitolo tre è dedicato all'approfondimento delle caratteristiche chiave di ecos: il kernel, HAL, lo scheduler e i meccanismi di ncronizzazione dei thread. Nel quarto capitolo poi andremo a vedere un esempio di processo di build di ecos, cioè come riesce attraverso l'ambiente fornito da ecos a realizzare una propria applicazione che girerà poi su una piattaforma hardware reale. Infine l'elaborato conclude con alcune conderazioni e commenti relativi a quanto appreso. 5

6 1 Sistemi operativi Realtime 1.1 Concetto di Realtime Nel panorama informatico vi sono molteplici definizioni di realtime, ma il più di esse sono contraddittorie. Il tema è piuttosto discusso poiché non trova un accordo sulla terminologia. La definizione canonica di un stema realtime, data da Donald Gillies (matematico e informatico), è la seguente: Un stema è realtime quando la correttezza della computazione dipende non solo dalla correttezza logica della computazione, ma anche dal tempo richiesto per produrre il risultato di questa. Se la restrizione temporale del stema non sono rispettate, questo può portare alla cri del stema. Questa definizione, ha portato altri ad aggiungere: è essenziale che che le restrizioni temporali del stema abbiano una garanzia che vengano rispettate. Questa garanzia richiede che il stema a di tipo prevedibile. Sarebbe inoltre gradito che il stema mantenga un altro grado di utilizzazione mentre soddisfa le restrizioni temporali. Il clasco esempio di software che deve essere realtime è quello del stema frenante ABS: se non viene azionato in tempo il stema ABS, questo può causare un incidente. Quindi è estremamente importante che i progettisti di stemi realtime conoscano tutte le posbili castiche di funzionamento del stema in modo da poterne prevedere il comportamento. Per questo motivo i progettisti spendono gran parte del loro tempo a studiare quello che è definito il caso peggiore in termini prestazionali. L'istituto degli ingegneri elettrici ed elettronici (IEEE) definisce invece il concetto di realtime attraverso lo standard POSIX : Real time in un stema operativo: l'abilita del stema operativo di soddisfare un determinato carico di lavoro in un determinato tempo di risposta. Anche il dipartimento di ingegneria aerospaziale del politecnico di Milano dà la sua definizione di stema realtime: un stema capace di garantire requiti temporali del processo sotto il suo controllo. Il stema deve quindi essere veloce e predicibile. Veloce gnifica con basse latenze, per esempio nel rispondere ad eventi esterni ancroni in tempi ridotti. Più è bassa la latenza, meglio il stema risponde ad eventi che richiedono attenzione immediata. Predicibile gnifica che deve essere posbile determinare il periodo di completamento del processo in un tempo certo. 6

7 Un'altra interessante definizione di stema operativo realtime (o RTOS) è quella data dal prof. Claudio Melchiorri del DEIS (Dipartimento di Elettronica, Informatica e Sistemistica dell'univertà di Bologna): un RTOS è un stema in cui per valutare la correttezza delle operazioni condera anche la variabile tempo. Devono essere garantite quindi due tipologie di correttezza: la correttezza logica e quella temporale. La prima implica che i risultati e le risposte forniti dal stema ano quelli previsti (giusta computazione dei dati), mentre la seconda deve fare in modo che i dati ano prodotti entro certi limiti temporali fissati (deadlines). Nel marzo 2003, presso la nostra Univertà, è tenuto un seminario sulla progettazione dei stemi embedded e realtime, durante il quale il Prof. Valenti ha illustrato il suo punto di vista sulle caratterizzazioni realtime: Le specifiche tecniche dei stemi embedded contengono spesso vincoli sui tempi di risposta agli eventi esterni tali, da soli, a giustificare l'avvio di una progettazione hardware dedicata. Tali vincoli temporali, indicati dal Prof. Valenti, possono essere di vario tipo: Deadline: è la richiesta temporale più restrittiva; conste nella pretesa di ascurare un tempo masmo di risposta prevedibile e sempre inferiore ad un certo limite fra il presentar di un evento e la generazione dell'evento effetto. Si conderi, come esempio, un stema di controllo dei freni di un veicolo che, in alcun caso, può ammettere un ritardo imprevedibile fra il comando di frenatura e l'attuazione dello stesso. Average: è una richiesta piuttosto generica che conste nello specificare un ritardo tipico fra evento stimolo ed evento effetto. Questo traduce nel dimenonamento del tempo medio di risposta in una tuazione standard senza conderare il caso peggiore che potrebbe anche essere notevolmente più lento. Burst: è una richiesta che non influisce sul tempo di risposta ma, piuttosto, sulla capacita del stema di non perdere eventi, eventualmente utilizzando strumenti di accodamento hardware (fifo o milari). Si conderi, ad esempio, un frame grabber che deve acquire una immagine senza, ovviamente, perdere alcun pixel, pur potendo impiegare un tempo variabile nella succesva elaborazione dell'informazione. I stemi che hanno almeno un vincolo del tipo deadline sono identificati come stemi hard realtime mentre quelli che hanno almeno un vincolo "average" o "burst" sono detti stemi soft realtime. Nel caso in cui le specifiche funzionali non contengano alcun vincolo temporale, invece, ha un stema senza caratterizzazione realtime. 7

8 1.2 RealTime OS Hard vs Soft Realtime Una volta introdotto il concetto di realtime, posamo approfondire l'argomento andando ad analizzare le due modalità appena annunciate: la modalità hard-realtime e softrealtime. La modalità hard-realtime condera inutile il completamento dell'operazione dopo la sua deadline temporale, poiché questo può portare (nell'ambito di utilizzo) a un guasto completo del stema. I stemi hard-realtime sono usati quando è imperativo che il completamento dell'elaborazione rientri nei tempi prestabiliti. Questi stemi sono rivolti ad ambiti in cui il non rispetto della deadline può causare danni fici al stema e all'ambiente che lo circonda: per esempio un pacemaker o il stema di frenata di un auto. Nei stemi soft-realtime invece posamo pensare che le deadline vengano mediamente rispettate, ma non vi sono garanzie che questo accada, né possono fare previoni deterministiche sui tempi di esecuzione delle operazioni succesve. I stemi softrealtime, sono tipicamente usati dove vi è un accesso di tipo concorrenziale dei dati con più stemi interconnes tra di loro che ne fanno uso. Un esempio tipico è quello del stema che ncronizza i voli aerei di linea: i piani aerei devono rimanere costantemente aggiornati, ma può operare senza danni anche con latenze di qualche secondo. Generalmente anche i stemi audio-video sono di questo tipo: se la garanzia temporale non viene rispettata, avrà un degrado della qualità del segnale, ma il stema può continuare a funzionare. 1.3 Panoramica sui Sistemi operativi RealTime Innanzitutto dobbiamo definire cosa rende realtime un stema operativo (RTOS): un RTOS deve essere multi-threaded e preemptible. Deve cioè permettere l'esecuzione di più thread e deve essere munito di un stema che permetta l'interruzione temporanea di un processo che è in esecuzione senza la sua cooperazione. Tale processo verrà poi ripristinato quando il processo a priorità più alta che è stato messo in esecuzione al suo posto, ha concluso le sue operazioni. 8

9 Deve essere presente un meccanismo di priorità. Nella progettazione del stema, sa a priori che alcuni thread hanno più priorità di esecuzione rispetto ad altri; il stema operativo deve prevedere un meccanismo di gestione di queste priorità. L'OS deve supportare un meccanismo di ncronizzazione dei thread di tipo prevedibile (per esempio mutex, semafori, flags, monitor, etc..). Il comportamento deve essere noto. Ciò implica che i produttori di RTOS rilascino determinate specifiche: masma latenza nel servire una richiesta di interrupt, determinato verificando a analiticamente che sperimentalmente il numero di cicli macchina (clock) che intercorre nel caso peggiore fra l'irq (interrupt request) e l'esecuzione della prima istruzione della ISR (interrupt service routine): questo deve essere prevedibile, ripetibile e compatibile con i requisti dell'applicazione. Questo valore, detto interrupt latency, non dipende dal numero di interrupt multanei in attesa essendo per definizione quello del caso peggiore (worst case). il masmo tempo che richiede ogni chiamata di stema (system call). Questo valore può essere eventualmente dato in forma tabulare per determinate configurazioni, ad esempio il numero totale di task o oggetti di stema. Il progettista ne dovrà tenere conto. il tempo masmo di mascheramento degli interrupt da parte di OS e drivers. Lo sviluppatore ha inoltre la completa responsabilità di caratterizzare opportunamente dal punto di vista temporale ogni elemento che possa introdurre ritardi nel processamento degli eventi da trattare in realtime ad esempio dovrà essere posta molta attenzione ai canali DMA ed all'eventuale adozione di cache per dispotivi di memoria intrinsecamente lenti (DRAM). L'offerta commerciale di stemi operativi Real Time è piuttosto ampia. Senza entrare troppo nel dettaglio, andremo ad elencare quelli più conosciuti: ecos (Red Hat) LynxOS (LynuxWorks) Neutrino (QNX Software System) Nucleus (Mentor Graphics) psosystem (Wind River) 9

10 QNX (QNX Software System) Quadros (RTXC) Linux/RT (TimeSys) VxWorks (Wind River) RTAI (Politecnico di Milano) 1.4 Content Switch, Stack, Task Control Block, Preemption e Timeslices Ogni stema operativo per permettere l'esecuzione contemporanea di thread e proces (stema operativo multitasking), ha bisogno di un stema che salvi lo stato della CPU nei momenti in cui deve eseguire un cambio di processo attivo. Questo stato, cioè il contenuto dei registri della CPU e del program counter, è chiamato contesto e l'operazione di cambio contesto è detto context switch. Un registro è una piccola quantità di memoria molto veloce che riede all'interno della CPU che è usata per velocizzare l'esecuzione di programmi, fornendo un accesso veloce ai dati più usati, solitamente durante l'elaborazione. Il program counter invece è un registro specifico che memorizza l'indirizzo di memoria della prosma istruzione che deve essere eseguita. Si noti che su alcune architetture, il program counter memorizza l'indirizzo dell'istruzione che sta eseguendo. Il contesto normalmente trova su una porzione dello stack di ogni processo e concorre a formare il task control block (TCB) ineme a informazioni di carattere più generale come il nome del task, la priorità o dati statistici di esecuzione utili per il debug (figura 1.1). 10

11 Figura 1.1: Contesto e Task Control Block Lo stack è infatti una struttura dati con politica di accesso di tipo LIFO (Last Input First Output) cioè i dati vengono letti in modo inverso rispetto a cui sono stati scritti. Oltre al contesto, lo stack può contenere: variabili automatiche indirizzo di ritorno di chiamate (call) argomenti relativi ai registri Il meccanismo del context switch è una caratteristica fondamentale dei stemi operativi multitasking poiché anche in caso di CPU ngola, ha l'illuone di avere l'esecuzione multanea di due o più proces: la rapida esecuzione di questo meccanismo (centinaia o migliaia di volte al secondo) dà appunto questa illuone (figura 1.2). Figura 1.2: Meccanismo del context switch Il cambio di contesto può avvenire come risultato di un processo che ha volontariamente rinunciato al suo tempo disponibile di CPU, come decione presa dallo scheduler in conseguenza del fatto che il processo ha terminato il timeslice di CPU oppure in seguito ad una preemption causata dall'arrivo di un thread a priorità più alta. Il timeslice è un periodo di tempo predefinito in fase di progettazione entro il quale ogni processo ha il 11

12 permesso di funzionare; al termine di questo tempo ovviamente il lavoro di quest'ultimo non viene perduto, ma viene congelato per poi essere ripreso al momento opportuno. Lo scheduler è quella parte del stema operativo che occupa di scegliere quale processo mandare in esecuzione (riesumandolo o facendolo partire ex novo). Nelle figure 1.3 e 1.4 viene illustrato per una particolare architettura (H8S), la tuazione della CPU idle (libera) con il task 1 pronto e poi con il task 1 in esecuzione. È importante notare che il context switch è generalmente abbastanza avido di risorse, richiedendo un tempo di CPU conderevole (qualche microsecondo) per ogni cambio di contesto; se da una parte infatti il diminuire del tempo di timeslice potrebbe darci maggiore illuone di esecuzione contemporanea di proces, dall'altra ci porta ad un degrado prestazionale causato dalle richieste di stema effettuate durante il cambio di contesto. Vediamo ora i punti essenziali del context switch partendo dal caso di avere due task, task 1 e task 2, di cui task 1 è in esecuzione (figura 1.4) e subisce preemption a causa dell'arrivo del task 2 più prioritario. 1. Sospenone del processo corrente attraverso il salvataggio del contesto 2. Recupero del contesto del prosmo processo da mettere in esecuzione 3. Inserimento del contesto appena recuperato nei registri della CPU (figura 1.5) 4. Ritorno alla locazione di memoria puntata dal program counter (ritorno alla linea di codice che rimette in esecuzione il processo che era stato interrotto) e quindi dopo al context switch il processo in esecuzione è il task 2 (figura 1.6). Figura 1.3: Stato della CPU con il task1 pronto 12

13 Figura 1.4: Figura il task 1 mette in esecuzione Figura 1.5: il task 2 a priorità più alta di task 1 effettua un Context Switch 13

14 Figura 1.6: Il Task 2 è in esecuzione 1.5 Concorrenza La gestione del multitasking in un stema operativo è tanto importante quanto delicata. Per capire meglio come gestisce il multitasking è necessario mettere in evidenza la differenza che c'è tra thread e proces. Mentre i proces sono solitamente indipendenti tra di loro, utilizzando diverse aree di memoria, i thread condividono risorse di stema, memoria e informazioni di stato. La progettazione di applicativi concorrenti in un ambiente orientato ai proces richiede dei servizi di stema (system call) dedicate alla comunicazione come le pipe o i socket di unix. La memoria viene infatti solitamente gestita attraverso MMU (Memory Managment Unit). In questo caso non sono richiesti particolari accorgimenti nel codice applicativo per ascurare la constenza dei dati scambiati in quanto è il kernel ad occupar di questo (atomicità della read o della write, acces concorrenti). La progettazione degli stes applicativi in un ambiente orientato ai thread invece viene da un lato agevolata dalla condivione della memoria; ogni thread infatti può accedere alla medema locazione di memoria per leggere o modificarne il contenuto senza richiedere alcun servizio al SO. Il software applicativo deve però disporre di alcuni 14

15 strumenti per ascurare la constenza dei dati condivi. Ad esempio: due thread accedono ad una variabile di tipo char che normalmente (dipendente comunque dall'architettura), viene acceduta con una istruzione non interrompibile. In questo caso non estono particolari problemi in quanto in un accesso concorrente in scrittura perde il precedente valore ma mantiene l'ultimo scritto. Ipotizziamo comunque che questa variabile di tipo char (detto comunemente tipo atomico) debba essere incrementata da due thread concorrenti. Il thread A legge il valore corrente della variabile (ad esempio 0) poi accinge a scrivervi il nuovo valore (1). Nel mentre il thread B opera una preemption di A e decide di fare lo stesso, quindi legge ancora 0 (A non ha ancora scritto il suo nuovo valore) e scrive il suo nuovo valore 1. A questo punto il thread A viene ripreso ed esegue la scrittura di 1 mentre il doppio incremento avrebbe richiesto la scrittura del valore 2. I thread A e B devono essere ncronizzati per evitare questo tipo di comportamento che facilmente degenera se il tipo di dati acceduti non è atomico o se le operazioni su questi sono più complesse del semplice incremento. Il SO deve mettere a dispozione dei meccanismi di ncronizzazione (in questo caso dei mutex) e il software applicativo deve utilizzarli; è quindi responsabilità del programmatore/stemista evitare il crear di tuazioni quali race condition (corse critiche) e deadlock (stallo). 1.6 Interrupt Lo stato di interruzione rappresenta un contesto aggiuntivo a quello dei proces o dei thread. Si definisce interrupt un tipo particolare di interruzione della CPU che provoca l'interruzione di un processo qualora verifichino determinate condizioni oppure il processo in esecuzione debba effettuare una richiesta al stema operativo. È come un segnale o messaggio, generalmente di natura ancrona, che arriva alla CPU per avvisarla del verificar di un certo evento. Ci sono due tipi di interrupt: Interrupt hardware generati da dispotivi esterni alla CPU, che hanno il compito di comunicare il verificar di eventi esterni, di solito dispotivi di Input/Output. Interrupt software che sono delle istruzioni assembly, tipo INT xx o SYSCALL, che possono essere asmilate alle chiamate di sottoprogrammi, ma che sfruttano il meccanismo delle interruzioni per passare il controllo dal programma 15

16 chiamante a quello chiamato, e viceversa; vengono utilizzati per accedere direttamente alle risorse del stema operativo. L'uso di interrupt è una tecnica ampiamente utilizzata in stemi multitasking e in particolare in stemi di tipo realtime. Quando presenta un interrupt il SO ha poca libertà di azione in quanto normalmente è bloccata la rilevazione di altri eventi ancroni. Come è stato detto, nei stemi realtime il tempo masmo di blocco di una interruzione, deve essere dichiarato. Per un stema operativo general purpose come UNIX o Linux, il trattamento dell'interruzione viene eseguito dal kernel stesso, eventualmente delegando parte della elaborazione ai device drivers. In un stema operativo realtime invece, il trattamento viene solitamente delegato all'applicativo che è stato scritto in modo che sappia come deve operare. Il kernel mette solo a dispozione i mezzi per ncronizzare i thread con l'evento (segnalazione di semafori, accodamento dei dati, schedulazione di thread). 1.7 Scheduler Sebbene a già stata messa in evidenza l'importanza dello scheduler, cerchiamo di fare un po' di chiarezza sul comportamento nei stemi operativi convenzionali, nei stemi operativi soft-realtime e nei stemi operativi hard-realtime. Per i primi posamo dire che il meccanismo di schedulazione ha l'obiettivo di ottimizzare le prestazioni globali del stema, per esempio cercando il compromesso tra la minimizzazione dell'overhead (cioè richieste aggiuntive a quelle strettamente necessarie) e la distribuzione delle risorse di processore ai vari task. Invece nei stemi soft-realtime cerca di ottimizzare i tempi di risposta, mentre nei stemi hard-realtime lo scheduler ha il compito di garantire il rispetto delle deadline. In questi ultimi stemi, interruzioni e proces hanno tutti una priorità definita in quanto è imperativo che vi a sempre la corrispondenza tra tempo fico e tempo di clock. Riassumendo posamo dire che lo scheduler provvede a scegliere quale thread mettere in esecuzione ogni qualvolta un evento interno od esterno modifichi lo stato globale del stema. 16

17 2 Caratteristiche di ecos 2.1 Dove è cominciato tutto Cygnus Solutions Cygnus Solutions, fu fondata nel 1989 da John Gilmore, Michael Tiemann e David Henkel-Wallace con lo scopo di fornire supporto commerciale al free software. Il suo motto era: Making free software affordable, cioè Rendiamo il free software conveniente. Cygnus è un acronimo di "Cygnus, Your GNU Support", "Cygnus, il Tuo Supporto a GNU. L'idea che ebbero questi sviluppatori fu quella di concentrare il loro lavoro sulla creazione di un piccolo set di strumenti open source che sarebbe poi stato venduto. Iniziarono quindi vendendo il compilatore GNU (GCC) e il debugger (GDB) come un piccolo pacchetto software. Questo fu posbile grazie all'enorme talento di Tiemmann, il quale contribuì a numero port del compilatore GNU e scrisse il primo compilatore nativo in C++. L'altro importante contributo venne da Henkel-Wallace e Gilmore che svilupparono rispettivamente le binutils (utility binarie) e il debugger GDB. Questo lavoro ebbe talmente grandi proporzioni che Gilmore divenne il nuovo mantainer di GDB; quando la comunità internet lo venne a sapere, vi fu una inondazione di differenti veroni del debugger; questo portò a integrare in GDB le nuove caratteristiche proposte dalla comunità. Tutto questo duro lavoro è poi stato ripagato in quello che oggi chiamiamo GNUPro Developers Kit, il quale include: GCC Gnu Compiler Collection, un compilatore con supporto a numero linguaggi di programmazione, fra cui il C in particolare; G++ - Compilatore C++ che fa parte di GCC; GDB - GNU DeBugger; GAS GNU Assembler; LD GNU Linker; Cygwin Un set di strumenti per migrare applicazioni da UNIX/Linux alla piattaforma Microsoft Windows; Inght Interfaccia grafica per fare debug; 17

18 Source-Navigator - Un strumento per la comprenone e l'anali del codice 2.2 L'origine di ecos Alla fine degli anni '90 il mercato dei stemi operativi realtime era piuttosto frammentato. Cygnus, grazie all'esperienza maturata e al rapporto con i produttori di semiconduttori, volle creare una soluzione software per dispotivi embedded che fosse di alta qualità e concorrenziale dal punto di vista dei costi. Questa soluzione andava ad affiancare al set GNUPro, espandendo l'offerta di Cygnus. Quello che questo team andò a sviluppare fu un stema operativo realtime che permetteva l'astrazione dell'hardware e che era altamente configurabile. Nacque co ecos (embedded Configurable operative system), un RTOS che adattava a numero stemi embedded e che grazie alla sua flesbilità permetteva una forte riduzione dei tempi per lo sviluppo di questi stemi: la riduzione dei tempi e quindi dei costi è sempre un aspetto fondamentale nei stemi embedded. Utilizzando il modello di sviluppo open source, ecos è a costo zero dato che può essere scaricato e provato gratuitamente. Inoltre un altro aspetto estremamente importante è l'essere royalty-free, cioè non vi sono neppure costi a posteriori. Gli sviluppatori hanno accesso completo a tutto il codice sorgente, strumenti inclu, che possono essere modificati a piacere. Non ci sono costi iniziali associati a licenze di utilizzo del codice e neppure ai tools relativi; tutto ciò che serve per inizializzare lo sviluppo di un stema embedded può essere fatto senza alcuna spesa. Gli sviluppatori non devono neanche dare nessun contributo relativo al codice sviluppato per componenti aggiuntivi o applicazioni sviluppate, ma devono fornire le eventuali modifiche fatte al codice di ecos. Questo permette alla comunità open source di sviluppare un prodotto sempre migliore Configurabilità e configurazione Per capire meglio l'architettura di ecos, è importante analizzare le peculiarità del framework che compongono il stema ecos. Il framework dei componenti è specificamente orientato ai stemi embedded e adatta perfettamente al modello dei stemi embedded. 18

19 Usando questo framework, un enorme quantità di funzioni per una applicazione può essere costruita da componenti software già utilizzati o da blocchi di esso. Il framework dei componenti di ecos è stato progettato per minimizzare l'uso di memoria dei componenti del stema, permettere agli utenti di tenere sotto controllo le tempistiche per soddisfare le caratteristiche di realtime, ed utilizzare i più diffu linguaggi di programmazione (C, C++ e assembly). La maggior parte dei stemi embedded oggi sul mercato supporta più funzionalità di quelle che servono per una specifica applicazione. Spesso viene incluso software aggiuntivo che dà un supporto generico a caratteristiche a cui gli sviluppatori di stemi embedded non sono interessati o di cui non hanno bisogno. Questo software aggiuntivo concorre a rendere il stema più complesso ed inoltre più il codice è lungo e più ci sono probabilità che qualcosa non vada. Un esempio estremo è quello del programma Hello world : usando i tradizionali RTOS, che hanno supporto a mutex, task switching ed altre caratteristiche integrate, tutte queste funzionalità sarebbero presenti nonostante non ce ne a il bisogno. In questo senso ecos dà la maggiore posbilità di controllo dei componenti di run-time, dando la posbilità agli sviluppatori di rimuovere ciò che non è necessario. Il stema ecos è quindi un stema altamente scalabile: possono creare stemi con dimenoni dell'ordine delle centinaia di bytes fino a migliaia di kilobytes quando caratteristiche come lo stack di rete e componenti di terze parti come un web server vengono utilizzate. Gli sviluppatori possono scegliere i componenti che soddisfano le richieste base delle loro applicazioni e configurare quel particolare componente per una specifica implementazione richiesta dall'applicazione. Questo gnifica potere abilitare o meno una specifica caratteristica di un componente, o selezionare una particolare implementazione di quel componente. Un esempio pratico è quello della configurazione dello scheduler del kernel: ecos dà la posbilità di selezionare il numero di livelli di priorità e se utilizzare i time slicing. Ogni linea di codice non necessaria per l'applicazione viene eliminata dall'immagine finale dell'applicazione. La configurabilità permette alle ditte di costruire una base di componenti riutilizzabili, con l'accesso al codice sorgente del componente. Questo può ridurre il tempo di sviluppo e il tempo di immisone sul mercato poiché i componenti sono altamente portabili e possono essere utilizzati in un ampio range di applicazioni. Il framework di ecos incoraggia lo sviluppo di codice di terze parti in modo tale da estendere caratteristiche e funzionalità dei componenti chiave di ecos. Se gli 19

20 sviluppatori lavorano per estendere funzioni sul prodotto e contribuiscono a renderle disponibili in ecos, la crescita delle funzionalità di ecos sono senza limiti. Inoltre, se la funzionalità non è al momento disponibile, il codice sorgente è disponibile e permette di risolvere il problema da sé. La filosofia del controllo dei componenti nell'implementazione di ecos è quella di ridurre le dimenoni del codice, sempre e il più posbile. In questo modo anche stemi minimali non soffrono dell'inserimento di codice aggiuntivo necessario al supporto di caratteristiche avanzate che vengono usate solo in stemi più comples. Nello sviluppo di applicazioni, i metodi di controllo dei componenti software possono essere di 3 tipi: a tempo di esecuzione, a tempo di link e tempo di compilazione. Il metodo utilizzato da ecos è quest'ultimo, in combinazione con il linking selettivo fornito dal GNU Linker: in questo modo hanno i migliori risultati in termini di dimenone del codice e ciò lo rende adatto allo sviluppo di stemi embedded. L'uso del metodo di controllo a tempo di compilazione, anche detto metodo di configurazione a livello sorgente, avviene grazie al preprocessore C e ciò offre numerosme opzioni specifiche che possono essere applicate al codice. Oltre alla generazione di codice più corto, la configurazione a livello sorgente offre molti altri importanti vantaggi nello sviluppo di software per stemi embedded: le applicazioni sono più veloci perché le variabili non devono essere controllate durante l esecuzione per determinare quale azione intraprendere; il codice è più reattivo e le latenze sono ridotte, il che permette di avere stemi più deterministici che è molto importante in dispotivi realtime; il codice generato è più semplice, rendendo verifiche e test più facili da eseguire il codice è generato su misura dell'applicazione e crea quindi una specifica applicazione per RTOS; i costi possono essere ridotti perché l'utilizzo di risorse è ottimizzato e il numero di cicli di CPU sono sfruttati in modo efficiente, permettendo l uso di hardware più economico I componenti chiave di ecos Le funzionalità standard che aspettano di avere in un stema operativo realtime per dispotivi embedded, sono tutte incluse aseme al kernel realtime come componenti 20

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

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. "Generate debugging information"

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. Generate debugging information FASE DEBUGGING: Prima della compilazione, si devono inserire 1 nel progetto informazioni per il debug cioè si devono visualizzare le opzioni di progetto seguendo il percorso: controllando che la voce Genera

Dettagli

Virtualizzazione e installazione Linux

Virtualizzazione e installazione Linux Virtualizzazione e installazione Linux Federico De Meo, Davide Quaglia, Simone Bronuzzi Lo scopo di questa esercitazione è quello di introdurre il concetto di virtualizzazione, di creare un ambiente virtuale

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

Guida Dell di base all'acquisto dei server

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

Dettagli

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione

Dettagli

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it INTRODUZIONE, LINGUAGGIO, HANDS ON Giuseppe Cirillo g.cirillo@unina.it Il linguaggio C 1972-Dennis Ritchie 1978-Definizione 1990-ANSI C 1966 Martin Richars (MIT) Semplificando CPL usato per sviluppare

Dettagli

B.P.S. Business Process Server ALLEGATO C10

B.P.S. Business Process Server ALLEGATO C10 B.P.S. Business Process Server ALLEGATO C10 REGIONE BASILICATA DIPARTIMENTO PRESIDENZA DELLA GIUNTA REGIONALE UFFICIO SISTEMA INFORMATIVO REGIONALE E STATISTICA Via V. Verrastro, n. 4 85100 Potenza tel

Dettagli

Ottimizzazione della gestione del data center con Microsoft System Center

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

Dettagli

Sizing di un infrastruttura server con VMware

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

Dettagli

SISSI IN RETE. Quick Reference guide guida di riferimento rapido

SISSI IN RETE. Quick Reference guide guida di riferimento rapido SISSI IN RETE Quick Reference guide guida di riferimento rapido Indice generale Sissi in rete...3 Introduzione...3 Architettura Software...3 Installazione di SISSI in rete...3 Utilizzo di SISSI in Rete...4

Dettagli

Boot Camp Guida di installazione e configurazione

Boot Camp Guida di installazione e configurazione Boot Camp Guida di installazione e configurazione Indice 3 Introduzione 4 Panoramica dell'installazione 4 Passo 1: Verificare la presenza di aggiornamenti 4 Passo 2: Per preparare il Mac per Windows 4

Dettagli

Corso di Amministrazione di Sistema Parte I ITIL 3

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

Dettagli

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it FIRESHOP.NET Gestione Utility & Configurazioni Rev. 2014.3.1 www.firesoft.it Sommario SOMMARIO Introduzione... 4 Impostare i dati della propria azienda... 5 Aggiornare il programma... 6 Controllare l integrità

Dettagli

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a:

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a: Lab 4.1 Utilizzare FTP (File Tranfer Protocol) LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) In questa lezione imparerete a: Utilizzare altri servizi Internet, Collegarsi al servizio Telnet, Accedere

Dettagli

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

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

Dettagli

DNS (Domain Name System) Gruppo Linux

DNS (Domain Name System) Gruppo Linux DNS (Domain Name System) Gruppo Linux Luca Sozio Matteo Giordano Vincenzo Sgaramella Enrico Palmerini DNS (Domain Name System) Ci sono due modi per identificare un host nella rete: - Attraverso un hostname

Dettagli

FileMaker Server 12. Guida introduttiva

FileMaker Server 12. Guida introduttiva FileMaker Server 12 Guida introduttiva 2007 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento sono marchi di FileMaker,

Dettagli

CA Process Automation

CA Process Automation CA Process Automation Glossario Release 04.2.00 La presente documentazione, che include il sistema di guida in linea integrato e materiale distribuibile elettronicamente (d'ora in avanti indicata come

Dettagli

Guida all'uso di StarOffice 5.2

Guida all'uso di StarOffice 5.2 Eraldo Bonavitacola Guida all'uso di StarOffice 5.2 Introduzione Dicembre 2001 Copyright 2001 Eraldo Bonavitacola-CODINF CODINF COordinamento Docenti INFormati(ci) Introduzione Pag. 1 INTRODUZIONE COS'È

Dettagli

Come difendersi dai VIRUS

Come difendersi dai VIRUS Come difendersi dai VIRUS DEFINIZIONE Un virus è un programma, cioè una serie di istruzioni, scritte in un linguaggio di programmazione, in passato era di solito di basso livello*, mentre con l'avvento

Dettagli

Sempre attenti ad ogni dettaglio Bosch Intelligent Video Analysis

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

Dettagli

Ambienti di sviluppo integrato

Ambienti di sviluppo integrato Ambienti di sviluppo integrato Un ambiente di sviluppo integrato (IDE - Integrated Development Environment) è un ambiente software che assiste i programmatori nello sviluppo di programmi Esso è normalmente

Dettagli

CARATTERISTICHE DELLE CRYPTO BOX

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

Dettagli

Boot Camp Guida all installazione e alla configurazione

Boot Camp Guida all installazione e alla configurazione Boot Camp Guida all installazione e alla configurazione Indice 4 Introduzione 5 Cosa ti occorre 6 Panoramica dell installazione 6 Passo 1: verifica la presenza di aggiornamenti. 6 Passo 2: apri Assistente

Dettagli

INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02

INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02 INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02 Download Si può scaricare gratuitamente la versione per il proprio sistema operativo (Windows, MacOS, Linux) dal sito: http://www.codeblocks.org

Dettagli

Programmazione di un dispositivo 1to4INTGEN

Programmazione di un dispositivo 1to4INTGEN Programmazione di un dispositivo 1to4INTGEN Realizzazione di un sistema timesharing Materiale didattico a cura di: Prof. A. Mazzeo Ing. L. Romano Ing. L. Coppolino Ing. A. Cilardo Dipartimento di Informatica

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli

Energy Studio Manager Manuale Utente USO DEL SOFTWARE

Energy Studio Manager Manuale Utente USO DEL SOFTWARE Energy Studio Manager Manuale Utente USO DEL SOFTWARE 1 ANALYSIS.EXE IL PROGRAMMA: Una volta aperto il programma e visualizzato uno strumento il programma apparirà come nell esempio seguente: Il programma

Dettagli

INFORMATIVA SUI COOKIE

INFORMATIVA SUI COOKIE INFORMATIVA SUI COOKIE I Cookie sono costituiti da porzioni di codice installate all'interno del browser che assistono il Titolare nell erogazione del servizio in base alle finalità descritte. Alcune delle

Dettagli

Modello OSI e architettura TCP/IP

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

Dettagli

HORIZON SQL CONFIGURAZIONE DI RETE

HORIZON SQL CONFIGURAZIONE DI RETE 1-1/9 HORIZON SQL CONFIGURAZIONE DI RETE 1 CARATTERISTICHE DI UN DATABASE SQL...1-2 Considerazioni generali... 1-2 Concetto di Server... 1-2 Concetto di Client... 1-2 Concetto di database SQL... 1-2 Vantaggi...

Dettagli

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software.

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software. Generalità Definizione Un firewall è un sistema che protegge i computer connessi in rete da attacchi intenzionali mirati a compromettere il funzionamento del sistema, alterare i dati ivi memorizzati, accedere

Dettagli

Le funzionalità di un DBMS

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

Dettagli

Informatica. Scopo della lezione

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

Dettagli

Software 2. Classificazione del software. Software di sistema

Software 2. Classificazione del software. Software di sistema Software 2 Insieme di istruzioni e programmi che consentono il funzionamento del computer Il software indica all hardware quali sono le operazioni da eseguire per svolgere determinati compiti Valore spesso

Dettagli

Integrated Development Environment (IDE) DevC++ 4.9.9.2

Integrated Development Environment (IDE) DevC++ 4.9.9.2 Integrated Development Environment (IDE) DevC++ 4.9.9.2 Manuale utente Data ultima revisione: 22/10/2008 Fondamenti di informatica Università Facoltà Corso di laurea Politecnico di Bari 1 a Facoltà di

Dettagli

BPEL: Business Process Execution Language

BPEL: Business Process Execution Language Ingegneria dei processi aziendali BPEL: Business Process Execution Language Ghilardi Dario 753708 Manenti Andrea 755454 Docente: Prof. Ernesto Damiani BPEL - definizione Business Process Execution Language

Dettagli

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

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

Dettagli

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO... Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...

Dettagli

Architettura degli Elaboratori. Lez. 8 : Il Livello di Sistema Operativo

Architettura degli Elaboratori. Lez. 8 : Il Livello di Sistema Operativo Corso di Laurea Triennale in Informatica Università degli Studi di Bari Aldo Moro Anno Accademico 2012-2013 Lez. 8 : Il Livello di Sistema Operativo Sebastiano Pizzutilo Strutturazione del Sistema Operativo

Dettagli

CHIAVETTA INTERNET ONDA MT503HSA

CHIAVETTA INTERNET ONDA MT503HSA CHIAVETTA INTERNET ONDA MT503HSA Manuale Utente Linux Debian, Fedora, Ubuntu www.ondacommunication.com Chiavet ta Internet MT503HSA Guida rapida sistema operativo LINUX V 1.1 33080, Roveredo in Piano (PN)

Dettagli

Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore)

Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore) Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore) Autore: Matteo Veroni Email: matver87@gmail.com Sito web: matteoveroni@altervista.org Fonti consultate: http://openmeetings.apache.org/

Dettagli

Cos è l Ingegneria del Software?

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

Dettagli

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Gerardo Pelosi 01 Ottobre 2014 Pagina 1 di 8 Dev-C++ - Installazione Potete

Dettagli

Intrusion Detection System

Intrusion Detection System Capitolo 12 Intrusion Detection System I meccanismi per la gestione degli attacchi si dividono fra: meccanismi di prevenzione; meccanismi di rilevazione; meccanismi di tolleranza (recovery). In questo

Dettagli

Simplex Gestione Hotel

Simplex Gestione Hotel Simplex Gestione Hotel Revisione documento 01-2012 Questo documento contiene le istruzioni per l'utilizzo del software Simplex Gestione Hotel. E' consentita la riproduzione e la distribuzione da parte

Dettagli

Architettura dei Calcolatori

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

Dettagli

Setup e installazione

Setup e installazione Setup e installazione 2 Prima di muovere i primi passi con Blender e avventurarci nel vasto mondo della computer grafica, dobbiamo assicurarci di disporre di due cose: un computer e Blender. 6 Capitolo

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Introduzione alla programmazione ad oggetti a.a. 2008/2009 Claudio De Stefano 1 La programmazione modulare Un programma può essere visto come un insieme di moduli che

Dettagli

Manuale di KDE su Geert Jansen Traduzione del documento: Dario Panico Traduzione del documento: Samuele Kaplun Traduzione del documento: Daniele Micci

Manuale di KDE su Geert Jansen Traduzione del documento: Dario Panico Traduzione del documento: Samuele Kaplun Traduzione del documento: Daniele Micci Geert Jansen Traduzione del documento: Dario Panico Traduzione del documento: Samuele Kaplun Traduzione del documento: Daniele Micci 2 Indice 1 Introduzione 5 2 Usare KDE su 6 3 Funzionamento interno 8

Dettagli

Plesk Automation. Parallels. Domande tecniche più frequenti

Plesk Automation. Parallels. Domande tecniche più frequenti Parallels Plesk Automation Primo trimestre, 2013 Domande tecniche più frequenti Questo documento ha come scopo quello di rispondere alle domande tecniche che possono sorgere quando si installa e si utilizza

Dettagli

La suite Dental Trey che semplifica il tuo mondo.

La suite Dental Trey che semplifica il tuo mondo. La suite Dental Trey che semplifica il tuo mondo. impostazioni di sistema postazione clinica studio privato sterilizzazione magazzino segreteria amministrazione sala di attesa caratteristiche UNO tiene

Dettagli

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma Dev C++ Note di utilizzo 1 Prerequisiti Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma 2 1 Introduzione Lo scopo di queste note è quello di diffondere la conoscenza

Dettagli

Lezione n.19 Processori RISC e CISC

Lezione n.19 Processori RISC e CISC Lezione n.19 Processori RISC e CISC 1 Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni

Dettagli

DataFix. La soluzione innovativa per l'help Desk aziendale

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

Dettagli

> MULTI TASKING > MULTI PROCESS > MULTI CORE

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

Dettagli

SERVER VIDEO 1-PORTA H.264

SERVER VIDEO 1-PORTA H.264 SERVER VIDEO 1-PORTA H.264 MANUALE UTENTE DN-16100 SALVAGUARDIA IMPORTANTE Tutti i prodotti senza piombo offerti dall'azienda sono a norma con i requisiti della legge Europea sulla restrizione per l'uso

Dettagli

Symbolic. Ambiti Operativi. Presente sul mercato da circa 10 anni Specializzata in Network Security Partner e distributore italiano di F-Secure Corp.

Symbolic. Ambiti Operativi. Presente sul mercato da circa 10 anni Specializzata in Network Security Partner e distributore italiano di F-Secure Corp. Symbolic Presente sul mercato da circa 10 anni Specializzata in Network Security Partner e distributore italiano di F-Secure Corp. La nostra mission è di rendere disponibili soluzioni avanzate per la sicurezza

Dettagli

FileMaker Server 13. Guida introduttiva

FileMaker Server 13. Guida introduttiva FileMaker Server 13 Guida introduttiva 2007-2013 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 Stati Uniti FileMaker e Bento sono marchi

Dettagli

Manuale dell'utente di Symantec Backup Exec System Recovery Granular Restore Option

Manuale dell'utente di Symantec Backup Exec System Recovery Granular Restore Option Manuale dell'utente di Symantec Backup Exec System Recovery Granular Restore Option Manuale dell'utente di Symantec Backup Exec System Recovery Granular Restore Option Il software descritto nel presente

Dettagli

ASTA IN GRIGLIA PRO. COSA PERMETTE DI FARE (per ora) Asta In Griglia PRO:

ASTA IN GRIGLIA PRO. COSA PERMETTE DI FARE (per ora) Asta In Griglia PRO: ASTA IN GRIGLIA PRO Asta in Griglia PRO è un software creato per aiutare il venditore Ebay nella fase di post-vendita, da quando l inserzione finisce con una vendita fino alla spedizione. Il programma

Dettagli

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

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

Dettagli

Kit Domotici fai-da-te integrabili fra di loro, semplici da installare e da utilizzare.

Kit Domotici fai-da-te integrabili fra di loro, semplici da installare e da utilizzare. Per una casa più comoda, cura e intelligente, con un solo clic. Kit Domotici faidate integrabili fra di loro, semplici da installare e da utilizzare. www.easydo.it videosorveglianza, controllo carichi

Dettagli

Controllare un nastro trasportatore fischertechnik con Arduino

Controllare un nastro trasportatore fischertechnik con Arduino TITOLO ESPERIENZA: Controllare un nastro trasportatore fischertechnik con Arduino PRODOTTI UTILIZZATI: OBIETTIVO: AUTORE: RINGRAZIAMENTI: Interfacciare e controllare un modello di nastro trasportatore

Dettagli

Progetto VirtualCED Clustered

Progetto VirtualCED Clustered Progetto VirtualCED Clustered Un passo indietro Il progetto VirtualCED, descritto in un precedente articolo 1, è ormai stato implementato con successo. Riassumendo brevemente, si tratta di un progetto

Dettagli

Carta di servizi per il Protocollo Informatico

Carta di servizi per il Protocollo Informatico Carta di servizi per il Protocollo Informatico Codice progetto: Descrizione: PI-RM3 Implementazione del Protocollo informatico nell'ateneo Roma Tre Indice ARTICOLO 1 - SCOPO DEL CARTA DI SERVIZI...2 ARTICOLO

Dettagli

Guida alla scansione su FTP

Guida alla scansione su FTP Guida alla scansione su FTP Per ottenere informazioni di base sulla rete e sulle funzionalità di rete avanzate della macchina Brother, consultare la uu Guida dell'utente in rete. Per ottenere informazioni

Dettagli

Installare e configurare Easy Peasy (Ubuntu Eee) su Asus Eee PC mini howto

Installare e configurare Easy Peasy (Ubuntu Eee) su Asus Eee PC mini howto Installare e configurare Easy Peasy (Ubuntu Eee) su Asus Eee PC mini howto Augusto Scatolini (webmaster@comunecampagnano.it) Ver. 1.0 (marzo 2009) ultimo aggiornamento aprile 2009 Easy Peasy è una distribuzione

Dettagli

AMBIENTE DEV PASCAL. Dev-Pascal 1.9.2. Finestra di apertura

AMBIENTE DEV PASCAL. Dev-Pascal 1.9.2. Finestra di apertura Dev-Pascal 1.9.2 1 Dev-Pascal è un ambiente di sviluppo integrato per la programmazione in linguaggio Pascal sotto Windows prodotto dalla Bloodshed con licenza GNU e liberamente scaricabile al link http://www.bloodshed.net/dev/devpas192.exe

Dettagli

Background (sfondo): Finestra: Una finestra serve a mostrare il contenuto di un disco o di una cartella -, chiamata anche directory.

Background (sfondo): Finestra: Una finestra serve a mostrare il contenuto di un disco o di una cartella -, chiamata anche directory. @ PC (Personal computer): Questa sigla identificò il primo personal IBM del 1981 a cura di R.Mangini Archiviazione: Il sistema operativo si occupa di archiviare i file. Background (sfondo): Cursore: Nei

Dettagli

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO CLSMS SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO Sommario e introduzione CLSMS SOMMARIO INSTALLAZIONE E CONFIGURAZIONE... 3 Parametri di configurazione... 4 Attivazione Software...

Dettagli

Guida al ripristino e alla risoluzione dei problemi. Creare i dischi di ripristino subito dopo l'impostazione.

Guida al ripristino e alla risoluzione dei problemi. Creare i dischi di ripristino subito dopo l'impostazione. Guida al ripristino e alla risoluzione dei problemi Creare i dischi di ripristino subito dopo l'impostazione. Indice Trovare le informazioni necessarie... 3 Ripristino e backup... 4 Cos'è il ripristino

Dettagli

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1 Tutorial Configuration Managment Configurare il servizio EC2 su AWS Pagina 1 Sommario 1. INTRODUZIONE... 3 2. PROGRAMMI NECESSARI... 4 3. PANNELLO DI CONTROLLO... 5 4. CONFIGURARE E LANCIARE UN ISTANZA...

Dettagli

GESTIONE DELLA E-MAIL

GESTIONE DELLA E-MAIL GESTIONE DELLA E-MAIL Esistono due metodologie, completamente diverse tra loro, in grado di consentire la gestione di più caselle di Posta Elettronica: 1. tramite un'interfaccia Web Mail; 2. tramite alcuni

Dettagli

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali

Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Riusabilità del software - Catalogo delle applicazioni: Applicativo verticale Applicazione: DoQui/Index - Motore di gestione dei contenuti digitali Amministrazione: Regione Piemonte - Direzione Innovazione,

Dettagli

Web Conferencing Open Source

Web Conferencing Open Source Web Conferencing Open Source A cura di Giuseppe Maugeri g.maugeri@bembughi.org 1 Cos è BigBlueButton? Sistema di Web Conferencing Open Source Basato su più di quattordici componenti Open-Source. Fornisce

Dettagli

***** Il software IBM e semplice *****

***** Il software IBM e semplice ***** Il IBM e semplice ***** ***** Tutto quello che hai sempre voluto sapere sui prodotti IBM per qualificare i potenziali clienti, sensibilizzarli sulle nostre offerte e riuscire a convincerli. WebSphere IL

Dettagli

AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata

AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata AUL22: FactoryTalk View SE Scoprite i vantaggi chiave di una soluzione SCADA integrata Giampiero Carboni Davide Travaglia David Board Rev 5058-CO900C Interfaccia operatore a livello di sito FactoryTalk

Dettagli

Curriculum Vitae Europass

Curriculum Vitae Europass Curriculum Vitae Europass Informazioni personali Cognome/i nome/i Castelli Flavio Email flavio.castelli@gmail.com Sito web personale http://www.flavio.castelli.name Nazionalità Italiana Data di nascita

Dettagli

PROPOSTE SISTEMA DI CITIZEN RELATIONSHIP MANAGEMENT (CRM) REGIONALE

PROPOSTE SISTEMA DI CITIZEN RELATIONSHIP MANAGEMENT (CRM) REGIONALE PROPOSTE SISTEMA DI CITIZEN RELATIONSHIP MANAGEMENT (CRM) REGIONALE Versione 1.0 Via della Fisica 18/C Tel. 0971 476311 Fax 0971 476333 85100 POTENZA Via Castiglione,4 Tel. 051 7459619 Fax 051 7459619

Dettagli

Agilent OpenLAB Chromatography Data System (CDS)

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

Dettagli

Sistemi Operativi Sincronizzazione tra Processi

Sistemi Operativi Sincronizzazione tra Processi Sistemi Operativi Processi Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega 1 Processi indipendenti possono avanzare concorrentemente senza alcun vincolo

Dettagli

Energy Data Management System (EDMS): la soluzione software per una gestione efficiente dell energia secondo lo standard ISO 50001

Energy Data Management System (EDMS): la soluzione software per una gestione efficiente dell energia secondo lo standard ISO 50001 Energy Data Management System (EDMS): la soluzione software per una gestione efficiente dell energia secondo lo standard ISO 50001 Oggi più che mai, le aziende italiane sentono la necessità di raccogliere,

Dettagli

AGGIORNAMENTO PROTOCOLLO VERSIONE 3.9.0

AGGIORNAMENTO PROTOCOLLO VERSIONE 3.9.0 AGGIORNAMENTO PROTOCOLLO VERSIONE 3.9.0 Con questo aggiornamento sono state implementate una serie di funzionalità concernenti il tema della dematerializzazione e della gestione informatica dei documenti,

Dettagli

Analisi della situazione iniziale

Analisi della situazione iniziale Linux in azienda Solitamente quando si ha un ufficio e si pensa all'acquisto dei computer la cosa che si guarda come priorità è la velocità della macchina, la potenza del comparto grafico, lo spazio di

Dettagli

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

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

Dettagli

Arcserve Replication and High Availability

Arcserve Replication and High Availability Arcserve Replication and High Availability Guida operativa per Oracle Server per Windows r16.5 La presente documentazione, che include il sistema di guida in linea integrato e materiale distribuibile elettronicamente

Dettagli

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

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

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina

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

Dettagli

APPENDICE 3 AL CAPITOLATO TECNICO

APPENDICE 3 AL CAPITOLATO TECNICO CONSIP S.p.A. APPENDICE 3 AL CAPITOLATO TECNICO Manuale d uso del programma Base Informativa di Gestione (BIG), utilizzato per la raccolta delle segnalazioni ed il monitoraggio delle attività di gestione

Dettagli

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci Manuale di Remote Desktop Connection Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci 2 Indice 1 Introduzione 5 2 Il protocollo Remote Frame Buffer 6 3 Uso di Remote Desktop

Dettagli

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

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

Dettagli

GUIDA DELL UTENTE IN RETE

GUIDA DELL UTENTE IN RETE GUIDA DELL UTENTE IN RETE Memorizza registro di stampa in rete Versione 0 ITA Definizione delle note Nella presente Guida dell'utente viene utilizzata la seguente icona: Le note spiegano come intervenire

Dettagli

Introduzione al GIS (Geographic Information System)

Introduzione al GIS (Geographic Information System) Introduzione al GIS (Geographic Information System) Sommario 1. COS E IL GIS?... 3 2. CARATTERISTICHE DI UN GIS... 3 3. COMPONENTI DI UN GIS... 4 4. CONTENUTI DI UN GIS... 5 5. FASI OPERATIVE CARATTERIZZANTI

Dettagli

Introduzione alle pipeline e all'architettura RISC

Introduzione alle pipeline e all'architettura RISC Introduzione alle pipeline e all'architettura RISC Introduzione Pipeline Processori RISC Salti Appendice A: Storia Bibliografia Versione con i frame Versione in pdf Architettura del processore Una possibile

Dettagli