IL TEMPO È TUTTO ...E LABVIEW 2010 SA GESTIRLO AL MEGLIO 2010 E 5,00 SETTEMBRE ISSN

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "IL TEMPO È TUTTO ...E LABVIEW 2010 SA GESTIRLO AL MEGLIO 2010 E 5,00 SETTEMBRE ISSN 1972-3008"

Transcript

1 ISSN SETTEMBRE 2010 E 5,00 L A P R I M A R I V I S T A I T A L I A N A P E R L A C O M U N I T À L A B V I E W In caso di mancata consegna restituire all editore che si impegna a pagare la relativa tassa presso il CMP di Roserio - Milano IL TEMPO È TUTTO...E LABVIEW 2010 SA GESTIRLO AL MEGLIO

2 15 SCENARIO IL TEMPO È CRITICO Q ualunque sia la vostra attività, il fattore tempo è cruciale e, in quanto tecnici, ne parlate continuamente: frasi come time-to-market, tempo di sviluppo. tempo di produzione, tempo di elaborazione, tempo di ciclo, ecc. fanno ormai parte del vostro linguaggio corrente. Diventato una preziosa commodity, il tempo è sempre più importante, sia che si debbano acquisire dati più rapidamente, rappresentare con precisione segnali reali all interno di un programma, sincronizzare sistemi distribuiti o semplicemente terminare in modo più veloce il proprio lavoro. National Instruments è ben consapevole di questa esigenza di riduzione dei tempi e della sua immediata conseguenza, bene espressa per la prima volta da Beniamino Franklin: il tempo è denaro. Per questo, uno dei temi conduttori della scorsa edizione di NIWeek è stato condensato nello slogan It s time. E molte caratteristiche della nuova versione LabVIEW 2010 sono state introdotte proprio per ottimizzare il tempo, le prestazioni e la produttività dello sviluppo di nuove applicazioni. Ad esempio, come ha sottolineato John Graff durante la keynote del primo giorno, NI ha dedicato uno sforzo notevole al miglioramento dei tempi di setup iniziale, di configurazione e di manutenzione dei propri prodotti. Nello stesso tempo, la programmazione grafica permette di progettare, prototipare e rilasciare più rapidamente un sistema completo, mentre le piattaforme multicore e FPGA assicurano notevoli incrementi prestazionali rispetto al passato. Ad esempio, nelle operazioni matematiche real-time, LabVIEW 2010 offre un incremento di prestazioni run-time del 50% rispetto a LabVIEW Incremento che raggiunge il 100% nella manipolazione di bit e si avvicina al 150% nel controllo real-time e al 200% nei cicli for paralleli. Anche il compilatore LabVIEW, descritto in modo più approfondito nell articolo a pag. 14, è stato rivisto per migliorare le prestazioni run-time dei VI, ovvero la rapidità di esecuzione dei VI senza alcun cambiamento di codice. In particolare, gli sviluppatori NI hanno introdotto due strati nella gerarchia del compilatore per velocizzare l esecuzione del codice, con la grande novità del back-end basato su LLVM (Lowlevel virtual machine), una struttura di compilatore open source che permette una serie di ottimizzazioni. Insieme alla Dataflow intermediate representation (DFIR), introdotta in LabVIEW 2009, la LLVM permette di ridurre fino al 20% il tempo di esecuzione del codice di un applicazione LabVIEW 2010 rispetto alla versione precedente del nostro software, ha sottolineato il Dott. Truchard. Ma LabVIEW 2010 si è rivelato unico anche nelle applicazioni basate su I/O in cui il timing è cruciale intendendo sia la visibilità sul timing stesso, sia il rispetto di vincoli e target di timing. Il tempo è infatti incorporato nell ambiente di programmazione grafica e la capacità di integrazione e trigger su eventi time-based fa parte di ogni funzione rilevante di LabVIEW 2010, dalle strutture di programmazione, come i costrutti Timed Loop, all elaborazione dei segnali, alle operazioni matematiche. Infine, un aspetto cruciale in molti sistemi è la necessità di timing e sincronizzazione fra vari componenti. Nell hardware e nel software National Instruments, è disponibile una varietà di approcci per soddisfare specifici limiti di timing, da più processori nella stessa macchina, a sistemi distribuiti sincronizzati in modo globale. Tutti questi miglioramenti, naturalmente, sono sinergici. Ed è il loro insieme che, ad esempio, ha permesso a un team di studenti di progettare e prototipare il primo veicolo per guidatori non vedenti in soli sei mesi (questa applicazione è stata premiata come Best application of the year da un commosso Dottor Truchard), o a un azienda di introdurre sul mercato in appena tre mesi un bancomat dei telefonini usati, che riceve un cellulare dall utente, ne riconosce il modello grazie a un sofisticato sistema di visione e lo paga in contanti in base a un listino prestabilito. Queste e mille altre applicazioni hanno potuto e possono contare su un ambiente di programmazione efficace, efficiente e veloce e su piattaforme hardware che si avvicinano ormai ai limiti di prestazioni del silicio per tradurre velocemente la creatività del progettista in un prototipo funzionante. Perché, come Beniamino Franklin ebbe a dire, Non ritroveremo mai più il tempo perduto. Valerio Alessandroni

3 15 SOMMARIO IL TEMPO E CRITICO Uno dei temi conduttori della scorsa edizione di NIWeek è stato condensato nello slogan It s time L EVOLUZIONE DEL GRAPHICAL SYSTEM DESIGN National Instruments ha introdotto in LabVIEW 2010 caratteristiche e funzioni che rispondono alle esigenze espresse dal mercato SISTEMI EMBEDDED CON TIMING PRECISO CON LABVIEW 2010 E RIO Le caratteristiche di timing incorporate in LabVIEW 2010 aiutano a sfruttare l hardware RIO di NI SVILUPPO PIÙ VELOCE CON WIZARD ED ESEMPI LABVIEW Driver di strumenti, esempi, wizard ed Express VI di NI LabVIEW possono aiutare a fare di più con il tempo a disposizione STANDARDIZZARE UNA PIATTAFORMA PRO- VATA CON LABVIEW 2010 Attraverso il forum pubblico LabVIEW Idea Exchange gli utenti LabVIEW possono sottoporre e votare idee TEMPORIZZAZIONE E SINCRONIZZAZIONE IN LABVIEW LabVIEW offre funzionalità essenziali di temporizzazione e sincronizzazione per il vostro sistema IL COMPILATORE LABVIEW SOTTO IL COFANO LabVIEW è un linguaggio compilato: il codice G viene tradotto in codice macchina nativo ed eseguito dal computer host STIMOLAZIONE DI FIBRE VAGALI CARDIACHE Uno strumento genera impulsi in grado di eccitare le fibre nervose vagali ottenendo la funzione di un pacemaker inverso CARATTERIZZAZIONE PROVINI DI TERRA Un sistema di test automatico gestito da CompactRIO TECNICHE DI SINCRONIZZAZIONE Notifier e code come metodi alternativi per passare dati tra processi paralleli REPLICA DI VARIABILI CONDIVISE LabVIEW replica le variabili condivise quando viene eseguito lo SVE QUANDO L AUTOMOTIVE SI FA CONVEGNO A Torino si è discusso dell auto del futuro DALLA CARTA AL WEB Link ad articoli di approfondimento e altri documenti disponibili sul web LA VOCE DEGLI UTENTI Ecco alcuni spunti di discussione apparsi di recente sul Forum di ILVG.it MEDICAL INNOVATION SUMMIT Si è discusso dello sviluppo di dispositivi biomedicali e di tecnologie per l innovazione nella ricerca medica e nella sperimentazione clinica LA MOSTRA-CONVEGNO DI RIFERIMENTO PER IL MERCATO EMBEDDED National Instruments ha partecipato al recente Focus Embedded LA VISIONE ARTIFICIALE SECONDO NATIONAL INSTRUMENTS Discusse le caratteristiche essenziali di un software flessibile SE STAI USANDO LABVIEW non perdere l occasione per fare di più INNOVAZIONE ITALIANA A NIWEEK 2010 La collaborazione con NI offre a molte piccole e medie aziende italiane la possibilità di affacciarsi sullo scenario internazionale LABVIEW WANTS YOU! Dove trovare gli ultimi add-on 44 APPUNTAMENTI Oltre ad organizzare propri corsi e seminari, National Instruments sarà presente a numerosi eventi 46 LABVIEW E LAVORO Proposte concrete per coloro che sanno utilizzare LabVIEW AAA

4 15 A TU PER TU Valerio Alessandroni L EVOLUZIONE DEL GRAPHICAL SYSTEM DESIGN Con LabVIEW 2010, National Instruments ha dimostrato di sapere ascoltare il mercato, introducendo caratteristiche e funzioni che rispondono alle esigenze espresse dalla comunità dei partner e degli utenti In occasione di NIWeek 2010 abbiamo intervistato John Pasquarette, Vice President Product Marketing Software di National Instruments. Pasquarette, che ha gestito in modo impeccabile gli speaker della seconda giornata, commenta il ruolo della comunità LabVIEW, spiegando alcuni aspetti fondamentali di LabVIEW 2010 e fornisce qualche anticipazione sul software del futuro. D: Nel corso di NIWeek 2010 è stato sottolineato più volte l impegno che National Instruments intende porre in una più stretta collaborazione non solo con i suoi Alliance Partner, ma anche con la comunità degli sviluppatori LabVIEW, il mondo accademico e della ricerca, ecc.. Qual è il suo punto di vista? Pasquarette: Per quanto riguarda il mondo accademico in particolare, i nostri programmi sono ben noti, data la nostra lunga presenza in questo settore. Il nostro obiettivo principale è che gli studenti apprendano attraverso i nostri prodotti, per contribuire a risolvere la persistente carenza Fig1 - Afferma John Pasquarette, Vice President Product Marketing Software di National Instruments: In LabVIEW 2010 sono stati accolti i 14 suggerimenti raccolti dal programma LabVIEW Idea Exhange ritenuti migliori dagli stessi utenti 3

