Sviluppo di un ambiente per la scrittura e la simulazione di programmi per il processore PD32

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Sviluppo di un ambiente per la scrittura e la simulazione di programmi per il processore PD32"

Transcript

1 Sviluppo di un ambiente per la scrittura e la simulazione di programmi per il processore PD32 Matteo Leonetti Introduzione Il PD32 è un processore didattico studiato nei corsi di Calcolatori Elettronici in diverse università italiane. La sua struttura e quella dell'assemblatore originale sono descritte in [1]. Il simulatore a corredo di tale libro è stato realizzato nel 1994, e gli undici anni che ha alle spalle iniziano a rendere evidente la necessità di un nuovo ambiente di sviluppo con le caratteristiche di un software moderno. Questo progetto ha l'obiettivo di creare un'alternativa portabile, che costituisca le fondamenta di una suite di applicazioni per la didattica relative al processore ed agli insegnamenti di Calcolatori Elettronici. Si prefigge, inoltre, di migliorare la gestione delle periferiche permettendo la simulazione di periferiche complesse. 1. Architettura DISsimulator 1 è scritto in Java ed è basato sulla versione 1.4 del JSDK. Questo ne garantisce la portabilità su tutti i sistemi per cui sia disponibile una Java Virtual Machine. Per permettere l'estensione del software con moduli esterni, è necessario utilizzare un framework che 1 Il nome è ispirato ad una frase del ritratto di Catilina di Sallustio: Omnium rerum simulator ac dissimulator. Inizialmente questo progetto mirava a realizzare una macchina universale di cui il PD32 fosse una specializzazione. Dunque un simulatore di ogni cosa. Oltre a ciò, la parola dissimulator inizia con l'acronimo del Dipartimento d'informatica e Sistemistica e sembrava dunque particolarmente adatta.

2 metta a disposizione una serie di servizi. Tenendo sempre presente l'aforisma di Eric Raymond: Good programmers know what to write. Great ones know what to rewrite (and reuse) [2] ho individuato i due principali framework basati su Java: NetBeans di Sun Microsystems ed Eclipse di IBM. Entrambi sono software completi e molto complessi. Ho optato per il primo per la possibilità di implementare l'interfaccia grafica con la libreria Swing piuttosto che con la SWT di IBM, che non fa parte delle librerie standard di Java. Sebbene possa essere utilizzata per creare applicazioni di qualunque genere, la NetBeans Platform è la base del noto NetBeans IDE ed è quindi particolarmente adatta per la realizzazione di ambienti di sviluppo. La piattaforma di NetBeans mette a disposizione dei moduli la gestione delle impostazioni, delle finestre, delle eccezioni, e un editor con ampie possibilità di estensione. Un modulo per NetBeans è un file jar, il cui manifest contiene alcune informazione lette dalla piattaforma ed utilizzate per il caricamento delle classi. I moduli possono dichiarare delle dipendenze da altri che vengono aggiunti al loro classpath. DISsimulator è costituito da due moduli: il core e nbplugin. Il primo realizza tutte le funzionalità relative al PD32 e non dipende in nessun modo da NetBeans, mentre il secondo interfaccia il core con il resto della piattaforma: in questo modo è possibile utilizzare il core in un'applicazione autonoma o in qualche altra piattaforma. Analizzerò ora il core nel dettaglio, trattando più avanti il modo in cui DISsimulator dipende da NetBeans. I due blocchi funzionali del core sono l'assemblatore ed il simulatore. Schematicamente, il core appare come in Figura 1. Figura 1 Uno primo sguardo ai blocchi funzionali L'assemblatore riceve dall'utente un programma e costruisce una struttura di dati che lo rappresenti. Il 1

3 Architettura simulatore quindi riceve la struttura di dati e procede con la simulazione. Tutti i package sono sottopackage di it.softeaware.dissimulator, quindi nell'indicarne il nome sottintenderò questa parte comune. Ad esempio it.softeaware.dissimulator.assemblatore sarà indicato più semplicemente con assemblatore. 2. L'assemblatore L'assemblatore è costituito da due parti: l'analizzatore sintattico (o parser) e l'analizzatore semantico. Analizzando la sintassi il parser costruisce una rappresentazione del programma in memoria, tramite un'opportuna struttura di dati detta albero sintattico astratto (Abstract parse tree) [3]. Sarebbe anche possibile effettuare l'assemblaggio direttamente nelle azioni semantiche del parser, come avveniva alcuni anni fa, ma ciò renderebbe il codice dell'analizzatore sintattico difficile da leggere e da modificare. I calcolatori odierni non hanno problemi di memoria, almeno per quanto riguarda la compilazione o il solo assemblaggio dei programmi di dimensioni ridotte (come in questo caso). Il parser, quindi, verifica che il programma rispetti la grammatica (Appendice A) generando delle ParseException nel caso in cui riscontri degli errori. Se il programma risulta sintatticamente corretto il parser completa la costruzione dell'albero, rendendolo disponibile per la successiva fase di analisi semantica. L'analizzatore semantico termina i controlli sul programma ed assegna a variabili ed istruzioni l'indirizzo di memoria a cui dovranno essere caricate; l'albero astratto viene quindi elaborato e la sua versione definitiva trasferita al simulatore. Nel caso in cui qualche verifica fallisca l'analizzatore semantico genererebbe delle eccezioni di tipo AssemblaggioException (di cui ParseException è una sottoclasse privata). Le eccezioni prodotte dall'analizzatore sintattico e da quello semantico vengono raccolte e 3

4 L'assemblatore mostrate all'utente. L'interfaccia del package verso il resto dell'applicazione consiste nella classe Assemblatore (ParserPD32 e AnalizzatoreSemantico sono private) che fa da wrapper per i due componenti e gestisce lo scambio dei dati, restituendo al chiamante l'albero astratto al termine dell'elaborazione, o una lista di messaggi d'errore. Sia nell'assemblatore sia nel simulatore, è molto importante che la generazione e lo scambio di dati siano ben individuati per evitare memory leak 1. Una rappresentazione del flusso di dati all'interno dell'assemblatore è mostrata in Figura 2 mentre la Figura 3 illustra la sequenza delle operazioni. Figura 2 Il flusso di dati all'interno dell'assemblatore L'albero astratto è realizzato con una gerarchia di classi, contenute nel package istruzioni. Questo package è di grande importanza per tutta l'applicazione perché è ad esso che vengono delegate gran parte delle operazioni. Il pd32 possiede circa cinquanta istruzioni, ed otto modi di indirizzamento. Per realizzare le funzioni specifiche di ogni istruzione senza rendere il codice un unico blocco difficilmente gestibile è necessario un approccio fortemente orientato agli oggetti. 1 Gruppi di oggetti non più necessari ma raggiungibili dallo stack (anche indirettamente) che per questo non possono essere deallocati dal garbage collector. 4

