Gestione distribuita di un ambiente grafico bidimensionale

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Gestione distribuita di un ambiente grafico bidimensionale"

Transcript

1 Università degli Studi di Pavia Facoltà di Ingegneria Corso di Laurea Triennale in Ingegneria Informatica Gestione distribuita di un ambiente grafico bidimensionale Relatore: Dott. Ing. Tullio Facchinetti Tesi di laurea di: Alessandro Luppi Anno Accademico 2012/2013

2

3 Ringraziamenti Vorrei ringraziare: Il professore Tullio Facchinetti per avermi seguito durante tutto lo svolgimento della tesi. Il doc. Marco della Vedova per i preziosi consigli datomi durante lo sviluppo. Il doc Guido Benetti per il tempo dedicatomi nel introdurmi all uso di GIT e L A TEX. La mia famiglia in particolare mio fratello per tutta l assistenza e l aiuto datomi nello scrivere questa tesi. La mia collega Monica Rotulo per tutto il supporto morale. I miei amici.

4 Indice Indice Elenco delle figure Elenco delle tabelle iii v vii 1 Introduzione Organizzazione del documento Materiale Raspberry Pi Caratteristiche Utilizzo Accesso remoto Python Tipi di dati e strutture Tipi semplici Tipi dati di alto livello Sintassi Duck typing Storia Sviluppo della libreria PySide Slot and Signal Design Data Graphic ImgItem Manager BorderManager MsgManager MoveManager WallManager Network MySignal iii

5 INDICE iv 4.7 Setup Chiusura Utilizzo Applicazione di esempio MoveManager Implementazione movimento pallina Implementazione movimento sbarretta WallManager Conclusioni 28

6 Elenco delle figure 1.1 Multi monitor Configurazione con schermi separati Configurazione finestre sul mondo Raspberry Alimentatore VGA to HDMI Monitor Switch Cavo Ethernet Raspberry Logo Rasberry Pi schema Rasberry Pi quick start Python logo Slicing Python codice Guido van Rossum e la locandina del famoso Flying Circus dei Monty Python Logo delle librerie Qt e di PySide Design libreria Valori dell item Esempio scena Logica di controllo Esempio di controllo BorderManager Messaggi libreria Header TCP Header UDP Diagramma connessione Formato pacchetti Messaggi di setup Posizione schermi Pong Pong multi-schermo (2) v

7 ELENCO DELLE FIGURE vi 5.3 Pong multi-schermo (4) Urto 2D, caso particolare Urto 2D, con rotazione assi Urto muri

8 Elenco delle tabelle 2.1 Raspberry model B - specifiche tecniche [15] Software per il controllo remoto da Windows Elenco tipi semplici Elenco sequenze vii

9 Capitolo 1 Introduzione Ormai tutte le moderne schede grafiche permettono di lavorare utilizzando più monitor contemporaneamente secondo una logica master-slave, in cui la scheda grafica funge da master e controlla ciascun monitor, i quali rappresentano gli elementi slave. Lo scopo della tesi è quello di realizzare una architettura di gestione multischermo in grado di decentralizzare il controllo dei monitor che la compongono, piuttosto che affidarne la gestione ad un unico master. Tale gestione permette la costruzione di pannelli di monitor atti a rappresentare un unica immagine, la cui visualizzazione è affidata a più monitor opportunamente affiancati, come mostrato in figura 1.1; oppure i monitor possono anche mantenere le distanze come in figura 1.2. Un utilizzo molto affascinate della libreria è mostrato in figura 1.3 in cui ogni schermo è come una finestra sul mondo, in questo caso ogni scheda controlla un area più vasta di quella effettivamente visibile. Figura 1.1: Esempio di configurazione composta da più monitor, che permette di realizzare un monitor virtuale di elevate dimensioni. Per raggiungere questo scopo, la soluzione proposta è quella di collegare un computer a ciascuno schermo, gestendo la visualizzazione delle immagini su ognuno di essi mediante lo scambio di messaggi e informazioni su rete Ethernet. La gestione coordinata della visualizzazione permette di ottenere la dislocazione di una singola immagine virtuale su più schermi fisici. Questa soluzione è resa economicamente praticabile dalla possibilità di impiegare, invece di tradizionali computer, dei sistemi embedded di basso costo ma dotati di potenza computazionale e interfacce adeguate a 1

10 CAPITOLO 1. INTRODUZIONE 2 Figura 1.2: Split mode. Figura 1.3: Windows mode, configurazione dei monitor come finestre sul mondo. pilotare uno monitor standard. Il sistema utilizzato è una scheda Raspberry Pi (figura 1.9), la quale costituisce essenzialmente un piccolo computer dal costo commerciale di 35$. L idea originale è nata dal desiderio di riutilizzare vecchi monitor a tubo catodico (figura 1.7) per la realizzazione di pannelli di monitor simili a quelli utilizzati nelle fiere o eventi in genere, nei quali un enorme immagine viene rappresentata in modo da suddividerne la visualizzazione su più display affiancati. Uno dei problemi incontrati è stato quello di collegare fisicamente i monitor alla scheda Raspberry Pi, la quale non dispone di una interfaccia VGA ma supporta solo le nuove connessioni HDMI. Per effettuare la connessione è stato necessario utilizzare un adattatore da VGA a HDMI (figura 1.6) del costo di circa 20$. D altra parte, la connessione in rete è agevolata dalla presenza di una porta Ethernet di serie sulla scheda Raspberry Pi. La libreria realizzata permette di creare un ambiente bidimensionale, in cui i

11 CAPITOLO 1. INTRODUZIONE 3 monitor rappresentano delle finestre affacciate sul mondo creato: ognuna ne mostra e ne controlla una parte. La gestione degli oggetti visualizzati è distribuita tra tutti i nodi. La connessione e disconnessione di un terminale ne ridistribuisce il lavoro, in questo modo il mondo visualizzato non perde elementi e si garantisce che nessun elemento rimanga senza controllo. 1.1 Organizzazione del documento Il documento è organizzato come segue: Nel capitolo 2 viene descritto il piccolo computer utilizzato, il Raspberry Pi. Il capitolo 3 tratta il linguaggio utilizzato per la realizzazione della libreria, Python. Nel capitolo 4 viene descritto nel dettaglio come è stata realizzata la libreria oggetto della tesi. Nel capitolo 5 viene illustrato un esempio di un applicazione realizzata utilizzando la libreria. Infine alcune riflessioni conclusive sul lavoro svolto e possibili sviluppi futuri verranno presentati nel capitolo Materiale In questa sezione viene elencato l hardware necessario per realizzare il sistema multi-monitor presentato. Per ogni monitor che si desidera utilizzare è necessaria una scheda Raspberry e, in caso di bisogno, degli adattatori per porte VGA. Per alimentare il Raspberry si consiglia di usare un alimentatore da 5V con almeno 0.7A, meglio se 1.2A, ma per la configurazione multi schermo 0.7A sono sufficienti in quanto non colleghiamo nessuna periferica che deve essere alimentata dalla scheda. Le uniche connessioni che usiamo sono la porta HDMI per lo schermo e la porta Ethernet per la connessione dei Raspberry a uno switch. Raspberry Pi (figura 1.4) Alimentatore 5V e 1.2A (figura 1.5) Adattatore Hdmi to Vga (figura 1.6) Monitor (figura 1.7) Switch (figura 1.8) Cavi Ethernet (figura 1.9)

12 CAPITOLO 1. INTRODUZIONE 4 Figura 1.4: Raspberry Pi - model B. Figura 1.5: Raspberry Pi - alimentatore. Figura 1.6: Adattatore VGA to HDMI.

13 CAPITOLO 1. INTRODUZIONE 5 Figura 1.7: Vecchio monitor crt con ingresso vga. Figura 1.8: switch per la connesione di 4 dispositivi via Ethernet. Figura 1.9: Cavo Ethernet.

14 Capitolo 2 Raspberry Pi Noi non pretendiamo di avere tutte le risposte. Non pensiamo che Raspberry Pi sia una soluzione a tutti i problemi informatici di tutto il mondo, siamo convinti che possiamo essere un catalizzatore. Vogliamo vedere computer programmabili in tutto il mondo, accessibili e a basso costo. Incoraggiamo attivamente altre aziende a clonare quello che stiamo facendo. Vogliamo rompere il paradigma secondo cui le famiglie non possano usare Internet senza spendere centinaia di sterline per un PC. Vogliamo possedere un computer veramente personale, che sia normale per i bambini. Pensiamo che il 2012 sarà un anno molto eccitante Eben Upton Il Raspberry Pi è un single-board computer, ovvero un calcolatore implementato su una sola scheda elettronica. Esso è stato sviluppato nel Regno Unito dalla Raspberry Pi Foundation. Il suo lancio al pubblico è avvenuto alla fine del mese di febbraio [15] Nel 2006 Eben Upton preoccupato del calo del livello di competenza degli studenti, ideò assieme ai suoi colleghi del Computer Laboratory dell Università di Cambridge, un piccolo computer con lo scopo di offrire una piattaforma di sviluppo economica, per promuovere principalmente l apprendimento nel linguaggio di programmazione Python, da cui deriva la sigla pi del logo; per ricordare la lettere iniziale P di Python. Oltre al Python sono supportati anche altri linguaggi in ambiente linux e compatibili con l architettura ARM. Eben Upton non solo ha raggiunto il suo scopo, diffondendo la sua creazione nelle scuole per scopi educativi, ma ha dato vita a una grande comunità di sviluppatori, che ogni giorno creano partendo da questo piccolo computer molti progetti, da un server web a sistemi automatizzati per gli scopi più disparati. La Raspberry, insieme ad Arduino (una schedina elettronica con un microcontrollore), è alla base del nascente movimento dei maker e della riscoperta del fai da te in campo tecnologico, o do it yourself (DIY), come dicono gli anglofoni. 6

