Note di sviluppo Applet 3DEnter

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Note di sviluppo Applet 3DEnter"

Transcript

1 Note di sviluppo Applet 3DEnter Ronny Meoli Roberto Nunnari Andrea Scolari Autore 9 luglio 2004 Indice 1 Introduzione 1 2 Finite State Machine User FSM World FSM Gestione Hashtable Hashtable Object Pooling Camera Design Implementazione PortableFloat Implementazione Uso A Diagramma dei package 10 B Analisi della performance 10 B.1 Modalità dei test B.2 Test B.2.1 Percorso eseguito B.2.2 Analisi dei risultati B.3 Test B.3.1 Descrizione del test B.3.2 Analisi dei risultati Introduzione In questo documento vengono descritti i maggiori cambiamenti alla struttura dell'applet. 1

2 2 Finite State Machine Per migliorare la performance del sistema di controllo dell'applet, sono state introdotte due Finite State Machine: una che controlla le azioni dell'utente (User) e una che controlla il sistema (World). Esse sono posizionate in cascata in modo tale che le azioni dell'utente gestite dalla User FSM vengano passate alla World FSM, la quale esegue poi le azioni nali. Le stesse gestiscono poi dei task asincroni tramite delle funzioni di callback, p.es. il movimento della camera. Il generatore utilizzato si chiama Nunni FSM Gen, progetto opensource consultabile su NunniFSMGen generates a FSM (Finite State Machine) in Java, C or C++ starting from a transition table. NunniFSMGen cleanly separates logic from implementation by using a modied version of the state pattern, easing the development process! 2.1 User FSM In gura 1 è rappresentato un diagramma semplicato delle classi del package ch.denter.controller.user. Figura 1: Outline User FMS 2.2 World FSM In gura 2 è rappresentato un diagramma semplicato delle classi del package ch.denter.controller.world. 3 Gestione Hashtable Nella classe WorldData vengono usati dei Vector per memorizzare i vari elementi che compongono la scena 3D. Durante l'esecuzione dell'applet, questi 2

3 Figura 2: Outline World FMS elementi devono essere modicati molto spesso. La ricerca dell'elemento desiderato viene eettuata con un ciclo for e degli if: questa tecnica ha una complessità computazionale molto alta e necessita di essere migliorata. 3.1 Hashtable Per risolvere il problema si è pensato di usare delle Hashtable al posto dei Vector. Infatti sono molto più performanti e permettono di ottenere l'oggetto memorizzato semplicemente usando una chiave che lo identichi. Da una attenta analisi dei metodi di accesso ai componenti dei vari Vector, è stato possibile identicare 4 metodi di ricerca, illustrati in tabella 1. Per ogni metodo di accesso è stata creata una classe che verrà usata come chiave nella rispettiva Hashtable. Nome classe AnfyKeyOne AnfyKeyTwo IntegerKey ReplElementsKey Tabella 1: Classi-chiave Criterio di richiesta idobj, subid idelem Numero intero col1dis, col2dis, col3dis, idclip, idimm L'implementazione è molto semplice. Per ogni classe creata, si è denito come attributi privati i criteri di richiesta esposti precedentemente. In più si è anche ridenito i metodi equals() e hashcode(), per permettere la comparazione di oggetti solamente tra i rispettivi attributi di classe. Ogni oggetto-chiave così creato ha anche un numero seriale, gestito dalla classe astratta GenericKey. L'introduzione di questo numero seriale è stato necessario in quanto possono esistere due oggetti-chiavi con identici valori degli attributi. Il numero seriale permette così di distinguere tutti gli oggetti-chiave in modo univoco. In gura 3 è rappresentato il diagramma delle classi del package ch.denter. keydistrib.key. 3

4 Figura 3: Diagramma delle classi, package ch.denter.keydistrib.key 4