5 Le istruzioni Figura 3 Sequence diagram dell'assemblatore 2.1 Le istruzioni Come accennato, il package delle istruzioni è ortogonale sia all'assemblatore sia al simulatore, costituendo una libreria di notevole importanza per tutta l'applicazione. La sua struttura è rappresentata nel diagramma UML della Figura 4. Un programma è composto da un Eseguibile principale, da una lista di Driver ed una di Dichiarazione eventualmente vuote. Ogni Eseguibile contiene, a sua volta, una lista di Istruzione. Ognuna di queste liste è riempita dal parser durante il riconoscimento delle relative sezioni del programma. Le istruzioni dell'assembly PD32 sono rappresentate da una gerarchia di classi la cui radice implementa l'interfaccia Istruzione. Su questa struttura si basa gran parte dell'applicazione, che operando tramite un'interfaccia delega (mediante il polimorfismo) la funzione da svolgere alla classe concreta più appropriata. Questo schema comporta alcuni vantaggi: il parser è indipendente dal set di istruzioni; il codice riguardante ogni istruzione è molto breve e, di conseguenza, facilmente manutenibile (meno di 100 LOC per classe); i metodi si possono condividere 5

6 Le istruzioni o nascondere seguendo le regole di visibilità e dell'ereditarietà; l'interfaccia dell'intera struttura verso il resto dell'applicazione è estremamente semplificata, essendo costituita da due sole interfacce Java. Figura 4 Diagramma del package istruzioni Le istruzioni svolgono due diversi ruoli all'interno dell'applicazione: nell'assemblaggio per il controllo dei parametri e la creazione del codice binario; nell'esecuzione per lo svolgimento delle 6

7 Le istruzioni operazioni caratteristiche dell'istruzione. Questi due ruoli sono realizzati dalle interfacce Java istruzioni.istruzione ed esecuzione.esecutore. Ogni classe concreta che implementa Istruzione ha una classe annidata statica che implementa Esecutore. Essendo statica, non c'è alcuna dipendenza tra questa classe e quella che la contiene, ma è stata implementata annidata per includere in una sola classe tutto quello che riguarda un'istruzione. Così, ad esempio, è possibile aggiungere un'istruzione modificando un solo file, o localizzare eventuali errori molto facilmente. Poiché tutte le classi che implementano Istruzione ed Esecutore sono private, il resto del programma necessita, di un intermediario all'interno del package per accedervi. La classe IstruzioneFactory reperisce la sottoclasse concreta, che rappresenta l'istruzione desiderata, e la restituisce come riferimento di tipo Istruzione (o Esecutore). Quando avviene la prima richiesta IstruzioneFactory crea una tabella di hash che contiene le istruzioni ed una matrice con gli esecutori. La tabella mappa l'insieme dei nomi delle istruzioni su quello delle sottoclassi che le rappresentano, e viene riempita esaminando l'albero delle classi in profondità. L'analizzatore sintattico al riconoscimento di un'istruzione richiede ad IstruzioneFactory di creare un oggetto Istruzione appropriato. IstruzioneFactory, quindi, ottiene (in tempo O(1)) un riferimento all'oggetto di classe Class relativo alla particolare istruzione, e tramite la reflection 1 lo istanzia e lo restituisce. Per gli esecutori la procedura è ancora più semplice e non richiede l'introspezione. Ogni sottoclasse di Esecutore è un Singleton, ed ogni oggetto non conserva alcuna informazione sullo stato dell'esecuzione. Questo rende lecito l'utilizzo degli stessi oggetti in più di una computazione parallela. Un esecutore viene richiesto al momento del fetch dell'istruzione, di cui si può ricavare (tramite opportune maschere binarie) la classe ed il tipo. Queste due informazioni indicizzano la matrice dalla quale si può immediatamente ottenere un riferimento all'esecutore richiesto. 1 La reflection o introspezione è la possibilità, offerta dalla JVM, di ottenere riferimenti ai campi, metodi o costruttori di una data classe. In IstruzioneFactory la reflection è utilizzata per reperire un riferimento di tipo java.lang.reflect.constructor al costruttore della classe concreta che implementa Istruzione, ed istanziare un oggetto. 7

8 La simulazione 3. La simulazione La simulazione consiste nel prelevare la struttura generata dall'assemblatore, creare gli oggetti necessari all'esecuzione del codice, caricare il codice binario in memoria ed eseguire le istruzioni mostrando lo stato della computazione all'utente. Figura 5 Diagramma delle classi del package esecuzione Sono state definite delle interfacce Java per i tipi PD32 e Memoria e le loro implementazioni predefinite esecuzione.defaultpd32 e gui.memoriatablemodel. Per 8

9 La simulazione ottenere il duplice effetto di realizzare la simulazione indipendentemente dall'interfaccia grafica e tenere la GUI costantemente aggiornata, ho integrato il package della simulazione nel modello MVC 1 della libreria Swing. La memoria di lavoro è implementata dal modello di una tabella (JTable) e le operazioni effettuate su di essa si riflettono immediatamente sull'interfaccia grafica. Il processore e le periferiche non sono direttamente modello di qualche componente grafico ma possono registrare dei listener a cui notificare i cambiamenti. Il pannello che visualizza lo stato del processore si registra come listener dell'oggetto PD32 che esegue la computazione. Alla ricezione di un evento questo viene memorizzato e ogni decimo di secondo un javax.swing.timer aggiorna l'interfaccia. L'aggiornamento non avviene immediatamente nel codice che notifica l'evento perché questo è eseguito dal thread del processore mentre solo il gestore degli eventi 2 (thread AWT nella macchina virtuale) può modificare l'interfaccia grafica. Sarebbe, inoltre, molto rischioso che il thread del processore tentasse di modificare anche i componenti sincronizzati perché potrebbe richiedere un lock su un oggetto Swing, pur essendo stato interrotto, terminando conseguentemente con un'eccezione (cfr. Capitolo 4). Questo, per altro, permette a due eventi riguardanti lo stesso registro e giunti nell'intervallo tra un aggiornamento ed il successivo di sovrascriversi evitando di aggiornare due volte (inutilmente) l'interfaccia. Il diagramma delle classi del package esecuzione è mostrato in Figura Avvio dell'esecuzione La costruzione di tutti gli oggetti necessari alla simulazione non è un operazione semplice ed è stata implementata in BuilderEsecuzione. Avviare per la prima volta l'esecuzione richiede: 1 Swing ha un'architettura basata su una variante del pattern MVC (Model-Control-View) nota come separable model architecture. View e Control di MVC sono fusi in un unico componente responsabile della visualizzazione e del comportamento nell'interfaccia grafica mentre il Model contiene i dati e notifica gli oggetti associati dei cambiamenti. 2 In Swing un solo thread può modificare l'interfaccia ed è il gestore degli eventi o thread di AWT (Abstract Window Toolkit). Alcuni componenti sono sincronizzati e possono essere modificati da altri thread ma l'accesso al loro stato richiede l'acquisizione di un lock. 9

