mercoledì 6 novembre 2013

Esercizio di laboratorio

# include <stdio.h>
using namespace std;

     int main()
     {
         char a;
         a='3';
       
         printf("%c,%d,%x",a,a,a);
       
         return 0;
     }

stringa

# include<stdio.h>
# include<stdlib.h>
# include<string.h>
 
 char dati();
 int main()
 {
     char dati( );

     char nome[15];
     char cognome[15];
   
     printf("Inserisce il tuo nome \n");
     scanf("%s",nome);
     printf("Il nome e :%s \n",nome);
     printf("Inserice il Cognome\n");
     scanf("%s",cognome);
      printf("il Cognome e :%s\n",cognome);
      system("pause");
   return 0;
   
 }

Compilatori e interpreti

Compilatori e interpreti



traduttori sono quei programmi che permettono di effettuare la traduzione dal codice sorgente (non eseguibile dalla CPU) al linguaggio macchina.
Essi sono:
  • gli assemblatori (che traducono ogni istruzione dal linguaggio assembler in linguaggio macchina);
  • gli interpreti;
  • compilatori.
L'interprete di un linguaggio è un programma che
  • legge una alla volta le istruzioni di un programma sorgente;
  • verifica la correttezza sintattica della istruzione, sulla base della sintassi del linguaggio;
  • in caso positivo (assenza di errori), sulla base della semantica del linguaggio, la traduce nella corrispondente sequenza di istruzioni in linguaggio macchina e
  • la esegue.
Il compilatore di un linguaggio è un programma che
  • verifica la correttezza sintattica del programma sorgente, sulla base della sintassi del linguaggio;
  • traduce il programma sorgente nel programma oggetto (sulla base della semantica del linguaggio), il quale potrà successivamente essere eseguito.


Quindi per eseguire un programma scritto con un linguaggio ad alto livello occorre tradurlo nel linguaggio macchina dello specifico processore che si sta usando.
Vediamo adesso più in dettaglio le due modalità possibili:
• compilazione (con linguaggi come C,C++, FORTRAN, Pascal, ecc.)
• interpretazione ( con linguaggi come Basic, Perl, Java, ecc.)
compilatori traducono un intero programma dal linguaggio L al linguaggio macchina della macchina prescelta, considerando che:
  • traduzione e esecuzione procedono separatamente;
  • al termine della compilazione è disponibile la versione tradotta del programma;
  • la versione tradotta è però specifica di quella macchina;
  • per eseguire il programma basta avere disponibile la versione tradotta (non è necessario ricompilare).
Gli interpreti invece traducono e immediatamente eseguono il programma istruzione per istruzione, infatti:
  • traduzione ed esecuzione procedono insieme;
  • al termine non vi è alcuna versione tradotta del programma originale;
  • se si vuole rieseguire il programma occorre anche ritradurlo.

Sistema Operativo

Il Sistema Operativo

Una definizione esemplificativa del sistema operativo può essere la seguente:
il sistema operativo è una sorta di strato che si pone sopra la macchina fisica e permette di fare richieste ad una macchina virtuale ma che l’utente crede vera, inoltre il compito del sistema operativo, oltre a quello di controllare l’esecuzione degli altri programmi, consiste nell’impedire alle applicazioni di eseguire dei comandi che potrebbero rivelarsi dannosi
Senza Sistema Operativo (SO) un computer è solo un “macchinario inutile”.  Il SO rende possibile la gestione, l'elaborazione e l'immagazinamento dell'INFORMAZIONE.
• L’hw fornisce potenza di calcolo, il SO la rende disponibile agli utenti, gestendo l’hw in modo efficiente.
• Il SO controlla l’esecuzione di tutti gli altri programmi.
• Il SO è l’intermediario tra l’utente/i e la macchina.

Il SO è il software che gestisce le risorse (hardware e software) della macchina.

Struttura del Sistema Operativo


Il SO permette alle applicazioni di astrarre dal dettaglio hardware e di operare in termini di richieste di servizi al SO stesso.

Funzioni del Sistema Operativo


