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

Slides:



Advertisements
Presentazioni simili
C C++ &.
Advertisements

INFORMATICA Altre Istruzioni di I/O
Funzioni e procedure Ogni linguaggio di programmazione ad alto livello mette a disposizione del programmatore questi strumenti, ed il C non è da meno!
1 Introduzione ai calcolatori Parte II Software di base.
Code::Blocks Ambiente di sviluppo.
Code::Blocks Ambiente di sviluppo.
Introduzione alla programmazione A. Ferrari. Il linguaggio C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede.
I file system.
Introduzione a Linux Dr. Giovanni Stracquadnio
Installazione e Configurazione di un Sistema di Calcolo Distribuito operante sotto Linux INFN – Laboratori Nazionali Frascati Stage estivi 2006 Matteo.
Giuseppe Fabio Fortugno.
Come programmare servizi di rete?
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
FONDAMENTI DI INFORMATICA
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.
Remote file access sulla grid e metodi di interconnesione di rete M. Donatelli, A.Ghiselli e G.Mirabelli Infn-Grid network 24 maggio 2001.
Laboratorio 1: Usare Linux. File system Il file system è la componente del sistema operativo che si occupa della gestione di file e cartelle Con laccount.
Struttura dei sistemi operativi (panoramica)
File System NTFS 5.0 Disco: unità fisica di memorizzazione
I Thread.
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
Linguaggi di programmazione
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.
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
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.
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.
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 Il sistema operativo UNIX Dettagli e comandi avanzati Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Sistemi Operativi - Introduzione 1 Informazioni utili Per avere una distribuzione linux sul proprio pc: 1.
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.
Guida IIS 6 A cura di Nicola Del Re.
Modulo 1 - Concetti di base della Tecnologia dell'Informazione
SOFTWARE DI BASE Jacopo Caretti.
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 Sistema Operativo (1)
Lezione 1 Approccio al sistema operativo : la distribuzione Knoppix Live Cd Knoppix 3.6 Interfacce a caratteri e grafica: console e windows manager File.
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.
A cura di: Huber Roberto, Zaharulko Nicola, Debernardi Daniele.
Autori:  Gazzola Alex  Cassol Simone  Kawkab Wassim Data: 14/04/2014 Classe: 3° INF.
Il Sistema Operativo Il Sistema Operativo è costituito dall’insieme dei programmi necessari per far funzionare tutto l’hardware del calcolatore e per nascondere.
1 Il file system di Unix Caratteristiche generali dei FS comunemente usati da Unix/Linux.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
1 Il file system di Unix Caratteristiche generali dei FS comunemente usati da Unix/Linux.
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.
Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 1 Lezione 13 e 14 GESTIONE DEI FILE A) Nozioni sulla gestione dei.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Stage estivo di Informatica 2006 Studenti: Giorgio Cambie' Matteo Sciarra Tutor: Giuseppe Fabio Fortugno.
1 Sommario degli argomenti  Sistemi operativi: DOS, Unix/Linux,Windows  Word processors: Word  Fogli elettronici: Excel  Reti: TCP/IP, Internet, ftp,
Basi di Unix: introduzione Kernel il fulcro del sistema. Comunica con l’hardware (processore, memoria, disco fisso) Shell interfaccia tra l’utente e il.
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.
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.
Revisione 1.1 del 10 aprile 2003 Introduzione all’utilizzo del laboratorio di Informatica Sergio Andreozzi Corso di Laurea.
Il sistema operativo UNIX Presentazione realizzata da: Deri Claudio,Granata Luca,Brunetti Enrico.
ISIA Duca degli Abruzzi a.s. 2010/2011 prof. Antonella Schiavon
I Sistemi Operativi. Definizione Per Sistemi Operativi (di seguito SO) si intendono quei pacchetti software, a loro volta costituiti da più sottoprogrammi.
Il C `e un linguaggio di programmazione di uso generale, originariamente sviluppato per la scrittura del sistema operativo Unix, ed oggi disponibile su.
I sistemi operativi Funzioni principali e caratteristiche.
 Negli anni 40 i sistemi operativi non esistevano, i programmatori infatti avevano un accesso diretto alle risorse hardware.  Il primo sviluppo dei.
Transcript della presentazione:

Il linguaggio di programmazione C; Il Sistema Operativo Linux 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 512 MB su un hard disk remoto; Test di velocità di NFS riguardo la creazione e la lettura di file in un hard disk remoto.

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

Il linguaggio C è il linguaggio che abbiamo utilizzato per creare programmi mirati al raggiungimento dellObiettivo preposto. Venne progettato da Brian W.Kernighan e da Dennis M.Ritchie nei Bell Laboratories intorno al 1972 e divenne inizialmente famoso come linguaggio di sviluppo di UNIX. E proprio grazie alla sua flessibilità che tali programmatori lo utilizzarono per la scrittura della maggior parte delle funzioni che compongono il kernel del SO stesso, anche se ultimamente in cooperazione con la sua evoluzione detta C++ per i SO di ultima generazione. Si può definire come un linguaggio di medio livello, potente quasi come un linguaggio macchina(es. assembly)però molto meno complesso e più accessibile al programmatore. Per la progettazione di programmi in C, inoltre, si possono utilizzare editor testuali semplici come vi (già implementato in UNIX) oppure grafici come Kate o un semplice note-pad in qualsiasi SO. Per eventuali errori di tipo sintattico infine si può ricorrere ad un semplice compilatore C.

Il tipo di distribuzione Linux installata è la versione SUSE Enterprise Server 9. PRINCIPALI PROCEDURE DI INSTALLAZIONE: Partizionamento del disco di ognuna delle 5 macchine in unarea di 5GB dedicata al sistema operativo utilizzando un File System di tipo ext3 e in unarea relativamente piccola (256MB) dedicata allo swapping, che tra laltro Linux utilizza raramente; Partizionamento del disco di ognuna delle 5 macchine in unarea di 5GB dedicata al sistema operativo utilizzando un File System di tipo ext3 e in unarea relativamente piccola (256MB) dedicata allo swapping, che tra laltro Linux utilizza raramente; Settaggio delle impostazioni varie,quali Keyboard Language, Time Zone, System Language, Boot loader (di tipo GRUB o LILO); Settaggio delle impostazioni varie,quali Keyboard Language, Time Zone, System Language, Boot loader (di tipo GRUB o LILO); Impostazioni relative alla registrazione degli accounts root e user con le relative passwords; Impostazioni relative alla registrazione degli accounts root e user con le relative passwords; Scelta delle home directory dei vari utenti. Scelta delle home directory dei vari utenti.

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; cd.. : sale al livello precedente nella struttura gerarchica del file system; 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.

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. 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.

#include int main (int argc, char *argv[]) { FILE *wp; int blank=0; int car=0; char a=' '; int words=0; int cont=0; if(argc!=2) {printf("\nSintax error! - Correct sintax: counter filename \n\n"); exit(-1); } wp=(fopen(argv[1], "w")); while(a) { if(a==EOF) {if((car==0)&&(blank==0)&&(words==0)) printf("\n\nEmpty file...\n\n"); printf("\n\n#Characters are: %d \n\n",car); printf("\n\n# Blanks are: %d \n\n",blank); printf("\n\n#Words are: %d \n\n",words); exit(-1); } fputc(a=getchar(),wp); if((a!=' ')&&(a!=EOF)&&(a!='\n')) { car++; cont++; } if(a==' ') blank++; if(((a==' ')||(a=='\n')||(a==EOF))&&(cont!=0)) { cont=0; words++; } Questo programma è stato per così dire lintroduzione al linguaggio C e al suo utilizzo. Una semplice funzione che calcola il numero di parole,di blank e di caratteri presenti in un testo scritto in un file creato al momento dellesecuzione.

#include #include #define SIZE #define SIZE int main(int argc, char *argv[]) {if((argc!=3)||(atoi(argv[2])>SIZE1)){if(argc!=3) printf("\n\nWrong Sintax ! Correct Sintax: fcreate OutputFile BlockSize\n\n"); printf("\n\nWrong Sintax ! Correct Sintax: fcreate OutputFile BlockSize\n\n");if(atoi(argv[2])>SIZE1) printf("\n\nBlockSize too long. It must be <= %d\n\n",SIZE1); printf("\n\nBlockSize too long. It must be <= %d\n\n",SIZE1);exit(-1);} FILE *wp; char buffer[SIZE1]; char *bp; bp=&buffer[0]; int conv=atoi(argv[2]); int i=0,count,j=0; for(i=0; i<SIZE1; i++) buffer[i]='#'; buffer[i]='#'; int cicle=(SIZE/conv); wp=fopen(argv[1], "w"); for(i=0;i<cicle;i++) fwrite(bp,1,conv,wp); fwrite(bp,1,conv,wp); printf("\n\nWriting completed\n\n"); close(wp);}

#include #include #define SIZE #define SIZE int main(int argc, char *argv[]) { int n=10,i=0; char car='#'; if((argc!=3)||(atoi(argv[2])>SIZE1)){ if(argc!=3) if(argc!=3) printf("\n\nWrong Sintax ! Correct Sintax: fread InputFile BlockSize\n\n"); printf("\n\nWrong Sintax ! Correct Sintax: fread InputFile BlockSize\n\n"); if(atoi(argv[2])>SIZE1) if(atoi(argv[2])>SIZE1) printf("\n\nBlockSize too long. It must be <= %d\n\n",SIZE1); printf("\n\nBlockSize too long. It must be <= %d\n\n",SIZE1); exit(-1); exit(-1); } FILE *wp; char buffer[SIZE1]; char *bp; bp=&buffer[0]; int bdim=atoi(argv[2]); wp=fopen(argv[1], "r"); while(n>0) {n=fread(bp,1,bdim,wp); i++;} printf("\n\n %d Reading completed...\n\n",i); close (wp); }

Test di velocità in scrittura su disco remoto con variazione di Block Size e n° di macchine. 1 client 2 clients BLOCK SIZE (byte) TIME (sec.) VELOCITA' (MB/sec) 6425,87719, ,83019, ,43819, ,73619, ,12119, ,85319, ,26018, ,47519, ,46819, ,08919, ,91619,760 BLOCK SIZE (byte) TIME 1 (sec) TIME 2 (sec) VELOCITA' MEDIA (MB/sec) 64247,904249,8142, ,69192,0152, ,825209,5252, ,727253,22, ,938178,752, ,343274,4391,87

3 clients BLOCK SIZE (byte) TIME 1 (sec) TIME 2 (sec) TIME 3 (sec) VELOCITA' MEDIA (MB/sec) ,911115, ,4420, , , ,7620, , ,521130,5560, , , ,1950, , ,781130,3110, , , ,6270,45 4 clients BLOCK SIZE (byte) TIME 1 (sec) TIME 2 (sec) TIME 3 (sec) TIME 4 (sec) VELOCITA' MEDIA (MB/sec) , , , ,1310, , , ,291161,7710, , , ,661136,2590,45

Come si è notato dalle tabelle e dai grafici relativi alle misurazioni effettuate, il Network File System v3 presenta un miglioramento rispetto alle versioni precedenti, per quanto riguarda la velocità di trasferimento in scrittura, che risulta essere costante anche al variare della dimensione del pacchetto di dati inviato (Block Size). Se da un lato però la situazione risulta essere migliore sotto questo punto di vista, dallaltro cè da dire che aumentando i client in rete si verifica un crollo delle prestazioni con un abbassamento drastico della velocità.

Test di velocità in scrittura e in lettura su disco remoto con valore di Block Size fisso (65536 byte) e variazione del n° di threads e n° di macchine. Threads Macchine VELOCITA' (MB/sec) 120,0519,5319,7118,7819,1818,5219,74 20,330,350,510,630,622,994,30 3***0,44*2,612,50 4*****0,560,46 Ciclo di scrittura … Ciclo di lettura … Threads Macchine VELOCITA' (MB/sec) 112,0912,9012,7813,4813,9214,3913,58 27,889,267,457,538,265,395,45 38,688,585,878,268,278,198,39 46,566,326,766,706,156,506,34

Lasciando invariato, invece, il Block Size ad un valore definito (nel nostro caso byte) e modificando il numero di threads, si ottengono due risultati diversi per quanto riguarda la scrittura e la lettura. Mentre nel primo caso allaumentare dei threads, la velocità aumenta visibilmente ad eccezione della rete con un solo client, nel secondo,la velocità di trasferimento si mantiene pressoché costante.