15 CAPITOLO 2. RASPBERRY PI 7 Figura 2.1: Raspberry Logo. I maker costituiscono un movimento culturale contemporaneo, che rappresenta un estensione su base tecnologica del tradizionale mondo del fai da te. Tra gli interessi tipici dei maker vi sono realizzazioni di tipo ingegneristico, come apparecchiature elettroniche, realizzazioni robotiche, dispositivi per la stampa 3D, e l uso di apparecchiature a controllo numerico, ma anche attività più convenzionali, come lavorazione del metallo, del legno e dell artigianato tradizionale [4]. 2.1 Caratteristiche Figura 2.2: Schema hardware, Rasperry Pi model B. Il progetto della scheda Raspberry ruota attorno a un System-on-a-chip (SoC) Broadcom BCM2835, che incorpora un processore ARM1176JZF-S a 700 MHz, una GPU VideoCore IV, e 256 o 512 Megabyte di memoria. Il progetto non prevede né hard disk né una unità a stato solido, affidandosi invece a una scheda SD per il boot e per la memoria non volatile, la scheda è stata progettata per ospitare sistemi operativi basati su un kernel Linux o RISC OS [15]. Il sistema operativo principale è una derivazione della distribuzione Ubuntu, adattata per lavorare sul core ARM del Raspberry, chiamata Raspbian. In commercio esistono due modelli di Raspberry: il modello A e il modello B. Quest ultimo è stato scelto per realizzare la configurazione multi-monitor descritta al capitolo 1. Il modello A costa solo 25 dollari ed è equipaggiato con 256MB di RAM, da una sola porta USB ed è privo del controller ethernet necessario per i nostri scopi, in quanto non è possibile connetterlo a uno switch.

16 CAPITOLO 2. RASPBERRY PI 8 Il modello B è equipaggiato con due porte USB, 512MB di RAM ed un controller Ethernet 10/100 e costa 35 Dollari. In maniera analoga ai moderni computer, Raspberry Pi è compatibile con tastiere e mouse collegabili tramite porta USB. È comunque consigliabile controllare l effettiva compatibilità della periferica sul sito [8]. Raspberry PI non è fornito di un real-time clock, per cui se la scheda non è connessa a internet, per avere l ora, l utente al bootstrap la deve inserire manualmente. Tuttavia è facile aggiungere un real time clock (come il DS1307) con batteria tampone, attraverso l interfaccia I2C (acronimo di Inter Integrated Circuit un sistema di comunicazione seriale bifilare utilizzato tra circuiti integrati [2]). Prezzo SOC CPU 35 USD Broadcom BCM2835 (CPU + GPU + DSP + SDRAM) 700 MHz ARM1176JZF-S core (famiglia ARM11) GPU Broadcom VideoCore IV, OpenGL ES 2.0, 1080p30 H.264 high-profile decode Memory (SDRAM) USB 2.0 ports Output video Memoria Collegamenti di rete 512 Megabytes (condivisa con la GPU) 2 (attraverso un hub USB integrato) Connettore RCA per il video composito, HDMI SD / MMC / SDIO card slot Ethernet 10/100 (RJ-45) Periferiche di basso livello 2x13 header pins for GPIO, SPI, I2C, UART, +3,3 Volt, +5 Volt Real-time clock No clock or battery Corrente (potenza) assorbita 700 ma, (3,5 W) Alimentazione Dimensioni Sistemi operativi supportati 5 V via MicroUSB o GPIO header 85,60 mm 53,98 mm (3.370 inch inch) Debian GNU/Linux, Fedora, Arch Linux e Gentoo Tabella 2.1: Raspberry model B - specifiche tecniche [15]. 2.2 Utilizzo Il Raspberry richiede una configurazione iniziale prima di poterlo usare. Per prima cosa è necessario installare il sistema operativo sulla scheda SD. Successivamente si procede a installare tutto il software necessario; nel nostro caso bisogna solo installare PySide in quanto l interprete Python è già presente. Per una guida rapida alla configurazione iniziale consultare [9] Accesso remoto Per lavorare più comodamente dal proprio PC, senza necessità di uno schermo e una tastiera da collegare al Raspberry, è possibile utilizzare l accesso remoto, in questo modo basta solo alimentare il Raspberry e connetterlo alla rete (vedi guida

17 CAPITOLO 2. RASPBERRY PI 9 Figura 2.3: Rasberry Pi quick start. [10]). Tramite il protocollo SSH possiamo accedere da remoto al terminare linux del Raspberry, per trasferire file dal pc al Raspberry usiamo il protocollo SCP e per avere uno schermo virtuale che mostra il desktop del Raspberry utilizziamo il VNC (vedi tabella 2.2 per i programmi da usare per il controllo da sistemi windows). SSH (Secure Shell): è un protocollo di rete che permette di stabilire una sessione remota cifrata tramite interfaccia a riga di comando con un altro host di una rete informatica. È il protocollo che ha sostituito l analogo ma insicuro Telnet. SCP (Secure Copy): è un mezzo per trasferire in modo sicuro un file tra un computer locale ed un host remoto o tra due host remoti, usando il protocollo Secure Shell (SSH). VNC (Virtual Network Computing): sono software di controllo remoto e servono per amministrare il proprio computer a distanza. Installando un server VNC sulla propria macchina ed impostando una opportuna password si consente ai client VNC di ricevere un immagine dello schermo e di inviare input di tastiera e mouse al computer server tramite una connessione remota. In pratica si può gestire il computer server da un altra postazione, come se fosse il proprio computer fisico (applicazione di desktop remoto). SSH SCP VNC putty.exe winscp.exe ultravnc viewer Tabella 2.2: Software per il controllo remoto da Windows.

18 Capitolo 3 Python Più di sei anni fa, nel dicembre 1989, stavo cercando un progetto di programmazione per hobby che mi avrebbe dovuto tenere occupato nella settimana vicina a Natale. Il mio ufficio sarebbe stato chiuso, ma io avevo un computer, e non molto di più. Decisi di scrivere un interprete per un nuovo linguaggio di scripting a cui avrei pensato dopo: un discendente dell ABC, che sarebbe dovuto appartenere agli hacker di Unix. Scelsi Python come nome per il progetto, essendo leggermente irriverente (e sono un grande fan di Monty Python s Flying Circus) Guido Van Rossum Python è un linguaggio di programmazione moderno, dalla sintassi semplice e potente che ne facilita l apprendimento. Gli ambiti di applicazione sono molteplici: è attualmente utilizzato per realizzare interfacce GUI, per lavorare con i database, per lo sviluppo di applicazioni web e desktop, per realizzare giochi, grafica 3D, etc. Python supporta diversi paradigmi di programmazione, come quello objectoriented (con supporto all ereditarietà multipla), quello imperativo e quello funzionale, ed offre una tipizzazione dinamica, ma nonostante questo è un linguaggio fortemente tipizzato e il controllo sui tipi viene eseguito al runtime. In Python il tipo delle variabili non è deciso staticamente dal programmatore prima del suo utilizzo, ma è deciso dall interprete, in base al valore assegnato alla variabile. In altre parole una variabile è un contenitore al quale viene associata un etichetta (il nome) che può essere associata a diversi contenitori anche di tipo diverso durante il suo tempo di vita. Python usa un garbage collector per la liberazione automatica della memoria, sollevando il programmatore dal difficile compito di gestire la memoria. La gestione degli errori in Python avviene tramite le eccezioni, che sono provocate da un evento anomalo o imprevisto che cambia il normale flusso d esecuzione del codice. Ogni eccezione può essere gestita e controllata oppure non gestita, in questo caso l errore può anche provocare l arresto del programma, fornendo al programmatore tutte le informazioni necessarie per localizzarlo. Python è fornito di una libreria built-in estremamente ricca che, unitamente alla gestione automatica della memoria e a robusti costrutti per la gestione delle 10