5 15 A TU PER TU di tecnici e ricercatori interessati alla tecnologia. Continueremo quindi a puntare sui giovani, offrendo loro strumenti sempre più semplici e divertenti per imparare. Un esempio molto significativo in tal senso è il nostro appoggio al programma First (For Inspiration and Recognition of Science and Technology). Passando ai nostri partner, abbiamo annunciato un programma finalizzato alla loro crescita, che permetterà anche alle piccole aziende di costruire con successo e distribuire i propri prodotti. I nostri partner possono oggi accedere più facilmente a LabVIEW e ai suoi numerosi add-on e partecipare attivamente all espansione della sua base di conoscenza, grazie anche a nuove caratteristiche presentate a NIWeek 2010, come l apertura nei confronti del Cloud Computing. Con LabVIEW FPGA Cloud Compile Service Beta, National Instruments offre ai programmatori di FPGA la possibilità di compilare i VI nel cloud, scaricandoli completamente dal computer di sviluppo. D: Un altro strumento importante di contatto con la comunità LabVIEW è rappresentato dalle social networks. In che modo vengono utilizzate da National Instruments per favorire lo scambio di idee con e fra Partner e utenti? D: In che modo viene gestita la conoscenza che i singoli partner o utilizzatori portano alla comunità LabVIEW? Ad esempio, i suggerimenti migliori ricevuti lo scorso anno sono stati incorporati nell attuale versione di LabVIEW, ma qual è stata la sorte degli altri suggerimenti espressi dagli utenti? Sono stati semplicemente scartati? Pasquarette: Il modo più attivo è probabilmente quello dei Forum di discussione, che è molto popolare nella comunità LabVIEW da ormai dieci anni. Attraverso il Forum, è possibile porre domande e ricevere risposte dai nostri specialisti ed è stata proprio la competenza di tali risposte a decretare il successo del Forum. Negli anni più recenti abbiamo messo in atto anche programmi di training più aggressivi per la certificazione degli utenti finali. E il modo migliore con il quale un utente può arrivare a dire Sono un buon programmatore LabVIEW, mentre i manager possono imparare che cosa c è dietro il nostro programma di Graphical System Design. Per quanto riguarda la seconda parte della domanda, in LabVIEW 2010 sono stati accolti i 14 suggerimenti raccolti dal programma LabVIEW Idea Exhange ritenuti migliori dagli stessi utenti (che li hanno potuti votare). Gli altri suggerimenti non sono stati scartati, ma rientreranno in lizza insieme alle nuove idee in vista di LabVIEW Fig2 National Instruments tiene in grande considerazione i suggerimenti che arrivano dai suoi partner e dal mercato in generale, sottolinea Pasquarette Pasquarette: Siamo molto attivi su Facebook e Twitter, come dimostra l elevato numero di post durante NIWeek Uno dei modi più interessanti per utilizzare i social media e il web in generale è l advertising. E infatti in crescita il numero dei nostri utenti che fanno conoscere i loro prodotti attraverso questi canali. D: Come ogni anno, anche a questa edizione di NIWeek sono state presentate numerose applicazioni in settori molto diversi fra loro, che dimostrano come i confini di LabVIEW sono in costante espansione. Fino a che punto queste applicazioni sono state possibili grazie al software National Instruments e fino a che punto ha invece contribuito il know-how di sviluppatori, system integrator e utenti? Pasquarette: In realtà, è la combinazione delle due componenti che fa funzionare il sistema. Oggi siamo riusciti a rendere estremamente semplice il deployment della piattaforma LabVIEW in qualsiasi applicazione, che si tratti di un sistema di test o di un sistema embedded. Ciò permette di costruire rapidamente un sistema robusto, testato e validato, in grado di gestire I/O, sensori, attuatori e strumenti. Ma a questo punto entra in gioco la creatività del singolo utente. Ciò che abbiamo fatto è stato tagliare i lunghi tempi di sviluppo e programmazione richiesti in preceden- 4

6 za, velocizzando lo sviluppo delle applicazioni, ma il successivo contributo dell utente rimane fondamentale. D: Quali sono i nuovi settori applicativi nei quali National Instruments intende entrare? Pasquarette: Per fare solo qualche esempio, posso citare i settori RF (ed in particolare della progettazione di radio), del signal processing e delle energie rinnovabili. Continueremo poi a focalizzarci sul controllo di macchine e sui controlli industriali embedded. D: Nell area espositiva di NIWeek 2010 erano presenti numerose piccole aziende che, grazie alla collaborazione con National Instruments, hanno oggi la possibilità di affacciarsi sul mercato internazionale. In quale misura l allargamento della base degli utenti con queste piccole realtà porta un vantaggio a National Instruments? Pasquarette: In generale, National Instruments ha bisogno di partner specializzati in molte aree. E le piccole aziende che sono entrate nella nostra orbita sono sempre delle realtà hi-tech dotate di un elevata specializzazione. Questo ci permette di avere a disposizione esperti in ogni area particolare, che si tratti di visione artificiale o di particolari sistemi di test, sia per affrontare un nuovo problema, sia per lo stesso sviluppo dei nostri nuovi prodotti. Come è già stato evidenziato, National Instruments tiene in grande considerazione i suggerimenti che arrivano dai suoi partner e dal mercato in generale. D: Uno noto slogan di National Instruments è The software is the instrument. Alla luce di quanto è stato presentato a NIWeek 2010 e soprattutto della forte spinta alla mobilità e al facile accesso al software da ogni punto del pianeta, è corretto affermare che The network (or the cloud) is the instruments? Pasquarette: Credo che fondamentalmente non ci sia una grande differenza fra questi slogan: essi evidenziano semplicemente forme diverse di software. Ma è il software di Graphical System Design che rimane al centro della questione, sia che si trovi sul web, sul cloud o sul computer locale. Gli strumenti hardware cambiano ed estendono le proprie capacità, ma il loro modello di riferimento è rimasto lo stesso. D: Un ultima domanda: in un ottica di medio termine, come sarà il software del futuro? Pasquarette: Vedo due direzioni di sviluppo fondamentali. Da una parte, il software sarà sempre più web-based e distribuito (e cito, a tale proposito, il forte impulso che National Instruments sta dando al tema dei Web Services con la nuova interfaccia Web UI). Ciò per due motivi: perché gli utenti richiedono un accesso sempre più comodo, anche attraverso terminali portatili, e perché il Cloud Computing è un modo molto conveniente e flessibile per scalare il proprio sistema di calcolo e di storage in base alle necessità. Dal lato opposto, il software tende ad integrarsi sempre più strettamente con l hardware embedded

7 15 WHAT S NEW SISTEMI EMBEDDED CON TIMING PRECISO CONLABVIEW 2010 E RIO(RECONFIGURABLE I/O) Le caratteristiche di timing incorporate in LabVIEW 2010 aiutano tecnici, ricercatori e progettisti embedded a sfruttare l'hardware RIO di NI con CPU real-time e FPGA (Field-programmable gate array) ad alte prestazioni per creare applicazioni robuste e che rispondono in modo reattivo A cura di Alessandro Plantamura Quando si progettano sistemi embedded, il timing è critico sia che si cerchi di assicurare che un loop di controllo sia eseguito in modo affidabile, che si risponda rapidamente a un segnale di I/O o che l elaborazione sia abbastanza veloce da soddisfare i requisiti applicativi. La costruzione di un sistema che gestisca queste esigenze di timing parte dall hardware; esso deve fornire il giusto equilibrio fra dimensioni, consumo di potenza, throughput elaborativo e latenza. In più, il software gioca un ruolo chiave nella regolazione dell esecuzione, nella risposta agli interrupt e nell equilibrare il tempo fra i task di calcolo. Integrare hardware e software embedded tenendo in considerazione il timing può essere un processo laborioso, ma il software LabVIEW 2010 e l hardware I/O riconfigurabile (RIO) di NI riducono lo sforzo necessario per costruire sistemi deterministici affidabili che possono gestire anche le applicazioni più stringenti. di trasferimento dati potente e diretta da LabVIEW o codice C. Il risultato finale è una piattaforma flessibile che è ideale per un ampia varietà di prototipi e progetti embedded. E, poiché l architettura NI-RIO è standard fra molti target hardware differenti, inclusi NI Single-Board RIO e NI CompactRIO, potete massimizzare il riutilizzo del codice quando installate le applicazioni su dispositivi embedded robusti od ottimizzati nei costi. L HARDWARE RIO DI NI OFFRE CPU REAL- TIME E CHIP FPGA (FIELD-PROGRAMMABLE GATE ARRAY) AD ALTE PRESTAZIONI I target hardware embedded di National Instruments si basano sull architettura RIO, che include una CPU che normalmente esegue un SO real-time e uno o più chip FPGA. Con questa combinazione, potete realizzare task che richiedono un timing con risoluzione di nanosecondi o parallelismo massiccio in hardware FPGA, mentre la CPU esegue in modo efficiente operazioni a elevato contenuto di calcolo come matematica a virgola mobile. La comunicazione fra il chip gli FPGA e la CPU avviene tipicamente su un bus PCI e il driver NI-RIO fornisce un interfaccia Figura 1. Il dispositivi embedded NI Reconfigurable I/O (RIO) sono costruiti attorno a un architettura comune caratterizzata da CPU real-time, chip FPGA e I/O modulare Per esempio, Ventura Aerospace ha usato NI Single-Board RIO, insieme a LabVIEW, per creare un sistema antincendio in grado di prevenire incendi catastrofici sugli aeromobili di trasporto merci FedEx. Algoritmi di controllo deterministico, networking e data logging sono stati gestiti sulla CPU real-time, mentre altri task critici sono stati implementati in hardware su chip FPGA. 6

8 WHAT S NEWS LABVIEW 2010 E IL TIMING INCORPORATO SEMPLIFI- CANO LA PROGRAMMAZIONE DI SISTEMI DETERMI- NISTICI AFFIDABILI Non solo è possibile utilizzare la programmazione grafica di LabVIEW per CPU (comprese quelle che eseguono un SO realtime) e chip FPGA (inclusi quelli in target hardware RIO), ma lo stesso linguaggio LabVIEW è stato progettato fin dall inizio tenendo presenti timing e sincronizzazione. Qui sotto vi è qualche esempio di come LabVIEW, insieme ai moduli LabVIEW Real-Time e LabVIEW FPGA, renda semplice il timing per applicazioni embedded. CARATTERISTICHE DI TIMING INTEGRATE NEL MODU- LO LABVIEW REAL-TIME Programmazione di applicazioni deterministiche, ad anello chiuso con LabVIEW Real-Time e il Timed Loop Il modulo Real-Time di LabVIEW 2010 estende la programmazione grafica di LabVIEW a target hardware real-time NI (inclusi i dispositivi RIO) e a selezionato hardware PC di terze parti. In base al target hardware, LabVIEW Real-Time utilizza automaticamente componenti del SO real-time VxWorks standard o ETS per assicurare prestazioni hard real-time deterministiche. Quando si programma un applicazione di controllo ad anello chiuso con LabVIEW Real-Time, il Timed Loop offre un modo intuitivo per eseguire periodicamente un sottoinsieme di codice, sincronizzare la velocità del loop con l hardware, prioritizzare più loop o anche assegnare un loop a un certo core della CPU tutto con pochi click del mouse. Inoltre, potete scegliere fra clock in kilohertz, megahertz o custom come base di timing del vostro loop. Figura 2. Il Timed Loop di LabVIEW vi permette di configurare intuitivamente il timing di loop, la sincronizzazione con hardware di I/O, la priorità di codice real-time, l affinità di CPU e altro SINCRONIZZAZIONE DI LOOP TEMPORIZZATI SU PIÙ TARGET Potete sfruttare la sincronizzazione IEEE 1588 su dispositivi hardware programmati con LabVIEW Real-Time per fare in modo che una data operazione avvenga pressoché simultaneamente su più sistemi embedded. In base al dispositivo che utilizzate, sono supportate sincronizzazioni IEEE 1588 software sotto il millisecondo, se via software, e/o hardware sotto il microsecondo, se effettuate via hardware. Per sfruttare la sincronizzazione tra target hardware basata sul software in LabVIEW Real-Time, usate il Timed Loop insieme all impostazione di sorgente di tipo Absolute Timing. Dopo la configurazione del Timed Loop, semplicemente una data di inizio e selezionate run per iniziare l esecuzione del loop su più sistemi contemporaneamente. Figura 3. Potete usare la sicronizzazione di tempo IEEE 1588 con il Timed Loop di LabVIEW per iniziare simultaneamente un operazione su più dispositivi embedded distribuiti (qui un NI CompactRIO) Uso del toolkit NI Real-Time Execution Trace per un analisi dettagliata del timing Usato con il LabVIEW Real-Time Module, il toolkit Real-Time Execution Trace può indicare informazioni dettagliate sul tempo di esecuzione di thread e subvi, priorità ed eredità fra elementi del codice. Potete usare il toolkit non solo per ottimizzare le vostre applicazioni real-time, ma anche per facilitare l identificazione di problemi potenziali come l inversione di priorità o condizioni di conflitto. Esecuzione deterministica di.m file su hardware real-time Se avete codice su file con estensione.m, potete usare il modulo NI LabVIEW MathScript RT per eseguire deterministicamente tale codice su un sistema embedded che programate con LabVIEW Real-Time. Essenzialmente, ciò rende lineare e rapido il percorso, un tempo complesso, di esecuzione di file di tipo.m su target hardware. Combinate semplicemente il vostro.m file con il codice grafico di LabVIEW usando il MathScript Node, quindi trascinate e depositate la vostra applicazione sul target real-time all interno del progetto LabVIEW. 7