10 Avvio dell'esecuzione 1. La creazione della memoria, cioé di un oggetto la cui classe implementa esecuzione.memoria (gui.memoriatablemodel). 2. La creazione di una DaisyChain inizialmente vuota. 3. La creazione del processore, cioè di un oggetto la cui classe implementa esecuzione.processore (DefaultPD32). 4. La scansione del file con le impostazioni delle periferiche, la loro creazione ed inserimento nella daisychain. 5. La creazione dell'interfaccia grafica e la sua registrazione come listener del processore e della memoria. Il processore, all'atto della sua istanziazione, crea un oggetto StatoEsecuzione che racchiude tutto il necessario alla simulazione. Tramite questo è possibile ottenere dei riferimenti alla memoria di lavoro, alla daisychain ed al processore stesso. Lo StatoEsecuzione contiene anche delle variabili usate dagli esecutori (cfr. Capitolo 2.1) per effettuare la computazione. Quando tutti gli oggetti sono stati creati il programma assemblato deve essere caricato in memoria dalla classe Loader ed il registro PC del processore inizializzato con l'indirizzo della prima istruzione. 3.2 Le periferiche La simulazione delle periferiche è l'innovazione più importante tra quelle introdotte da DISsimulator. Nel precedente simulatore l'utente era completamente responsabile del comportamento delle periferiche dovendo personalmente modificarne lo stato. In DISsimulator le periferiche sono autonome ed eseguite in un proprio thread in concorrenza con quello del processore. Una periferica è costituita da una classe che implementa eseuzione.periferiche.periferica e da almeno una classe che implementa esecuzione.periferiche.in- 10

11 Le periferiche terfacciaio. Prima di procedere con la descrizione è indispensabile una precisazione riguardo al termine interfaccia. Con interfaccia Java si indica un tipo del linguaggio di programmazione definito in [4]; con interfaccia hardware si indica il circuito della periferica deputato allo scambio di dati con il processore. La periferica e le interfacce sono simulate ognuna da una classe che deve implementare le interfacce Java menzionate. Per semplificare la scrittura delle periferiche, renderle meno soggette ad errori, e standardizzare le operazioni comuni sono disponibili delle implementazioni di default che possono essere ereditate ridefinendo pochi metodi. Alla creazione degli oggetti responsabili della simulazione viene analizzato il file xml che contiene le impostazioni delle periferiche installate. Per ognuna viene memorizzato il nome della classe che implementa Periferica e per ogni interfaccia hardware l'ivn e l'indirizzo. Tutte le interfacce hardware sono inserite in una lista (daisychain) da cui dipende la priorità della periferica. Nel PD32 ogni interfaccia hardware deve specificare un IVN ed un indirizzo. Un array di 256 elementi da quattro byte memorizza gli indirizzi dei driver di ogni interfaccia. L'Interrupt Vector Number è l'indice dell'interfaccia hardware in questo array. L'indirizzo è il numero che identifica l'interfaccia hardware. Quando il processore riceve un' interruzione manda un segnale di ACK alla prima interfaccia hardware installata. Nel caso in cui quella fosse l'interfaccia che ha richiesto l'interruzione, il segnale di ACK sarebbe mascherato e la periferica avvierebbe il protocollo di comunicazione con il processore. Altrimenti il segnale di ACK verrebbe propagato all'interfaccia successiva. Da questa descrizione si evince che l'ordine in cui le interfacce hardware sono installate nel sistema (costituendo la daisychain) ne determina la priorità. Per molte periferiche con più di una interfaccia hardware è fondamentale che l'ordine tra queste sia rispettato. Come precedentemente accennato, il nome delle classi delle periferiche installate viene letto dal file xml e la periferica istanziata. Successivamente l'inserimento delle interfacce nella DaisyChain viene delegato alla periferica poiché questa conosce l'ordine in cui devono essere installate. Ogni interfaccia hardware ha un riferimento ad un oggetto di tipo 11

12 Le periferiche RicevitoreDiSegnali che rappresenta una vista del processore mostrando solo il metodo sendinterrupt() ed impedendo la modifica diretta del suo stato. In DefaultPD32 una variabile intera memorizza il numero di interruzioni pendenti e viene incrementata ad ogni invocazione di sendinterrupt(true) da parte delle interfacce hardware. Se il numero di interruzioni ricevute è maggiore di zero, al termine dell'istruzione corrente, il processore ottiene dalla DaisyChain l'ivn della prima (per posizione) interfaccia hardware che ha richiesto l'interruzione, ed imposta il registro PC all'indirizzo contenuto nella relativa cella dell'interrupt Vector. In questo modo l'istruzione successiva sarà quella del driver della periferica. Il driver deve modificare il flag status (con le istruzioni start o reset) dell'interfaccia per rimuovere l'interruzione ed evitare di essere eseguito all'infinito. L'invocazione del metodo sendinterrupt(false) decrementa il numero di interruzioni pendenti nel processore. In questo modo eventuali interruzioni giunte durante l'esecuzione della stessa istruzione non si sovrascrivono e gli eventi che vengono simulati sono esattamente quelli previsti nella progettazione del PD Scrivere nuove periferiche La principale conseguenza delle innovazioni apportate alle periferiche è la necessità di realizzarne di nuove. E' certamente possibile scrivere delle periferiche molto semplici che si possano usare esattamente come nel vecchio simulatore ma limitarsi a questo renderebbe vano il nuovo sistema. Per poter essere installata dall'utente una periferica deve apparire nella lista di quelle disponibili che corrisponde al contenuto del file esecuzione/periferiche/periferiche.- list. Quest'ultimo è un file di testo le cui righe riportano il nome della classe della periferica. Ad ogni periferica è associato un file periferica.properties in cui vengono specificati il nome ed una descrizione da mostrare all'utente. Nel pannello Gestione periferiche sono visualizzate a sinistra le 12

13 Scrivere nuove periferiche periferiche disponibili ed a destra quelle attualmente installate. Inserendo un periferica a destra questa sarà installata nella stessa posizione della daisychain in cui figura nella lista. Subito dopo la sua creazione, all'oggetto Periferica viene assegnato un riferimento ad un RicevitoreDiSegnali necessario per l'azione successiva. Alla creazione della periferica segue l'installazione delle interfacce con i metodi Periferca.installaIn() e Periferica.installaOut(). Come indicato precedentemente, ogni periferica è eseguita in un proprio thread. Nel nuovo thread viene invocato il metodo Periferica.esegui() tramite il quale il controllo passa alla classe della periferica. Con lo scopo di agevolare la realizzazione di nuove periferiche sono state create le classi PerifericaAstratta, InputAstratta e OutputAstratta che ridefiniscono gran parte dei metodi richiesti. Esattamente come le interfacce hardware sono standard per tutte le periferiche del PD32, InputAstratta e OutputAstratta implementano tutti i metodi e bisogna aggiungere solo quelli per la comunicazione con la propria periferica che, dovendo generalmente essere package private, non possono comparire nella definizione dell'interfaccia. La classe che estende periferica astratta, invece, oltre ai metodi per l'installazione delle interfacce hardware deve definire dei tamplate method ([5]): eseguiinizializza(): invocato prima di qualsiasi stard(). La periferica può creare un'interfaccia grafica ed effettuare qualunque operazione di inizializzazione. eseguistard(): esegue l'operazione caratteristica della periferica eseguitermina(): chiamato alla fine della simulazione, quando l'utente clicca sul tasto Stop. Esegue tutte le operazioni per una corretta terminazione, ad esempio nasconde la GUI. Quando tutti i metodi sono stati realizzati è sufficiente aggiungere il nome completo (cioè includendo il nome del package) della classe che estende PerifericaAstratta in periferiche.list. 13