19 CAPITOLO 3. PYTHON 11 Figura 3.1: Logo di Python. eccezioni, fa di Python uno dei linguaggi più ricchi e comodi da usare. Python è un linguaggio interpretato in quanto un interprete si occupa di analizzare il codice sorgente e, se sintatticamente corretto, di eseguirlo. In Python, non esiste una fase di compilazione separata (come avviene in C) che generi un file eseguibile partendo dal sorgente. L essere interpretato rende Python un linguaggio estremamente portabile. Una volta scritto un sorgente, esso può essere interpretato ed eseguito sulla gran parte delle piattaforme attualmente utilizzate, siano esse di casa Apple (Mac) che PC (Microsoft Windows e GNU/Linux). Semplicemente basta la presenza della versione corretta dell interprete e nei rari casi in cui non sia disponibile per la propria piattaforma, basta avere un compilatore C per scaricare il codice sorgente e compilare l interprete. Infine Python è open source, questo significa che è completamente gratuito il download dell interprete per la propria piattaforma, così come l uso di Python nelle proprie applicazioni; oltre a questo Python può essere liberamente modificato e così ridistribuito, secondo le regole di una licenza pienamente open source. La documentazione ufficiale di Python è molto dettagliata e sempre aggiornata [6]. Queste caratteristiche hanno fatto di Python il protagonista di un enorme diffusione in tutto il mondo (Italia compresa) negli ultimi anni. Questo perché garantisce lo sviluppo rapido (e divertente) di applicazioni di qualsiasi complessità in tutti i contesti: dal desktop al web, passando dallo sviluppo di videogiochi allo scripting di sistema. Alcuni celebri esempi di utilizzatori di Python [3]: Google: fa ampio uso di Python per il suo sistema di ricerca e per le sue creazioni, come per esempio you tube. BitTorrent: il popolare software di P2P è scritto in Python. Maya e Blender: due popolari software di sviluppo 3D. Intel, Cisco, HP, Seagate, Qualcomm e IBM : usano Python per il testing dell hardware. Industrial Light & Magic, Pixar: usano Python nella produzione dei film animati. Nasa, Fermilab: usano Python per lavori scientifici. IRobot: utilizza Python per lo sviluppo commerciale dei robot.

20 CAPITOLO 3. PYTHON 12 NSA: usa Python per crittografia e analisi. e tanti altri Tipi di dati e strutture Python è un linguaggio a tipizzazione dinamica e in quanto tale tutte le variabili sono in realtà puntatori ad oggetto, per esempio ad una variabile assegnata ad un intero, un istante dopo può essere assegnata una stringa o una lista. Python è anche un linguaggio fortemente tipizzato, si ha conversione implicita per i tipi numerici, che permette ad esempio di moltiplicare un numero complesso per un intero, ma non c è, ad esempio, conversione implicita tra numeri e stringhe, per cui è necessario fare un casting esplicito. Python mette a disposizione un gran numero di tipi base e avanzati. Infatti offre supporto nativo, oltre che ai classici tipi quali interi, floating point, stringhe, anche a tipi più evoluti quali interi a grandezza arbitraria, numeri complessi, liste, insiemi, dizionari, non è invece previsto un tipo specifico per i caratteri. Molti altri tipi sono importabili da librerie standard e nuovi tipi possono essere creati attraverso il costrutto di classe Tipi semplici I tipi interi (int) e floating point (float) hanno una precisione dipendente dalla macchina e dall implementazione dell interprete, in genere sono rispettivamente a 32 e 64 bit. Sono supportati nativamente numeri interi arbitrariamente grandi (long, che sono l opzione di default per gli interi a partire dalla versione 3.0) e numeri complessi (complex). Python ha già dall installazione una ricchissima libreria matematica per ogni esigenza e se non dovesse bastare esistono moduli per il calcolo scientifico come Numpy e Scipy, che possono in diverse situazioni addirittura sostituire, un programma come Matlab. Dalla versione 2.4 sono disponibili come libreria anche i numeri decimali (decimal), ossia numeri con la virgola a precisione illimitata, che non soffrono di problemi di arrotondamento e stabilità tipici dei numeri floating point classici. interi interi lunghi numeri in virgola mobile numeri complessi decimali valori booleani int long float complex decimal bool Tabella 3.1: Elenco tipi semplici Tipi dati di alto livello Oltre ai tipi dati nativi più usuali, Python ne offre altri estremamente specializzati: liste, tuple, set e dizionari. In pratica sono dei contenitori di oggetti che prevedono

21 CAPITOLO 3. PYTHON 13 la possibilità di iterare sull insieme di elementi che contengono, e dunque sono utilizzabili all interno di contesti di iterazione quali il ciclo for e funzioni quali somma, ricerca e ordinamento. I contenitori in genere permettono di contenere dati di tipo eterogeneo e condividono gran parte dei metodi. Le liste e le tuple sono un elenco ordinato di oggetti con la grande differenza che una tupla è immutabile, cioè una volta creata non è modificabile a meno di creare una nuova tupla. Le sequenze sono un vero e proprio insieme di elementi non ordinati e senza duplicati, mentre i dizionari sono un elenco non ordinato di coppie, chiave e valore. Anche le comuni stringhe (str e unicode) sono considerate sequenze. A partire da Python 3.0, i tipi str e unicode sono unificati e compare il tipo byte, equivalente grosso modo a una stringa binaria. Sono supportate tutte le operazioni classiche sulle stringhe, come concatenamento, formattazione, ricerca, sostituzione, ecc. Le stringhe in Python sono sequenze immutabili, cosicché qualsiasi operazione che in qualche modo potrebbe alterare una stringa (come ad esempio la sostituzione di un carattere) restituirà invece una nuova stringa. Python permette le seguenti funzioni avanzate delle sequenze: slicing: particolare metodo di accesso a uno o più elementi di una sequenza (vedi fig 3.2). comprehension: é un costrutto sintattico che permette di creare nuove sequenze a partire da altre, selezionandone gli elementi che faranno parte della nuova sequenza applicando una funzione. stringe str immutabile tuple tuple immutabile insiemi immutabili frozenset immutabile liste list mutabile dizionari dict mutabile insiemi set mutabile file file mutabile Tabella 3.2: Elenco sequenze Figura 3.2: Slicing applicato a una stringa.

22 CAPITOLO 3. PYTHON Sintassi Python è nato per essere un linguaggio immediatamente intuibile, la sua sintassi è pulita e snella così come i suoi costrutti, decisamente chiari e non ambigui. Python ha solo due forme di ciclo: for che cicla sugli elementi di una lista o su di un iteratore e while che cicla fin tanto che l espressione booleana indicata risulterà vera. In sostanza manca dei cicli in stile C for, do... while, oppure di until in stile Perl, ma tutti questi possono essere espressi con dei semplici equivalenti. Allo stesso modo ha solamente il costrutto if... elif... else per le scelte condizionate, ma non switch oppure goto (salto incondizionato). Una delle principali caratteristiche di Python è il ruolo fondamentale che ha l indentazione del codice. Infatti i blocchi logici vengono costruiti semplicemente allineando le righe allo stesso modo, incrementando la leggibilità e l uniformità del codice anche se vi lavorano diversi autori (figura 3.3). Questo modo di separare i blocchi logici rende il codice obbligatoriamente ordinato, al contrario di altri linguaggi, come C, in cui i blocchi sono delimitati con le parentesi ed è solo una convenzione degli sviluppatori il fatto di indentare il codice. Figura 3.3: Esempio di codice Python, grazie all obbligo di indentazione il codice è molto ordinato. 3.3 Duck typing Nei linguaggi di programmazione object oriented come nel caso di Python, il duck typing si riferisce ad uno stile di tipizzazione dinamica dove la semantica di un oggetto è determinata dall insieme corrente dei suoi metodi e delle sue proprietà, anziché dal fatto di estendere una particolare classe o implementare una specifica interfaccia.[13] Il nome del concetto si riferisce al duck test attribuito a James Whitcomb Riley che può essere formulato come segue: «Quando io vedo un uccello che cammina come un anatra, nuota come un anatra e starnazza come un anatra, io chiamo quell uccello anatra» Nel duck typing si è interessati solamente a che cosa può fare un oggetto senza compiere nessun controllo su che tipo di oggetto si tratta, è sufficiente che abbia il

23 CAPITOLO 3. PYTHON 15 metodo richiesto per non avere errori dall interprete. Gli utenti che provengono da linguaggi tipizzati staticamente tendono ad aggiungere questo controllo statico dei tipi (prima del run-time), reprimendo i benefici e la flessibilità del duck typing e vincolando il dinamismo del linguaggio. 3.4 Storia Python fu creato nel lontano natale del 1989 da Guido Van Rossum, che invece di passare le vacanze a decorare l albero, decise di scrivere un linguaggio che correggesse in gran parte, se non tutti, i difetti che secondo lui erano presenti negli altri linguaggi; pubblicò la sua creazione nel febbraio del Il nome Python deriva dalla passione di Van Rossum per un gruppo di comici inglesi degli anni sessanta, i Monty Python; anche il termine spam viene da uno degli sketch di questo gruppo. Figura 3.4: Guido van Rossum e la locandina del famoso Flying Circus dei Monty Python. Bisogna arrivare al dicembre 2008 per assistere ad una vera rivoluzione, con il rilascio della versione 3.0 di Python che introdusse molti miglioramenti e novità al linguaggio, sacrificando la compatibilità con le vecchie versioni 2.X e rendendo la migrazione molto più lenta.