9 15 WHAT S NEWS CARATTERISTICHE DI TIMING INCORPORATE NEL MODULO LABVIEW FPGA Ottimizzazione di applicazioni FPGA con il single-cycle Timed Loop Il single-cycle Timed Loop a ciclo singolo nel modulo FPGA di LabVIEW 2010 rimuove i registri dall interno del loop affinché possiate eseguire in modo ottimale un blocco di codice compatibile. Ciò rende possibili frequenze di loop fino a 40 MHz per operazioni critiche che devono essere eseguite in modo affidabile a livello hardware. Inoltre, il codice all interno di un single-cycle Timed Loop richiede meno spazio sull FPGA, lasciandovi più spazio per altri task. Figura 4. Il single-cycle Timed Loop di LabVIEW FPGA permttette di eseguire una sezione di codice in modo ottimale a frequenze di loop fino a 40 megahertz Uso del Loop Timer per regolare l esecuzione di codice FPGA Eseguire un operazione periodicamente su un chip FPGA è facile come usare il Loop Timer all interno di singoli loop sul vostro diagramma a blocchi LabVIEW FPGA. Usando il Loop Timer, avete la possibilità di controllare il timing di un loop come multiplo del clock hardware con periodi del loop nell ordine dei nanosecondi, microsecondi o millisecondi. Con una frequenza di clock di default di 40 MHz, il Loop Timer può essere usato per ottenere frequenze di loop in multipli di 25 ns. Figura 5. L evidenziazione dei percorsi critici nel modulo LabVIEW FPGA vi permette di identificare rapidamente i colli di bottiglia nella vostra applicazione FPGA Identificazione dei colli di bottiglia con evidenziazione dei percorsi critici L identificazione e la correzione delle violazioni di timing durante lo sviluppo di applicazioni FPGA può essere tedioso. Per facilitare questo processo, usate il modulo LabVIEW FPGA per evidenziare rapidamente ogni operazione nel percorso critico e saltare alla posizione appropriata nel codice sorgente, dove potete rimediare al problema programmando in modo più efficiente o usando stadi pipeline addizionali (Fig. 5). CONSIDERATE LABVIEW E NI RIO PER IL VOSTRO PROSSIMO PROTOTIPO O PRO- GETTO EMBEDDED L hardware NI RIO e LabVIEW sono stati usati con successo per fornire un timing stretto e un funzionamento affidabile in migliaia di prototipi e sistemi installati embedded. Quando pianificate il vostro prossimo progetto embedded, considerate i risparmi di tempo e di costi che un hardware pronto all uso, potente e flessibile può offrire oltre ai vantaggi di usare la programmazione grafica di LabVIEW, le sue caratteristiche di timing incorporate e centinaia di librerie IP per abbreviare il vostro ciclo di sviluppo. SINCRONIZZAZIONE DEL TIMING DI APPLICAZIONI REAL-TIME E FPGA CON INTERRUPT Con target hardware FPGA selezionati, potete generare interrupt da applicazioni FPGA per notificare eventi a programmi host real-time, come la lettura di dati, il verificarsi di un errore o il completamento di un a task. Sfruttando la funzione Interrupt in LabVIEW FPGA e il metodo Wait on Interrupt in LabVIEW Real-Time, potete sincronizzare il vostro intero sistema embedded. Sono disponibili fino a 32 interrupt. Note sull autore Laureato in ingegneria biomedica al Politecnico di Milano, Alessandro Plantamura lavora in qualità di Technical Marketing Engineer presso National Instruments Italy 8

10 WHAT S NEW 15 WIZARD ED ESEMPI LABVIEW Driver di strumenti, esempi, wizard ed Express VI di NI LabVIEW possono aiutarvi a fare di più con il tempo che avete a disposizione A cura di Alessandro Plantamura LabVIEW semplifica l automazione degli strumenti di test e misura riducendo la quantità di lavoro che dovete eseguire per controllare il vostro strumento. Per esempio, i driver per strumenti LabVIEW vi permettono di risparmiare tempo eliminando la necessità di imparare set di comandi specifici per ogni strumento che usate. Tuttavia, il tempo dedicato a localizzare ed installare i driver di strumenti rimane tempo speso lavorando su qualcosa di diverso del vostro obiettivo primario. L Instrument Driver Finder (IDFinder) in LabVIEW riduce il tempo di setup del controllo di strumenti fino al 400 per cento. L Instrument Driver Finder rileva gli strumenti collegati e localizza driver Plug and Play LabVIEW compatibili fra le migliaia di driver sulla Instrument Driver Network (IDNet). Dopo avere selezionato il driver che volete installare, l Instrument Driver Finder scarica e installa l API del driver e i relativi esempi, aiutandovi a stabilire una comunicazione con il vostro strumento in meno tempo. Dopo l installazione del driver dello strumento, usate l NI Figura 1. Instrument Driver Finder e NI Example Finder Example Finder per cercare o navigare fra gli esempi di programmi che coprono tutto, dall analisi alla presentazione per usare il vostro driver di strumento. Il codice esemplificativo in LabVIEW è pronto all esecuzione, pertanto potete usarlo così come è per semplici applicazioni. Per applicazioni più complesse, potete modificare ed estendere gli esempi base aggiungendo nuovo codice o copiando parti di più esempi per creare l applicazione. Usando sezioni di codice esemplificativo si può risparmiare tempo di sviluppo iniziale, oltre a tempo di collaudo e debugging. GENERAZIONE AUTOMATICA DI CODICE DI CONTROL- LO DI STRUMENTI Quando non riuscite a trovare un driver di strumenti per il vostro strumento o volete aggiungere funzionalità a un driver esistente, i wizard LabVIEW possono generare automaticamente gran parte del codice, tagliando la quantità di lavoro che dovete fare. Il wizard Create New Instrument Driver Project usa template per vari tipi di strumenti per creare rapidamente il framework che vi serve per sviluppare il vostro driver di strumenti. Il wizard popola il framework con comandi comuni e include documentazione dettagliata su come utilizzare il framework generato e creare un driver di strumenti pienamente funzionante. Se esiste già un driver per lo strumento che volete usare ma manca un comando che vi serve, il wizard Create Instrument Driver VI può generare il codice LabVIEW necessario basandosi sull informazione che fornite. Tale wizard esegue per voi il lavoro noioso, permettendovi di non dovere creare stringhe di comando custom e distribuire i dati restituiti dallo strumento. EXPRESS DI ANALISI E DI FILE DI I/O La connettività e la comunicazione di strumenti sono solo l inizio di qualsiasi progetto di controllo di strumenti. Oltre alle opzioni per codice grafico e matematica testuale, LabVIEW include un ampia gamma di Express VI che potete usare per impostare l elaborazione, l analisi o gli output di cui avete bisogno selezionando opzioni in un area di dialogo. Gli Express VI possono aiutarvi ad ottenere i seguenti obiettivi: Filtraggio, trigger e gate di segnali d ingresso Esecuzione di misure di distorsione, spettrali e di ampiezza Calcolo delle curve di fitting migliori a analisi statistica complessa Salvataggio dei risultati in file e report Questi task sono solo alcuni esempi della vasta funzionalità fornita da LabVIEW. Per un elenco completo degli Express VI e di altri VI e funzioni incorporati, consultate il riferimento a VI e funzioni nel LabVIEW Help. 9

11 15 TIPS&TECHNIQUES STANDARDIZZARE UNA PIATTAFORMA PROVATA, USER-DRIVEN CON LABVIEW 2010 Attraverso il forum pubblico LabVIEW Idea Exchange, introdotto lo scorso anno, gli utenti LabVIEW possono sottoporre le loro idee e votare quelle che preferiscono Todd Sierer La LabVIEW Community degli utenti mondiali ha sempre avuto un ruolo attivo nel supporto ai membri e nel fornire feedback alla R&D NI per migliorare il prodotto. Lo scorso anno, NI ha introdotto un nuovo modo per raccogliere i feedback sul prodotto: LabVIEW Idea Exchange. Attraverso questo forum pubblico, gli utenti LabVIEW possono sottoporre le loro idee sulle caratteristiche del prodotto e votare quelle che preferiscono. Qui sotto è riportata una breve sintesi delle 13 caratteristiche proposte dagli utenti che sono state implementate dalla R&D LabVIEW in questa versione. Migliore utilizzabilità di LabVIEW Rendere più facile la lettura del codice con etichette dei fili Paul Falkenstein, Pennsylvania Voti Tracciare i collegamenti dati su lunghi fili nel vostro codice LabVIEW può essere difficile. Migliorate la leggibilità del codice aggiungendo etichette ai fili lunghi e rendete più semplice sapere quali fili appartengono a quali terminali. Christian Altenbach, California Voti I dati stringa sono spesso semplice testo, ma possono rappresentare anche dati esadecimali, codici \ e password. Una nuova radice sui terminali stringa commuta per visualizzare il tipo di dati stringa assegnati, rendendo più facile la letttura e il troubleshoot del vostro codice. Linearizzare il diagramma a blocchi con il nodo di gestione errori flessibile Dany Allard, Montreal Voti Invece di usare una serie di nodi di gestione errori per combinare i dati di errore, il nuovo nodo ora si espande per raccogliere tutti i fili di errore richiesti dal vostro codice, riducendo il disordine sul vostro diagramma a blocchi. Editare più velocemente le connessioni dei fili SubVI Yair Neeman, Israele Voti Cambiare i terminali di cablaggio dei subvi tramite il pannello connettori richiedeva normalmente eccessivi click del mouse. Ora potete cambiare più velocemente le connessioni con un nuovo shortcut da tastiera. Differentiare i dati stringa con una nuova radice di terminale Ridurre l ingombro del diagramma a blocchi con una nuova costante di cluster Chris Bolin, Texas (NI) Voti La nuova costante di cluster è un altra caratteristica salvaspazio di LabVIEW Dopo avere definito gli elementi in una costante di cluster, cliccate con il tasto destro su di essa per sostituirla con una piccola icona sul vostro diagramma a blocchi per ridurre lo spazio e migliorare la leggibilità del codice (vedi alla pagina successiva). Nuova funzionalità di gestione progetti di LabVIEW Chiudere tutti i VI all interno di un progetto e usare la visualizzazione menu Progetti/VI potenziata Simon Holman, Germania - 4 Voti (chiudere tutti i VI) Greg Sussman, Pennsylvania - 16 Voti (visualizzazione menu) 10