14 Il ciclo istruzione 3.3 Il ciclo istruzione E' possibile eseguire la simulazione in tre modalità: Intero programma Un'istruzione Una fase Dopo che tutti gli oggetti sono stati creati seguendo la procedura descritta nel capitolo 3.1 il GestoreSimulazione diventa il responsabile della creazione e terminazione dei thread. A questo oggetto è associato il seguente diagramma di stato: Figura 6 Diagramma di stato di un GestoreSimulazione Nello stato iniziale il GestoreSimulazione è in attesa di un oggetto StatoEsecuzione da cui ottenere riferimenti a tutti gli oggetti creati per la simulazione. Ricevuto uno StatoEsecuzione il GestoreSimulazione può avviare la simulazione. A questo scopo crea ed avvia un thread per il processore ed uno per ogni periferica. In questa fase la simulazione è in corso ed il thread del processore è fermo in attesa di un comando. I comandi vengono inseriti in una lista dall'esterno e estratti dal thread del processore secondo il classico modello del produttoreconsumatore. I comandi sono oggetti di classi che implementano un'opportuna interfaccia Java con un 14

15 Il ciclo istruzione solo metodo: esegui(); Queste classi sono l'equivalente orientato agli oggetti dei puntatori a funzione e sono descritti come pattern Command in [5]. Esistono tre comandi, corrispondenti alle modalità d'esecuzione. Si può eseguire un'intera istruzione o una fase e ad ognuno corrisponde un comando. Quello dell'intero programma, invece, mette in coda il comando per una istruzione e poi se stesso realizzando una sorta di ricorsione utilizzando la coda. L'inserimento di un comando attiva il thread del processore iniziando il ciclo dell'istruzione. La prima operazione è l'individuazione dell'esecutore corretto. L'istruzione puntata dal registro PC viene letta dalla memoria per estrarne la classe ed il tipo che indicizzano la matrice degli esecutori (cfr. Capitolo 2.1). L'esecuzione viene quindi delegata all'oggetto individuato che esegue fetch e completamento (separatamente, se richiesto) agendo come un Visitor (uno dei pattern descritti in [5]) dell'oggetto StatoEsecuzione del processore. Dopo ogni istruzione viene verificato lo stato delle interruzioni ed eventualmente si esegue il salto alla prima istruzione del driver dell'interfaccia che ha mandato il segnale d'interruzione. Quando l'utente clicca sul tasto Stop il GestoreSimulazione transita verso lo stato Thread in esecuzione con la simulazione non più in corso. In questa fase ai thread è inviato il comando di terminazione, alla ricezione del quale le periferiche possono rimuovere la GUI e completare le proprie operazioni correttamente. Quando tutti i thred hanno concluso il loro ciclo vitale la simulazione può essere riavviata. Al termine della simulazione lo stato del processore e delle periferiche non viene reimpostato se non esplicitamente richiesto dall'utente. Dunque l'esecuzione può essere ripresa dallo stato in cui era stata sospesa in qualsiasi momento. In Figura 7 è mostrato il DFD del simulatore. 15

16 Il ciclo istruzione Figura 7 DFD del simulatore 4. L'interfaccia Grafica Gran parte dell'interfaccia grafica dipende dalla piattaforma (in questo caso NetBeans) e quindi non è integrata nel core. Alcune parti però possono essere realizzate in modo piuttosto generico ed in comune tra tutte le piattaforme, in particolare il pannello per comandare l'esecuzione e quello per le interfacce hardware. In questi casi ho deciso di realizzare un'implementazione generica che potesse essere utilizzata dai client del core ed è il motivo principale per cui ho scelto Swing piuttosto che SWT e conseguentemente NetBeans piuttosto che Eclipse. Nell'analisi dello svolgimento della simulazione è stato illustrato come questa non dipenda dall'interfaccia verso l'utente e possa procedere autonomamente come un'applicazione batch. Lo stato della simulazione è costituito dal processore, dalla memoria e dalle periferiche, e tutto è raccolto 16

17 L'interfaccia Grafica nell'oggetto StatoEsecuzione che contiene anche le variabili utilizzate dagli esecutori. Il meccanismo con cui avvengono gli aggiornamenti dell'interfaccia si basa sulla notifica degli eventi e su un Timer di Swing. Nel package esecuzione.eventi sono definite le classi ModificaRegistroEvent, StatoInterfacciaEvent e StatoSimulazioneEvent con i relativi Listener. Questi eventi vengono generati rispettivamente dal processore, dalle interfacce hardware e dal GestoreSimulazione. Il pannello dell'esecuzione si registra come listener di eventi del processore e del gestore della simulazione, mentre il pannello delle interfacce hardware con l'interfaccia a cui è associato. Una cosa da tenere in considerazione, nella scrittura del codice dei metodi che ricevono la notifica di un evento, è che ad eseguire il codice del metodo è il thread che genera l'evento cioé, in particolare, il thread del processore. D'altra parte in Swing un solo thread può modificare l'interfaccia ed è il gestore degli eventi o thread AWT. Solo alcuni componenti in Swing sono sincronizzati. Aggiornare l'interfaccia grafica nei metodi di notifica comporterebbe due svantaggi: la simulazione dovrebbe accollarsi la responsabilità dell'aggiornamento, risultando fortemente rallentata, e nel modificare dei componenti sincronizzati il thread del processore dovrebbe richiedere dei lock 1. Il thread del processore, quando non ha dei comandi da attuare, sospende la propria esecuzione fino all'inserimento di un nuovo comando nella coda e alla conseguente invocazione del metodo interrupt() sul thread stesso. Ciò significa che il flag interrupted associato al thread viene costantemente settato e resettato. I componenti di Swing con metodi sincronizzati, come ad esemempio JTextField.setText() implementano un meccanismo di locking ad un livello superiore dei semplici blocchi sincronizzati. Infatti, permettono a più thread di leggere il contenuto dell'oggetto contemporaneamente (nel caso di JTextField il testo memorizzato nel modello, generalmente una sottoclasse di AbstractDocument) ma ad uno solo di modificarlo. Tale sincronizzazione ha però una limitazione non documentata: il thread che vuole modificare il 1 In Java ogni oggetto ha associato un lock, cioé una chiave che permette al solo thread che è riuscito ad ottenerla di eseguire i metodi sincronizzati sull'oggetto. 17

