La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Il linguaggio di programmazione C; Il Sistema Operativo Linux-Fedora installato, con relativo utilizzo della shell bash attraverso i principali comandi.

Presentazioni simili


Presentazione sul tema: "Il linguaggio di programmazione C; Il Sistema Operativo Linux-Fedora installato, con relativo utilizzo della shell bash attraverso i principali comandi."— Transcript della presentazione:

1

2 Il linguaggio di programmazione C; Il Sistema Operativo Linux-Fedora installato, con relativo utilizzo della shell bash attraverso i principali comandi standard UNIX; Il protocollo NFS (Network File System); Sviluppo di programmi in C per la scrittura e la lettura di file da 256 MB su un hard disk remoto; Test di velocità di NFS riguardo la scrittura e la lettura di file in un hard disk remoto. Struttura, metodi di gestione e configurazione dei dischi rigidi;

3 Testing dellefficienza di una rete composta da 5 macchine collegate tra loro, analizzando la velocità di trasferimento dei dati tramite operazioni di lettura e scrittura. lxmaster01 lxmaster02lxmaster03lxmaster04lxmaster05 switch cisco catalyst 6000 Gigabit Ethernet Fast Ethernet fullduplex

4 Dischi: Un disco è una memoria su cui è possibile eseguire le operazioni di lettura scrittura e spostamento Il disco è suddiviso in tracce e settori; un insieme di settori è chiamato cluster. Conf. Dischi: mirror :scrive su 2 dischi gli stessi dati metodo lento ma più sicuro; stripped:ogni disco contiene meta' dell'informazione, metodo più veloce in lettura e scrittura ma in caso di rottura di un disco si perdono tutti i dati; Raid 5:le informazioni sono suddivise in n-1 dischi e l'n disco contiene i bit di parità quindi in caso di rottura di un solo disco, dopo la sostituzione, attraverso il disco di parita e' possibile ricostruire tutti i file.

5 File system: vengono creati durante la formattazione logica di un disco e sono composti da un insieme di moduli che permettono la scrittura e la lettura di un disco. Il file system di Windows è il FAT 16,24,32 a seconda della quantità di bit da cui è costituito, Unix-Linux invece utilizza principalmente EXT3 che utilizza la tecnologia I-NODE che contiene un area di dati del file e unarea che punta a blocchi contenente il file(indirizzament singolo) Nell'indirizzamento doppio lI-NODE punta a dei blocchi e a loro volta puntano altri blocchi che conterranno il file.

6 Il tipo di distribuzione Linux installata è la versione Fedora 8. PRINCIPALI PROCEDURE DI INSTALLAZIONE: Configurazione degli hard disk in stripe mode, in modo da ridurre i tempi di lettura e scrittura, ma perdendo garanzia sulla sicurezza dei dati; Configurazione degli hard disk in stripe mode, in modo da ridurre i tempi di lettura e scrittura, ma perdendo garanzia sulla sicurezza dei dati; Suddivisione del disco tra i seguenti file system: root, boot, home, swap; Suddivisione del disco tra i seguenti file system: root, boot, home, swap; Configurazione rete ethernet; Configurazione rete ethernet; Scelta e installazione dei pacchetti aggiuntivi del sistema operativo; Scelta e installazione dei pacchetti aggiuntivi del sistema operativo; non e' stato possibile installare l'ultima versione di Fedora (Fedora 9), perche' essendo stata rilasciata alla fine di maggio presentava al suo avvio diversi bug

7 La shell è uno dei livelli che compongono i sistemi operativi UNIX. Esegue la read (o lettura) di una linea di comando dallo standard input e la interpreta secondo uno schema di regole prefissato. In pratica rende comprensibili alla macchina i comandi che le vengono inviati. PRINCIPALI COMANDI DELLA SHELL: ls: visualizza il contenuto di una directory; cd: cambia la directory di lavoro; mkdir: crea una nuova directory; touch: crea un nuovo file; rm: cancellazione di un file; chmod: cambia i diritti di lettura,scrittura ed eseguibilità di un file; more: visualizza il contenuto di un file; su: cambia utenza; ps: visualizza i nomi dei processi in esecuzione in una data shell; reboot: riavvio del sistema; ssh: prende il controllo di una macchina remota collegata in rete; find: ricerca di un file nel sistema. vi nomeprog: apre l'editor vi per scrivere programmi in linguaggio C

