Stage estivo di Informatica 2006 Studenti: Giorgio Cambie' Matteo Sciarra Tutor: Giuseppe Fabio Fortugno.

Slides:



Advertisements
Presentazioni simili
Come scegliere un computer?
Advertisements

INFORMATICA Altre Istruzioni di I/O
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A Gestione dei file Ing. Simona Colucci.
Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire.
Introduzione al linguaggio C
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Database MySql.
Selezione - approfondimento
PHP.
Progetto e sviluppo di un tool di sincronizzazione personalizzato tra un server database e un palmare Relatore prof. Sonia Bergamaschi CorrelatoreCandidato.
Introduzione al linguaggio C
Le funzioni.
IL NOSTRO LABORATORIO. Di INFORMATICA..
Giuseppe Fabio Fortugno.
La ricorsione Simulazione. Il Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n:
Come programmare servizi di rete?
FUNZIONI DI BIBLIOTECA
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
Introduzione al linguaggio Java
Gestione dei dischi RAID
Corso di Informatica per Giurisprudenza
I Thread.
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
Organizzazione della Memoria (Unix) Text contiene le istruzioni in linguaggio macchina del codice eseguibile, può essere condiviso in caso di processi.
Strutture di controllo nel C
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
1 Gestione dei File Corso di Informatica A Vito Perrone.
File di testo, file binari
I File.
GESTIONE DEI FILE Per poter mantenere disponibili i dati tra le diverse esecuzioni di un programma (persi-stenza dei dati) è necessario poterli archi-viare.
Michele Michelotto INFN-Padova
Calcolo del Massimo Comun Divisore
Relatore: Prof. Carla VACCHI Correlatore: Ing. Daniele SCARPA
Il computer: struttura fisica e struttura logica
La rete di istituto Maninder Bansal 5Bz Vital Ivo 5Bz Anno scolastico 2005/06.
Creazione progetto in C++/DEV
Il linguaggio di programmazione C; Il Sistema Operativo Linux installato, con relativo utilizzo della shell bash attraverso i principali comandi standard.
Unità Didattica 3 Linguaggio C
Sistemi e Tecnologie Informatiche
Esercizi su File.
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
C14 #5 I cicli FOR e WHILE Piero Scotto - C14.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Anno accademico Le istruzioni di controllo in C.
ALGORITMI Un algoritmo è un insieme di istruzioni: -ordinate -non ambigue -effettivamente computabili.
QMAN Queue Manager Documentazione Commerciale Presentazione prodotti.
#include void main() { int a,b,c,; float s, x,x1,x2,delta,alfa,beta; int num[3]; int i; printf("La forma classica dell'equazione di 2° grado è: a*x^2+b*x+c=0\n.
Programmazione Web PHP e MySQL 1. 2Programmazione Web - PHP e MySQL Esempio: un blog.
Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 1 Lezione 13 e 14 GESTIONE DEI FILE A) Nozioni sulla gestione dei.
1 Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( ) Laboratorio di programmazione Lezione 13 e 14 -
CORSO DI PROGRAMMAZIONE II
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
1 Chiamate di sistema Introduzione Errori : perror() Chiamate che lavorano su file.
Operatori di incremento e decremento
Scrivere e compilare programmi
Revisione 1.1 del 10 aprile 2003 Introduzione all’utilizzo del laboratorio di Informatica Sergio Andreozzi Corso di Laurea.
Laboratorio di Linguaggi... altre D O M A N D E ! Marco Tarini Università dell’Insubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 1 Lezione 15 e 16 Programmazione strutturata A) progettazione del.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (III)
Capitolo 14 Diapositiva 1 Linguaggio C – Guida alla programmazione 2/ed – A. Bellini, A. Guidi Copyright © The McGraw-Hill Companies srl Archiviare.
Il C `e un linguaggio di programmazione di uso generale, originariamente sviluppato per la scrittura del sistema operativo Unix, ed oggi disponibile su.
0 Laboratorio Informatica - SAS – Anno Accademico LIUC Alcune indicazioni Dettaglio lezioni: Prima : Michele Gnecchi – Introduzione a SAS Guide.
Conio.h contiene la dichiarazione di funzioni usate per richiamare alcune routine DOS di gestione del video e della tastiera. NECESSARIA PER system(‘’cls’’)
Appunti su formati numerici. Tipi numerici Il C dispone di due tipi numerici: tipi interi e tipi reali; I tipi reali sono anche detti floating, ovvero.
1 Le macchine di questo pool fanno parte di una lan privata (la 125 illustrata a pag.2), di cui t2cmcondor è il gateway. Sono presenti 3 macchine su rete.
Compitino di Sistemi Operativi corsi A -C 19 Maggio 2003.
Transcript della presentazione:

Stage estivo di Informatica 2006 Studenti: Giorgio Cambie' Matteo Sciarra Tutor: Giuseppe Fabio Fortugno

Obiettivo del corso  Misurare i tempi di elaborazione di un set di dati allo scopo di ottimizzare le operazioni di lettura e scrittura in locale e via rete ad alta velocita'

Descrizione dell'apparato utilizzato Il server utilizzato nell'esperimento e' un IBM X Series modello 335 dotato di due dischi SCSI in modalita' raid 0 con interfaccia di rete Ethernet Gigabit. I client utilizzati sono IBM X Series modello 335 con interfaccia di rete Fast Ethernet. Lo switch di rete e' un CISCO Catalyst modello 4506.

Descrizione del linguaggio C Il linguaggio C e' un linguaggio di medio livello che ha sostituito l'Assembler da molti anni. Esso consente un controllo del terminale molto piu' profondo di qualsiasi altro linguaggio di programmazione. E' perfettamente integrato in Unix. E' in grado di far comunicare processi locali e remoti tra di loro. Inoltre, consente un accesso in profondita' nel nucleo di Unix permettendo un altissimo controllo sul sistema operativo.

Tabelle

Lettura in Locale Scrittura in Locale

Tempo reale in Rete Tempo reale in Locale

File sorgente #include main (int argc,char *argv[]) { int ii=0,a,i,buf,v[32768]; float t=0.0, t1=0.0, t2=0.0; int *adv; int fp; unsigned n; adv=&v[0]; t=CLOCKS_PER_SEC; ========> #include main (int argc,char *argv[]) { int ii=0,a,i,buf,v[32768]; float t=0.0, t1=0.0, t2=0.0; int *adv; int fp; unsigned n; adv=&v[0]; t=CLOCKS_PER_SEC; ========>

if(argc==2){ buf=atoi(argv[1]); if(buf==512|| buf==1024|| buf==2048 || buf==4096||buf==8192|| buf==16384|| buf==32768)ii=1; } for (i=0; i<32768; i++) v[i]=random(); while(ii==0) { printf("\n Inserisci il valore del blocksize = "); scanf ("%i", &buf); switch (buf) { case 512: ii=1; break; case 1024: ii=1; break;========> if(argc==2){ buf=atoi(argv[1]); if(buf==512|| buf==1024|| buf==2048 || buf==4096||buf==8192|| buf==16384|| buf==32768)ii=1; } for (i=0; i<32768; i++) v[i]=random(); while(ii==0) { printf("\n Inserisci il valore del blocksize = "); scanf ("%i", &buf); switch (buf) { case 512: ii=1; break; case 1024: ii=1; break;========>

case 2048: ii=1; break; case 4096: ii=1; break; case 8192: ii=1; break; case 16384: ii=1; break; case 32768: ii=1; break; default: printf("\n Valori ammessi: "); break; } ========> case 2048: ii=1; break; case 4096: ii=1; break; case 8192: ii=1; break; case 16384: ii=1; break; case 32768: ii=1; break; default: printf("\n Valori ammessi: "); break; } ========>

fp=creat("uscita_mg",O_CREAT | S_IRWXU); t1=clock()/t; for (i=0; i<(512*1024*1024)/buf; i++) { n=write (fp,adv,buf); if(n!=buf)printf("\n Errore di scrittura del file \n"); } close(fp); t2=clock()/t-t1; printf("\n\n Il tempo necessario a scrivere 500 MB di numeri random e'= %9.5f \n",t2); fp=open ("uscita_mg",O_RDONLY); t1=clock()/t; ========> fp=creat("uscita_mg",O_CREAT | S_IRWXU); t1=clock()/t; for (i=0; i<(512*1024*1024)/buf; i++) { n=write (fp,adv,buf); if(n!=buf)printf("\n Errore di scrittura del file \n"); } close(fp); t2=clock()/t-t1; printf("\n\n Il tempo necessario a scrivere 500 MB di numeri random e'= %9.5f \n",t2); fp=open ("uscita_mg",O_RDONLY); t1=clock()/t; ========>

for (i=0; i<(512*1024*1024)/buf; i++) { n=read(fp,adv,buf); if(n!=buf)printf("\n Errore di lettura %d byte letti \n",n); } close(fp); t2=clock()/t-t1; printf("\n\n Il tempo necessario a leggere un file di 500 MB di numeri random e'= %9.5f \n",t2); exit (0); } for (i=0; i<(512*1024*1024)/buf; i++) { n=read(fp,adv,buf); if(n!=buf)printf("\n Errore di lettura %d byte letti \n",n); } close(fp); t2=clock()/t-t1; printf("\n\n Il tempo necessario a leggere un file di 500 MB di numeri random e'= %9.5f \n",t2); exit (0); }

Conclusioni Scrivendo e leggendo in locale, maggiore e' il blocksize e minore e' il tempo impiegato dalla macchina. Confrontando il valore dei tempi effettivamente impiegati dalla macchina per compiere il lavoro, tra Locale e Remoto il Locale e' piu' veloce, raggiungendo la massima velocita' rispettivamente a 8192kb e 2148kb. Tuttavia un blocksize di 8192kb e' ottimo per entrambi i sistemi. Infine, quando sono piu' macchine a scrivere simultaneamente sulla stessa macchina ricevente il blocksize migliore e' di 512kb.

GRAZIE PER L'ATTENZIONE !