18 L'interfaccia Grafica componente non può essere interrotto durante il tentativo di acquisizione del lock. Nel caso in cui un thread fosse interrotto sarebbe generato un Error che quindi porterebbe all'immediata terminazione del thread senza possibilità di gestire l'eccezione. Un thread continuamente interrotto come quello del processore certamente non riuscirebbe ad evitare che questo accada. Il pannello dell'esecuzione possiede un array di eventi indicizzato dal codice associato a ciascun registro. Quando il thread del processore notifica un evento imposta la cella dell'array relativa al registro coinvolto nel cambiamento di stato. Ogni decimo di secondo nel thread AWT viene eseguito il metodo di aggiornamento dell'interfaccia che per ogni evento ricevuto apporta le dovute modifiche. Se più di un evento dovesse avvenire tra due aggiornamenti dell'interfaccia, solo l'ultimo comporterebbe una effettiva modifica. Poiché l'utente non è in grado di cogliere due cambiamenti in meno di un decimo di secondo questo limita il numero di modifiche da apportare alla GUI e riduce i tempi d'esecuzione. Le modifiche alla memoria di lavoro si riflettono immediatamente sulla tabella che ne visualizza il contenuto poiché la memoria stessa è anche il modello della JTable che la rappresenta. La RAM a disposizione del PD32 ha una dimensione di 10KB e non sarebbe stato efficiente duplicarla nel simulatore e nell'interfaccia grafica dovendo, in tal caso, risolvere i conseguenti problemi di sincronizzazione. Anche il pannello dell'esecuzione riceve la notifica dei cambiamenti nelle memoria e la salva in una variabile per selezionare, al successivo aggiornamento dell'interfaccia, la riga con l'ultima cella modificata. Il pannello delle interfacce hardware è a disposizione delle periferiche. Può essergli assssegnata un'interfaccia hardware e viene automaticamente aggiornato alla notifica dei StatoInterfacciaEvent. 18

19 NetBeans platform 5. NetBeans platform Il modulo nbplugin integra il core con la piattaforma di NetBeans. NetBeans è costituito a sua volta da un core non accessibile dall'esterno, da un'api (openide) e dai moduli. Tutte le funzionalità non relative alla piattaforma sono realizzate dai moduli. Un modulo è un file jar contenente, oltre alle classi che utilizza, dei particolari attributi nel manifest il cui valore specifica: nome, descrizione, versione ed eventuali dipendenze da altri moduli, da una versione della JVM o della piattaforma stessa. L'installazione di menù, actions, toolbar ed altri componenti grafici o relativi al comportamento dell'interfaccia avviane mediante dei file xml. La aspetto della piattaforma può essere modificato tramite il branding (personalizzazione) con un meccanismo analogo alla localizzazione (tramite file properties). 5.1 Il caricamento delle classi Una piattaforma basata su dei file jar riconosciuti durante l'esecuzione pone particolari problemi relativi al caricamento delle classi dato che il classpath non è noto a priori. Ad ogni modulo viene assegnato un ClassLoader che gli permette di accedere all'api e alle classi nel proprio file jar ma non a quelle di altri moduli. Per poter richiedere il caricamento di classi in moduli esterni è necessario specificare la dipendenza nel file manifest. In tal caso il ClassLoader relativo al modulo avrà nel path anche tutti i jar dei moduli da cui questo dipende. Inizialmente il progetto di DISsimulator prevedeva che le periferiche non fossero contenute nel core ma ognuna in un proprio file potendo essere facilmente scritta ed aggiunta da qualsiasi utente. Una tale realizzazione richiedeva la creazione di un URLClassLoader con il percorso del file jar della periferica per accedere alle classi. Il modulo doveva provvedere al 19

20 Il caricamento delle classi caricamento delle classi della periferica creando il classloader necessario come figlio 1 di quello associato al modulo in modo che la periferica potesse avere acesso anche all'api di NetBeans. Purtroppo questa soluzione si è rivelata inattuabile per via di un meccanismo di serializzazione interno alla piattaforma. NetBeans, all'avvio, tenta di ripristinare la precedente sessione deserializzando i componenti attivi al momento della chiusura. Se una periferica crea un pannello all'interno della finestra principale questo viene registrato e serializzato. Quando la piattaforma tenta di ripristinare il pannello non è più in grado di localizzarne la classe, essendo questa stata caricata dal modulo e non dal classloader di NetBeans. Questa evenienza genera numerosi messaggi d'errore nel file di log e, sebbene non sembri avere altre conseguenze, ho preferito unire le periferiche al core dove possono essere regolarmente caricate. Non è possibile nemmeno l'inserimento delle periferiche in un modulo esterno, diverso dal core perché i due moduli (core e periferiche) dovrebbero dichiarare delle dipendenze reciproche e l'attivazione dei moduli è un processo strettamente sequenziale. In questo caso la piattaforma non sarebbe in grado di attivare uno dei due Conclusioni Questo progetto è nato con l'intento di modernizzare un software datato avvicinandolo ai suoi utenti e facendo tesoro dell'esperienza accumulata nei dieci anni in cui è stato utilizzato. L'intero design dell'applicazione è stato concepito per permetterne facilmente la modifica e l'estensione. Sono già in fase di realizzazione dei programmi a scopo didattico che faranno presto parte di DISsimulator, con la speranza che il progetto possa diventare una suite completa e matura. Il software è opensource ed è rilasciato con licenza Gnu GPL (General Public License). 1 I classloader sono organizzati in maniera gerarchica ad albero. Ognuno di essi nel tentativo di localizzare una risorsa deve prima fare riferimento al padre (il primo classloader verso l'alto nella gerarchia) e solo se questi non riesce nell'operazione cercare tra le proprie risorse. 20

MANUALE UTENTE Fiscali Free

MANUALE UTENTE Fiscali Free MANUALE UTENTE Fiscali Free Le informazioni contenute in questa pubblicazione sono soggette a modifiche da parte della ComputerNetRimini. Il software descritto in questa pubblicazione viene rilasciato

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

Configurazione di Outlook Express

Configurazione di Outlook Express OUTLOOK Outlook Express è il client di posta elettronica sviluppato da Microsoft, preinstallato su sistemi operativi Windows a partire da Windows 98 fino all'uscita di Windows XP. Con l'arrivo di Windows

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

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

Studio Legale. Guida operativa

Studio Legale. Guida operativa Studio Legale Guida operativa Cliens Studio Legale Web Cliens Studio Legale Web è un nuovo strumento che consente all avvocato di consultare i dati presenti negli archivi Cliens del proprio studio, attraverso

Dettagli

Protezione. Protezione. Protezione. Obiettivi della protezione

Protezione. Protezione. Protezione. Obiettivi della protezione Protezione Protezione La protezione riguarda i meccanismi per il controllo dell accesso alle risorse in un sistema di calcolo da parte degli utenti e dei processi. Meccanismi di imposizione fissati in

Dettagli

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Modeler Text Analytics versione 15 mediante un licenza

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

T E O R I A D I P R O G E T T A Z I O N E D E L S O F T W A R E

T E O R I A D I P R O G E T T A Z I O N E D E L S O F T W A R E Threading T E O R I A D I P R O G E T T A Z I O N E D E L S O F T W A R E Caratteristiche principali dei thread Consentono di eseguire elaborazioni simultanee in un programma scritto in C#. Possono essere