12 DALLA TEORIA ALLA PRATICA Mano a mano che le applicazioni LabVIEW diventano più avanzate, gli sviluppatori devono aprire più progetti LabVIEW contemporaneamente. Prima di LabVIEW 2010, l opzione menu Close All VIs chiudeva tutti i VI aperti e non solo quelli di un particolare progetto. LabVIEW 2010 include una nuova opzione menu Close All VIs in Project per facilitare la gestione di elevate quantità di VI e progetti multipli. LabVIEW 2010 include inoltre una navigazione migliorata nel menu Windows, dove progetti e VI sono separati fra loro per una commutazione più veloce fra i progetti. Nuovi risparmia tempo con Quick Drop Sostituire un oggetto usando gli hotkey Quick Drop e Create Custom Quick Drop Dany Allard, Montreal - 21 Voti (sostituire) Dave Snyder, Seattle - 8 Voti (hotkey) Quick Drop, introdotto in LabVIEW 8.5, è diventato una delle nuove caratteristiche più popolari in LabVIEW da diversi anni. Con questa caratteristica, potete cercare, selezionare e disporre VI usando una breve serie di tasti. Usate Quick Drop in LabVIEW 2010 per sostituire un VI selezionato con un altro dall interno dell utility Quick Drop, risparmiando tempo di sviluppo. Potete anche creare i vostri hotkey e migliorare la vostra efficienza di programmazione ancora di più. Altri miglioramenti in LabVIEW 2010 sottoposti dalla Community - Massimo default di Undo impostato a 99 Putnam Monroe, New York 91 Voti - Struttura elementi sul posto spostata nella palette strutture Jim Kring, California - 91 Voti Esplorate altre caratteristiche LabVIEW sottoposte dagli utenti e proponete e votate voi stessi su ni.com/ideas. Note sull autore Todd Sierer è un Product Marketing Manager di LabVIEW in National Instruments. E' laureato in ingegneria elettrica alla Brigham Young University.

13 15 TIPS & TECHNIQUES TEMPORIZZAZIONE E SINCRONIZZAZIONE IN LABVIEW Con costrutti di temporizzazione inerenti al linguaggio, il nanosecond timing engine e la struttura Timed Loop, LabVIEW offre funzionalità essenziali di temporizzazione e sincronizzazione per il vostro sistema Joseph Di Giovanni La temporizzazione è un elemento essenziale in tutte le applicazioni di test, controllo e progettazione e dovrebbe essere una considerazione chiave in ogni sistema. Le tecnologie di temporizzazione e sincronizzazione correlano eventi nel tempo, cosa necessaria per eseguire attività coordinate. Affinché il software possa orchestrare queste attività coordinate, il programma deve essere sincronizzato e avere un concetto di tempo. Il software LabVIEW ha costrutti di temporizzazione inerenti al linguaggio che potete usare per sincronizzare il vostro software nel vostro sistema. LA TEMPORIZZAZIONE LABVIEW IN DETTAGLIO _ NANOSECOND ENGINE E NI-TIMESYNC LabVIEW usa un componente software chiamato nanosecond engine per tenere traccia del tempo all interno di un programma. Il nanosecond engine viene eseguito dietro le quinte e si interfaccia con il SO per gestire il tempo. Vi è una varietà di funzioni e strutture in LabVIEW che usano il nanosecond engine per gestire il tempo, come la funzione Wait e la struttura Timed Loop. Il nanosecond engine può usare un real-time clock (RTC) locale o può essere pilotato da un clock di riferimento esterno integrato attraverso l NI Time Sync Framework (NI-TimeSync) (figura 1). Figura 1. Il nanosecond timing engine e NI-TimeSync di LabVIEW si coordinano per fornire un clock alla vostra applicazione. LabVIEW 2010 introduce un nuovo clock disponibile per NI- TimeSync. Il plug-in Standard IEEE 1588 disponibile con NI- TimeSync 1.1 offre un riferimento di clock che è sincronizzato con risoluzione di 1 ms. Potete configurare più dispositivi su una rete in modo che usino lo stesso clock di riferimento IEEE 1588, permettendo a più piattaforme di sincronizzarsi su una rete Ethernet standard. Potete anche configurare il vostro dispositivo in modo che usi il Software 1588 Precision Time Protocol con l utility NI Measurement & Automation Explorer (MAX) (figura 2). Figura 2. Configurazione di Time Synchronization Source for Device da MAX STRUTTURE DI TEMPORIZZAZIONE LABVIEW TIMED LOOP Il Timed Loop è una struttura a loop che viene eseguita quando la sorgente di temporizzazione configurata genera un evento. Ha un ampia gamma di sorgenti di temporizzazione che sono descritte più avanti. Usate il Timed Loop quando volete sviluppare applicazioni che richiedono elaborazione a velocità multiple, temporizzazione e sincronizzazione precise, feedback sull esecuzione del loop, caratteristiche di temporizzazione che cambiano dinamicamente o più livelli di priorità di esecuzione. Oltre alle caratteristiche di stretta temporizzazione del Timed Loop, la struttura può essere usata per assegnare affinità dei processori per la programmazione multicore. 12

14 TIPS & TECHNIQUES Usando il Timed Loop, potete specificare una varietà di attributi di temporizzazione inclusi periodo, priorità, deadline, offset e timeout. Con la combinazione di questi attributi e l ampia gamma di sorgenti di temporizzazione, potete creare sofisticate applicazioni indipendentemente dai vincoli di temporizzazione richiesti (figura 3). Figura 3. La struttura Timed Loop di LabVIEW Structure per l esecuzione di codice con vincoli di temporizzazione SORGENTI DI TEMPORIZZAZIONE PER IL TIMED LOOP Una sorgente di temporizzazione controlla l esecuzione di una struttura temporizzata. Potete selezionare fra tre classi di sorgenti di temporizzazione: interna, triggerata da software o esterna (figura 4). Figura 4. Sorgenti di temporizzazione per la struttura Timed Loop: sorgenti di temporizzazione interne incorporate, sorgenti triggerate da software e sorgenti esterne SORGENTE DI TEMPORIZZAZIONE INTERNA La sorgente di temporizzazione interna usa il nanosecond engine per tenere traccia del tempo. Potete configurare il Timed Loop in modo che usi un clock a 1 khz o un clock a 1 MHz su un target real-time (RT) supportato. Usando il clock a 1 khz, potete schedulare una struttura temporizzata con una risoluzione del millisecondo. Tutte le piattaforme LabVIEW che possono eseguire una struttura temporizzata supportano la sorgente di temporizzazione a 1 khz. I targets che supportano la sorgente di temporizzazione a 1 MHz possono schedulare una struttura temporizzata con una risoluzione del microsecondo. Potete anche configurare la struttura Timed Loop in modo che usi una di queste sorgenti di temporizzazione incorporate come riferimento di tempo assioluto per iniziare l esecuzione della struttura usando timestamp. Per esempio, potete configurare il Timed Loop in modo che parta ad un orario preciso tutti i giorni. Una sorgente di temporizzazione interna addizionale è il Synchronize to Scan Engine, che sincronizza la struttura temporizzata con l NI Scan Engine. Usando questa sorgente di temporizzazione, la struttura temporizzata viene eseguita alla fine di ogni scansione. Il periodo fra le iterazioni corrisponde all impostazione dello Scan Period (μs) che configurate sulla pagina NI Scan Engine. SORGENTI DI TEMPORIZZAZIONE TRIGGERATE DA SOFTWARE Potete creare una sorgente di temporizzazione triggerata da software in modo che triggeri una struttura temporizzata in base a un evento definito via software. Usate il VI Create Timing Source per creare una sorgente di temporizzazione triggerata da software. Usate il VI Fire Software-Triggered Timing Source per triggerare programmaticamente un Timed Loop controllato da una sorgente di temporizzazione triggerata da software. Potete usare una sorgente di temporizzazione triggerata da software come un gestore di eventi RT-compatibile o per notificare a un Timed Loop consumer quando diventano disponibili nuovi dati in un applicazione producer-consumer. SORGENTI DI TEMPORIZZAZIONE ESTERNE Potete creare sorgenti di temporizzazione esterne per controllare una struttura temporizzata con NI-DAQmx Versione 7.2 o successiva. Usate il VI Create Timing Source del DAQmx per selezionare programmaticamente una sorgente di temporizzazione esterna. Potete anche usare più tipi di sorgenti di temporizzazione NI-DAQmx, incluse le sorgenti Frequency, Digital Edge Counter, Digital Change Detection e Signal from Task per controllare strutture temporizzate. Usate i VI DAQmx - Data Acquisition per creare i seguenti tipi di sorgenti di temporizzazione NI-DAQmx per controllare una struttura temporizzata: Frequency Crea una sorgente di temporizzazione che provoca l esecuzione di una struttura temporizzata ad una frequenza costante. Digital Edge Counter Crea una sorgente di temporizzazione che provoca l esecuzione di una struttura temporizzata sui fronti di salita o di discesa di un segnale digitale. Digital Change Detection Crea una sorgente di temporizzazione che provoca l esecuzione di una struttura temporizzata sui fronti di salita o di discesa di una o più linee digitali. Signal from Task Crea una sorgente di temporizzazione che usa il segnale da voi specificato per determinare quando una struttura temporizzata viene eseguita. Note sull autore Joseph Di Giovanni è un Software Group Manager della ricerca e sviluppo di LabVIEW FPGA in National Instruments. E' laureato in ingegneria elettronica alla Georgia Tech. 13

15 15 TIPS & TECHNIQUES IL COMPILATORE LABVIEW: CHE COSA C È SOTTO IL COFANO LabVIEW è un linguaggio compilato. Ciò significa che il codice G che scrivete viene tradotto in codice macchina nativo ed eseguito direttamente dal computer host Jeffrey Phillips La progettazione di un compilatore anche per un linguaggio di programmazione banale può diventare facilmente un problema complesso. La teoria dei compilatori è considerata una conoscenza ad elevata specializzazione anche fra gli ingegneri software professionisti. Il moderno LabVIEW è un linguaggio multiparadigmatico, che abbraccia un ampia varietà di concetti inclusi il flusso dei dati, l orientamento agli oggetti e la programmazione guidata da eventi. LabVIEW raggiunge inoltre piattaforme diverse, eseguendo o su più SO (Windows, Linux, Mac), più chipset (PowerPC, Intel) e anche target come dispositivi embedded e chip FPGA (Field-programmable gate array), che si differenziano dalle tradizionali architetture PC. Come potete dedurre, il compilatore di LabVIEW è un sistema sofisticato e per spiegarlo bisognerebbe andare molto al di là di un singolo articolo. Questo particolare articolo introduce il compilatore di LabVIEW, spiega brevemente la sua evoluzione a partire dal 1986 con LabVIEW 1.0, e descrive la sua forma attuale. Inoltre, esplora le recenti innovazioni dei compilatori e sottolinea i vantaggi di queste nuove caratteristiche per l architettura LabVIEW e per voi. COMPILAZIONE E INTERPRETAZIONE LabVIEW è un linguaggio compilato, cosa che può sorprendere perché, durante il tipico sviluppo G, non vi è una fase esplicita di compilazione. Al contrario, potete cambiare il vostro VI e premere semplicemente il pulsante Run per eseguirlo. Compilazione significa che il codice G che scrivete viene tradotto in codice macchina nativo ed è quindi eseguito direttamente dal computer host. Un alternativa a questo approccio è l interpretazione, dove i programmi sono eseguiti indirettamente da un altro programma software (chiamato interprete) anziché direttamente dal computer. Nulla nel linguaggio LabVIEW richiede che sia compilato o interpretato; infatti, la prima versione di LabVIEW usava un interprete. Nelle versioni successive, il compilatore ha sostituito l interprete per spingere le prestazioni di esecuzione dei VI, cosa che è un comune differenziatore dei compilatori rispetto agli interpreti. Gli interpreti tendono a essere più facili da scrivere e mantenere a scapito di prestazioni di esecuzione più lente, mentre i compilatori tendono a essere più complessi da implementare ma offrono tempi di esecuzione più veloci. Uno dei benefici primari del compilatore di LabVIEW è che i miglioramenti apportati al compilatore sono visti da tutti i VI senza la necessità di cambiamenti. Infatti, uno dei focus primari della versione 2010 di LabVIEW sono state le ottimizzazioni all interno del compilatore per velocizzare il tempo di esecuzione dei VI. UNA PROSPETTIVA STORICA DEL COMPILATORE DI LABVIEW Prima di saltare in una discussione approfondita degli attuali elementi interni del compilatore, conviene riassumere lo sviluppo del compilatore dalle sue prime forme, oltre 20 anni fa. Alcuni degli algoritmi che introdurremo, come propagazione dei tipi, clumping e inplaceness, sono descritti in maggiore dettaglio nella discussione sul moderno compilatore di LabVIEW. LabVIEW 1.0 è stato introdotto nel Come già detto, nella sua prima versione LabVIEW usava un interprete ed era eseguibile solo sul Motorola A quel tempo, il nuovo linguaggio LabVIEW era molto più semplice, cosa che alleviava anche i requisiti del compilatore (allora un interprete). Per esempio, non c era polimorfismo e l unico tipo numerico era quello in virgola mobile a precisione estesa. LabVIEW 1.1 vide l introduzione dell algoritmo inplaceness, o dell inplacer. Tale algoritmo identifica le allocazioni dei dati che potete riutilizzare durante l esecuzione, evitando inutili copie dei dati e, di conseguenza, velocizzando spesso nettamente le prestazioni di esecuzione. In LabVIEW 2.0, l interprete è stato sostituito con un effettivo compilatore. Pur essendo ancora targetizzatorimanendo eseguibile ancora esclusivamente sui Motorola Motorola, LabVIEW poteva generare codice macchina nativo. Nella Version 2.0 è stato aggiunto anche l algoritmo di propagazione dei tipi di dato che, fra le altre cose, gestisce il controllo della sintassi e la risoluzione dei tipi sul linguaggio LabVIEW in crescita. Un altra grossa innovazione in LabVIEW 2.0 è stata 14

