Giuseppe Fabio Fortugno.

Slides:



Advertisements
Presentazioni simili
INFORMATICA Altre Istruzioni di I/O
Advertisements

Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire.
1 Introduzione ai calcolatori Parte II Software di base.
Unità D2 Archivi e file.
Hard disk.
File System Cos’è un File System File e Directory
Installazione e Configurazione di un Sistema di Calcolo Distribuito operante sotto Linux INFN – Laboratori Nazionali Frascati Stage estivi 2006 Matteo.
Programmazione Procedurale in Linguaggio C++
Come programmare servizi di rete?
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 15 Maggio 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 9 Maggio 2012.
File.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Introduzione agli stream e alle classi
Remote file access sulla grid e metodi di interconnesione di rete M. Donatelli, A.Ghiselli e G.Mirabelli Infn-Grid network 24 maggio 2001.
Struttura dei sistemi operativi (panoramica)
File System NTFS 5.0 Disco: unità fisica di memorizzazione
I Thread.
INFORMATICA Altre Istruzioni di I/O. © Piero Demichelis 2 Funzioni di I/O Per la lettura e la scrittura da videoterminale il C prevede numerose istruzioni.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
HARD DISK Concetti di Base.
Shell: variabili di sistema PATH HOME USER PWD SHELL HOSTNAME … Per visualizzare il valore di tutte le variabili dambiente si usa il comando set.
Organizzazione della Memoria (Unix) Text contiene le istruzioni in linguaggio macchina del codice eseguibile, può essere condiviso in caso di processi.
A.A. 2010/2011Ambienti di Programmazione per il Software di Base1 (Es. – 6) Ambienti di Programmazione per il Software di Base Le Stringhe in C Input.
1 File System ed Input/Output UNIX Implementazione del File System Caratteristiche del File System Unix/Linux System Call relative al File System Linput/output.
Strutture di controllo in C -- Flow Chart --
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
I File.
4 Cosa è una rete? ã Punto di vista logico: sistema di dati ed utenti distribuito ã Punto di vista fisico: insieme di hardware, collegamenti, e protocolli.
Sistemi Operativi - Introduzione 1 Informazioni utili Per avere una distribuzione linux sul proprio pc: 1.
Corso di PHP.
Corso di Informatica per Giurisprudenza Lezione 7
WINDOWS XP PRIMI PASSI. Caratteristiche del sistema Le caratteristiche di base del PC (tipo e versione del sistema operativo installato, tipo e velocità
Sistemi Operativi – La shell Salvatore Campagna Politecnico di Torino Dipartimento di Automatica.
1 Installazione da rete Introduzione Configurazione del server NFS Cosa serve sul client Configurazione kickstart.
Inserire il CDROM CygWin nel lettore, aprite la directory cyg e lanciare in esecuzione (con un doppio click del pulsante sinistro del mouse sulla relativa.
Guida IIS 6 A cura di Nicola Del Re.
MODULO 01 Unità didattica 04
Modulo 1 - Concetti di base della Tecnologia dell'Informazione
La rete di istituto Maninder Bansal 5Bz Vital Ivo 5Bz Anno scolastico 2005/06.
Amministrazione della rete
Creazione progetto in C++/DEV
Configurazione in ambiente Windows Ing. A. Stile – Ing. L. Marchesano – 1/23.
1 Gestione dei File. 2 Perché i file? Sono strutture dati persistenti Sono solitamente memorizzati sui dischi –Si usano dall'interno dei programmi Realizzano.
Il linguaggio di programmazione C; Il Sistema Operativo Linux installato, con relativo utilizzo della shell bash attraverso i principali comandi standard.
Esercizi su File.
Amministrazione della rete: web server Apache
Installazione Come tecnico, si potrebbe aver necessità di effettuare una installazione pulita di un sistema operativo. L'esecuzione di una installazione.
MS-DOS è il sistema operativo, Come praticamente tutti i sistemi operativi per i computer del periodo, l'MS- DOS era un sistema operativo mono utente.
1 Il Sistema Operativo: Esempio n Le operazioni effettuate sembrano abbastanza semplici ma … n Provocano una serie di eventi in cui vengono coinvolte sia.
Calcolo della Subnet Mask e i protocolli SMB e NetBIOS
A cura di: Huber Roberto, Zaharulko Nicola, Debernardi Daniele.
Dischi in RAID  Redundant Array of Independent Disk Configurazione che permette di combinare più dischi secondo obiettivi di performance e ridondanza.
Formattazione, Partizioni e dischi
Esempio di un volume RAID-5
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 21 Maggio 2014.
Stage estivo di Informatica 2006 Studenti: Giorgio Cambie' Matteo Sciarra Tutor: Giuseppe Fabio Fortugno.
Operatori di incremento e decremento
Corso di Laboratorio primo modulo Introduzione all'uso di un sistema operativo. Introduzione all'uso della shell (bash). Java – –Introduzione – –Tipi di.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Esempi di Sistemi Operativi: DOS Nel file system di DOS i path names hanno la seguente forma C:\TEMP\DirA\DirB\elab.pdf Si utilizzano due nomi speciali.
Esercizi.
Il C `e un linguaggio di programmazione di uso generale, originariamente sviluppato per la scrittura del sistema operativo Unix, ed oggi disponibile su.
Il computer RAM: Unità di misura MByte e GByte MHz Processore: Unità di misura Singolo o multiprocessore 32/64 bit velocità GHz Mouse tastiera video stampante.
Compitino di Sistemi Operativi corsi A -C 19 Maggio 2003.
Transcript della presentazione:

Giuseppe Fabio Fortugno. Stage di Informatica 2008 Studenti: Edoardo De Simone, Enzo Ricci, Tutor: Giuseppe Fabio Fortugno.

Percorso: Struttura, metodi di gestione e configurazione dei dischi rigidi; 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.

Obiettivo: Testing dell’efficienza di una rete composta da 5 macchine collegate tra loro, analizzando la velocità di trasferimento dei dati tramite operazioni di lettura e scrittura. lxmaster01 Gigabit Ethernet switch cisco catalyst 6000 Fast Ethernet fullduplex lxmaster02 lxmaster03 lxmaster04 lxmaster05

I dischi rigidi... 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.

I dischi rigidi... 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 un’area che punta a blocchi contenente il file(indirizzament singolo) Nell'indirizzamento doppio l’I-NODE punta a dei blocchi e a loro volta puntano altri blocchi che conterranno il file.

Il SO Linux... 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; Suddivisione del disco tra i seguenti file system: root, boot, home, swap; Configurazione rete ethernet; 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

La shell bash di Linux... 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

Il protocollo NFS(Network File System)... Il Network File System è un protocollo sviluppato inizialmente da Sun Microsystems nel 1984. 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

Il protocollo NFS(Network File System)... 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.

Programma esercitativo... #include <stdio.h> 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==10 | x==32)&&(y==10 | y==32))‏ printf("\n i caratteri sono: %d \n ", l); printf("le parole sono: %d \n ", p); printf("le righe sono: %d \n ", r); Questo programma è stato l’introduzione 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

Programma di scrittura... #include<stdio.h> #include <time.h> #include <unistd.h> #include <stdlib.h> int main(int argc,char *argv[])‏ { FILE *pf; int c; int sizeb,sizef; char lett[131072]; #define BILLION 1000000000L; 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 131072 \n"); exit(-1); } if (argc<2)‏ printf("\n Inserire dal prompt il nome del file \n"); for (c=0;c<argc;c++)‏ printf("\n parametro %d : %s \n",c , argv[c]); pf=fopen(argv[1],"w"); if (pf==NULL)‏ { printf("\n il file non e' stato aperto \n"); exit(-1); } else printf("\n file aperto con successo \n"); for (c=0;c<131072;c++)‏ lett[c]='a'; if( clock_gettime( CLOCK_REALTIME, &start) == -1 ) { perror( "clock gettime" ); return EXIT_FAILURE; for(c=0;c<sizef;c=c+sizeb)‏ fwrite(&lett,sizeb,1,pf); fclose(pf); if( clock_gettime( CLOCK_REALTIME, &stop) == -1 ) { accum = ( stop.tv_sec - start.tv_sec )‏ + (double)( stop.tv_nsec - start.tv_nsec )‏ / (double)BILLION; printf("\n file scritto con successo \n"); printf("\n tempo impiegato = %lf\n", accum);

Programma di lettura... #include<stdio.h> #include <time.h> #include <unistd.h> #include <stdlib.h> int main(int argc,char *argv[])‏ { FILE *pf; int c; int sizeb,sizef; char lett[131072]; struct timespec start, stop; #define BILLION 1000000000L; 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;c<argc;c++)‏ printf("\n parametro %d : %s \n",c , argv[c]); pf=fopen(argv[1],"r"); if (pf==NULL)‏ printf("\n il file non e' stato aperto \n"); else printf("\n file aperto con successo \n"); fseek(pf,0, SEEK_END ); dim=ftell(pf); if ((sizeb>dim)||(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<sizef;c=c+sizeb)‏ fread(&lett,sizeb,1,pf); fclose(pf); if( clock_gettime( CLOCK_REALTIME, &stop) == -1 ) { accum = ( stop.tv_sec - start.tv_sec )‏ + (double)( stop.tv_nsec - start.tv_nsec )‏ / (double)BILLION; printf("\n lettura effettuata "); printf("\n tempo impiegato = %lf\n", accum);

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

2 CLIENTS 3 CLIENTS

Rappresentazione grafica...

Rappresentazione grafica...

Rappresentazione grafica...

Considerazioni... 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 131072 per la lettura Con 3 client:2048 per la scrittura e 131072 per la lettura Non è stato possibile raccogliere dati con 4 macchine in quanto una ha presentato problemi hardware durante l’esercitazione.

Grazie a tutti per la cortese attenzione !!