Dettagli

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE 1/6 MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE Per prima cosa si ringrazia per aver scelto ImmobiPhone e per aver dato fiducia al suo autore. Il presente documento istruisce l'utilizzatore sull'uso del programma

Dettagli

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste versione 2.1 24/09/2015 aggiornamenti: 23-set-2015; 24-set-2015 Autore: Francesco Brunetta (http://www.francescobrunetta.it/)

Dettagli

Libero Emergency PC. Sommario

Libero Emergency PC. Sommario Emergenza PC (Garantisce le funzionalità di base delle operazioni di prestito e restituzione in caso di problemi tecnici sulla linea o di collegamento con il server) Sommario 1. Emergency PC...2 2. Iniziare

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

SOMMARIO... 3 INTRODUZIONE...

SOMMARIO... 3 INTRODUZIONE... Sommario SOMMARIO... 3 INTRODUZIONE... 4 INTRODUZIONE ALLE FUNZIONALITÀ DEL PROGRAMMA INTRAWEB... 4 STRUTTURA DEL MANUALE... 4 INSTALLAZIONE INRAWEB VER. 11.0.0.0... 5 1 GESTIONE INTRAWEB VER 11.0.0.0...

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

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

Dettagli

Concetti di base di ingegneria del software

Concetti di base di ingegneria del software Concetti di base di ingegneria del software [Dalle dispense del corso «Ingegneria del software» del prof. A. Furfaro (UNICAL)] Principali qualità del software Correttezza Affidabilità Robustezza Efficienza

Dettagli

Il Sistema Operativo (1)

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

Dettagli

Progetto INCOME. Manuale Utente Operatore Installazione

Progetto INCOME. Manuale Utente Operatore Installazione VERSIONI Manuale Utente Operatore Installazione Tosca-Mobile VERS. Motivo Modifiche Data Approvazione Approvatore 1.0 Prima emissione 02/12/11 1/21 Sommario SOMMARIO... 2 INTRODUZIONE... 3 1.1. CONTENUTI

Dettagli

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME) Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Programmazione a Oggetti Modulo B

Programmazione a Oggetti Modulo B Programmazione a Oggetti Modulo B Progetto Dott. Alessandro Roncato 4/10/2011 Progetto Da svolgere singolarmente Scadenza consegna: una settimana prima dello scritto; Valutazione in base a: Corretta compilazione

Dettagli

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014) Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014) Il software per gli esami ICON può essere eseguito su qualunque computer dotato di Java Virtual Machine aggiornata.

Dettagli

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle

Dettagli

progecad NLM Guida all uso Rel. 10.2

progecad NLM Guida all uso Rel. 10.2 progecad NLM Guida all uso Rel. 10.2 Indice Indice... 2 Introduzione... 3 Come Iniziare... 3 Installare progecad NLM Server... 3 Registrare progecad NLM Server... 3 Aggiungere e attivare le licenze...

Dettagli

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0 Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 15 Martedì 24-11-2015 Struttura logica del sottosistema di I/O Processi

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Client - Server. Client Web: il BROWSER

Client - Server. Client Web: il BROWSER Client - Server Client Web: il BROWSER Il client Web è un applicazione software che svolge il ruolo di interfaccia fra l utente ed il WWW, mascherando la complessità di Internet. Funzioni principali Inviare

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

Dettagli

Finalità della soluzione... 3. Schema generale e modalità d integrazione... 4. Gestione centralizzata in TeamPortal... 6

Finalità della soluzione... 3. Schema generale e modalità d integrazione... 4. Gestione centralizzata in TeamPortal... 6 Finalità della soluzione... 3 Schema generale e modalità d integrazione... 4 Gestione centralizzata in TeamPortal... 6 Dati gestiti dall Anagrafica Unica... 8 Gestione anagrafica... 9 Storicizzazione...

Dettagli

Sistema di gestione Certificato MANUALE PER L'UTENTE

Sistema di gestione Certificato MANUALE PER L'UTENTE Sistema di gestione Certificato MANUALE PER L'UTENTE Pagina 1 di 16 Indice 1 Introduzione...3 2 Genera certificato...4 3 Sospendi certificato...10 4 Riattiva certificato...12 5 Revoca certificato...14

Dettagli

Scuola Digitale. Manuale utente. Copyright 2014, Axios Italia

Scuola Digitale. Manuale utente. Copyright 2014, Axios Italia Scuola Digitale Manuale utente Copyright 2014, Axios Italia 1 SOMMARIO SOMMARIO... 2 Accesso al pannello di controllo di Scuola Digitale... 3 Amministrazione trasparente... 4 Premessa... 4 Codice HTML

Dettagli

Gestore Comunicazioni Obbligatorie - VARDATORI - Progetto SINTESI Dominio Provinciale Modulo Applicativo:COB Procedura VARDATORI

Gestore Comunicazioni Obbligatorie - VARDATORI - Progetto SINTESI Dominio Provinciale Modulo Applicativo:COB Procedura VARDATORI Progetto SINTESI Dominio Provinciale Modulo Applicativo:COB Procedura VARDATORI 1 INDICE 1 INTRODUZIONE... 3 2 COMUNICAZIONI VARDATORI... 4 2.1 VARIAZIONE DELLA RAGIONE SOCIALE DEL DATORE DI LAVORO...

Dettagli

Gestione Turni. Introduzione

Gestione Turni. Introduzione Gestione Turni Introduzione La gestione dei turni di lavoro si rende necessaria quando, per garantire la continuità del servizio di una determinata struttura, è necessario che tutto il personale afferente

Dettagli

Manuale Terminal Manager 2.0

Manuale Terminal Manager 2.0 Manuale Terminal Manager 2.0 CREAZIONE / MODIFICA / CANCELLAZIONE TERMINALI Tramite il pulsante NUOVO possiamo aggiungere un terminale alla lista del nostro impianto. Comparirà una finestra che permette

Dettagli

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Manuale Amministratore Legalmail Enterprise Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Pagina 2 di 16 Manuale Amministratore Legalmail Enterprise Introduzione a Legalmail Enterprise...3

Dettagli

IRSplit. Istruzioni d uso 07/10-01 PC

IRSplit. Istruzioni d uso 07/10-01 PC 3456 IRSplit Istruzioni d uso 07/10-01 PC 2 IRSplit Istruzioni d uso Indice 1. Requisiti Hardware e Software 4 1.1 Requisiti Hardware 4 1.2 Requisiti Software 4 2. Installazione 4 3. Concetti fondamentali

Dettagli

WoWords. Guida all uso: creare ed utilizzare le frasi. In questa guida è descritto come creare ed utilizzare le frasi nel software WoWords.

WoWords. Guida all uso: creare ed utilizzare le frasi. In questa guida è descritto come creare ed utilizzare le frasi nel software WoWords. In questa guida è descritto come creare ed utilizzare le frasi nel software WoWords. Premessa Oltre alle singole parole WoWords può gestire intere frasi in inglese. A differenza delle singole parole, le