16 TIPS & TECHNIQUES l introduzione del clumper. L algoritmo di clumping identifica il parallelismo nel diagramma LabVIEW e raggruppa i nodi in clump, che possono essere eseguiti in parallelo. Gli algoritmi di propagazione dei tipi, inplaceness e clumping continuano a essere componenti importanti del moderno compilatore LabVIEW e hanno visto numerosi miglioramenti incrementali nel tempo. L infrastruttura del nuovo compilatore in LabVIEW 2.5 ha aggiunto supporto per back end multipli, specificamente Intel x86 and Sparc. LabVIEW 2.5 ha inoltre introdotto il linker, che gestisce le dipendenze fra VI per tracciarli quando devono essere ricompilati. Due nuovi back end, PowerPC e HP PA-RISC, sono stati aggiunti insieme al folding delle costanti in LabVIEW 3.1. LabVIEW 5.0 e 6.0 hanno ridato slancio al generatore di codice e hanno aggiunto la GenAPI, un interfaccia comune ai molteplici back end. La GenAPI cross-compila, cosa importante per lo sviluppo real-time. Gli sviluppatori real-time tipicamente scrivono i VI su un PC host ma li installano (e li compilano per) un target real-time. Inoltre, è stata inclusa una forma limitata di spostamento del codice loop-invariante. Infine, il sistema di esecuzione multitasking di LabVIEW è stato esteso per supportare thread multipli. LabVIEW 8.0 si è basato sull infrastruttura GenAPI introdotta nella Version 5.0 per aggiungere un algoritmo di allocazione dei registri. Prima dell introduzione della GenAPI, i registri erano hardcoded nel codice generato per ogni nodo. Sono state introdotte anche forme limitate di eliminazione del codice irraggiungibile e del codice morto. LabVIEW 2009 ha apportato come novità LabVIEW a 64 bit e la Dataflow epresentation (DFIR). La DFIR è stata immediatamente usata per costruire forme più avanzate di spostamento del codice loopinvariante, folding delle costanti, eliminazione del codice morto ed eliminazione del codice irraggiungibile. Nuove caratteristiche del linguaggio introdotte in 2009, come il For Loop parallelo, sono state basate sulla DFIR. Finalmente, in LabVIEW 2010, la DFIR offre nuove ottimizzazioni del compilatore, come la riassociazione algebrica, l eliminazione delle sottoespressioni comuni, il loop unrolling e l inlining dei subvi. Questa versione include anche l adozione di una macchina virtuale a basso livello (LLVM) nella catena del compilatore LabVIEW. La LLVM è un infrastruttura compilatore open-source molto usata nell industria. Con la LLVM, sono state aggiunte nuove ottimizzazioni come la pianificazione delle istruzioni, il loop unswitching, la combinazione delle istruzioni, la propagazione condizionata e un allocatore di registri più sofisticato. L ATTUALE PROCESSO DI COMPILAZIONE Con una comprensione di base della storia del compilatore di LabVIEW, ora potete esplorare il processo di compilazione nel moderno LabVIEW. In primo luogo, esaminiamo una visione d insieme ad alto livello dei vari passi di compilazione e rivisitiamo quindi ogni parte in maggiore dettaglio. Il primo passo nella compilazione di un VI è l algoritmo di propagazione dei tipi di dato. Questo passo complesso è responsabile del riconoscimento dei tipi implicati per i terminali che possono adattarsi al tipo di dato, nonché del rilevamento degli errori di sintassi. Tutti i possibili errori di sintassi nel linguaggio di programmazione G sono rilevati durante l algoritmo di propagazione dei tipi. Se l algoritmo determina che il VI è valido, la compilazione continua. Dopo la propagazione dei tipi di dato, il VI viene convertito dal modello usato dall editor del diagramma a blocchi nella DFIR usata dal compilatore. Dopo la conversione nella DFIR, il compilatore esegue diverse trasformazioni sul grafico DFIR per decomporlo, ottimizzarlo e prepararlo per la generazione del codice. Molte delle ottimizzazioni del compilatore ad esempio, l inplacer e il clumper sono implementate come trasformazioni e vengono eseguite in questo passo. Dopo l ottimizzazione e la semplificazione del grafico DFIR, viene tradotto nella rappresentazione intermedia LLVM. Vengono eseguiti uuna serie di passaggi LLVM sulla rappresentazione intermedia per ottimizzarla e abbassarla ulteriormente, fino al codice macchina. PROPAGAZIONE DEI TIPI DI DATO Come detto in precedenza, l algoritmo di propagazione dei tipi identifica i tipi di dato e rivela gli errori di programmazione. Questo algoritmo ha diverse responsabilità, incluse le seguenti: Identificare i tipi di dato implicati per i terminali che possono adattarsi al tipo Riconoscere le chiamate ai subvi e determinare la loro validità Calcolare la direzione dei fili Verificare i cicli nel VI Rivelare e riportare gli errori di sintassi Questo algoritmo viene eseguito dopo ogni cambiamento che apportate a un VI per determinare se il VI è ancora buono, quindi è un po discutibile il fatto che questo passo faccia realmente parte della compilazione. Tuttavia, è il passo nella catena di compilazione di LabVIEW che corrisponde più chiaramente ai passi di analisi lessicale, parsing o analisi semantica in un compilatore tradizionale. Un semplice esempio di un terminale che si adatta al tipo di dato è la primitiva di somma in LabVIEW. Sommando due interi, il risultato è un intero, ma se sommate due numeri a virgola mobile, il risultato è un numero a virgola mobile. Modelli simili esistono per tipi composti come array e cluster. Vi sono altri costrutti del linguaggio come gli shift register che hanno regole di tipizzazione più complesse. Nel caso della primitiva di somma, il tipo di dato in uscita è determinato dai tipi in ingresso e si dice che il tipo si propaga attraverso il diagramma, da cui il nome dell algoritmo. 15

17 15 TIPS & TECHNIQUES Questo esempio illustra anche la responsabilità nel controllo della sintassi dell algoritmo di propagazione dei tipi. Supponete di cablare un intero e una stringa alla primitiva di addizione che cosa accadrebbe? In questo caso, sommare questi due valori non ha senso, quindi l algoritmo di propagazione dei tipi lo riporta come errore e marca il VI come cattivo, causando la rottura della freccia di esecuzione. RAPPRESENTAZIONI INTERMEDIE CHE COSA E PERCHÉ Dopo che la propagazione dei tipi decide che un VI è valido, la compilazione continua e il VI è tradotto nella DFIR. Prendiamo in considerazione le rappresentazioni intermedie (IR) in generale prima di dettagliare la DFIR. Una IR è una rappresentazione del programma utente che è manipolata mano a mano che la compilazione progredisce attraverso le varie fasi. La nozione di IR è comune nella moderna letteratura sui compilatori e può essere applicata a qualsiasi linguaggio di programmazione. Consideriamo qualche esempio. Oggi esiste una varietà di IR ben note. Due esempi comuni sono gli alberi di sintassi astratti (AST) e il codice a tre indirizzi. La figura 1 mostra una rappresentazione AST dell espressione Figura 1. Esempio di IR AST t0 <- y t1 <- 3 t2 <- t0 * t1 t3 <- x t4 <- t3 + t2 x + y * 3, mentre la tabella 1 nella parte destra, mostra la rappresentazione basata su codice a tre indirizzi. Un ovvia differenza fra queste due rappresentazioni è che l AST è molto più ad alto livello. Essa si avvicina più alla rappresentazione sorgente del programma (C) che alla rappresentazione target (codice macchina). Il codice a tre indirizzi, invece, è a basso livello e assomiglia più all assembly. Le rappresentazioni ad alto e a basso livello hanno entrambe i loro vantaggi. Per esempio, le analisi come l analisi della dipendenza possono essere più facili da eseguire su una rappresentazione ad alto livello come l AST che su una a basso livello come il codice a tre indirizzi. Altre ottimizzazioni, come l allocazione dei registri o la schedulazione delle istruzioni, sono tipicamente eseguite su una rappresentazione a basso livello come il codice a tre indirizzi. Poiché IR differenti hanno punti di forza e debolezza differenti, molti compilatori (incluso quello di LabVIEW) usano più IR. Nel caso di LabVIEW, la DFIR è usata come IR ad alto livello, mentre la IR LLVM è usata come IR a basso livello. DFIR In LabVIEW, la rappresentazione ad alto livello è la DFIR, che è gerarchica e basata su grafici e assomiglia allo stesso codice G. Come il G, la DFIR è composta da vari nodi, ciascuno dei quali contiene terminali. I terminali possono essere connessi ad altri terminali. Alcuni nodi, come i loop, contengono diagrammi, che possono a loro volta contenere altri nodi. Figura 2. Codice G di LabVIEW e grafico DFIR equivalente La figura 2 mostra un semplice VI insieme alla sua rappresentazione DFIR iniziale. Quando il grafico DFIR di un VI viene creato per la prima volta, è una traduzione diretta del codice G e i nodi nel grafico DFIR generalmente hanno una corrispondenza uno a uno con i nodi nel codice G. Mano a mano che la compilazione progredisce, i nodi DFIR possono essere spostati o divisi, oppure possono essere inseriti nuovi nodi DFIR. Uno dei vantaggi chiave della DFIR è che preserva caratteristiche come il parallelismo implicito nel vostro codice G. Il parallelismo rappresentato nel codice a tre indirizzi, al contrario, è molto più difficile da discernere. La DFIR offre due significativi vantaggi al compilatore LabVIEW. Innanzitutto, la DFIR disaccoppia la rappresentazione del VI dell editor da quella del compilatore. Inoltre, la DFIR agisce da hub comune per il compilatore, che ha numerosi front e back end. Consideriamo ciascuno di questi vantaggi in maggiore dettaglio. IL GRAFICO DFIR DISACCOPPIA LA RAPPRESENTAZIO- NE DELL EDITOR DA QUELLA DEL COMPILATORE Prima dell avvento della DFIR, LabVIEW aveva una singola rappresentazione del VI condivisa dell editor e dal compilatore. Questo proibiva al compilatore di modificare la rappresentazione durante il processo di compilazione, cosa che, a sua volta, rendeva difficile introdurre ottimizzazioni del compilatore. Figura 3. La DFIR fornisce un framework che permette al compilatore di ottimizzare il vostro codice 16