24 Capitolo 4 Sviluppo della libreria La libreria oggetto di questo lavoro di tesi è realizzata utilizzando la versione ad oggi più recente di Python, la versione 3.3. In questo capitolo verranno descritti i dettagli della sua implementazione. 4.1 PySide Per lo sviluppo della libreria ho scelto di utilizzare il modulo Pyside, in quanto è il migliore toolkit grafico disponibile e compatibile con l ultima versione di Python, la 3.3. PySide è un binding delle Qt per Python, ovvero permette di utilizzare la libreria Qt all interno di un programma scritto in Python. Nell Agosto 2009, Nokia, che ha acquisito la proprietà delle librerie Qt (grazie all acquisizione della Trolltech), ha rilasciato PySide, fornendo funzionalità simili a PyQt, ma sotto licenza LGPL, dopo aver cercato di raggiungere un accordo con la società Riverbank Computing, creatrice delle PyQt, al fine di convincerla a fornire come ulteriore licenza quella LGPL. Le librerie PyQt sono infatti disponibili sotto doppia Licenza: GPL e Commerciale. [14] Figura 4.1: Logo delle librerie Qt e di PySide Pyside è un libreria molto vasta, potente e con un ricca documentazione [7]. Di seguito riporto le classi utilizzate. QByteArray: utilizzato per creare un array di byte del immagine da inviare via udp. QBuffer: associando un array di byte, è possibile scrivere e leggere nell array. QIODevice: interfaccia di alto livello per gestire l input / output. QTimer: classe utilizzata per generare segnali periodici, utilizzata per scandire ogni quanto aggiornare la scena. 16

25 CAPITOLO 4. SVILUPPO DELLA LIBRERIA 17 QGraphicsPixmapItem: padre della classe imgitem 4.4, utilizzata per disegnare le immagini della scena. QGraphicsScene: classe in cui vengono disegni tutti gli item. QGraphicsView: classe in cui mettere una QGraphicsScene per visualizzarla a schermo. QPixmap: contiene tutti i dati del immagine visualizzata da QGraphicsPixmapItem. QUdpSocket: interfaccia per la connessione tramite protocollo udp Slot and Signal Una meccanismo molto importate di PySide sono gli slot e i segnali. Lo scopo fondamentale del sistema è quello di far comunicare tra loro gli oggetti della libreria, senza dipendere dai metodi di comunicazioni nativi del sistema operativo, in modo da rimanere indipendenti dal sistema usato. Questo meccanismo è utilizzato per associare un evento a una azione, per esempio è possibile collegare al click di un bottone l azione che cambia colore della finestra. Gli slot e i segnali risolvono brillantemente il problema di far comunicare tra loro i due oggetti: quello che gestisce l evento e quello che esegue l azione. Il meccanismo è semplice, quando si verifica l evento viene lanciato un segnale che è ricevuto da tutti gli oggetti connessi a quel particolare segnale. Gli slot non sono altro che metodi di una classe, che posso collegare a uno o più segnali tramite la funzione di libreria connect di Pyside. Una volta collegato, lo slot sarà invocato ad ogni ricezione del segnale. Se successivamente vogliamo rimuovere la connessione basta utilizzare la funzione disconnect. 4.2 Design Il programma è strutturato seguendo il pattern MVC: model-view-controller. Il pattern è basato sulla separazione dei compiti fra i componenti software che interpretano tre ruoli principali: Model (Data 4.3) fornisce i metodi per accedere ai dati utili all applicazione. View (Graphic 4.4) visualizza i dati contenuti nel model e si occupa dell interazione con utenti e agenti. Controller (Manager 4.5) riceve i comandi dell utente (in genere attraverso il view) e li attua modificando lo stato degli altri due componenti. In figura 4.2 si può vedere uno schema riassuntivo del programma

26 CAPITOLO 4. SVILUPPO DELLA LIBRERIA 18 Figura 4.2: Design libreria 4.3 Data La classe data è una delle classi più importati della libreria, in quanto contiene tutte le informazioni necessarie per il suo corretto funzionamento. Questa classe utilizza il pattern Singleton. Si tratta di un design pattern creazionale, che ha lo scopo di garantire che di una determinata classe venga creata una e una sola istanza, e di fornire un punto di accesso globale a tale istanza. Inoltre ha lo scopo di garantire l univocità dei dati contenuti, per essere sicuri che ogni classe utilizzi le stesse informazioni. In Python si implementa tramite il metodo new (cls, *args, **kwargs) con il quale si può controllare la creazione di una nuova istanza, e differisce dal comune metodo init (self) in quanto quest ultimo serve solo per l inizializzazione. Gli attributi sono tutti dichiarati privati, nascondendoli dall esterno della classe. L unico modo per manipolare i dati è attraverso dei metodi che, vista l importanza di quello che modificano, prima di ogni azione controllano la correttezza delle operazioni svolte. In Python un metodo o un attributo privato si ottiene tramite una convenzione di denominazione: il suo nome deve iniziare con due caratteri underscore (es info). Una curiosità, a differenza di altri linguaggi, Python permette in caso di bisogno di accedere comunque a metodi privati indicando il nome della classe prima del metodo (es nome._classe info), a proprio rischio e pericolo. Le informazioni memorizzate sono le seguenti: Posizioni di ogni monitor online: identificati da un id schermo, memorizza i parametri [x,y,w,h] del rettangolo della scena di ogni schermo online. Indirizzo ip e porta per la comunicazione di ogni monitor online: identificati dallo stesso id schermo delle posizioni, memorizza l indirizzo ip e la porta (53055) di ogni schermo online. Dizionario degli item memorizzati dal sistema: sono identificati da un id generato in maniera incrementale ad ogni creazione di nuovo item a partire dal id id_schermo 000, per esempio lo schermo numero 1 partirà dal id Una volta generato l id rimane associato in maniera univoca ai valori del item (figura 4.3) in qualsiasi schermo si trova. Storico immagini: memorizza per ogni id schermo, la lista delle immagini inviate.

27 CAPITOLO 4. SVILUPPO DELLA LIBRERIA 19 Figura 4.3: Valori memorizzati per ogni item, associati in maniara univoca ad un id. La classe data è anche responsabile del setup iniziale 4.7 e tramite lo storico della immagini garantisce che non vengano inviate immagini duplicate così da non sovraccaricare la rete di pacchetti superflui. Ogni volta che viene inviato un messaggio di tipo immagine viene fatto un controllo sullo storico dei messaggi inviati a quel destinatario, nel caso in cui l immagine è già presente non è necessario inviarla di nuovo perché è già nota al destinatario. 4.4 Graphic Eredita della classe QtGui.QGraphicsView tutti i metodi necessari per disegnare e visualizzare la grafica del programma. Apre un finestra dove disegnare gli oggetti grafici, istanzia tutti gli oggetti da visualizzare caricando le immagini, in più stabilisce la frequenza di aggiornamento della scena tramite la classe QtTimer. I segnali lanciati dal timer sono connessi alla gestione scena del manager (vedi 4.5) che procede nel controllo e aggiornamento della scena ad ogni scadenza del timer. Figura 4.4: Esempio di una scena ImgItem Figlia della classe QGraphicsPixmapItem (vedi sezione 4.1), è la base di tutti gli item della scena, ognuno è un immagine caricata da file e contenuta all interno di un rettangolo. Anche se l item in realtà è un rettangolo è possibile utilizzare la libreria PySide per considerare solo l immagine, ignorando i pixel trasparenti. Questa funzione è la base del meccanismo che rileva le collisioni, funzione fornita da PySide che segnala se avviene una collisione tra due item. Questo controllo è

28 CAPITOLO 4. SVILUPPO DELLA LIBRERIA 20 iterato su ogni item che ha modificato la sua posizione controllando se è avvenuta una sovrapposizione tra ogni altro item della scena. Ogni istanza creata di questa classe, per cui ogni item, è identificata univocamente da un id generato alla creazione ed è memorizzata in data. 4.5 Manager Il manager è responsabile del controllo della scena, implementando la logica di controllo utilizzando gli altri manager specifici per ogni funzione. Utilizza il pattern template method in modo da lasciare alle sottoclassi (i vari manager) il compito di implementare alcuni passi del controllo come preferiscono. In questo modo si può ridefinire e personalizzare parte del comportamento nelle varie sottoclassi senza dover riscrivere più volte il codice in comune. Il pattern è implementato utilizzando un caratteristica funzionalità di Python, il duck typing (vedi sezione 3.3). Figura 4.5: Logica di controllo. La logica di controllo (figura 4.5) è iterata su ogni item memorizzato in data, che ha modificato la sua posizione. Per prima cosa si controlla se è visibile o no all interno della scena. Nel caso in cui non sia visibile perché è oltre i confini della scena, ne mantiene il controllo fin quando non rileva che l item è diventato visibile nella scena di un altro terminale online e ne cede il controllo. Nel caso in cui l item è visibile esegue il controllo se non è già sotto i comandi di un altro terminale. Il controllore dell item, deve muoverlo nella scena tramite il movemanager che in base alla modalità di movimento scelta indica la nuova posizione. Sulle nuove coordinate si controlla la posizione rispetto ai bordi della scena, ed è compito del wallmanager in base alle impostazioni correggere la nuova posizione in base a un eventuale urto contro le pareti. Una volta determinata la nuova posizione il bordermanager ha il compito di individuare i terminali online interessati del movimenti del item e di fornire al manager dei messaggi la lista dei datagrammi da inviare con i relativi destinatari, per informarli su che immagine visualizzare e di tutti i parametri del item. In caso di chiusura della scena (vedi sezione 4.8) è compito del manager inviare un messaggio di chiusura in broadcast per informare tutti i terminali online.