5 3.2 Object Pooling Gli scopi principali del Refactoring dell'applicazione comprendevano il miglioramento delle performance generali e la diminuzione del consumo di memoria in runtime. Adottando la tecnica delle chiavi esposta nella sezione precedente, si è notato che per ogni operazione di get e set sulle Hashtable, viene creato ogni volta un nuovo oggetto chiave. Si sa che le operazioni di creazione di nuovi oggetti richiedono molte risorse, soprattutto se eettuate molto spesso durante l'esecuzione dell'applicazione. Per ovviare a questo problema, è stato sviluppato un sistema di Object pooling. Object pooling allows the sharing of instantiated objects. Since dierent processes don't need to reinstantiate certain objects, there is no load time. And since the objects are returned to the pool, there is a reduction in garbage collection. L'implementazione è basata su una classe statica StaticDistributor, illustrata in gura 4. Essa contiene tutti i riferimenti ai vari pool di oggetti delle chiavi, richiamabili tramite il metodo getdistributor(int). Figura 4: Diagramma delle classi, package ch.denter.keydistrib La gestione dei pool avviene nel package ch.denter.keydistrib.pooling, illustrato in gura 5. La classe astratta KeyPool si occupa di gestire tutti i pool, mentre la classe CleanUpThread elimina gli oggetti non più utilizzati. 4 Camera L'implementazione originale della Camera è stata realizzata in due classi, Camera e CameraAuto. Questo design presenta diversi problemi, tra cui: Struttura non adatta alla complessità delle operazioni svolte Struttura non adatta alla complessità della camera Struttura non adatta per il numero di operazioni svolte Troppi operatori condizionali, che obbligano il sistema a controlli inutili L'aggiunta di nuove funzionalità comporta la revisione di tutte le altre funzionalità implementate 5

6 Figura 5: Diagramma delle classi, package ch.denter.keydistrib.pooling 6

7 4.1 Design La nuova struttura della camera è stata ridisegnata completamente in modo da: Poter aggiungere nuove funzionalità Rendere il sistema nalmente stabile Aumentare la essibilità della telecamera Rendere il lavoro di manutenzione più facile Facilitare la congurazione della camera rispetto alla tipologia dello scenario Poter costruire una libreria di algoritmi di spostamento da aggiungere o togliere facilmente (tipo plug-in) Aumentare la performance dell'intero sistema In gura 6 è rappresentato un diagramma semplicato della nuova struttura della camera. Figura 6: Outline nuova struttura camera La descrizione dei vari elementi è riportata in tabella 2. Tabella 2: Descrizione struttura camera Nome classe Descrizione Camera È la classe principale, la camera viene controllata attraverso i suoi metodi. CameraModality È una classe astratta che denisce i metodi da implementare dalle varie modalità Modalityn Le varie modalità 7

8 4.2 Implementazione L'implementazione nale non dierisce molto dall'outline presentato prima. Come visibile in gura 7, è stata aggiunta una classe CameraBean che contiene tutte le variabili della camera, e un classe CameraAuto che gestisce i cambiamenti di direzione durante l'avanzamento automatico. L'interazione con il sistema avviene sempre tramite la classe Camera. Figura 7: Struttura nale della camera 5 PortableFloat La maggior parte dei device J2ME non supporta l'uso dei numeri oating point. Si è scelto quindi di implementare una libreria che usa Fixed Point Math. 5.1 Implementazione I valori Fixed Point vengono memorizzati nel tipo nativo long di Java. Ogni numero consiste di due parti: una parte intera negli ultimi 35 bit e di una parte frazionaria nei primi 29 bit. La parte frazionaria è espressa in 2 29 esimi. Un numero Fixed Point dev'essere costruito secondo la regola esposta nell'equazione 1. ± ((i << 29) f) (1) Dove i è la parte intera e f è la parte frazionaria. Per esempio i due valori e diventerebbero: 5.2 Uso ((7 << 29) ), = ((3 << 29) ), = In gura 8 è rapppresentato il diagramma delle classi del package ch.supsi.fpmath. PortableFloat è una classe astratta che denisce delle costanti poat dei metodi in comune come tofp(), che permette di convertire un numero intero o una stringa (p.es ) in poat. Le altre due classi implementano 8

9 Figura 8: Diagramma delle classi package ch.supsi.fpmath 9