18 TIPS & TECHNIQUES La figura 3 mostra un grafico DFIR per il VI presentato prima. Il grafico rappresenta un tempo molto successivo nel processo del compilatore, dopo che diverse trasformazioni lo hanno scomposto e ottimizzato. Come potete vedere, il grafico è parecchio diverso dal grafico precedente. Per esempio: Le trasformazioni di scomposizione hanno rimosso i nodi controllo indicatore e SubVI e li hanno sostituiti con nuovi nodi UIAccessor, UIUpdater, FunctionResolvere FunctionCall Lo spostamento delle parti di codice loop-invarianti ha portato i nodi di incremento e moltiplicazione all esterno del corpo del loop Il clumper ha introdotto un nodo YieldIfNeeded all interno del For Loop, provocando la condivisione dell esecuzione del thread in esecuzione con altri elementi di lavoro in competizione La trasformazioni sono descritte in maggiore dettaglio in un paragrafo successivo. L IR della DFIR serve come hub comune per i front e back end multipli del compilatore LabVIEW funziona su numerosi target differenti, alcuni dei quali sono nettamente diversi fra loro, per esempio un PC desktop x86 e un FPGA Xilinx. Analogamente, LabVIEW presenta più modelli di calcolo all utente. Oltre alla programmazione grafica in G, LabVIEW offre matematica testuale in MathScript, per fare un esempio. Ciò si traduce in una raccolta di front e back end, che devono tutti funzionare con il compilatore di LabVIEW. Usando la DFIR come IR comune che tutti i front end producono e tutti i back end consumano facilita il riutilizzo fra le varie combinazioni. Per esempio, un implementazione di un ottimizzazione a folding di costanti seguita su un grafico DFIR può essere scritta una sola volta ed applicata a target desktop, real-time, FPGA ed embedded. SCOMPOSIZIONI DELLA DFIR Una volta nella DFIR, il VI è sottoposto in primo luogo a una serie di trasformazioni di scomposizione. Le trasformazioni di scomposizione puntano a ridurre o normalizzare il grafico DFIR. Per esempio, la scomposizione dei tunnel d uscita non cablati trova i tunnel d uscita su strutture case e strutture a eventi che non sono cablati e configurati come Use Default If Unwired. Per questi terminali, la trasformazione lascia una costante con il valore di default e la cabla al terminale, rendendo quindi il comportamento Use Default If Unwired esplicito nel grafico DFIR. Successivi passaggi del compilatore possono quindi trattare tutti i terminali in modo identico e assumere che tutti abbiano ingressi cablati. In questo caso, la caratteristica Use Default If Unwired del linguaggio è stata compilata via riducendo la rappresentazione a una forma più fondamentale. Questa idea può essere applicata anche a caratteristiche più complesse del linguaggio. Per esempio, una trasformazione di scomposizione è usata per ridurre il Feedback Node in shift register su un While Loop. Un altra scomposizione implementa il For Loop parallelo in diversi For Loop sequenziali con un po di logica addizionale per dividere gli ingressi in parti parallelizzabili per i loop sequenziali e riunire le parti fra loro successivamente. Anche una nuova caratteristica in LabVIEW 2010, l inlining dei subvi, è implementata come una scomposizione DFIR. Durante questa fase della compilazione, il grafico DFIR dei subvi marcati inline è inserito direttamente nel grafico DFIR chiamante. Oltre a evitare l overhead della chiamata di un subvi, l inlining mette in luce opportunità di ottimizzazione addizionali combinando il chiamante e il chiamato in un singolo grafico DFIR. Per esempio, consideriamo questo semplice VI che chiama il TrimWhitespace.vi da vi.lib. Figura 4. Esempio di un semplice VI per dimostrare le ottimizzazioni della DFIR La TrimWhitespace.vi è definita in vi.lib nel modo seguente: Figura 5. Diagramma a blocchi di TrimWhitespace.vi Il subvi è inlined nel chiamante, ottenendo un grafico DFIR equivalente al seguente codice G. Figura 6. Codice G equivalente al grafico DFIR di TrimWhitespace.vi inlined Ora che il diagramma del subvi è inlined nel diagramma del chiamante, l eliminazione del codice irraggiungibile e l eliminazione del codice morto possono semplificare il codice. La prima struttura case è sempre eseguita, mentre la seconda struttura case non è mai eseguita. 17

19 15 TIPS & TECHNIQUES b) Figura 7. Le strutture case possono essere rimosse perché la logica d ingresso è costante Analogamente, lo spostamento del codice loop-invariante sposta la primitiva del match pattern fuori dal loop. Il grafico DFIR finale è equivalente al seguente codice G. In questo caso, il diagramma Do not increment della struttura case non è mai eseguito, quindi la trasformazione rimuove tale caso. Poiché la struttura case ha un solo caso rimanente, viene sostituita con una struttura in sequenza. In seguito, l eliminazione del codice morto rimuove il frame e la costante enumerata. SPOSTAMENTO DEL CODICE LOOP-INVARIANTE Lo spostamento del codice loop-invariante identifica il codice entro il corpo di un loop che è possibile spostare all esterno con sicurezza. Poiché il codice spostato viene eseguito meno volte, la velocità di esecuzione complessiva migliora. Figura 8. Codice G equivalente al grafico DFIR finale Poiché il TrimWhitespace.vi è marcato come inline in LabVIEW 2010 per default, tutti i client di questo VI ricevono questi benefici automaticamente. OTTIMIZZAZIONI DELLA DFIR Dopo la profonda scomposizione del grafico DFIR, iniziano i passaggi di ottimizzazione della DFIR. Ulteriori ottimizzazioni sono eseguite in seguito durante la compilazione LLVM. Questo paragrafo copre solo una parte delle numerose ottimizzazioni. Ciascuna di queste trasformazioni è una comune ottimizzazione del compilatore, quindi dovrebbe essere facile trovare altre informazioni su una specifica ottimizzazione. ELIMINAZIONE DEL CODICE IRRAGGIUNGIBILE Il codice che non può mai essere eseguito è irraggiungibile. Rimuovere il codice irraggiungibile non rende direttamente il vostro tempo di esecuzione molto più veloce, ma rende il vostro codice più piccolo e accelera i tempi di compilazione perché il codice rimosso non è mai trasmesso nelle nei successivi passaggi di compilazione. Figura 10. Codice G equivalente per la scomposizione con spostamento del codice loop-invariante della DFIR Prima della trasformazione con spostamento del codice loopinvariante (a sinistra) Dopo la trasformazione con spostamento del codice loop-invariante ( a destra) In questo caso, l operazione di incremento è spostata all esterno del loop. Il corpo del loop rimane permettendo la costruzione dell array, ma i calcoli non devono essere ripetuti in ogni iterazione. ELIMINAZIONE DELLE SOTTOESPRESSIONI COMUNI L eliminazione delle sottoespressioni comuni identifica calcoli ripetuti, esegue i calcoli una sola volta e riusa i risultati. Figura 9. Codice G equivalente per la scomposizione con eliminazione del codice irraggiungibile della DFIR a) prima dell eliminazione del codice irraggiungibile b) dopo l eliminazione del codice irraggiungibile a) Figura 11. Codice G equivalente per la scomposizione con eliminazione delle sottoespressioni comuni della DFIR Prima (a sinistra) e dopo ( a destra) FOLDING DELLE COSTANTI Il folding delle costanti identifica parti di un diagramma che rimangono costanti durante l esecuzione del codice e che quindi possono essere determinate in anticipo. 18

20 TIPS & TECHNIQUES b) Figura 12. Il folding delle costanti può essere visualizzato nel diagramma a blocchi LabVIEW Le marcature tratteggiate sul VI nella figura 12 indicano le parti constant-folded. In questo caso, il controllo offset non può essere constant folded, ma l altro operando della primitiva di somma, incluso il For Loop, è valutato come costante. LOOP UNROLLING Il loop unrolling riduce l overhead di un loop ripetendo più volte il corpo del loop nel codice generato e riducendo il numero totale delle iterazioni dello stesso fattore. Ciò riduce l overhead del loop e mette in luce opportunità per ulteriori ottimizzazioni a scapito di un certo aumento delle dimensioni del codice. ELIMINAZIONE DEL CODICE MORTO Il codice morto è codice inutile. Rimuovere il codice morto velocizza il tempo di esecuzione, perché il codice rimosso non viene più eseguito. Il codice morto è normalmente prodotto dalla manipolazione del grafico DFIR da trasformazioni che non avete scritto direttamente. Consideriamo il seguente esempio. L eliminazione del codice irraggiungibile determina che la struttura case può essere rimossa. Ciò crea codice morto che la trasformazione di eliminazione del codice morto può rimuovere. Figura 13. L eliminazione del codice morto può ridurre la quantità di codice che il compilatore deve attraversare a) Prima dell'eliminazione del codice irraggiungibile b) Dopo l eliminazione del codice morto a) La maggior parte delle trasformazioni coperte in questo paragrafo hanno interrelazioni come questa. Eseguire una trasformazione può mettere in luce opportunità per eseguire altre trasformazioni. TRASFORMAZIONI BACK-END DELLA DFIR Dopo la scomposizione ed ottimizzazione del grafico DFIR, viene eseguita una serie di trasformazioni back-end. Tali trasformazioni valutano e annotano il grafico DFIR in preparazione alla sintesi finale del grafico DFIR nella IR LLVM IR. CLUMPER L algoritmo di clumping analizza il parallelismo nel grafico DFIR e raggruppa i nodi in clump che si possono eseguire in parallelo. Questo algoritmo è strettamente legato al sistema di esecuzione run-time di LabVIEW, che usa il multitasking associato al multithreading. Ciascuno dei clump prodotti dal clumper è organizzato come task individuale nel sistema di esecuzione. I nodi all interno dei clump sono eseguiti in un ordine fisso, sequenziale. Avere un ordine di esecuzione predeterminato con ogni clump permette all inplacer di condividere le allocazioni dei dati e migliorare nettamente le prestazioni. Il clumper è anche responsabile dell inserimento di prodotti intermedi in operazioni lunghe, come loop o I/O, in modo che tali clump siano eseguiti cooperativamente in multitask con altri clump. Inplacer L inplacer analizza il grafico DFIR e identifica quando è possibile riutilizzare allocazioni dei dati e quando è necessario fare una copia. Un filo in LabVIEW può essere un semplice scalare a 32 bit o un array di 32 MB. Fare in modo che tali dati siano riutilizzati il più possibile è critico in un linguaggio a flusso di dati come LabVIEW. Considerate il seguente esempio (notate che il debugging del VI è disabilitato per ottenere le prestazioni e l ingombro di memoria migliori). 19

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

LabVIEW offre un ambiente di programmazione grafica

LabVIEW offre un ambiente di programmazione grafica 03 COME OTTIMIZZARE IN LABVIEW APPLICAZIONI DI TEST AUTOMATIZZATI PER PROCESSORI MULTICORE David Hall Vediamo come delle applicazioni scritte in LabVIEW possono essere ottimizzate sfruttando tecniche di

Dettagli

VARIABILI CONDIVISE. L articolo introduce le variabili condivise e contiene una discussione sulle loro caratteristiche e prestazioni in LabVIEW

VARIABILI CONDIVISE. L articolo introduce le variabili condivise e contiene una discussione sulle loro caratteristiche e prestazioni in LabVIEW COME USARE LE VARIABILI CONDIVISE IN LABVIEW Mike Trimborn L articolo introduce le variabili condivise e contiene una discussione sulle loro caratteristiche e prestazioni in LabVIEW LabVIEW permette di