8 Il Network File System è un protocollo sviluppato inizialmente da Sun Microsystems nel L'NFS è un file system che consente ai computer di utilizzare la rete per accedere ai dischi remoti come fossero dischi locali. NFS è spesso associato a sistemi Unix, sebbene spesso sia utilizzato anche da macchine utilizzanti i sistemi operativi Macintosh e Microsoft Windows. NFS permette ad n calcolatori che compongono un sistema distribuito di condividere file, directory od un intero file system utilizzando il protocollo client-server

9 Un calcolatore (client) deve richiedere esplicitamente ad un altro calcolatore (server) del sistema distribuito di condividere una directory o un file, dichiarando un punto di montaggio. Una volta effettuato un montaggio un utente sul calcolatore client accede alla directory montata in modo assolutamente trasparente, ossia accede alla directory remota credendo di accedere ad una directory locale. NFS si può pensare inoltre come uno strato superiore del famoso protocollo TCP/IP.

10 Questo programma è stato lintroduzione al linguaggio C e al suo utilizzo. E' una semplice funzione che calcola il numero di caratteri, parole, righe presenti da un flusso di input #include main() { int p,r,l,x,y; p=0; l=0; r=1; x=0; y=x; x=getchar(); while (x==10 | x==32) { l=l+1; if (x==32) r=r+1; x= getchar(); } if (x!=EOF) { p=p+1; while (x!=EOF) { if (x!=EOF) { if (!(x==10 | x==32)&&(y==10 | y==32)) p=p+1; l=l+1; if (x==32) r=r+1; } y=x; x=getchar(); } printf("\n i caratteri sono: %d \n ", l); printf("le parole sono: %d \n ", p); printf("le righe sono: %d \n ", r); }

11 #include int main(int argc,char *argv[]) { FILE *pf; int c; int sizeb,sizef; char lett[131072]; #define BILLION L; struct timespec start, stop; double accum; sizeb=atoi(argv[2]); sizef=atoi(argv[3]); if (sizeb>131072) { printf("\n Inserire una dim. max. cluster di \n"); exit(-1); } if (argc<2) { printf("\n Inserire dal prompt il nome del file \n"); } for (c=0;c

12 #include int main(int argc,char *argv[]) { FILE *pf; int c; int sizeb,sizef; char lett[131072]; struct timespec start, stop; #define BILLION L; double accum; sizeb=atoi(argv[2]); sizef=atoi(argv[3]); int dim; if (argc<2) { printf("\n Inserire dal prompt il nome del file \n"); exit(-1); } for (c=0;cdim)||(sizef>dim)||(sizeb<=0)||(sizef<=0)) { printf("\n Inserire una dim. max di %d e maggiore di 0 \n",dim); exit(-1); } else fseek(pf,0,SEEK_SET); if( clock_gettime( CLOCK_REALTIME, &start) == -1 ) { perror( "clock gettime" ); return EXIT_FAILURE; } for(c=0;c

13 Test di velocità in scrittura e lettura su disco remoto con variazione di Block Size e numero di macchine. 1 CLIENT

14 2 CLIENTS 3 CLIENTS

15

16

17

18 Analizzando i dati delle tabelle si nota che la lettura tende ad aumentare di velocità con l aumentare del block size mentre la scrittura aumenta di velocità fino a raggiungere un valore di picco e poi tende a rallentare. Quindi sfruttando i dati raccolti si potranno ottimizzare le operazioni di lettura e scrittura da 1 a 3 macchine con un disco in remoto impostando il block size che massimizza tali operazioni Block size scelti: Con 1 client:16384 per la scrittura e 2048 per la lettura Con 2 client:32768 per la scrittura e per la lettura Con 3 client:2048 per la scrittura e per la lettura Non è stato possibile raccogliere dati con 4 macchine in quanto una ha presentato problemi hardware durante lesercitazione.

19


Scaricare ppt "Il linguaggio di programmazione C; Il Sistema Operativo Linux-Fedora installato, con relativo utilizzo della shell bash attraverso i principali comandi."

Presentazioni simili


Annunci Google