29 CAPITOLO 4. SVILUPPO DELLA LIBRERIA 21 Figura 4.6: Esempio di passaggio di un oggetto da una scena all altra nel caso non siano addiacenti. In grigio è rappresentato il mondo virtuale visualizzato in parte dalle due scene, che sono quello che effettivamente viene mostrato a schermo. Il master dell oggetto è evidenziado usando lo stesso colore della scena che lo controlla BorderManager È il manager responsabile del controllo del perimetro della scena visibile, in caso di superamento del confine della scena, cerca i destinatari interessanti dal movimento dell item facendo un controllo di visibilità su tutte le scene registrate in data; ed invia un messaggio contenente l immagine, quando necessario e un messaggio di update contenente la posizione aggiornata. I controlli di visibilità, sono fatti aumentando i margini delle scene come indicato nella figura 4.7 (nel caso di due schermi), in modo tale da non avere rallentamenti dovuti al tempo richiesto per inviare il messaggio. È fondamentale che nel momento del passaggio dell item al interno della scena dell altro schermo, il messaggio sia già stato ricevuto. È questo il motivo per cui il bordo considerato per i messaggi di tipo immagine, i più pesanti, è il più ampio. In questo modo, inviando prima il messaggio, non si corre il rischio che non arrivi in tempo. Figura 4.7: I bordi della scena considerati dal border manager, nel invio di un oggetto dalla scena 1 alla scena 2, nel caso generale in cui non sono adiacenti.

30 CAPITOLO 4. SVILUPPO DELLA LIBRERIA MsgManager È il manager responsabile della creazione dei messaggi da inviare e dell estrazione delle informazioni dai datagrammi ricevuti. L elenco delle tipologie usate dalla libreria è il seguente (vedi la figura 4.8 per i vari formati) : msgupdate: messaggio utilizzato per fornire i valori aggiornati degli item a ogni cambiamento. Ogni datagramma contiene tutti i valori dell item, i parametri del rettangolo che contiene l immagine, il valore z che indica il livello, la modalità di movimento, i valori fisici cioè massa, velocità, direzione e infine l id del terminale che ne ha il controllo. msgimage: messaggio necessario per passare l immagine di un nuovo item, prima di inviare un messaggio di update con i valori. msgclose: messaggio inviato nel momento in cui viene chiusa la scena per informare tutti i terminali online di eliminare lo schermo uscente dalla memoria, in più ordina l invio di messaggi di tipo update e di tipo immagine per passare gli item che erano sotto il suo controllo a un altro in modo da non lasciarli senza un controllore (vedi sezione 4.8). msgsetup: messaggio inviato nel momento di apertura della scena, per informare gli altri terminali online della nuova connessione in modo da memorizzare i parametri della nuova scena (vedi sezione 4.7). Figura 4.8: Formati dei messaggi utilizzati nella libreria, in generale i messaggi sono sempre nel formato, tipo e informazioni. Il tipo è fondamentale in ricezione per capire in che modo estrarre le informazioni MoveManager È il manager responsabile del controllo dei movimenti di tutti gli item della scena. Il suo compito è calcolare la prossima posizione dell item. La modalità di movimento è memorizzata in data 4.3 insieme a tutti gli altri parametri dell item (vedi figura 4.3); in base alla modalità, viene utilizzata un implementazione diversa del movimento. Chiunque utilizza la libreria può creare una propria implementazione in base alle sue necessità e aggiungerla al dizionario del manager che gestisce i movimenti, in questo modo è possibile creare quante modalità di movimento si vogliono per la

31 CAPITOLO 4. SVILUPPO DELLA LIBRERIA 23 propria applicazione. Ovviamente nel caso si voglia realizzare un applicazione senza movimenti questo manager può essere ignorato WallManager Il wallmanager stabilisce quali bordi della scena sono un muro oltre il quale gli item non possono andare e ne gestisce le collisioni con le pareti. Manager utilizzabile per applicazioni che necessitano di muri oltre il quale gli oggetti non devono andare. 4.6 Network Dopo aver esaminato ogni classe della libreria che permette il funzionamento della scena su ogni schermo, adesso ci occupiamo di come i terminali comunicano tra di loro. Figura 4.9: Header TCP. Come prima cosa è stato necessario scegliere il migliore protocollo di rete tra TCP e UDP. Il primo è un protocollo affidabile che garantisce la corretta consegna dei pacchetti a costo di un maggior overhead, 20 byte di intestazione (head) contro gli 8 byte del UDP, come si può vedere dalle immagini 4.9 e Al contrario UDP non da garanzie, ma grazie a questa mancanza è molto più leggero e per applicazioni che richiedono rapidità può essere un ottima scelta. In questo caso UDP fornisce le migliori prestazioni in quanto la mancanza di garanzie di consegna non è un problema rilevante, la perdita o collisione di pacchetti è improbabile, visto che i terminali sono connessi non tramite il web ma in rete locale usando uno switch, come mostrato nell immagine Ogni pacchetto inviato in rete avrà il formato in figura 4.12, sapendone la dimensione si ricava la banda necessaria per avere un frame rate minimo di 24 immagini al secondo. Per prima cosa calcoliamo con la formula (4.1) il numero di

32 CAPITOLO 4. SVILUPPO DELLA LIBRERIA 24 Figura 4.10: Header UDP. Figura 4.11: Diagramma connessione di più terminali tramite switch. pacchetti necessari per inviare un immagine; dato il numero di pacchetti da inviare, troviamo con la (4.2) l overhead totale dovuto alle intestazioni di ogni pacchetto ed in fine, con la (4.3) abbiamo la banda necessaria (Mbps). Nei calcoli abbiamo trascurato i ritardi dovuti alle code nello swith, in quanto trascurabili. Supponendo di avere 8 nodi, di inviare immagini di 2MB e di voler mantenere un FPS (frame rate per second) minimo di 24, utilizzando le formule precedenti si trova che è sufficiente una banda di circa 50Mbps, per cui non avremo nessun problema con la connessione ethernet 10/100 dei Raspberry. Figura 4.12: Formato pacchetti invitati.

33 CAPITOLO 4. SVILUPPO DELLA LIBRERIA 25 pacchetti = overhead = banda = dimimg 220 MSS (4.1) pacchetti (headip + headudp + headeth) 2 20 (4.2) (dimimg + overhead) 8 periodo nodi (4.3) MySignal MySignal è la classe che istanzia tutti i segnali QtCore.Signal() necessari al programma, in aggiunta a quelli già definiti dalla libreria PySide, come il segnale del timer per il tempo refresh. newmsg: segnale lanciato all arrivo di un nuovo messaggio da NetworkUDP (sezione 4.6), il segnale è connesso al msgmanager (sezione 4.5.2) in modo da attivare il metodo per estrarre le informazioni contenute nel msg nel momento in cui viene ricevuto. 4.7 Setup Il setup è la sequenza di passaggi che la libreria compie nel momento in cui si avvia la scena. Definizione della posizione dello schermo: se non viene specificato niente lo schermo assume la posizione di default (figura 4.14) altrimenti è richiesta una lista nel formato [x,y,w,h], con le indicazioni dei parametri del rettangolo della scena. Invio in broadcast del proprio setup: ogni terminale online viene informato della nuova presenza nella rete (messaggi blu fig 4.13). Risposta alla ricezione di un setup: in caso di ricezione di un messaggio di tipo setup 4.5.2, viene inviata una risposta al mittente con il proprio setup in modo tale da permettere al nuovo arrivato di aggiungere gli schermi già online alla sua classe data (messaggi gialli fig 4.13). Ridistribuzione del carico di lavoro: i terminali che erano già online cedono il controllo al nuovo arrivato degli elementi che si trovano al interno della sua scena, inviandogli messaggi di tipo immagine e update. 4.8 Chiusura Quando il programma viene chiuso, prima di arrestarsi del tutto segue una sequenza di passi in modo da cedere il controllo degli item sotto il suo comando, nel caso in cui non ci sia più nessuno online per prendere il comando non compie nessuna azione.

34 CAPITOLO 4. SVILUPPO DELLA LIBRERIA 26 Figura 4.13: Invio messaggi di setup nel momento della connessione di un nuovo terminale (blu). Figura 4.14: Posizione di default degli schermi. Creazione della lista degli item controllati: la lista degli item memorizzata viene filtrata e la nuova lista contiene solo gli item di cui è il master. Ricerca di un nuovo master: per ogni item della nuova lista, si cerca tra i terminali online uno a cui cedere il controllo; si privilegiano quelli che hanno già in memoria l immagine dell item. Se nessun terminale ha già in memoria l item allora oltre a un messaggio di update, verrà inviato un messaggio immagine al nuovo controllore. Invio in broadcast di un messaggio di chiusura: tutti i terminali online vengono informati del fatto che uno degli schermi si sta chiudendo, in modo tale da eliminare le voci non più valide in data 4.3. Invio dei messaggi di update ai nuovi master: il terminale che riceve il messaggio aggiorna la propria lista degli item, salvando i nuovi elementi di cui ora è il controllore.