La descrizione precisa di cosa faccia parte o meno del SO non è universalmente definita (vedi caso IE)
• Gestione dei Processi (multitasking)
• Gestione della memoria (scheduler)
• Gestione dei files (file system)
• Gestione degli utenti (multiutenza)
• Gestione dell’ I/O (stampanti, video, tastiera, ...)
• Gestione servizi di Rete
• Protezione del sistema
• Interprete di comandi


Hardware e Software

Con hardware si intende qualsiasi componente fisico di una periferica o di un’apparecchiatura elettronica. Ad esempio sono hardware gli hard disk, i lettori ottici, le schede madri i collegamenti, le USB, le chiavette di memoria, gli schermi e i dispositivi di input. Insomma l’intera struttura meccanicaotticamagnetica ecc… che permette ad un qualsiasi dispositivo elettronico di funzionare e di far funzionare il software a dovere. Se una volta l’hardware costava più del software si va ora verso una situazione che almeno metta i due componenti sullo stesso piano in termini di valore. Spesso sul un dispositivo la somma del valore di tutti i software supera di gran lunga il costo di quello hardware.

Con software si intende  ogni programma, semplice o complesso, che permette di svolgere operazioni montato su un supporto hardware. Il software, a differenza dell’hardware, non è qualcosa di fisico e deve essere memorizzato su supporti appositi. L’esempio migliore di software è il sistema operativo del PC o degli smartphone. I software nel tempo sono diventati, grazie a diverse tecnologie e sviluppi in materia, multi-piattaforma e sono in grado di essere distribuiti su diversi dispositivi nonostante le caratteristiche hardware differenti: ne sono un esempio i sistemi operativi Android e Windows. Anche un sistema operativo come iOS si adatta alle diverse strutture hardware delle diverse versioni di iPhone. Aziende che operano nello sviluppo di software hanno conosciuto un grandissimo successo (e conseguente speculazione) soprattutto negli anni ’90.

mercoledì 2 ottobre 2013

Classificazioni delle reti

Dal punto di vista della estensione, le reti si distinguono in:
  • Reti locali (Local Area Network – LAN). La rete copre un edificio o un gruppo di edifici vicini fra di loro. Per le LAN broadcast sono utilizzati tre schemi di collegamento dei computer fra di loro (topologie di rete):
topologie di rete


Nella topologia a stella tutti i nodi sono collegati ad un nodo principale che gestisce le comunicazioni fra i vari computer. Nella topologia ad anello i nodi sono collegati in sequenza in modo da avere, per ognuno, un precedente e un successivo. Nella topologia a bus tutti i nodi condividono un unico canale trasmissivo.

  • Reti metropolitane (Metropolitan Area Network – MAN). In questo caso la rete copre l'area di una intera città. Un esempio di rete di questo tipo è la rete della televisione via cavo.
    rete man

    • Reti geografiche (Wide Area Network – WAN). Una rete di questo tipo copre un'area geografica vasta come una nazione o un continente.
      rete wan


Tipi di Comunicazioni o Trasmissioni

La trasmissione tra due macchine può avvenire attraverso varie modalità che si differenziano tra di loro per il numero di canali o base al senso della trasmissione.

Esistono tre linee di trasmissione : Simplex, Half-duplex e Full-duplex.

Simplex

In un canale di trasmissione Simplex i dati viaggiano al suo interno solo e sempre in un'unica direzione
Uno trasmette e altri ricevono ad esempio le antenne della RAI

Half-duplex

In un canale di trasmissione Half-duplex invece i dati possono passare in entrambi i sensi ma solo alternativamente. Ciò significa che mentre il trasmettitore manda i  dati , il ricevitore sta ad ascoltare.
Un esempio potrebbe essere quella di due radioamatori : mentre uno sta parlando l'altro ascolta ; al contrario, quando quest'ultimo risponderà sarà l'altro ad ascoltare e via dicendo.

Full-duplex

Il full-duplex invece, è in grado di mandare e ricevere dati in entrambi i sensi e simultaneamente ad esempio : Internet.