Dettagli

Mac Application Manager 1.3 (SOLO PER TIGER)

Mac Application Manager 1.3 (SOLO PER TIGER) Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema

Dettagli

Manuale Utente MyFastPage

Manuale Utente MyFastPage Manuale MyFastPage Utente Elenco dei contenuti 1. Cosa è MyVoice Home?... 4 1.1. Introduzione... 5 2. Utilizzo del servizio... 6 2.1. Accesso... 6 2.2. Disconnessione... 7 2.3. Configurazione base Profilo

Dettagli

Mon Ami 3000 Centri di costo Contabilità analitica per centri di costo/ricavo e sub-attività

Mon Ami 3000 Centri di costo Contabilità analitica per centri di costo/ricavo e sub-attività Prerequisiti Mon Ami 000 Centri di costo Contabilità analitica per centri di costo/ricavo e sub-attività L opzione Centri di costo è disponibile per le versioni Contabilità o Azienda Pro. Introduzione

Dettagli

Workland CRM. Workland CRM Rel 2570 21/11/2013. Attività --> FIX. Magazzino --> NEW. Nessuna --> FIX. Ordini --> FIX

Workland CRM. Workland CRM Rel 2570 21/11/2013. Attività --> FIX. Magazzino --> NEW. Nessuna --> FIX. Ordini --> FIX Attività Attività --> FIX In alcuni casi, in precedenza, sulla finestra trova attività non funzionava bene la gestione dei limiti tra date impostati tramite il menu a discesa (Oggi, Tutte, Ultima Settimana,

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

Modulo 3 - Elaborazione Testi 3.5 Stampa unione

Modulo 3 - Elaborazione Testi 3.5 Stampa unione Università degli Studi dell Aquila Corso ECDL programma START Modulo 3 - Elaborazione Testi 3.5 Stampa unione Maria Maddalena Fornari Stampa Unione Processo che permette di unire dati provenienti da tipi

Dettagli

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento

Dettagli

SISTEMI MULTIAGENTE. Esercizio

SISTEMI MULTIAGENTE. Esercizio Esercizio SISTEMI MULTIAGENTE Nello studio dei sistemi dinamici complessi la simulazione al computer ha un ruolo importante dal momento che presenta molti vantaggi rispetto ai metodi sperimentali più tradizionali;

Dettagli

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare. Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare. E stato previsto l utilizzo di uno specifico prodotto informatico (denominato

Dettagli

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

Dettagli

Manuale di Aggiornamento BOLLETTINO. Rel. 5.20.1H4. DATALOG Soluzioni Integrate a 32 Bit

Manuale di Aggiornamento BOLLETTINO. Rel. 5.20.1H4. DATALOG Soluzioni Integrate a 32 Bit Manuale di Aggiornamento BOLLETTINO Rel. 5.20.1H4 DATALOG Soluzioni Integrate a 32 Bit - 2 - Manuale di Aggiornamento Sommario 1 2 PER APPLICARE L AGGIORNAMENTO... 3 1.1 Aggiornamento Patch Storica...

Dettagli

TRASMISSIONE RAPPORTO ARBITRALE IN FORMATO PDF

TRASMISSIONE RAPPORTO ARBITRALE IN FORMATO PDF TRASMISSIONE RAPPORTO ARBITRALE IN FORMATO PDF Come da disposizioni di inizio stagione, alcune Delegazioni provinciali hanno richiesto la trasmissione dei referti arbitrali solo tramite fax o tramite mail.

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

Microsoft Office XP. dott. ing. Angelo Carpenzano. acarpenzano@neoteksolutions.it. La suite Microsoft Office XP

Microsoft Office XP. dott. ing. Angelo Carpenzano. acarpenzano@neoteksolutions.it. La suite Microsoft Office XP Microsoft Office XP dott. ing. Angelo Carpenzano acarpenzano@neoteksolutions.it 1 La suite Microsoft Office XP Microsoft Word: elaboratore testi (word processor) Microsoft Excel: foglio di calcolo (spreadsheet)

Dettagli

Infostat-UIF. Istruzioni per l accesso e le autorizzazioni

Infostat-UIF. Istruzioni per l accesso e le autorizzazioni Infostat-UIF Istruzioni per l accesso e le autorizzazioni Versione 1.2 1 INDICE 1. Istruzioni operative per l'utilizzo dei servizi Infostat-UIF... 3 2. Registrazione al portale Infostat-UIF... 4 2.1. Caso

Dettagli

Corso Eclipse. Prerequisiti. 1 Introduzione

Corso Eclipse. Prerequisiti. 1 Introduzione Corso Eclipse 1 Introduzione 1 Prerequisiti Uso elementare del pc Esecuzione ricerche su Internet Esecuzione download Conoscenza elementare della programmazione 2 1 Cos è Eclipse Eclipse è un IDE (Integrated

Dettagli

Xampp. Valeriano Maysonnave - A.A. 2014/2015 -

Xampp. Valeriano Maysonnave - A.A. 2014/2015 - Xampp Valeriano Maysonnave - A.A. 2014/2015-1 Introduzione...1 2 Installazione su Windows...1 3 Configurazione Apache...2 3.1 Accesso al file di configurazione httpd.conf...2 3.2 Il file httpd.conf...3

Dettagli

Come modificare la propria Home Page e gli elementi correlati

Come modificare la propria Home Page e gli elementi correlati Come modificare la propria Home Page e gli elementi correlati Versione del documento: 3.0 Ultimo aggiornamento: 2006-09-15 Riferimento: webmaster (webmaster.economia@unimi.it) La modifica delle informazioni

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al

Dettagli

Progettazione : Design Pattern Creazionali

Progettazione : Design Pattern Creazionali Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali

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

Object Oriented Programming

Object Oriented Programming OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in

Dettagli

Note per generazione file.txt per invio trimestrale V.P. all AGENZIA DELLE ENTRATE

Note per generazione file.txt per invio trimestrale V.P. all AGENZIA DELLE ENTRATE Note per generazione file.txt per invio trimestrale V.P. all AGENZIA DELLE ENTRATE Si tratta della funzione che consente di generare il file in formato testo (.TXT) che permette la spedizione all Agenzia

Dettagli

DENUNCE EDILCONNECT GUIDA COMPILAZIONE

DENUNCE EDILCONNECT GUIDA COMPILAZIONE Cassa Edile Como e Lecco DENUNCE EDILCONNECT GUIDA COMPILAZIONE COMPILAZIONE DA FILE PAGHE Guida per i consulenti e le imprese che compilano la denuncia utilizzando il file di esportazione dei software

Dettagli

Java: Compilatore e Interprete

Java: Compilatore e Interprete Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

COLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo

COLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo Release 5.20 Manuale Operativo COLLI Gestione dei Colli di Spedizione La funzione Gestione Colli consente di generare i colli di spedizione in cui imballare gli articoli presenti negli Ordini Clienti;

Dettagli

Gestione Risorse Umane Web

Gestione Risorse Umane Web La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...

Dettagli

Android. Implementare una interfaccia utente

Android. Implementare una interfaccia utente Android Implementare una interfaccia utente Introduzione In questa lezione vedremo come implementare una interfaccia utente sullo schermo di Android. Vedremo gli elementi di base visualizzabili sullo schermo

Dettagli

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

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

Dettagli

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo)

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo) Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo) Le seguenti istruzioni sono relative all installazione di IBM SPSS Modeler Text Analytics versione 15 mediante un licenza