http://tinyurl.com/mj22ncg Sicurezza nel WEB Configurazione server Linux e tecniche comuni per aumentare la sicurezza sulla grande rete

http://tinyurl.com/mj22ncg Sicurezza nel WEB Configurazione server Linux e tecniche comuni per aumentare la sicurezza sulla grande rete http://tinyurl.com/mj22ncg Sicurezza nel WEB Configurazione server Linux e tecniche comuni per aumentare la sicurezza sulla grande rete T.O.C. Presentazione Gli Strumenti Server dedicati Raspberry Configurazione

Dettagli

Capitolo 1. Da dove iniziare

Capitolo 1. Da dove iniziare Capitolo 1 Da dove iniziare Breve storia di Raspberry Pi Il progetto Raspberry Pi venne annunciato alla comunità mondiale alla fine del 2011 dalla Raspberry Pi Foundation, una fondazione no-profit con

Dettagli

Raspberry Pi: Hardware Programming. Rossi Pietro Alberto

Raspberry Pi: Hardware Programming. Rossi Pietro Alberto Rossi Pietro Alberto Agenda Introduzione Hardware Software Programmazione, primi passi Protocolli di comunicazione Programmazione Conclusioni Introduzione Il Raspberry Pi è una scheda elettronica impementante

Dettagli

Sicurezza nel WEB. Configurazione server Linux e tecniche comuni per aumentare la sicurezza sulla grande rete

Sicurezza nel WEB. Configurazione server Linux e tecniche comuni per aumentare la sicurezza sulla grande rete Slide disponibili su http://www.inginfpoliba.eu Sicurezza nel WEB Configurazione server Linux e tecniche comuni per aumentare la sicurezza sulla grande rete A cura di Maurizio Triggiani maurizio@triggiani.net

Dettagli

Inizio. Politecnico Open unix Labs Corsi Linux Base 2013. Bruno Aleci

Inizio. Politecnico Open unix Labs Corsi Linux Base 2013. Bruno Aleci Inizio Politecnico Open unix Labs Corsi Linux Base 2013 Bruno Aleci Costruzione di un Media Center Con Rasberry PI e OpenELEC Hardware e Software Open Source 1 Cos'è un Media Center Visualizzatore Immagini

Dettagli

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

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

Dettagli

SMS-GPS MANAGER. Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps

SMS-GPS MANAGER. Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps SOFTWARE PER LA GESTIONE DEI TELECONTROLLI SMS-GPS MANAGER Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps Rev.1009 Pag.1 di 10 www.carrideo.it INDICE 1. DESCRIZIONE

Dettagli

Interpreti e compilatori La macchina di Von Neumann

Interpreti e compilatori La macchina di Von Neumann Interpreti e compilatori La macchina di Von Neumann Informatica@Matematica Simone Martini a.a. 2014-2015 1 / 38 Parte I Interpreti e compilatori 2 / 38 Macchine astratte Una macchina astratta è un esecutore

Dettagli

MODULO 1. 1.1 Il personal computer. ISIS STRINGHER Corso Serale Anno scolastico 2010/11 Classe 1 Commerciale

MODULO 1. 1.1 Il personal computer. ISIS STRINGHER Corso Serale Anno scolastico 2010/11 Classe 1 Commerciale MODULO 1 1.1 Il personal computer ISIS STRINGHER Corso Serale Anno scolastico 2010/11 Classe 1 Commerciale 1.1 Il personal computer Il PC Hardware e software Classificazioni del software Relazione tra

Dettagli

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

Dettagli

Controllo remoto di SPEEDY

Controllo remoto di SPEEDY UNIVERSITÀ DI BRESCIA FACOLTÀ DI INGEGNERIA Dipartimento di Elettronica per l Automazione Laboratorio di Robotica Avanzata Advanced Robotics Laboratory Corso di Robotica (Prof. Riccardo Cassinis) Controllo

Dettagli

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE IL SISTEMA OPERATIVO Insieme di programmi che opera al di sopra della macchina fisica, mascherandone le caratteristiche e fornendo agli utenti funzionalità di alto livello. PROGRAMMI UTENTE INTERPRETE

Dettagli

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi Parte V & Reti Sistema operativo: insieme di programmi che gestiscono l hardware Hardware: CPU Memoria RAM Memoria di massa (Hard Disk) Dispositivi di I/O Il sistema operativo rende disponibile anche il

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

ANNO SCOLASTICO 2012-2013 QUADERNO DI INFORMATICA

ANNO SCOLASTICO 2012-2013 QUADERNO DI INFORMATICA ANNO SCOLASTICO 2012-2013 QUADERNO DI INFORMATICA L INFORMAZIONE L informazione è un concetto (legato, ma indipendente dal codice usato). Non riguarda solo interazioni umane. L informazione analizza il

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

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

LAN. Coassiale Doppino Fibra ottica

LAN. Coassiale Doppino Fibra ottica LAN Il cablaggio Tralascio la stesa dei cavi, in quanto per tale operazione basta una conoscenza di base di elettricità e tanta pazienza. Passiamo invece al tipo di supporto da utilizzare per realizzare

Dettagli

L informatica comprende:

L informatica comprende: Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione

Dettagli

12.5 UDP (User Datagram Protocol)

12.5 UDP (User Datagram Protocol) CAPITOLO 12. SUITE DI PROTOCOLLI TCP/IP 88 12.5 UDP (User Datagram Protocol) L UDP (User Datagram Protocol) é uno dei due protocolli del livello di trasporto. Come l IP, é un protocollo inaffidabile, che

Dettagli

INTERAZIONE CON L UTENTEL

INTERAZIONE CON L UTENTEL IL SISTEMA OPERATIVO Insieme di programmi che opera al di sopra della macchina fisica, mascherandone le caratteristiche e fornendo agli utenti funzionalità di alto livello. PROGRAMMI UTENTE INTERPRETE

Dettagli

Indice generale. Introduzione...xv. Parte I Per iniziare Capitolo 1 Introduzione allo sviluppo ios con tecnologie web...3

Indice generale. Introduzione...xv. Parte I Per iniziare Capitolo 1 Introduzione allo sviluppo ios con tecnologie web...3 Introduzione...xv A chi si rivolge questo libro...xv Gli argomenti trattati...xv Com è organizzato il libro...xvi Cosa occorre per utilizzare il libro...xvii Convenzioni adottate...xvii Il codice sorgente...xviii

Dettagli

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: 1 SOFTWARE È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software: SOFTWARE DI SISTEMA (o di base), che deve gestire le funzioni

Dettagli

Introduzione al Python

Introduzione al Python Andrea Passerini passerini@disi.unitn.it Informatica Caratteristiche procedurale si specifica la procedura da eseguire sui dati strutturato concetto di visibililtà delle variabili orientato agli oggetti

Dettagli

Manuale utente. ver 1.0 del 31/10/2011

Manuale utente. ver 1.0 del 31/10/2011 Manuale utente ver 1.0 del 31/10/2011 Sommario 1. Il Servizio... 2 2. Requisiti minimi... 2 3. L architettura... 2 4. Creazione del profilo... 3 5. Aggiunta di un nuovo dispositivo... 3 5.1. Installazione

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

SMS-GPS MANAGER. Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps

SMS-GPS MANAGER. Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps SOFTWARE PER LA GESTIONE DEI TELECONTROLLI SMS-GPS MANAGER Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps Rev.0911 Pag.1 di 8 www.carrideo.it INDICE 1. DESCRIZIONE

Dettagli

Un Sistema Location-based per la mappatura degli Access Point

Un Sistema Location-based per la mappatura degli Access Point 1 Un Sistema Location-based per la mappatura degli Access Point Pasquale Cautela pasquale.cautela@studio.unibo.it Marco Peca marco.peca@studio.unibo.it Rosario Salpietro rosario.salpietro@studio.unibo.it

Dettagli

Elementi del calcolatore: CPU

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

Dettagli

Corso base per l uso del computer. Corso organizzato da:

Corso base per l uso del computer. Corso organizzato da: Corso base per l uso del computer Corso organizzato da: S Programma del Corso Ing. Roberto Aiello www.robertoaiello.net info@robertoaiello.net +39 334.95.75.404 S S Informatica S Cos è un Computer Il personal

Dettagli

D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche

D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche Il Cloud Computing La visualizzazione nella Cloud Problematiche Virtualizzazione della GPU Front end Virtualization

Dettagli

Rudimenti di Python. senza rodimenti di Python

Rudimenti di Python. senza rodimenti di Python Rudimenti di Python senza rodimenti di Python Contatti _ Enrico Marino _ Federico Spini _ mail: _ (marino spini)@dia.uniroma3.it! _ sito: _ dia.uniroma3.it/~(marino spini)/python! Eventi _ Possibili date

Dettagli

PATENTE EUROPEA DEL COMPUTER 4.0 MODULO