10 i vari metodi matematici. PortableFloatA converte i poat in oat per fare i calcoli e ritorna il risultato in ploat. PortableFloatB usa invece solo poat nei calcoli. Le operazioni aritmetiche somma (+) e sottrazione ( ), l'operatore unario di negazione ( ) e gli operatori di confronto (==, <, <=, >, >=) si possono usare direttamente. Per quanto riguarda moltiplicazione, divisione,... bisogna usare i metodi deniti in PortableFloat. A Diagramma dei package In gura 9 è riportato il diagramma dei package dell'applet alla ne del processo di refactoring. B Analisi della performance Per vericare se il nuovo sistema di gestione delle chiavi è performante, sono stati eseguiti dei test sull'applicazione con un tool di proling. B.1 Modalità dei test Sono stati eseguiti 2 test con e senza la gestione delle chiavi: 1. Test complessivo: monitoraggio del consumo di memoria dell'applet lungo un percorso prestabilito; 2. Test specico: la gestione delle chiavi è stata isolata dal resto del programma ed è stato monitorato il consumo di memoria e la velocità di esecuzione. B.2 Test 1 B.2.1 Percorso eseguito 1. Entrata labirinto 2. Sezione libri 3. Scelta del genere (I scaale) 4. Avanzamento automatico nella galleria no alla ne dei libri 6. Stop della telecamera 7. Ritorno indietro no alla ne dei libri 9. Stop della telecamera 10. Clic su box info e ritorno al labirinto 10

11 Figura 9: Diagramma dei package 11

12 B.2.2 Analisi dei risultati Come visibile dai graci illustrati in gura 10 e 11, il consumo di memoria eettivo risulta minore nella versione con le chiavi. Questo è dovuto presumibilmente al fatto che i pool che gestiscono le chiavi eliminano gli oggetti non più utilizzati, liberando memoria. Anche il tempo di esecuzione totale del percorso risulta di 30 s minore nella versione con le chiavi. Gli intervalli di tempo da prendere in considerazione sono: 4-5, 7-8. Le prove sono ripetibili e si ottengono sempre risultati simili. Un unico problema inuisce sulle performance totali: il tempo di latenza e di download dei dati da Internet. Per ovviare a questo problema è stato eseguito un secondo Test. B.3 Test 2 B.3.1 Descrizione del test Per poter eseguire questo test, sono state implementate delle classi di testbenchmarking, riportate a pagina 12. Queste classi simulano l'uso dei metodi di add-get della classe WorldData. Per poter eettuare un test veritiero, è stato necessario ottenere dei dati di utilizzo di queste classi, ovvero quante volte i dati vengono letti-scritti con i metodi di add-get. Questi dati sono poi stati inclusi nella classe Benchmark: come si può vedere dal codice, sono stati presi 10 valori per ogni Hashtable e per ogni operazione su di essi (scrittura-lettura). Il test viene poi eseguito 100 volte dalla classe Test, monitorando il consumo di memoria e il tempo medio di esecuzione di ogni blocco di scrittura-lettura. /* * Benchmark.java * */ package ch.denter.util.bench; import ch.denter.data.p13elemento; import ch.denter.data.p13elementoanfy; import ch.denter.data.p13immagine; import ch.denter.generatore.stored_3dworld_data; import java.util.vector; /** * Andrea */ public class Benchmark { private int[] _anfytimesread = {38,115,46,144,129,149,69,243,170,150; private int[] _anfytimeswrite = {141,126,193,143,157,143,189,443,144,143; private int[] _movementtimesread = {2,3,5,5,5,6,4,3,2,5; 12

13 Figura 10: Risultati Test 1: con Vector 13

14 Figura 11: Risultati Test 1: con Hashtable e chiavi 14