Dettagli

Guida Compilazione Piani di Studio on-line

Guida Compilazione Piani di Studio on-line Guida Compilazione Piani di Studio on-line SIA (Sistemi Informativi d Ateneo) Visualizzazione e presentazione piani di studio ordinamento 509 e 270 Università della Calabria (Unità organizzativa complessa-

Dettagli

FPf per Windows 3.1. Guida all uso

FPf per Windows 3.1. Guida all uso FPf per Windows 3.1 Guida all uso 3 Configurazione di una rete locale Versione 1.0 del 18/05/2004 Guida 03 ver 02.doc Pagina 1 Scenario di riferimento In figura è mostrata una possibile soluzione di rete

Dettagli

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 PAG. 2 DI 38 INDICE 1. PREMESSA 3 2. SCARICO DEL SOFTWARE 4 2.1 AMBIENTE WINDOWS 5 2.2 AMBIENTE MACINTOSH 6 2.3 AMBIENTE

Dettagli

Manuale di istruzioni sulle maschere per il calcolo del punteggio e del voto (unico) degli studenti che sostengono la Prova nazionale 2011

Manuale di istruzioni sulle maschere per il calcolo del punteggio e del voto (unico) degli studenti che sostengono la Prova nazionale 2011 Manuale di istruzioni sulle maschere per il calcolo del punteggio e del voto (unico) degli studenti che sostengono la Prova nazionale 2011 (CLASSI NON CAMPIONE) Prova nazionale 2010 11 1 A.S. 2010 11 Pubblicato

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Mon Ami 3000 Varianti articolo Gestione di varianti articoli Prerequisiti Mon Ami 3000 Varianti articolo Gestione di varianti articoli L opzione Varianti articolo è disponibile per le versioni Azienda Light e Azienda Pro e include tre funzionalità distinte: 1. Gestione

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Introduzione al sistema operativo Il file system: file, directory,...

Introduzione al sistema operativo Il file system: file, directory,... ,OVRIWZDUHGLVLVWHPD cosa vedremo: Introduzione al sistema operativo Il file system: file, directory,...... 223,OVRIWZDUHLQWURGX]LRQH L hardware da solo non è sufficiente per il funzionamento dell elaboratore

Dettagli

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software BDX 3D Editor è un programma che permette di navigare ed editare texture in un qualsiasi modello 3D.E compatibile con i software in grado di esportare

Dettagli

Argo Mobile. Gestione Assenze. Manuale d Installazione e d uso del prodotto

Argo Mobile. Gestione Assenze. Manuale d Installazione e d uso del prodotto Argo Mobile Gestione Assenze Manuale d Installazione e d uso del prodotto Release 1.0.0 del 03-12-2010 Sommario Introduzione... 3 Attivazione del servizio... 4 Personalizzazione Parametri di Accesso...

Dettagli

MANUALE UTENTE. In questo manuale verranno descritte tutte le sue funzioni. Il sistema OTRS è raggiungibile al seguente link:

MANUALE UTENTE. In questo manuale verranno descritte tutte le sue funzioni. Il sistema OTRS è raggiungibile al seguente link: MANUALE UTENTE OTRS è il sistema di ticketing per la gestione delle richieste tecniche e di supporto ai clienti e partner di Delta Progetti 2000. La nuova versione 3.2.10 introduce una grafica più intuitiva

Dettagli

GUIDA UTENTE MONEY TRANSFER MANAGER

GUIDA UTENTE MONEY TRANSFER MANAGER GUIDA UTENTE MONEY TRANSFER MANAGER (vers. 1.0.2) GUIDA UTENTE MONEY TRANSFER MANAGER (vers. 1.0.2)... 1 Installazione... 2 Prima esecuzione... 5 Login... 7 Funzionalità... 8 Anagrafica... 9 Registrazione

Dettagli

Esercizio data base "Biblioteca"

Esercizio data base Biblioteca Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni

Dettagli

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche Input/Output n Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi n Tutti più lenti della CPU e della RAM n Necessità di avere moduli di I/O Moduli

Dettagli

Capitolo 4 Pianificazione e Sviluppo di Web Part

Capitolo 4 Pianificazione e Sviluppo di Web Part Capitolo 4 Pianificazione e Sviluppo di Web Part Questo capitolo mostra come usare Microsoft Office XP Developer per personalizzare Microsoft SharePoint Portal Server 2001. Spiega come creare, aggiungere,

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

Guida all accesso al portale e ai servizi self service

Guida all accesso al portale e ai servizi self service Guida all accesso al portale e ai servizi self service INDICE PREMESSA 2 pag. 1 INTRODUZIONE 2 2 MODALITÀ DI PRIMO ACCESSO 2 2.1 LA CONVALIDA DELL INDIRIZZO DI POSTA ELETTRONICA 2 2.2 L INSERIMENTO DELLA

Dettagli

Regione Piemonte Portale Rilevazioni Crediti EELL Manuale Utente

Regione Piemonte Portale Rilevazioni Crediti EELL Manuale Utente Pag. 1 di 15 VERS V01 REDAZIONE VERIFICHE E APPROVAZIONI CONTROLLO APPROVAZIONE AUTORIZZAZIONE EMISSIONE NOME DATA NOME DATA NOME DATA A. Marchisio C. Pernumian 29/12/2014 M. Molino 27/02/2015 M. Molino

Dettagli

Manuale Operativo per la firma digitale

Manuale Operativo per la firma digitale Manuale Operativo per la firma digitale Indice 1. Introduzione... 3 2. Installazione del lettore di smart card... 3 3. Installazione del Dike... 8 4. Attivazione della smart card... 9 5. PIN per la firma

Dettagli

5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record

5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record 5.3 TABELLE In un sistema di database relazionali le tabelle rappresentano la struttura di partenza, che resta poi fondamentale per tutte le fasi del lavoro di creazione e di gestione del database. 5.3.1

Dettagli

BDCC : Guida rapida all utilizzo

BDCC : Guida rapida all utilizzo BDCC : Guida rapida all utilizzo 1 Sommario 1. Funzionamento del sistema... 3 1.1 Cos è e cosa contiene la BDCC... 3 1.2 Meccanismi di funzionamento della BDCC... 3 1.3 Organizzazione di contenuti all

Dettagli

DMA Accesso Diretto alla Memoria

DMA Accesso Diretto alla Memoria Testo di rif.to: [Congiu] - 8.1-8.3 (pg. 241 250) 08.a DMA Accesso Diretto alla Memoria Motivazioni Organizzazione dei trasferimenti DMA Arbitraggio del bus di memoria Trasferimento di un blocco di dati

Dettagli