PATENTE EUROPEA DEL COMPUTER 4.0 MODULO PATENTE EUROPEA DEL COMPUTER 4.0 MODULO 2 Uso del Computer e Gestione dei file ( Windows XP ) A cura di Mimmo Corrado MODULO 2 - USO DEL COMPUTER E GESTIONE DEI FILE 2 FINALITÁ Il Modulo 2, Uso del computer

Dettagli

Capitolo 2 -- Silberschatz

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

Dettagli

INFORMATION TECNOLOGY

INFORMATION TECNOLOGY PROGETTAZIONE CLASSI PRIMA A E B CONCETTI DI BASE INFORMATION TECNOLOGY SIGNIFICATO DI INFORMATION TECNOLOGY il sistema informatico La classificazione dei computer in base all uso Principali componenti

Dettagli

Server web e protocollo HTTP

Server web e protocollo HTTP Server web e protocollo HTTP Dott. Emiliano Bruni (info@ebruni.it) Argomenti del corso Cenni generali sul web IIS e Apache Il server web Micsosoft Internet Information Server 5.0 Il server web Apache 2.0

Dettagli

PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI (NUCLEO) HARDWARE

PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI (NUCLEO) HARDWARE IL SISTEMA OPERATIVO Insieme di programmi che opera al di sopra della macchina fisica, mascherandone le caratteristiche e fornendo agli utenti funzionalità di alto livello. PROGRAMMI UTENTE INTERPRETE

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

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

A cura di: Dott. Ing. Elisabetta Visciotti. e.visciotti@gmail.com

A cura di: Dott. Ing. Elisabetta Visciotti. e.visciotti@gmail.com A cura di: Dott. Ing. Elisabetta Visciotti e.visciotti@gmail.com Il termine generico rete (network) definisce un insieme di entità (oggetti, persone, ecc.) interconnesse le une alle altre. Una rete permette

Dettagli

SCP: SCHEDULER LAYER. a cura di. Alberto Boccato

SCP: SCHEDULER LAYER. a cura di. Alberto Boccato SCP: SCHEDULER LAYER a cura di Alberto Boccato PREMESSA: Negli ultimi tre anni la nostra scuola ha portato avanti un progetto al quale ho partecipato chiamato SCP (Scuola di Calcolo Parallelo). Di fatto

Dettagli

Raspberry Pi - Labolatorio Informatica

Raspberry Pi - Labolatorio Informatica Raspberry Pi - Labolatorio Informatica Indice 1 Prerequisiti 2 2 Installazione di Raspbian su scheda SD 2 2.1 Installazione con Linux...................................... 2 2.2 Installazione con Windows....................................

Dettagli

Setup e installazione

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

Dettagli

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

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

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Il computer: primi elementi

Il computer: primi elementi Il computer: primi elementi Tommaso Motta T. Motta Il computer: primi elementi 1 Informazioni Computer = mezzo per memorizzare, elaborare, comunicare e trasmettere le informazioni Tutte le informazioni

Dettagli

51) Linux è: A) un sistema operativo B) una periferica C) un applicazione

51) Linux è: A) un sistema operativo B) una periferica C) un applicazione Conoscenze Informatiche 51) Linux è: A) un sistema operativo B) una periferica C) un applicazione 52) Un provider è: A) un ente che fornisce a terzi l accesso a Internet B) un protocollo di connessione

Dettagli

Hardware, software e dati

Hardware, software e dati Hardware, software e dati. Hardware il corpo del computer. Software i programmi del computer. Dati la memoria del computer ICT per la terza età Le video lezioni della Fondazione Mondo Digitale Diapositiva

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

Accesso Remoto: Che cos'è Q uali programmi si utilizzano Come si effettua (teoria) Q uando è utile

Accesso Remoto: Che cos'è Q uali programmi si utilizzano Come si effettua (teoria) Q uando è utile Accesso Remoto Accesso Remoto: Che cos'è Q uali programmi si utilizzano Come si effettua (teoria) Q uando è utile Che cos'è Possibilità di accedere ai processi residenti su un altro computer da una postazione

Dettagli

LOGO! 0BA6 & 0BA7. For internal use only / Siemens AG 2010. All Rights Reserved.

LOGO! 0BA6 & 0BA7. For internal use only / Siemens AG 2010. All Rights Reserved. LOGO! 0BA6 & 0BA7 LOGO! 0BA6 & 0BA7 LOGO! la famiglia si allarga Page 2/15 2010-06-01 LOGO! Ha due nuovi moduli base LOGO! 0BA7 si aggiunge alla gamma già esistente di LOGO! 0BA6 Page 3/15 2010-06-01 Tutte

Dettagli

Abilità Informatiche A.A. 2010/2011 Lezione 4: SoftWare. Facoltà di Lingue e Letterature Straniere