Dettagli

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

Strumenti per lo sviluppo del software

Strumenti per lo sviluppo del software Lo sviluppo del software Strumenti per lo sviluppo del software Lo sviluppo del software è l attività centrale del progetto e ha lo scopo di produrre il codice sorgente che, una volta compilato e messo

Dettagli

Una piattaforma embedded riconfigurabile per l automazione

Una piattaforma embedded riconfigurabile per l automazione AO COPERTINA Una piattaforma embedded riconfigurabile per l automazione VALERIO ALESSANDRONI National Instruments ha rivoluzionato il mercato del controllo e dell acquisizione dati introducendo CompactRIO,

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

WGDESIGNER Manuale Utente

WGDESIGNER Manuale Utente WGDESIGNER Manuale Utente Pagina 1 SOMMARIO 1 Introduzione... 3 1.1 Requisiti hardware e software... 3 2 Configurazione... 3 3 Installazione... 4 3.1 Da Webgate Setup Manager... 4 3.2 Da pacchetto autoestraente...

Dettagli

Andrea Pichetto easitec S.r.l. Parma, 16 Settembre 2010

Andrea Pichetto easitec S.r.l. Parma, 16 Settembre 2010 Soft Control facile con RTX e Windows Embedded Standard 7 Architetture Soft Control Andrea Pichetto easitec S.r.l. Parma, 16 Settembre 2010 Innovazioni nelle architetture x86 Oggi calcolatori PC compatibili

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

PROFIBUS E PROFINET. NI compactrio. ACQUISIZIONE DATI e controllo su reti. con

PROFIBUS E PROFINET. NI compactrio. ACQUISIZIONE DATI e controllo su reti. con ACQUISIZIONE DATI e controllo su reti PROFIBUS E PROFINET con NI compactrio Come realizzare un semplice sistema di I/O distribuito interconnesso tramite rete Profibus, costituito da una architettura Master-Slave

Dettagli

Fondamenti di Informatica 7. Linguaggi di programmazione

Fondamenti di Informatica 7. Linguaggi di programmazione I linguaggi di alto livello Fondamenti di Informatica 7. Linguaggi di programmazione Introduzione alla programmazione Caratteristiche dei linguaggi di programmazione I linguaggi di programmazione di alto

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

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

EOLO crp: la nuova frontiera dei datalogger imbarcabili

EOLO crp: la nuova frontiera dei datalogger imbarcabili EOLO crp: la nuova frontiera dei datalogger imbarcabili Luca Pasquini e Stefano Vianelli Eurins srl Abstract Il datalogger imbarcabile EOLO crp è concepito per l impiego in numerosi settori applicativi

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 La Complessità del Hardware Il modello di Von Neumann è uno schema di principio. Attualmente in commercio esistono:

Dettagli

SAVE 2007 - Veronafiere 23-25 ottobre 2007

SAVE 2007 - Veronafiere 23-25 ottobre 2007 AGENDA Introduzione all architettura PAC Programmazione Multithread con OS Real-Time Strumenti di diagnostica e debugging Real-Time System Manager Parallelismo hardware grazie alla tecnologia FPGA Execution

Dettagli

Microprocessori, Microcontrollori e DSP (Digital Signal Processors)

Microprocessori, Microcontrollori e DSP (Digital Signal Processors) Microprocessori, Microcontrollori e DSP (Digital Signal Processors) Il microprocessore è un dispositivo integrato digitale che può essere programmato con una serie di istruzioni per effettuare una specifica

Dettagli

Esercizi di base per l apprendimento di LabView

Esercizi di base per l apprendimento di LabView Esercizi di base per l apprendimento di LabView Esercizio 1 Conversione di temperatura Realizzare un VI in grado di convertire una temperatura impostata mediante un controllo di tipo knob da C a F Soluzione

Dettagli

Summer of LabVIEW The Sunny Side of System Design

Summer of LabVIEW The Sunny Side of System Design Summer of LabVIEW The Sunny Side of System Design 30th June - 18th July 1 Test di visione: soluzioni implementative con NI LabVIEW e NI TestStand Gian Luca Pizzocolo Alessandro Ricco IPSES S.r.l. info@ipses.com

Dettagli

What is LabVIEW???? Pietro Giannone. Dipartimento di Ingegneria Elettrica Elettronica e dei Sistemi. Università degli Studi di Catania

What is LabVIEW???? Pietro Giannone. Dipartimento di Ingegneria Elettrica Elettronica e dei Sistemi. Università degli Studi di Catania Università degli Studi di Catania Dipartimento di Ingegneria Elettrica Elettronica e dei Sistemi What is LabVIEW???? Pietro Giannone University of Catania Dipartimento di Ingegneria Elettrica Elettronica

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

Docente Prof. Claudio De Capua Ing. Antonella Meduri

Docente Prof. Claudio De Capua Ing. Antonella Meduri Gruppo Misure Elettriche ed Elettroniche Facoltà di Ingegneria Università Mediterranea di Reggio Calabria Docente Prof. Claudio De Capua Ing. Antonella Meduri LabView Ambiente di sviluppo grafico: - LabVIEW

Dettagli

Corso di Alfabetizzazione Informatica

Corso di Alfabetizzazione Informatica Corso di Alfabetizzazione Informatica Lezione 6 a.a. 2010/2011 Francesco Fontanella La Complessità del Hardware Il modello di Von Neumann è uno schema di principio. Attualmente in commercio esistono: diversi

Dettagli

I SISTEMI OPERATIVI CONCETTI INTRODUTTIVI

I SISTEMI OPERATIVI CONCETTI INTRODUTTIVI I SISTEMI OPERATIVI CONCETTI INTRODUTTIVI Il Software Software di Base Sistema Operativo (Software di base essenziale) Software di base non essenziale Utility Driver Software applicativi (Applicazioni)

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

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

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

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Il software Dipartimento di Ingegneria dell Informazione Universitàdegli Studi di Parma SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono

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

idaq TM Manuale Utente

idaq TM Manuale Utente idaq TM Manuale Utente Settembre 2010 TOOLS for SMART MINDS Manuale Utente idaq 2 Sommario Introduzione... 5 Organizzazione di questo manuale... 5 Convenzioni... Errore. Il segnalibro non è definito. Installazione...

Dettagli

LabVIEW. Apertura del programma

LabVIEW. Apertura del programma LabVIEW Il termine LabVIEW significa Laboratory Virtual Instrument Engineering Workbench. LabVIEW è un prodotto che si è imposto nel tempo come standard di riferimento per la gestione e la elaborazione

Dettagli

Capitolo 1 Introduzione a Gambas

Capitolo 1 Introduzione a Gambas Capitolo 1 Introduzione a Gambas Gambas è stato creato inizialmente da Benoit Minisini, un residente della periferia di Parigi. Secondo Benoit, Gambas è un linguaggio Basic con estensioni per la programmazione

Dettagli

Configurable CAN System (CCS)

Configurable CAN System (CCS) ISTRUZIONI INTERFACCIA SOFTWARE Configurable CAN System Software Interface FT1130M - FT1137M Configurable CAN System (CCS) Interfaccia software Manuale utente Pag. 1 1 FT1130M - FT1137M Configurable CAN

Dettagli

LOGO! Avvio alla programmazione. Versione 1.0 Guida pratica per compiere i primi passi con LOGO!

LOGO! Avvio alla programmazione. Versione 1.0 Guida pratica per compiere i primi passi con LOGO! LOGO! Avvio alla programmazione Versione 1.0 Guida pratica per compiere i primi passi con LOGO! [Digitare il testo] [Digitare il testo] [Digitare il testo] CONTENUTI 1 INTRODUZIONE... 3 2 PRIMI PASSI PER

Dettagli

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

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

Dettagli

INTERNET EXPLORER Breve manuale d uso

INTERNET EXPLORER Breve manuale d uso INTERNET EXPLORER Breve manuale d uso INDICE INTRODUZIONE... 3 COME IMPOSTARE LA PAGINA INIZIALE... 3 LA WORK AREA... 3 LE VOCI DI MENU... 5 IL MENU FILE... 5 IL MENU MODIFICA... 6 IL MENU VISUALIZZA...

Dettagli

La Gestione Integrata dei Documenti

La Gestione Integrata dei Documenti Risparmiare tempo e risorse aumentando la sicurezza Gestione dei documenti riservati. Protezione dati sensibili. Collaborazione e condivisione file in sicurezza. LA SOLUZIONE PERCHE EAGLESAFE? Risparmia

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

NOTA: per mantenere dei riferimenti comuni nello svolgimento degli esercizi che seguono, è consigliato copiare la cartella crio HO 2013 sul desktop.

NOTA: per mantenere dei riferimenti comuni nello svolgimento degli esercizi che seguono, è consigliato copiare la cartella crio HO 2013 sul desktop. NOTA: per mantenere dei riferimenti comuni nello svolgimento degli esercizi che seguono, è consigliato copiare la cartella crio HO 2013 sul desktop. Page 1 of 34 Esercizio: Configurare il CompactRIO Prima

Dettagli

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Il software di base Software

Dettagli

TECNICHE AVANZATE DI I/O. Al loro livello più basso, tutti i file scritti sull hard disk. Training per esperti SU FILE

TECNICHE AVANZATE DI I/O. Al loro livello più basso, tutti i file scritti sull hard disk. Training per esperti SU FILE Training per esperti TECNICHE AVANZATE DI I/O SU FILE Spesso, la decisione di dividere in processi differenti la produzione dei dati dall uso degli stessi viene presa perché occorre scrivere i dati su

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

IEEE 1588 Quando la tempistica conta

IEEE 1588 Quando la tempistica conta Articolo tecnico IEEE 1588 Quando la tempistica conta Sincronizzazione di alta precisione dei diversi clocks in sistemi distribuiti con l impiego di IEEE 1588 PTP Cos è lo standard IEEE 1588 PTP? Lo standard

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

IBM iseries Soluzioni integrate per xseries