15 private int[] _movementtimeswrite = {118,56,96,73,78,73,92,420,62,73; private int[] _imagestimesread = {7,1,17,12,11,12,13,9,1,12; private int[] _imagestimeswrite = {7,1,11,9,7,9,7,7,1,9; public void testanfy(int i) { P13ElementoAnfy ele; //write for (int j=0;j<_anfytimeswrite.length;j++) { for (int k=0;k<_anfytimeswrite[j];k++) { ele = new P13ElementoAnfy(); ele.setidobjanfy(i); ele.setsubid(j); ele.setidelemento(k); Stored_3DWorld_Data.add_Data_To_VettoreAnfy(ele); ele = null; //read for (int j=0;j<_anfytimesread.length;j++) { for (int k=0;k<_anfytimesread[j];k++) { int temp = Stored_3DWorld_Data.getIdElemento(i,j); public void testimages(int i) { P13Immagine ele; //write for (int j=0;j<_imagestimeswrite.length;j++) { for (int k=0;k<_imagestimeswrite[j];k++) { ele = new P13Immagine(); ele.setidimmagine(i+j+k); Stored_3DWorld_Data.add_Image_To_Vettore(ele); ele = null; //read for (int j=0;j<_imagestimesread.length;j++) { for (int k=0;k<_imagestimesread[j];k++) { ele = Stored_3DWorld_Data.getImmagine(i+j+k); ele = null; 15

16 public void testmov(int i) { P13Elemento ele; //write for (int j=0;j<_movementtimeswrite.length;j++) { for (int k=0;k<_movementtimeswrite[j];k++) { ele = new P13Elemento(); ele.setidelemento(i+j+k); Stored_3DWorld_Data.add_Data_To_Vettore_EleMovimento(ele); ele = null; //read for (int j=0;j<_movementtimesread.length;j++) { for (int k=0;k<_movementtimesread[j];k++) { ele = Stored_3DWorld_Data.getP13Elemento(i+j+k); ele = null; /* * Test.java * */ package ch.denter.util.bench; import ch.denter.data.p13elemento; import ch.denter.data.p13elementoanfy; import ch.denter.data.p13immagine; import ch.denter.generatore.stored_3dworld_data; import java.util.vector; /** * Andrea */ public class Test { /** args the command line arguments */ public static void main(string[] args) { 16

17 Benchmark b = new Benchmark(); int sumanfy = 0; int sumimages = 0; int summov = 0; int times = 100; for (int i=0;i<times;i++) { //System.out.println("anfy"+i); long start = System.currentTimeMillis(); b.testanfy(i); long stop = System.currentTimeMillis(); //System.out.println("Test " + i + ": " + (stop-start)); sumanfy += (int)(stop-start); //System.out.println("images"+i); start = System.currentTimeMillis(); b.testimages(i); stop = System.currentTimeMillis(); //System.out.println("Test " + i + ": " + (stop-start)); sumimages += (int)(stop-start); //System.out.println("mov"+i); start = System.currentTimeMillis(); b.testmov(i); stop = System.currentTimeMillis(); //System.out.println("Test " + i + ": " + (stop-start)); summov += (int)(stop-start); //System.out.println("remove"+i); Stored_3DWorld_Data.remove_All_Data_Structures(); System.gc(); System.out.println("Average Anfy : " + (sumanfy/times)); System.out.println("Average Images: " + (sumimages/times)); System.out.println("Average Mov : " + (summov/times)); System.exit(0); B.3.2 Analisi dei risultati Nelle tabelle 3 e 4 sono illustrati i risultati del Test 2.1 Velocità di esecuzione. Il metodo con le chiavi sembra essere più veloce quando il numero di elementi è grande. Se si guarda il risultato del Test 2.1 globalmente, le chiavi portano a un dimezzamento sicuro del tempo di esecuzione di operazioni di add-get in WorldData. Nelle gure 12 e 13 sono illustrati i risultati del Test 2.2 Consumo di memoria. Come si poteva prevedere, il consumo di memoria è leggermente maggiore con le chiavi. Questo è dovuto all'overhead di memoria per memorizzare gli 17

18 Tabella 3: Velocità di esecuzione con Vector Average (ms) Test Anfy Images Mov Min Ave Max Std Dev Tabella 4: Velocità di esecuzione con Hashtable Average (ms) Test Anfy Images Mov Min Ave Max Std Dev

19 Figura 12: Risultati Test 2: con Vector 19

20 Figura 13: Risultati Test 2: con Hashtable 20

21 oggetti nel pool. Però è più eciente rispetto al metodo con i Vector in quanto gli oggetti non più utilizzati vengono eliminati periodicamente da un thread di pulizia. 21

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE SOMMARIO Coda (queue): Specifica: interfaccia. Implementazione: Strutture indicizzate (array): Array di dimensione variabile. Array circolari. Strutture collegate (nodi). Prestazioni. Strutture Software

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Grafica: Thread versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Grafico della parabola

Grafico della parabola Grafico della parabola Il grafico matematico è un disegno che mostra l andamento di una funzione f(x) al variare della variabile x. Per tracciare un grafico sul video del computer, si deve scegliere un

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

Richiesta pagina PHP (es: index.php)

Richiesta pagina PHP (es: index.php) PHP PHP = personal home page SERVER Richiesta pagina PHP (es: index.php) Server Web (Apache) in ascolto sulla porta 80, si accorge che la pagina richiesta è una pagina PHP in base all'estensione o con

Dettagli

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete La prima applicazione Java Programma MyFirstApplication Il programma visualizza una finestra vuota sullo schermo. Importo il package delle classi usate nel seguito. Dichiaro la classe MyFirstApplication

Dettagli

Esercizio 1: trading on-line

Esercizio 1: trading on-line Esercizio 1: trading on-line Si realizzi un programma Java che gestisca le operazioni base della gestione di un fondo per gli investimenti on-line Creazione del fondo (con indicazione della somma in inizialmente

Dettagli

Realizzazione di una classe con un associazione

Realizzazione di una classe con un associazione Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe

Dettagli

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del

Dettagli

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006 Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2006-07 Secondo Compitino 21 Dicembre 2006 Si noti che le soluzioni ai quesiti saranno considerate

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

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: Javadoc Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: /* commenti */ // commenti /** commenti documentazione */ Questi ultimi generano automaticamente

Dettagli

Informatica. Rappresentazione dei numeri Numerazione binaria

Informatica. Rappresentazione dei numeri Numerazione binaria Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione

Dettagli

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente. Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito

Dettagli

Programmazione in Java (I modulo) Lezione 3: Prime nozioni

Programmazione in Java (I modulo) Lezione 3: Prime nozioni Programmazione in Java (I modulo) Lezione 3: Prime nozioni La volta scorsa Abbiamo avuto un primo assaggio! Abbiamo visto come usare l editor per scrivere un programma Java. Abbiamo analizzato riga per

Dettagli

I sistemi di numerazione

I sistemi di numerazione I sistemi di numerazione 01-INFORMAZIONE E SUA RAPPRESENTAZIONE Sia dato un insieme finito di caratteri distinti, che chiameremo alfabeto. Utilizzando anche ripetutamente caratteri di un alfabeto, si possono

Dettagli

esercizi Esercizi / problemi

esercizi Esercizi / problemi Sistemi informativi applicati (reti di calcolatori): esercizi 1 Esercizi / problemi 1. Creare un applicazione che calcoli la media aritmetica dei seguenti valori interi: 35, 117, 23 e ne visualizzi il

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,

Dettagli

Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2005-06 Secondo Compitino 17 Dicembre 2005

Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2005-06 Secondo Compitino 17 Dicembre 2005 Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2005-06 Secondo Compitino 17 Dicembre 2005 Si noti che le soluzioni ai quesiti saranno considerate

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio

Dettagli

Laboratorio di Sistemi Distribuiti Leonardo Mariani

Laboratorio di Sistemi Distribuiti Leonardo Mariani Laboratorio di Sistemi Distribuiti Leonardo Mariani ELECTION ALGORITHMS In molti sistemi distribuiti un processo deve agire da (o svolgere un ruolo particolare) per gli altri processi. Spesso non è importante

Dettagli

FLASHINVESTOR Manuale dell Utente

FLASHINVESTOR Manuale dell Utente FLASHINVESTOR Manuale dell Utente Questa breve guida ha lo scopo di aiutare l utente a prendere confidenza con il prodotto in modo da sfruttarne appieno tutte le potenzialità. Abbiamo cercato di realizzare

Dettagli

Soluzione dell esercizio del 12 Febbraio 2004

Soluzione dell esercizio del 12 Febbraio 2004 Soluzione dell esercizio del 12/2/2004 1 Soluzione dell esercizio del 12 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. 2. Modello concettuale

Dettagli

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica PROBLEMI E ALGORITMI Fondamenti di Informatica - D. Talia - UNICAL 1 Specifica di un algoritmo Primo approccio, scrittura diretta del programma: la soluzione coincide con la codifica

Dettagli

Telematica II 17. Esercitazione/Laboratorio 6

Telematica II 17. Esercitazione/Laboratorio 6 Multitasking e Multithreading Telematica II 17. Esercitazione/Laboratorio 6 Multitasking si riferisce all abilità di un computer di eseguire processi (jobs) multipli in maniera concorrente si ricorda che

Dettagli

Eclipse. Avviare un progetto e compilare un semplice programma

Eclipse. Avviare un progetto e compilare un semplice programma Eclipse Avviare un progetto e compilare un semplice programma Descrizione di Eclipse Eclipse è un ambiente di sviluppo che facilita la scrittura ed il debug di programmi java Permette di: Scrivere il codice

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Java Virtual Machine

Java Virtual Machine Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011 Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella. Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Prestazioni Si valutano in maniera diversa a seconda dell

Dettagli

MODULO 5 ACCESS Basi di dati. Lezione 4

MODULO 5 ACCESS Basi di dati. Lezione 4 MODULO 5 ACCESS Basi di dati Lezione 4 ARGOMENTI Lezione 4 Filtrare i dati Esempio 1 Query Cos è Creare Query in visualizza struttura Criteri di ricerca Esempio 2 Esempio 3 Esempio 4 Creare Query in creazione

Dettagli

Architettura MVC-2: i JavaBeans

Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

Introduzione a Classi e Oggetti

Introduzione a Classi e Oggetti Introduzione a Classi e Oggetti Oggetto: concetto astratto Entità di un programma dotata di tre proprietà caratteristiche stato informazioni conservate nell oggetto condizionano il comportamento dell oggetto

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

Ottava Esercitazione. introduzione ai thread java mutua esclusione

Ottava Esercitazione. introduzione ai thread java mutua esclusione Ottava Esercitazione introduzione ai thread java mutua esclusione Agenda Esempio 1 Concorrenza in Java: creazione ed attivazione di thread concorrenti. Esercizio 2 da svolgere Concorrenza in Java: sincronizzazione

Dettagli

Scheduling della CPU Simulazione in linguaggio Java

Scheduling della CPU Simulazione in linguaggio Java Scheduling della CPU Simulazione in linguaggio Java Realizzato da: Amelio Francesco 556/001699 Di Matteo Antonio 556/000067 Viola Antonio 556/000387 Progetto di Sistemi Operativi Docente Giancarlo Nota

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

Uso di base delle funzioni in Microsoft Excel

Uso di base delle funzioni in Microsoft Excel Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce

Dettagli

Spiegazione Open Interest Storico:

Spiegazione Open Interest Storico: Spiegazione Open Interest Storico: Ogni volta che viene scaricata la chain delle opzioni, tutti i dati ottenuti vengono memorizzati anche nel database storico, che comprende quindi sia i valori degli Open

Dettagli

Archivio CD. Fondamenti di Programmazione

Archivio CD. Fondamenti di Programmazione Archivio CD Una persona possiede un certo numero di CD musicali e desidera organizzare il proprio archivio tramite uno strumento software. Il programma deve permettere: - l inserimento di un nuovo CD nella

Dettagli

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Il presente esame scritto deve essere svolto in forma individuale in un tempo massimo di 60 minuti dalla sua

Dettagli

10 - Programmare con gli Array

10 - Programmare con gli Array 10 - Programmare con gli Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

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

Programmare in Java. Olga Scotti

Programmare in Java. Olga Scotti Programmare in Java Olga Scotti Linguaggi di programmazione linguaggio macchina assembler linguaggi ad alto livello Linguaggi ad alto livello istruzioni comprensibili linguaggio simile a quello naturale

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

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

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio QUEUE : considerazioni QUEUE : considerazioni Si è realizzata una struttura dati complessa utilizzandone una primitiva, l array. Il pregio di tale implementazione è il basso costo computazionale, mentre

Dettagli

Al giorno d oggi, i sistemi per la gestione di database

Al giorno d oggi, i sistemi per la gestione di database Introduzione Al giorno d oggi, i sistemi per la gestione di database implementano un linguaggio standard chiamato SQL (Structured Query Language). Fra le altre cose, il linguaggio SQL consente di prelevare,

Dettagli

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE La base del sistema decimale è 10 I simboli del sistema decimale sono: 0 1 2 3 4 5 6 7 8 9 Il sistema di numerazione decimale è un sistema posizionale. L aggettivo

Dettagli

Corso di Laurea in Matematica. Seminario C/C++ Lorenzo Dusty Costa. Università degli Studi di Milano Dipartimento di Matematica

Corso di Laurea in Matematica. Seminario C/C++ Lorenzo Dusty Costa. Università degli Studi di Milano Dipartimento di Matematica Corso di Laurea in Matematica Seminario C/C++ Costa Università degli Studi di Milano Dipartimento di Matematica 19 Ottobre 2011 Cos'é un'ide IDE = Integrated Development Environment Consiste in: Editor

Dettagli

Guida all uso di Java Diagrammi ER

Guida all uso di Java Diagrammi ER Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con

Dettagli

Processi in Linux. Igino Corona igino.corona@diee.unica.it. 20 Ottobre 2009

Processi in Linux. Igino Corona igino.corona@diee.unica.it. 20 Ottobre 2009 Sistemi Operativi Processi in Linux Igino Corona igino.corona@diee.unica.it 20 Ottobre 2009 Contenuti della lezione Come funzionano i programmi in Linux? Schema base di esecuzione di un programma Modalità

Dettagli

Introduzione JDBC interfaccia java.sql driver caricare i driver

Introduzione JDBC interfaccia java.sql driver caricare i driver J D B C DISPENSE Introduzione JDBC (Java Database Connectivity) è un interfaccia completamente Java utilizzata per eseguire istruzioni SQL sui database. L'API JDBC si trova nel pacchetto java.sql; contiene

Dettagli

ISTRUZIONI PER LA GESTIONE BUDGET

ISTRUZIONI PER LA GESTIONE BUDGET ISTRUZIONI PER LA GESTIONE BUDGET 1) OPERAZIONI PRELIMINARI PER LA GESTIONE BUDGET...1 2) INSERIMENTO E GESTIONE BUDGET PER LA PREVISIONE...4 3) STAMPA DIFFERENZE CAPITOLI/BUDGET.10 4) ANNULLAMENTO BUDGET

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Java Servlet Parte a versione 3.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per

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

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Scopo della lezione. Informatica. Informatica - def. 1. Informatica Scopo della lezione Informatica per le lauree triennali LEZIONE 1 - Che cos è l informatica Introdurre i concetti base della materia Definire le differenze tra hardware e software Individuare le applicazioni

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 10 Strutture collegate - 2 A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Strutture collegate - 2 1 Contenuti!Strutture

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Design Pattern: Storia Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Esercizi su. Funzioni

Esercizi su. Funzioni Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità

Dettagli

Le command line di Java

Le command line di Java Le command line di Java Esercitazioni di Programmazione 2 Novella Brugnolli brugnoll@science.unitn.it Ambiente di lavoro Per compilare ed eseguire un programma Java abbiamo bisogno di: The JavaTM 2 Platform,

Dettagli

Studente: SANTORO MC. Matricola : 528

Studente: SANTORO MC. Matricola : 528 CORSO di LAUREA in INFORMATICA Corso di CALCOLO NUMERICO a.a. 2004-05 Studente: SANTORO MC. Matricola : 528 PROGETTO PER L ESAME 1. Sviluppare una versione dell algoritmo di Gauss per sistemi con matrice

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

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere; Maschere e Query Le Maschere (1/2) Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere; Le maschere sono simili a moduli cartacei: ad ogni campo corrisponde un etichetta

Dettagli

SCHEDULATORI DI PROCESSO

SCHEDULATORI DI PROCESSO Indice 5 SCHEDULATORI DI PROCESSO...1 5.1 Schedulatore Round Robin...1 5.2 Schedulatore a priorità...2 5.2.1 Schedulatore a code multiple...3 5.3 Schedulatore Shortest Job First...3 i 5 SCHEDULATORI DI

Dettagli

Configurare TPTP in Eclipse e testare un applicazione

Configurare TPTP in Eclipse e testare un applicazione Configurare TPTP in Eclipse e testare un applicazione Questa guida concentra la sua attenzione sul tool TPTP (Test & Performance Tools Platform) presente nell ambiente di sviluppo Eclipse. Verrà descritta

Dettagli

Lezione 7 Sommatori e Moltiplicatori

Lezione 7 Sommatori e Moltiplicatori Architettura degli Elaboratori e delle Reti Lezione 7 Sommatori e Moltiplicatori Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 7 1/36 Sommario!

Dettagli

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione Il sistema di I/O Hardware di I/O Interfacce di I/O Software di I/O Introduzione 1 Sotto-sistema di I/O Insieme di metodi per controllare i dispositivi di I/O Obiettivo: Fornire ai processi utente un interfaccia

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

Lezione 4 Le code. Informatica. 26 Aprile 2016. Le pizze devono essere preparate e consegnate seguendo l ordine di arrivo degli ordini

Lezione 4 Le code. Informatica. 26 Aprile 2016. Le pizze devono essere preparate e consegnate seguendo l ordine di arrivo degli ordini Lezione 4 Le code Informatica 26 Aprile 2016 Bender il pizzaiolo robot Bender ha aperto una pizzeria da asporto con i suoi amici: Dr. Zoidberg risponde al telefono e riceve gli ordini Bender prepara le

Dettagli

Più processori uguale più velocità?

Più processori uguale più velocità? Più processori uguale più velocità? e un processore impiega per eseguire un programma un tempo T, un sistema formato da P processori dello stesso tipo esegue lo stesso programma in un tempo TP T / P? In

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1 IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche. Testo Esercizio Si consideri la realizzazione di un semplice programma grafico per il disegno di figure geometriche in due dimensioni. Si analizzino i requisiti e se ne rappresentino i risultati in UML

Dettagli

Utilizzo delle formule in Excel

Utilizzo delle formule in Excel Utilizzo delle formule in Excel Excel è dotato di un potente motore di calcolo che può essere utilizzato per elaborare i dati immessi dagli utenti. I calcoli sono definiti mediante formule. Ogni formula

Dettagli

I database relazionali (Access)

I database relazionali (Access) I database relazionali (Access) Filippo TROTTA 04/02/2013 1 Prof.Filippo TROTTA Definizioni Database Sistema di gestione di database (DBMS, Database Management System) Sistema di gestione di database relazionale

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

Sistemi Mobili e Wireless Android - Servizi

Sistemi Mobili e Wireless Android - Servizi Sistemi Mobili e Wireless Android - Servizi Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat stefano.burigat@uniud.it Servizi Un servizio è un componente

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica

Dettagli

3. La sintassi di Java

3. La sintassi di Java pag.9 3. La sintassi di Java 3.1 I tipi di dati statici In Java, come in Pascal, esistono tipi di dati statici predefiniti e sono i seguenti: byte 8 bit da -128 a 127 short 16 bit coincide con l integer

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Installazione SOFTWARE JDK ECLIPSE 03/03/2011 2 ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di

Dettagli

Alla scoperta della nuova interfaccia di Office 2010

Alla scoperta della nuova interfaccia di Office 2010 Alla scoperta della nuova interfaccia di Office 2010 Una delle novità più eclatanti della versione 2007 era la nuova interfaccia con la barra multifunzione. Office 2010 mantiene questa filosofia di interfaccia

Dettagli

Programmazione a Oggetti Lezione 10. Ereditarieta

Programmazione a Oggetti Lezione 10. Ereditarieta Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare

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