Abilità Informatiche A.A. 2010/2011 Lezione 4: SoftWare. Facoltà di Lingue e Letterature Straniere Abilità Informatiche A.A. 2010/2011 Lezione 4: SoftWare Facoltà di Lingue e Letterature Straniere Software È un insieme di programmi che permettono di trasformare un insieme di circuiti elettronici (=

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

Microsoft Access - dispensa didattica ECDL Modulo 5 - a cura di Antonino Terranova PAG 1

Microsoft Access - dispensa didattica ECDL Modulo 5 - a cura di Antonino Terranova PAG 1 Microsoft Access - Determinare l input appropriato per il database...2 Determinare l output appropriato per il database...2 Creare un database usando l autocomposizione...2 Creare la struttura di una tabella...4

Dettagli

Introduzione. Livello applicativo Principi delle applicazioni di rete. Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio 2-1

Introduzione. Livello applicativo Principi delle applicazioni di rete. Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio 2-1 Introduzione Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio Livello applicativo Principi delle applicazioni di rete 2-1 Pila di protocolli Internet Software applicazione: di

Dettagli

OBIETTIVI SPECIFICI DI APPRENDIMENTO

OBIETTIVI SPECIFICI DI APPRENDIMENTO Disciplina:... Anno scolastico: 20.../20... Classe/i :... Docente:... DI APPRENDIMENTO SEZIONE 1 Premesse matematiche Nozioni fondamentali sui sistemi di numerazione Sistemi di numerazione in base diversa

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

Indice generale. Introduzione...xi. Capitolo 1 Da dove iniziare... 1. Capitolo 2 Collegamenti con il mondo esterno... 9

Indice generale. Introduzione...xi. Capitolo 1 Da dove iniziare... 1. Capitolo 2 Collegamenti con il mondo esterno... 9 Introduzione...xi Capitolo 1 Da dove iniziare... 1 Breve storia di Raspberry Pi... 1 Un progetto nato per passione... 2 Piattaforma educativa, ma non solo... 3 Il primo Raspberry Pi... 3 I modelli in produzione...

Dettagli

EasyVote v.1.0. Logos Av Com. Manuale d uso

EasyVote v.1.0. Logos Av Com. Manuale d uso EasyVote v.1.0 Logos Av Com Manuale d uso Revisions table Revision Date Author Pages Notes 1.0 05/06/2012 P.A. Aisa 30 First Emission File name EasyVote_UserManual_1.0 Revisions table 2 / 30 Indice 1 INTRODUZIONE

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

Informatica d ufficio

Informatica d ufficio Informatica d ufficio Anno Accademico 2008/2009 Lezione N 2 Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo è un programma che è sempre in funzione durante l utilizzo del PC (quando si accende

Dettagli

CORSO DI INFORMATICA. Docente. Stefania Melillo

CORSO DI INFORMATICA. Docente. Stefania Melillo CORSO DI INFORMATICA Docente Stefania Melillo Cosa significa informatica? Il termine nasce dalla fusione di due parole, INFORMazione e automatica le informazioni vengono immesse, in un calcolatore capace

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

Informatica e Bioinformatica: Sistemi Operativi

Informatica e Bioinformatica: Sistemi Operativi Informatica e Bioinformatica: Sistemi Operativi 11 marzo 2013 Macchina Hardware/Software Sistema Operativo Macchina Hardware La macchina hardware corrisponde alle componenti fisiche del calcolatore (quelle

Dettagli

PROGRAMMA FINALE SVOLTO CLASSE 1 BT A.S. 2014/15

PROGRAMMA FINALE SVOLTO CLASSE 1 BT A.S. 2014/15 Istituto di Istruzione Superiore V. Bachelet Istituto Tecnico Commerciale - Liceo Linguistico Liceo Scientifico Liceo Scienze Umane Via Stignani, 63/65 20081 Abbiategrasso Mi PROGRAMMA FINALE SVOLTO CLASSE

Dettagli

PC Crash Course: OBIETTIVI

PC Crash Course: OBIETTIVI PC Crash Course: OBIETTIVI 1. PC: uno strumento 2. Microsoft Windows XP: alcuni concetti chiave della interfaccia grafica 3. File System: file, direttori, link, 4. Il prompt dei comandi 5. Un occhiata

Dettagli

Laboratorio di Programmazione Strutturata

Laboratorio di Programmazione Strutturata Laboratorio di Programmazione Strutturata Facoltà di Scienze e Tecnologie per i Media Anno 2008/2009 Dati Generali Docente del corso : Dott. Tulimiero Davide Materiale del corso : Corso completo di programmazione

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

foglio di calcolo celle Lotus 1-2-3 celle macro.

foglio di calcolo celle Lotus 1-2-3 celle macro. Fogli di calcolo Un foglio di calcolo è composto da celle nelle quali è possibile inserire dati. Il programma consente di effettuare calcoli complessi utilizzando valori inseriti nelle celle dalle quali

Dettagli

Strutture dei sistemi operativi

Strutture dei sistemi operativi Contenuti della lezione di oggi Strutture dei sistemi operativi Descrizione dei servizi messi a disposizione dell utente dal SO Utente generico Programmatore Esame delle possibili strutture di un SO Monolitica

Dettagli

Elementi hardware di un personal computer desktop 2012

Elementi hardware di un personal computer desktop 2012 IIS Bonfantini Novara -Laboratorio di informatica 2012 Pagina 1 PERSONAL COMPUTER I personal computer sono quelli usati per lavoro d'ufficio o in ambito domestico da un solo utente per volta. Un ulteriore

Dettagli

Parte VI SISTEMI OPERATIVI

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

Dettagli

ECDL Modulo 2. Contenuto del modulo. Uso del computer e gestione dei file

ECDL Modulo 2. Contenuto del modulo. Uso del computer e gestione dei file ECDL Modulo 2 Uso del computer e gestione dei file Contenuto del modulo Per iniziare Il desktop Organizzare i file Semplice editing Gestione della stampa Esercitazioni 1 Per iniziare (1) Per iniziare a

Dettagli

LISTA DI DISTRIBUZIONE: IT Telecom srl, Telecom Italia, Clienti Telecom Italia TI REGISTRO DELLE MODIFICHE REVISIONE DESCRIZIONE EMISSIONE

LISTA DI DISTRIBUZIONE: IT Telecom srl, Telecom Italia, Clienti Telecom Italia TI REGISTRO DELLE MODIFICHE REVISIONE DESCRIZIONE EMISSIONE CERTQUAL.IT.DPMU1257 TITOLO DOCUMENTO: TIPO DOCUMENTO: EMESSO DA: Manuale Utente IT Telecom s.r.l. DATA EMISSIONE: 2/12/21 N. ALLEGATI: STATO: REDATTO: F. Lappa ITT VERIFICATO: M. Donatone ITT APPROVATO:

Dettagli

Cablaggio Sistemi Hardware

Cablaggio Sistemi Hardware Cablaggio Sistemi Hardware Supponiamo di eseguire un cablaggio in una nuova infrastruttura di rete da zero. Dobbiamo installare nuovi pc e server, di conseguenza bisogna conoscere alcune nuove specifiche

Dettagli

Foglio elettronico (StarOffice)

Foglio elettronico (StarOffice) Modulo Foglio elettronico (StarOffice) Modulo - Foglio elettronico, richiede che il candidato comprenda il concetto di foglio elettronico e dimostri di sapere usare il programma corrispondente. Deve comprendere

Dettagli

Lez. 2 L elaborazione

Lez. 2 L elaborazione Lez. 2 L elaborazione Prof. Giovanni Mettivier 1 Dott. Giovanni Mettivier, PhD Dipartimento Scienze Fisiche Università di Napoli Federico II Compl. Univ. Monte S.Angelo Via Cintia, I-80126, Napoli mettivier@na.infn.it

Dettagli

Networking Wireless con Windows XP

Networking Wireless con Windows XP Networking Wireless con Windows XP Creare una rete wireless AD HOC Clic destro su Risorse del computer e quindi su Proprietà Clic sulla scheda Nome computer e quindi sul pulsante Cambia Digitare il nome

Dettagli

Appunti Modulo 2 - Microsoft Windows

Appunti Modulo 2 - Microsoft Windows www.informarsi.net Appunti Modulo 2 - Microsoft Windows Sistema operativo Il sistema operativo, abbreviato in SO (in inglese OS, "operating system") è un particolare software, installato su un sistema

Dettagli

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment Obiettivi d esame PHP Developer Fundamentals on MySQL Environment 1.0 Ambiente di sviluppo 1.1 Web server e database MySQL Comprendere la definizione dei processi che si occupano di fornire i servizi web

Dettagli

MAESTRO-PV Specifiche tecniche per sistema telecontrollo, gestione e invio allarmi per impianti fotovoltaici

MAESTRO-PV Specifiche tecniche per sistema telecontrollo, gestione e invio allarmi per impianti fotovoltaici SPECIFICHE TECNICHE MAESTRO-PV Specifiche tecniche per sistema telecontrollo, gestione e invio allarmi per impianti fotovoltaici RSPV05I1 rev.01 0909 (Descrizione) Il sistema di telegestione telecontrollo

Dettagli

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi : di base e applicativo L HardWare (monitor, tastiera, circuiti, stampante, ) è il nucleo fondamentale del calcolatore ma da solo non serve a nulla. Bisogna utilizzare il software per poterlo fare funzionare.

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

Ultr@ VNC: Guida (parte 1)

Ultr@ VNC: Guida (parte 1) Ultr@ VNC: Guida (parte 1) Vi presento la guida in italiano per l installazione e l utilizzo di Ultra VNC :http://ultravnc.sourceforge.net. Le potenzialità del programma ve le abbiamo già presentate :http://www.femetal.it/9/ultravncrecensione,

Dettagli

Guida rapida a Laplink Everywhere 4

Guida rapida a Laplink Everywhere 4 Guida rapida a Laplink Everywhere 4 081005 Come contattare Laplink Software Per sottoporre domande o problemi di carattere tecnico, visitare il sito: www.laplink.com/it/support/individual.asp Per altre

Dettagli

NetComp quick reference. 1. NETCOMP...2 2. Supporto Windows CE...3 3. UPDATE SISTEMA...8. 3.1 Update Bootloader/Image...8

NetComp quick reference. 1. NETCOMP...2 2. Supporto Windows CE...3 3. UPDATE SISTEMA...8. 3.1 Update Bootloader/Image...8 MNL139A000 NetComp quick reference ELSIST S.r.l. Sistemi in elettronica Via G. Brodolini, 15 (Z.I.) 15033 CASALE M.TO ITALY Internet: http://www.elsist.it Email: elsist@elsist.it TEL. (39)-0142-451987

Dettagli

pod Guida all installazione di rete del Solstice Pod Introduzione Solstice Pod Collaborazione Visuale Wireless Solstice sulla vostra rete

pod Guida all installazione di rete del Solstice Pod Introduzione Solstice Pod Collaborazione Visuale Wireless Solstice sulla vostra rete Introduzione Solstice Pod Collaborazione Visuale Wireless Una volta installato, il Solstice Pod permette a più utenti di condividere simultaneamente il proprio schermo su un display tramite la rete Wi-Fi

Dettagli

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO IL SOFTWARE L HARDWARE da solo non è sufficiente a far funzionare un computer Servono dei PROGRAMMI (SOFTWARE) per: o Far interagire, mettere in comunicazione, le varie componenti hardware tra loro o Sfruttare

Dettagli

Note operative per Windows XP

Note operative per Windows XP Note operative per Windows XP AVVIO E ARRESTO DEL SISTEMA All avvio del computer, quando l utente preme l interruttore di accensione, vengono attivati i processi di inizializzazione con i quali si effettua

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

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Corso Base Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Java Java è un Linguaggio di Programmazione orientato agli oggetti. Un Linguaggio di Programmazione è un linguaggio ad alto livello, dotato

Dettagli

Sommario. Modulo 8: Applicativi. Parte 3: Terminale remoto. Premessa Telnet SSH XWindows VNC RDP. Gennaio Marzo 2007

Sommario. Modulo 8: Applicativi. Parte 3: Terminale remoto. Premessa Telnet SSH XWindows VNC RDP. Gennaio Marzo 2007 Modulo 8: Applicativi Parte 3: Terminale remoto 1 Sommario Premessa Telnet SSH XWindows VNC RDP Reti di Calcolatori 2 1 Premessa Necessita : controllare a distanza un dispositivo attraverso la connessione

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

Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012. Introduzione a Visual Studio 2005/2008/2010

Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012. Introduzione a Visual Studio 2005/2008/2010 Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012 Introduzione a Visual Studio 2005/2008/2010 1 Outline Solution e Project Visual Studio e linguaggio C Visual Studio schermata principale

Dettagli

Modulo TrovaPrezzi/7pixel Documentazione Versione 2.22

Modulo TrovaPrezzi/7pixel Documentazione Versione 2.22 Modulo TrovaPrezzi/7pixel Documentazione Versione 2.22 Grazie per aver acquistato questo modulo che è stato progettato con funzioni innovative, raramente disponibili in altri prodotti simili esistenti

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

Manuale di Desktop Sharing. Brad Hards Traduzione: Luciano Montanaro Traduzione: Daniele Micci

Manuale di Desktop Sharing. Brad Hards Traduzione: Luciano Montanaro Traduzione: Daniele Micci Brad Hards Traduzione: Luciano Montanaro Traduzione: Daniele Micci 2 Indice 1 Introduzione 5 2 Il protocollo Remote Frame Buffer 6 3 Uso di Desktop Sharing 7 3.1 Gestione degli inviti di Desktop Sharing.........................

Dettagli