IBM iseries Soluzioni integrate per xseries Soluzioni innovative per l integrazione dei server Intel IBM iseries Soluzioni integrate per xseries La famiglia iseries, il cui modello più recente è l _` i5, offre due soluzioni che forniscono alternative

Dettagli

WEB SERVER EMBEDDED PER APPLICAZIONI DI DOMOTICA. Fig. 1 - Architettura di un web server embedded

WEB SERVER EMBEDDED PER APPLICAZIONI DI DOMOTICA. Fig. 1 - Architettura di un web server embedded WEB SERVER EMBEDDED PER APPLICAZIONI DI Cristian Randieri Per far fronte alle esigenze di sviluppatori che intendono gestire applicazioni professionali per la domotica e la home building automation sfruttando

Dettagli

Sistemi informatici. Informatica. Il software. Il sw di sistema. Il sw applicativo. Il sw di sistema. Il sistema operativo. Hardware.

Sistemi informatici. Informatica. Il software. Il sw di sistema. Il sw applicativo. Il sw di sistema. Il sistema operativo. Hardware. http://159.149.98.238/lanzavecchia/docum enti/sscta.htm Sistemi informatici Hardware Microprocessore Memoria Periferiche di input e output Software Software di sistema Programmi applicativi 1 2 Il sw applicativo

Dettagli

OptiFiber OTDR per la certificazione. Certificazione. Diagnostica. Documentazione. I primi OTDR per la certificazione progettati per installatori LAN.

OptiFiber OTDR per la certificazione. Certificazione. Diagnostica. Documentazione. I primi OTDR per la certificazione progettati per installatori LAN. Certificazione. Diagnostica. Documentazione. I primi OTDR per la certificazione progettati per installatori LAN. L impiego delle fibre per reti locali e di campus è in continua espansione e impone nuovi

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Il Sistema Operativo Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Cos

Dettagli

Soluzioni innovative per la semplificazione dell infrastruttura IT. Virtualizzazione con il sistema operativo IBM i, PowerVM e Power Systems

Soluzioni innovative per la semplificazione dell infrastruttura IT. Virtualizzazione con il sistema operativo IBM i, PowerVM e Power Systems Soluzioni innovative per la semplificazione dell infrastruttura IT Virtualizzazione con il sistema operativo IBM i, PowerVM e Power Systems Caratteristiche principali La flessibilità e la scalabilità della

Dettagli

IL DSP - Digital Signal Processor

IL DSP - Digital Signal Processor IL DSP - Digital Signal Processor Processore dei segnali digitali 1. Generalità Il Digital Signal Processor (DSP, processore di segnali digitali) è un particolare tipo di microprocessore, ottimizzato per

Dettagli

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC BMSO1001 Virtual Configurator Istruzioni d uso 02/10-01 PC 2 Virtual Configurator Istruzioni d uso Indice 1. Requisiti Hardware e Software 4 1.1 Requisiti Hardware 4 1.2 Requisiti Software 4 2. Concetti

Dettagli

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. *+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti

Dettagli

Linguaggio e Architettura

Linguaggio e Architettura Parte 1 Linguaggio e Architettura IL LINGUAGGIO DELL INFORMATICA 1.1 1 Importante imparare il linguaggio dell informatica L uso Lusodella terminologia giusta è basilare per imparare una nuova disciplina

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

Crotone, maggio 2005. Windows. Ing. Luigi Labonia E-mail luigi.lab@libero.it

Crotone, maggio 2005. Windows. Ing. Luigi Labonia E-mail luigi.lab@libero.it Crotone, maggio 2005 Windows Ing. Luigi Labonia E-mail luigi.lab@libero.it Sistema Operativo Le funzioni software di base che permettono al computer di funzionare formano il sistema operativo. Esso consente

Dettagli

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

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

Dettagli

Non cambiare mai un sistema che funziona. ...a meno che non ci sia un buon motivo per farlo. Progetto Migrazione. Answers for industry.

Non cambiare mai un sistema che funziona. ...a meno che non ci sia un buon motivo per farlo. Progetto Migrazione. Answers for industry. Non cambiare mai un sistema che funziona...a meno che non ci sia un buon motivo per farlo. Progetto Migrazione Answers for industry. Nuove strategie per aumentare la competitività In occasione del cinquantesimo

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

Introduzione. è uguale a 0, spostamento di dati da una parte della memoria del calcolatore ad un altra.

Introduzione. è uguale a 0, spostamento di dati da una parte della memoria del calcolatore ad un altra. Appunti di Calcolatori Elettronici Modello di macchina multilivello Introduzione... 1 Linguaggi, livelli e macchine virtuali... 3 La struttura a livelli delle macchine odierne... 4 Evoluzione delle macchine

Dettagli

Sistema Operativo e Applicativi

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

Dettagli

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

E.T.L. (Extract.Tansform.Load) IBM - ISeries 1/8

E.T.L. (Extract.Tansform.Load) IBM - ISeries 1/8 E.T.L. (Extract.Tansform.Load) IBM - ISeries Quick-EDD/ DR-DRm ETL 1/8 Sommario ETL... 3 I processi ETL (Extraction, Transformation and Loading - estrazione, trasformazione e caricamento)... 3 Cos è l

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

uomo Software (sistema operativo) hardware

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

Dettagli

Valutazione del sistema di storage EMC CLARiiON AX4

Valutazione del sistema di storage EMC CLARiiON AX4 Valutazione del sistema di storage EMC CLARiiON AX4 Relazione preparata sotto contratto con EMC Introduzione EMC Corporation ha incaricato Demartek di eseguire una valutazione pratica del nuovo sistema

Dettagli

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 25 febbraio 2015. Corso di laurea in Matematica

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 25 febbraio 2015. Corso di laurea in Matematica Programmazione Dipartimento di Matematica Ing. Cristiano Gregnanin Corso di laurea in Matematica 25 febbraio 2015 1 / 42 INFORMATICA Varie definizioni: Scienza degli elaboratori elettronici (Computer Science)

Dettagli

I.T.C.G. DE SIMONI PROGETTO ECDL

I.T.C.G. DE SIMONI PROGETTO ECDL I.T.C.G. DE SIMONI PROGETTO ECDL USO DEL COMPUTER E GESTIONE FILES Referente e tutor Prof.ssa Annalisa Pozzi Tutor lezioni Prof. Claudio Pellegrini 2.3 Utilità 2.3.1 Compressione dei files 2.3.1.1 Comprendere

Dettagli

Digital Signal Processors

Digital Signal Processors Politecnico di Milano Digital Signal Processors Mariagiovanna Sami Le classi di CPU Di tipo generale ad alte prestazioni: Usate per sw di tipo generale Sistemi operativi pesanti - UNIX, NT Workstations,

Dettagli

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

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

Dettagli

Maggiore efficienza > Conoscenza più approfondita > Valore superiore. Pagina 1 2 3 4 5 6 7 8 9 10 11 12 13

Maggiore efficienza > Conoscenza più approfondita > Valore superiore. Pagina 1 2 3 4 5 6 7 8 9 10 11 12 13 Dieci motivi per utilizzare Windchill 10 Maggiore efficienza nell intero ciclo di vita del prodotto Conoscenza più approfondita delle prestazioni del prodotto Valore superiore dal sistema PLM NOTA: per

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50 Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE 4.50 Inizializzazione: creazione del nuovo progetto e del file sorgente in ambiente JCreator Al lancio del programma si apre la finestra

Dettagli

SolarWinds Virtualization Manager

SolarWinds Virtualization Manager SolarWinds Virtualization Manager Potente gestione della virtualizzazione unificatache non prosciugherà il vostro conto in banca! In SolarWinds abbiamo migliorato la modalità con cui i professionisti IT

Dettagli

Valutazione della piattaforma di storage multiprotocollo EMC Celerra NS20

Valutazione della piattaforma di storage multiprotocollo EMC Celerra NS20 Valutazione della piattaforma di storage multiprotocollo EMC Celerra NS20 Resoconto commissionato da EMC Corporation Introduzione In breve EMC Corporation ha incaricato Demartek di eseguire una valutazione

Dettagli

Microsoft Project 2010 si basa sulle fondamenta di Microsoft Project 2007 per offrire soluzioni di gestione del lavoro flessibili e strumenti di

Microsoft Project 2010 si basa sulle fondamenta di Microsoft Project 2007 per offrire soluzioni di gestione del lavoro flessibili e strumenti di Microsoft Project 2010 si basa sulle fondamenta di Microsoft Project 2007 per offrire soluzioni di gestione del lavoro flessibili e strumenti di collaborazione adatti ai project manager professionisti

Dettagli

Sistemi di acquisizione dati

Sistemi di acquisizione dati Sistemi di acquisizione dati - 1 Sistemi di acquisizione dati 1 - Configurazioni tipiche Generalità L impiego di tecniche numeriche per la rappresentazione dei segnali consente la successiva elaborazione

Dettagli

Installazione e attivazione delle licenze

Installazione e attivazione delle licenze Capitolo 1 Installazione e attivazione delle licenze L installazione del software su una singola macchina è di solito un operazione piuttosto semplice, ma quando si deve installare AutoCAD in rete è richiesta

Dettagli

BMSO1001. Virtual Switch. Istruzioni d uso 02/10-01 PC

BMSO1001. Virtual Switch. Istruzioni d uso 02/10-01 PC BMSO1001 Virtual Switch Istruzioni d uso 02/10-01 PC 2 Virtual Switch Istruzioni d uso Indice 1. Requisiti Hardware e Software 4 1.1 Requisiti Hardware 4 1.2 Requisiti Software 4 2. Concetti fondamentali

Dettagli

Programmi. Algoritmi scritti in un linguaggio di programmazione

Programmi. Algoritmi scritti in un linguaggio di programmazione Programmi Algoritmi scritti in un linguaggio di programmazione Sistema operativo:programma supervisore che coordina tutte le operazioni del calcolatore Programmi applicativi esistenti Sistemi di videoscrittura

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

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

Lezione 5: Software. Firmware Sistema Operativo. Introduzione all'informatica - corso E

Lezione 5: Software. Firmware Sistema Operativo. Introduzione all'informatica - corso E Lezione 5: Software Firmware Sistema Operativo Architettura del Calcolatore La prima decomposizione di un calcolatore è relativa a due macrocomponenti: Hardware e Software Firmware: strato di (micro-)programmi

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

Soluzione di videosorveglianza Guida di installazione

Soluzione di videosorveglianza Guida di installazione Guida di installazione Introduzione Considerando che i video vengono registrati e archiviati per riferimento ormai da diverso tempo, non è più possibile considerare quella di sorveglianza una tecnologia

Dettagli

Novell ZENworks Configuration Management in ambiente Microsoft * Windows *

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

Dettagli

VoipNet. La soluzione per la comunicazione aziendale

VoipNet. La soluzione per la comunicazione aziendale VoipNet La soluzione per la comunicazione aziendale grave crisi economica fase recessiva mercati instabili terremoto finanziario difficoltà di crescita per le aziende Il mercato La nuova sfida per le aziende:

Dettagli

IBM System i5 520 Express

IBM System i5 520 Express Un unico sistema adatto a qualsiasi applicazione, con eccezionale rapporto prezzo/prestazioni IBM System i5 520 Express Caratteristiche principali Sistema operativo, database e Funzioni integrate di tool

Dettagli

1. I dispositivi periferici

1. I dispositivi periferici La gestione dell I/O 1. I dispositivi periferici Un ulteriore aspetto fondamentale del SO è la gestione dei dispositivi periferici (periferiche) Dal punto di vista del sistema operativo per periferiche

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

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

Dettagli

DATA A ACQUISITIONA TOOLBOX. Il sistema per analisi ed acquisizioni integrate basato sulla programmazione ad oggetti è definitivamente disponibile

DATA A ACQUISITIONA TOOLBOX. Il sistema per analisi ed acquisizioni integrate basato sulla programmazione ad oggetti è definitivamente disponibile DA A ACQUISITIONA TOOLBOX Il sistema per analisi ed acquisizioni integrate basato sulla programmazione ad oggetti è definitivamente disponibile Nel precedente articolo ho illustrato le modalità in cui

Dettagli

Servizi web in LabVIEW

Servizi web in LabVIEW Servizi web in LabVIEW Soluzioni possibili, come si utilizzano. 1 Soluzioni possibili WEB SERVER Dalla versione 5.1 di LabVIEW è possibile implementare un Web server che consente di operare da remoto sul

Dettagli

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI BASSO LIVELLO

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI BASSO LIVELLO LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI BASSO LIVELLO Linguaggio macchina Uno per ogni processore o famiglia di processori Linguaggio assembler Versione simbolica di quello macchina. LINGUAGGI DI ALTO

Dettagli

10 argomenti a favore dell over IP

10 argomenti a favore dell over IP Quello che i fornitori di telecamere analogiche non dicono 10 argomenti a favore dell over IP Le telecamere di rete non sono certo una novità, infatti il primo modello è stato lanciato nel 1996. Nei primi

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

LA PROFESSIONE DEL WEB DESIGNER

LA PROFESSIONE DEL WEB DESIGNER LA PROFESSIONE DEL WEB DESIGNER Lezione 1 1 Web Design Lafiguracentralenelprogettodiunsitowebèilwebdesigner:eglisioccupadell'aspetto visivo e del coinvolgimento emotivo di siti Web business to business

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