Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Introduzione all'informatica: Architettura dei calcolatori e sistemi operativi - Prof. Ian, Sintesi del corso di Fondamenti di informatica

riassunto contenente i capitoli richiesti dal professore

Tipologia: Sintesi del corso

2020/2021

Caricato il 27/01/2021

Syriana96_
Syriana96_ 🇮🇹

4.5

(36)

13 documenti

1 / 21

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
1
FONDAMENTI D’INFORMATICA – INFORMATICA ARTE E MESTIERE 4 ED.
CAPITOLO 1/2
CHE COS’E’ L’INFORMATICA?
}Scienza della rappresentazione e dell’elaborazione dell’informazione.
}Studio sistematico degli algoritmi che descrivono e trasformano l’informazione: la loro teoria, analisi, progetto
efficienza, realizzazione e applicazione.
}Un Algoritmo è una sequenza precisa di passi elementari che portano alla soluzione di un problema.
Gli algoritmi hanno due proprietà fondamentali:
1. la correttezza: cioè deve fornire una soluzione corretta del problema.
2. l’efficienza: cioè deve fornire una soluzione molto velocemente e/o usando una minima quantità di risorse.
Gli algoritmi vengono descritti tramite Programmi, cioè sequenze di istruzioni scritte in un linguaggio
comprensibile dal calcolatore; detto LINGUAGGIO DI PROGRAMMAZIONE, che può essere:
- Linguaggio a basso livello, linguaggio macchina (bit);
- Linguaggio ad alto livello, comprensibili dall’essere umano;
Tramite il compilatore il linguaggio ad alto livello viene tradotto in linguaggio a basso livello, cosi comprensibile
per la macchina.
Tutti i linguaggi di programmazione hanno un proprio ambiente di programmazione, cioè un insieme di
strumenti che facilitano la scrittura e la correttezza dei programmi; e sono:
} Editor: è un programma per la composizione di testi.
} Compilatore o un Interprete: il compilatore traduce un linguaggio ad altro livello in un linguaggio a basso
livello comprensibile per la macchina, mentre l’interprete, utilizza direttamente il linguaggio ad alto livello.
} Linker (collegatore): manda in esecuzione il programma.
} Debugger (controllore dell’esecuzione): elimina eventuali errori presenti in un programma.
ARCHITETTURA DEL CALCOLATORE
Definizione di computer: elaboratore (sviluppare un progetto) automatico di dati numerici (codice binario).
A cosa serve:
- acquisizione automatica dei dati (note audio e foto)
- interazione con il mondo reale (robotica)
- condivisione e comunicazione dei dati e delle risorse di calcolo tramite le reti (google)
Un calcolatore è composto da 2 componenti:
} HARDWARE (parti fisiche)
} SOFTWARE (Programmi)
LA MACCHINA DI VON NEUMANN è un modello semplificato dei calcolatori moderni.
John von Neumann, matematico ungherese, progettò nel 1945 il primo calcolatore con programmi
memorizzabili.
È composta da 4 componenti:
} unità centrale di elaborazione (CPU)
} memoria centrale
}Unità periferiche/ interfacce di ingresso e uscita
} bus
Il computer “moderno” segue il modello di Von Neumann, con diversi tipi di memoria:
}Unità di elaborazione, detto anche processore, o CPU (Central Processing Unit)
}Memoria centrale,
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15

Anteprima parziale del testo

Scarica Introduzione all'informatica: Architettura dei calcolatori e sistemi operativi - Prof. Ian e più Sintesi del corso in PDF di Fondamenti di informatica solo su Docsity!

FONDAMENTI D’INFORMATICA – INFORMATICA ARTE E MESTIERE 4 ED.

CAPITOLO 1/

CHE COS’E’ L’INFORMATICA?

} Scienza della rappresentazione e dell’elaborazione dell’informazione. } Studio sistematico degli algoritmi che descrivono e trasformano l’informazione: la loro teoria, analisi, progetto efficienza, realizzazione e applicazione. }Un Algoritmo è una sequenza precisa di passi elementari che portano alla soluzione di un problema. Gli algoritmi hanno due proprietà fondamentali:

  1. la correttezza: cioè deve fornire una soluzione corretta del problema.
  2. l’efficienza: cioè deve fornire una soluzione molto velocemente e/o usando una minima quantità di risorse. Gli algoritmi vengono descritti tramite Programmi , cioè sequenze di istruzioni scritte in un linguaggio comprensibile dal calcolatore; detto LINGUAGGIO DI PROGRAMMAZIONE , che può essere:
  • Linguaggio a basso livello, linguaggio macchina (bit);
  • Linguaggio ad alto livello, comprensibili dall’essere umano; Tramite il compilatore il linguaggio ad alto livello viene tradotto in linguaggio a basso livello, cosi comprensibile per la macchina. Tutti i linguaggi di programmazione hanno un proprio ambiente di programmazione , cioè un insieme di strumenti che facilitano la scrittura e la correttezza dei programmi; e sono: } Editor : è un programma per la composizione di testi. } Compilatore o un Interprete : il compilatore traduce un linguaggio ad altro livello in un linguaggio a basso livello comprensibile per la macchina, mentre l’interprete, utilizza direttamente il linguaggio ad alto livello. } Linker (collegatore): manda in esecuzione il programma. } Debugger (controllore dell’esecuzione): elimina eventuali errori presenti in un programma. ARCHITETTURA DEL CALCOLATORE Definizione di computer: elaboratore (sviluppare un progetto) automatico di dati numerici (codice binario). A cosa serve:
  • acquisizione automatica dei dati (note audio e foto)
  • interazione con il mondo reale (robotica)
  • condivisione e comunicazione dei dati e delle risorse di calcolo tramite le reti (google) Un calcolatore è composto da 2 componenti: } HARDWARE (parti fisiche) } SOFTWARE (Programmi) LA MACCHINA DI VON NEUMANN è un modello semplificato dei calcolatori moderni. John von Neumann, matematico ungherese, progettò nel 1945 il primo calcolatore con programmi memorizzabili. È composta da 4 componenti: } unità centrale di elaborazione (CPU) } memoria centrale }Unità periferiche/ interfacce di ingresso e uscita } bus Il computer “moderno” segue il modello di Von Neumann, con diversi tipi di memoria: }Unità di elaborazione , detto anche processore , o CPU (Central Processing Unit) }Memoria centrale ,

}Memoria secondaria o memoria di massa , }Bus di sistema (collega tutti gli altri componenti) }Periferiche di I/O (mouse, tastiera, terminali, stampanti, ecc.) HARDWARE:

- LA CPU (Central Processing Unit) ha il compito di gestire (si dice che ha il ruolo di master) l’intero sistema; Composta da 2 unità: } L’Unità di controllo , si occupa di controllare tutte le operazioni del calcolatore, interpretare le istruzioni prelevate dalla memoria e inviare alle altre unità i segnali per l'esecuzione delle operazioni. } L’Unità aritmetico-logica, detta ALU , effettua operazioni di tipo aritmetico/logico di base. } I registri , piccole celle di memoria su cui vengono memorizzate le informazioni necessarie per l’esecuzione delle istruzioni.

  • Registro dati, contiene dati che devono essere depositati nella memoria.
  • Registro indirizzi, contengono gli indirizzi e sono usati per accedere alla memoria.
  • Registro d’istruzione corrente, contiene l’istruzione, istante per istante, che risulta in esecuzione.
  • Registro di programma, contiene l’indirizzo della prossima istruzione del programma in esecuzione.
  • Registro di interruzioni, contiene informazioni riguardati il funzionamento delle periferiche.
  • Registro di lavoro, celle di memoria che contengono dati o istruzioni di uso frequente.
  • Registro di stato o flag register, contiene informazioni sotto forma di singoli bit, e ricordiamo:
  • bit di carry (riporto)
  • bit zero
  • bit di segno
  • bit di overflow (quando si supera il massimo valore rappresentato nel registro). Tutte le operazioni della CPU sono sincronizzate da un clock , la frequenza del clock, cioè il numero delle attività elementari che vengono eseguite nell’unità di tempo determina la velocità di elaborazione della CPU. Più alta è la frequenza di clock, maggiore è la velocità di elaborazione del computer. Il ciclo fetch-decode-execute Il processore esegue ogni istruzione mediante una sequenza ben definita di operazioni detta ciclo di istruzione o ciclo macchina.
  • Estrazione di una istruzione (fase di fetch)
  • Decodifica dell’istruzione (fase di decode)
  • Esecuzione dell’istruzione (fase di execute) - LA MEMORIA memorizza e fornisce l’accesso a dati e programmi. Svolge due operazioni: } scrittura : memorizzazione di un valore; il contenuto di una cella di memoria viene modificato, e sostituito con dati provenienti dalla CPU. } lettura : accesso al valore memorizzato; si accede al contenuto di una cella di memoria e trasferito, senza essere modificato, alla CPU La memoria, supporta la CPU: deve fornire alla CPU dati e istruzioni il più rapidamente possibile. Funziona anche come archivio: deve consentire di archiviare dati e programmi garantendone la conservazione e la reperibilità anche dopo elevati periodi di tempo. Diversi tipi di memorie: } Primarie (RAM, ROM, PROM, EROM) } Secondarie o di massa (Hard Disk, CD ROM, DVD):
  • Le memorie secondarie o di massa sono basate principalmente su tecnologie magnetiche e ottiche.
  • non volatilità: mantengono le informazioni anche a computer spento
  • grande capacità Si dividono in due classi fondamentali:

Interfaccia logica : l'insieme degli elementi grafici ed estetici ai quali è attribuita la funzione di comunicazione fra macchina ed utente. (finestra, menù, icone).

- IL BUS collega tutti gli elementi funzionali e consente lo scambio di dati tra di essi. Le linee del bus vengono suddivise in tre categorie:

  1. Bus dati: Trasferisce dati e istruzioni, cioè le localizzazioni contenute nella memoria centrale.
  2. Bus indirizzi: dove viaggiano i dati.
  3. Bus controlli: trasferisce un codice corrispondente all’istruzione da eseguire. Ogni qual volta vi è una comunicazione ci deve essere un protocollo di comunicazione detto, Master Slave. SOFTWARE: Insieme dei programmi che gestiscono e specializzano il funzionamento di un elaboratore. E sono classificati in: } Software di base : dedicato alla gestione dell’elaboratore; il principale software di base è il Sistema Operativo , che viene caricato dalla memoria secondaria in memoria principale quando viene acceso il PC, e vi rimane finché non è spento. Questo, svolge prevalentemente 3 funzioni:
  • interpreta ed esegue i comandi elementari,
  • organizza le risorse della macchina,
  • gestisce l’accesso alla rete. }Software applicativo : dedicato alla realizzazione di specifiche esigenze applicative. }Software personale : adatto a funzioni tipiche della vita quotidiana (scrivere e comunicare); tra questi ricordiamo:
  • i sistemi di videoscrittura (Microsoft Word)
  • agende e poste elettroniche Molto importante, nell’architettura software, il sistema di gestione di base di dati , software che consente di utilizzare e condividere tramite i protocolli di comunicazione, grandi quantità di dati contenuti nei database. FIRMWARE È un programma informatico registrato in modo permanente sulla ROM del computer o di una periferica del computer. Il firmware ha caratteristiche sia software che hardware poiché contiene informazioni e istruzioni (software) registrate in forma fisica su un circuito elettrico integrato (hardware); Es. BIOS CODIFICA DEI DATI E DELLE ISTRUZIONI/ DEI CARATTERI E DELLE IMMAGINI DI UN PROGRAMMA All’interno dell’elaboratore ogni informazione è codificata usando la rappresentazione binaria o digitale , utilizzando cioè due soli simboli: 0 e 1. L’unità minima di informazione codificabile attraverso la rappresentazione binaria è il BIT (Binary Digit o cifra binaria) e può assumere valori: 0 o 1. Un gruppo di 8 bit viene denominato byte e consente di codificare 2^8 = 256 informazioni diverse. Il Byte : unità di misura della capacità di memorizzare informazione. La macchina codifica: } numeri interi (numeri da 0 a 9 positivi e negativi) } numeri reali (numeri positivi e negativi con la virgola) } numeri frazionari (numeri compresi tra 0 e 1) } numeri naturali (sequenza di cifre da 0 a 9, a base 10, è un sistema posizionale: ogni cifra ha un significato in base alla posizione che occupa). In informatica si utilizzano prevalentemente i sistemi di numerazione binaria (base 2) , ottale (base 8), ed esadecimale (base 16).

Es. numero binario base 2 101001011 2 = 1 x 28 + 0 x 27 + 1 x 26 + 0 x 25 + 0 x 24 + 1 x 23 + 0 x 22 + 1 x 21 + 1 x (^20) 10* 8 7 6 5 4 3 2 1 0 Valore posizionale Base 10 * 256 + 0 + 64 + 0 + 0 + 8 + 0 + 2 + 1= 331 10 Per tradurre il sistema ottale o esadecimale basta cambiare la base. Invece se vogliamo comunicare con il computer usando il nostro linguaggio, dobbiamo rappresentare dei caratteri: per rimediare all’incapacità di comunicare fra linguaggio binario comprensibile dai computer e i dati alfabetici con cui ci esprimiamo, sono state definiti dei codici di traduzione: } ASCII standard : 7 bit per carattere, rappresenta 128 caratteri } ASCII esteso : 8 bit per carattere, rappresenta 256 caratteri I caratteri vengono classificati in 3 categorie: } caratteri di comando }caratteri alfanumerici } simboli Il passaggio da un’immagine a una sequenza binaria prende il nome di Digitalizzazione. Immagine digitale: rappresentazione in forma grafica/numerica bidimensionale di una parte di realtà formata da infiniti punti. Il calcolatore però non può rappresentare infiniti punti - > deve compilare : scegliere un elemento di rappresentanza. Sovrapponiamo all’immagine una rete che misura l’intensità della luce e il colore. Ogni quadratino prende il nome di Pixel (picture element), ad ogni pixel viene fatto corrispondere un valore binario. Un’immagine digitale può essere caratterizzata mediante due dimensioni: } Risoluzione : numero di pixel che compongono l’immagine } Profondità : il numero di bit che vengono usati per rappresentare un singolo pixel dell’immagine (numero di colori) Numero di bit per immagine = risoluzione x profondità Maggiore è la qualità fotografica, maggiore è lo spazio occupato: Soluzione - > tecniche di ottimizzazione : ridurre le immagini alle dimensioni più piccole possibili mantenendo la qualità dell’immagine a livelli accettabili. 1 assioma della matematica: ogni numero elevato a 0 fa 1 27 = 2x2x2x2x2x = 128 x 0 = 0 (ogni numero moltiplicato per 0 fa 0) 28 = 2x2x2x2x2x2x2x = 256 x 1 = 256

A B AND

CAPITOLO 13.

IL SISTEMA OPERATIVO

È un insieme di programmi (software) che:

  • gestisce l’hardware,
  • fornisce una piattaforma ai programmi di applicazione,
  • agisce da intermediario tra l’utente e calcolatore. Può essere: }mono-utente (dedicato ad un singolo utente) }multi-utente (diversi utenti che condividono lo stesso sistema) È tipicamente organizzato per strati funzionali (architettura a buccia di cipolla): PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI MACCHINA FISICA KERNEL (nucleo) IL GESTORE DEI PROCESSI : si occupa dell’esecuzione dei programmi tramite il processore.

}Un programma è un oggetto statico (una sequenza di istruzioni). Lo stesso programma può essere associato a più processi. }Un processo è un programma in esecuzione sul calcolatore. Composto da:

  • codice eseguibile (il programma stesso)
  • stato del processo Un processo è dinamico, cioè è dotato di uno stato interno che cambia nel tempo. Stati del processo: }In esecuzione: il processore è a disposizione per l’esecuzione del processo. }pronto: in grado di essere eseguito ed in attesa del processore. }In attesa: non in grado di essere eseguito perché in attesa di un evento esterno. Il passaggio da uno stato all’altro avviene in seguito ad un’interruzione (sospensione del processo), queste vengono gestite dal gestore delle interruzioni. Tipi di interruzione: }Interne (sincrone): generate da un programma in esecuzione, ad esempio per richiedere un’operazione di I/O. }Esterne (asincrone): provocate dall’esterno per segnalare eventi particolari, esempio la fine di una operazione I/O. }Per errore (aborted): per segnalare guasti hardware o errori software. }Pre-empted: processo interrotto dal nucleo, per garantire a tutti i programmi un uso uguale della CPU. Quando un processo viene interrotto è necessario salvare il suo contenuto in una cella di memoria, detta descrittore del processo , affinché il processo possa riprendere la propria attività dallo stesso punto e con gli stessi dati ( ripristino del contesto ). Nel frattempo il nucleo sceglie uno dei programmi pronti e lo manda in esecuzione, successivamente ripristina il processo, precedentemente, interrotto e ne finisce l’esecuzione. Operazione detta Cambiamento Di Contesto. L’obiettivo del gestore dei processi è quello di far eseguire ogni programma entro un tempo proporzionale alla difficoltà del programma stesso, senza creare ingiustizie. Time sharing : il tempo viene diviso in quanti di tempo, ad ogni processo viene assegnato a turno un quanto. Diverse sono le politiche di assegnazione dei quanti di tempo: }FIFO: (first in-first out/il primo che entra, esce per prima) Il primo processo viene mandato in esecuzione, quando termina è il turno del secondo processo. Il tempo di attesa è proporzionale alla lunghezza del programma; favorisce il completamento dei programmi brevi. }Round Robin:
  • Ogni processo viene lasciato in stato esecuzione per un quanto di tempo
  • Scaduto il quanto di tempo, il processo in esecuzione torna in stato di pronto
  • il processo successivo va in esecuzione. }Priorità: si favoriscono programmi con priorità alta, causando lunghe attese per i processi di bassa priorità (lavori Batch). I diversi processi possono interagire:

}Driver fisici (hardware): vengono attivati direttamente dal gestore delle interruzioni per eseguire le operazioni di trasferimento e manipolazione dei dati. }Driver logici (software): fanno parte del sistema operativo e forniscono una gerarchia di operazioni, con un’organizzazione a strati. IL FILE SYSTEM: consente di gestire i file sulla memoria di massa:

  • Creare un file
  • Dargli un nome
  • Collocarlo in un opportuno spazio nella memoria di massa
  • Accedervi in lettura e scrittura I file vengono inseriti in dei cataloghi, detti directory ; e ogni utente ha una directory specifica, detta home directory. In generale le directory hanno un’organizzazione ad albero. Inoltre i file hanno un pathname (o nome completo) che include l’intero cammino dalla radice dell’albero; e un livello di protezione , cioè le operazioni che possono essere eseguite da ciascun utente. LA VIRTUALIZZAZIONE E LE MACCHINE VIRTUALI } La virtualizzazione: è un processo (che avviene mediante un software, Hypervisor ) che permette di astrarre le componenti hardware degli elaboratori con il fine di renderle disponibili al software in forma di risorsa virtuale. L’insieme delle componenti hardware virtuali, è detta macchina virtuale. Gli usi della virtualizzazione:
  • È possibile installare un sistema operativo (detto guest) diverso da quello installato nella macchina fisica (detta host).
  • In caso di guasto hardware, è possibile spostare le macchine virtuali su un elaboratore diverso.
  • Testare il funzionamento delle applicazioni su più sistemi operativi. Proprietà della virtualizzazione: }Partizionamento: permette l’esecuzione di sistemi operativi guest diversi su diverse macchine virtuali. }Isolamento: il malfunzionamento di una macchina virtuale non influenza il funzionamento delle altre. }Incapsulamento: ovvero la possibilità di salvare lo stato e recuperarlo in futuro. }Indipendenza dall’Hardware: Una macchina virtuale deve essere in grado di simulare un qualsiasi tipo di hardware. Classifica delle virtualizzazioni: } A livello di S.O: il sistema operativo host crea delle partizioni di sé stesso.
  • non è necessario l’utilizzo di un hypervisor
  • non è possibile installare sistemi operativi diversi da quello dell’host }A livello Hardware: utilizza un hypervisor, e simula il computer fisico, al cui al suo interno è possibile istallare qualsiasi S.O. La virtualizzazione a livello hardware si divide in: - para-virtualizzazione: l'hypervisor non simula tutte le funzionalità di un elaboratore virtuale. - virtualizzazione completa: l'hypervisor simula tutte le funzioni di un elaboratore. Entrambe a sua volta si dividono: - L'hypervisor di tipo 1 (detto bare metal): è un sistema operativo semplificato e specializzato che viene eseguito come prima applicazione all'avvio dell'elaboratore. Non esiste un S.O host. - L'hypervisor di tipo 2 (detto hosted): viene eseguito come applicazione utente all'interno del sistema operativo host.

CAPITOLO 15.

RETI DI CALCOLATORI E SISTEMI DISTRIBUITI

}I sistemi distribuiti: (sviluppati negli anni 80) sono formati da in insieme di calcolatori connessi tramite una rete e dotati di appositi programmi, detti di middleware , che permettono ai calcolatori di coordinare le proprie attività e di condividere risorse. I sistemi distribuiti si dividono in: } Le architetture client/server :

  • i client sono le applicazioni con cui interagiscono gli utenti,
  • il server fornisce servizi Le applicazioni client/server sono chiamate anche architetture a due livelli :
  • il primo livello è il client
  • il secondo livello è il server. Il concetto può essere esteso ad architetture a più livelli; ogni livello agisce da server per il livello precedente e da client per il livello successivo. I protocolli di interazione tra client e server sono abbastanza semplici:
  • Il client invia al server una richiesta servizio.
  • Il server gestisce una coda di richieste, una volta elaborata la richiesta, il server comunica la risposta al client relativa.
  • Il client riceve la risposta e visualizza il risultato all'utente.
  • Vantaggi: semplicità di relizzazione e la possibilità di avere client facili da utilizzare.
  • Svantaggi: vi è il rischio di sovraccaricare il computer e il canale di comunicazione. } Architetture peer-to-peer (da pari a pari) non esiste una gerarchia ben precisa all'interno della rete e ogni computer può assumere sia la funzione di server che quella di client.
  • Il vantaggio: distribuire il carico di lavoro e di comunicazione tra i diversi computer della rete.
  • Lo svantaggio: difficoltà di coordinare e controllare le attività dei nodi e garantire la sicurezza e la privacy delle informazioni scambiate sulla rete. I principali mezzi utilizzati dai sistemi distribuiti per la trasmissione dei dati appartengono a 3 categorie: }Cavi in rame }Fibre ottiche }Onde elettromagnetiche Tutte hanno dei paramenti caratterizzanti:
  • velocità di trasmissione (misurata in bit per secondo)
  • distanza di trasmissione Cavi in Rame , si suddividono in due categorie: }Cavo coassiale :
  • ha al centro un conduttore di rame (anima), circondato da un materiale isolante e da uno schermo di metallo intrecciato(maglia); il tutto è avvolto da un rivestimento esterno.
  • Vantaggi: elevata resistenza alle interferenze elettromagnetiche.
  • Svantaggi: costo elevato, poco flessibili, si usurano facilmente e sono difficili da montare. }Doppino Telefonico:
  • coppia o treccia di più coppie di conduttori di rame ritorti (twisted pair), ossia arrotolati uno sull’altro, per ridurre gli effetti negativi delle interferenze elettromagnetiche;
  • trasmettere e consultare dati Le reti sono classificate in base alla loro dimensione: (ovvero la distanza di trasmissione che possono raggiungere) }LAN (Local Area Network): rete locale - Distanza compresa tra 1m e 1 km (edificio, campus) - Velocità elevata. }MAN (Metropolitan Area Network): rete metropolitana - Distanza fino a 10 di chilometri (area cittadina) - Velocità elevata. }WAN (Wide Area Network): rete geografica - Collega sistemi a qualsiasi distanza - Internet è la più diffusa WAN. I tre tipi sono organizzati gerarchicamente: le LAN sono collegate da MAN, collegate dalle WAN. Le reti di calcolatori e quelle di telecomunicazione tendono sempre più a convergere, sfruttando le stesse infrastrutture, perciò oggi, classifichiamo le reti in due nuove categorie: }Rete di dorsale (core network): parte centrale di una rete di telecomunicazione. }Rete di accesso (access network): utilizzata dagli utenti per accedere alla core network. I punti di contatto tra rete di accesso e rete dorsale è detto PoP. Ogni rete è basata su di una certa topologia , (struttura di connessioni tra calcolatori): }Le Reti ad Anello: sono reti punto-punto in cui i nodi sono connessi direttamente tra loro tramite un cavo: ogni nodo, per comunicare con l’altro, deve far scorrere, lungo la struttura le proprie informazioni; cosi ogni nodo funziona da ripetitore e trasmette il segnale al nodo successivo. In questa topologia tutti i nodi sono potenzialmente punti di guasto. Un particolare tipo di rete ad anello molto efficiente è la rete Token Ring. } Le Reti a Bus: tutti i nodi sono collegati e connessi tra loro tramite un singolo cavo, detto bus. L’informazione, in questo tipo di rete, e inviata a tutti i nodi, ma verrà accettata soltanto dal nodo a cui è destinata. Durante la trasmissione gli altri nodi della rete non possono inviare pacchetti, ma devo attendere la fine della precedente per poter inviare a loro volta dei pacchetti. La rottura del cavo dorsale porta al malfunzionamento dell’intera rete. } Le reti a Stella: i nodi sono connessi tra loro grazie ad un nodo centrale (hub) piazzato nel mezzo, che si occupa di trasmettere i dati inviati a tutti gli altri. Più ampia è la rete più cavi saranno necessari. Il guasto di un solo cavo porta al suo isolamento, invece, un guasto del nodo centrale comporta il malfunzionamento dell’intera rete. }Le reti a Maglia: i nodi sono collegati tra loro più di una volta, così da creare canali di comunicazioni alternativi in caso che la rete sia congestionata, non funzioni bene o che uno dei nodi abbia malfunzionamenti. Le topologie a stella, anello e bus sono usate soprattutto nell’ambito delle reti locali. La topologia irregolare è molto diffusa tra le reti geografiche. Struttura dei messaggi e dei pacchetti: La comunicazione tra due nodi di una rete avviene tramite l'invio di messaggi. Un messaggio viene scomposto in una sequenza di pacchetti, e ciascun pacchetto è trasmesso individualmente. I pacchetti sono sequenze di bit, tra cui dei bit di controllo all’inizio e alla fine (intestazione e coda).

An

ello

Bus

Stell

a

Irre

gola

re

I bit di controllo possono contenere informazioni quali: mittente, destinatario, informazioni che permettono di verificare la corretta trasmissione del pacchetto. Nel caso in cui il contenuto del pacchetto sia stato alterato, questo deve essere ritrasmesso, rallentando la comunicazione. Meccanismi più moderni di controllo correggono il contenuto del pacchetto senza ritrasmetterlo (FEC, forward error correchon). } Routing o istradamento: In una rete a topologia irregolare ciascun pacchetto viaggia dal nodo mittente al nodo destinatario attraversando altri nodi intermedi. Il routing può essere:

  • statico : se il pacchetto viene inviato attraverso nodi intermedi specifici,
  • dinamico : se i nodi della rete possono decidere il percorso migliore da far seguire al pacchetto (ad esempio, scegliendo il percorso meno trafficato). Affinché due sistemi possano scambiarsi informazioni è necessario che si accordino su regole comuni, tramite un Protocollo Di Comunicazione che specifichi cosa, come e quando comunicare. Dato che i protocolli devono essere utilizzati da più calcolatori anche diversi tra loro, vengono definiti nell'ambito di standard internazionali. Il più famoso è: IL MODELLO ISO-OSI formato da vari livelli, caratterizzati da una struttura gerarchica tale, per cui ognuno di essi è in grado di comunicare soltanto con quello superiore e con quello inferiore, attraverso meccanismi detti interfacce. Struttura: 1. Fisico: regola la trasmissione dei dati tra i due nodi della rete. 2. Collegamento: forma i pacchetti di dati da far viaggiare lungo la dorsale di comunicazione. 3. Rete: si occupa, dell’attività di Routing (individuazione del percorso di rete da utilizzare per la consegna dei pacchetti) 4. Trasporto: si occupa della suddivisione e della trasmissione dei dati in pacchetti. 5. Sessione: Si occupa di instaurare, mantenere e chiudere il dialogo tra due computer. 6. Presentazione: traduce, trasforma i dati delle applicazioni in un formato standard. 7. Applicazione: È il livello più “vicino” all’utente finale e che, quindi, opera direttamente sul software. Apparati di rete: sono nodi che garantiscono il funzionamento, l'efficienza, l'affidabilità e la scalabilità delle reti informati, ed operano soprattutto ai livelli inferiori del modello ISO OSI (livello di rete). } Hub (livello 1) è un apparto che ripete il segnale su tutte le interfacce di uscita. Un hub permette di collegare soltanto reti perfettamente identiche, in quanto opera a livello fisico. } Bridge/Switch (livello 2) un bridge ripete il segnale solo verso l’interfaccia corretta, che permette di raggiungere il nodo di destinazione. In genere un bridge è un apparato che connette due reti, mentre uno switch collega un numero maggiore di reti. } Router (livello 3) apparato che permette di connettere reti con tecnologie anche differenti. La funzione principale del router l'instradamento dei pacchetti dal nodo sorgente al nodo destinazione. } Proxy (livello 4) analizza i dati in transito. Operando a livello di trasporto, può ricostruire, e modificare un intero messaggio. } Gateway (livello 7) permette l’interconnessione tre due applicazioni remote differenti. L'interconnessione fa si che il gateway si comporti da interfaccia tra due applicazioni che utilizzano protocolli differenti. CAPITOLO 16 I SERVIZI INTERNET STORIA: Internet, nasce con il nome di ARPANET , nel 1969, dall’agenzia del dipartimento della Difesa degli Stati Uniti; per scopi militari. È la prima rete su scala geografica, e la prima a utilizzare un protocollo basato su pacchetti (NCP).

- 2° livello: rappresenta la società o l’ente. - 3° livello: detto sottodominio, è un indirizzo secondario del nome di dominio. Blog.chiara.it - > indica un blog I domini devono essere trasformati in indirizzi numerici (risoluzione); questo avviene tramite il DNS. Il DNS non è altro che un grande archivio in cui ci sono le corrispondenze tra i domini e gli indirizzi IP. IL WORLD WIDE WEB (letteralmente: rete di grandezza mondiale), conosciuto anche come THE WEB o WWW, è nato nel 1989 presso il CERN di Ginevra. E’ un sistema per la gestione dei documenti su internet, che permette di navigare in un mare di informazioni utilizzando un sistema di **ipertesti:

  • ** Documenti in cui parole o frasi rimandano ad altre parti del documento; e collega tra loro risorse e servizi diversi distribuiti su tutta la rete (link). Le pagine hanno una struttura ad albero e la pagina iniziale è chiamata home page. Il WWW si basa su tre standard: }URL : permette di identificare in modo univoco un documento su Internet. Composto da:

  • Schema : modalità di accesso alla risorsa (es. http)
  • Host : nome di dominio che individua il computer su cui risiede la risorsa (es. www.unime.it)
  • Percorso : individua la risorsa all’interno dell’host (es. didattica/index.html) }HTTP : protocollo applicativo client/server usato per accedere ai documenti sul Web. }HTML : linguaggio per realizzare ipertesti. Il WWW segue l’approccio client-server: } Il client - > Browser (Firefox, Explorer, Chrome) richiede le pagine al Web server e le visualizza. }Il server - > Web , invia le pagine richieste; che possono essere: - Pagine statiche , l'utente può visualizzare i contenuti, ma non li può modificare. - Pagine dinamiche , (HTML) è una pagina web il cui contenuto, è generato sul momento dal server, potendo dunque essere diversa ogni volta che viene richiamata consentendo un'interattività con l'utente. I MOTORI DI RICERCA (Google) sono basati su immensi database, e contengono tutte le pagine presenti sul Web. Queste pagine, possono essere trovate, grazie all’utilizzo di parole chiave (parole contenute all’interno del documento). Gli elenchi aggiornati tramite crawler : software che analizza regolarmente i contenuti dei siti. Differenza: Un Browser serve per accedere ad internet, a un Motore di Ricerca o a specifici siti web. Un Motore di Ricerca serve per trovare siti web o anche immagini o video in internet. LA POSTA ELETTRONICA (e-mail) è un servizio di Internet, che si occupa di inviare e ricevere messaggi - >
  • Sequenza di righe di testo; composto da varie parti: ● Busta : Informazioni protocollari necessarie per trasmettere e consegnare il messaggio. ● Contenuto : oggetto da consegnare. Suddiviso in:
  • Intestazione, informazioni basilari per la corretta gestione dei messaggi (indirizzo del mittente e del destinatario).
  • Corpo del messaggio, testo vero e proprio che è contenuto nel messaggio. Le operazioni di compilazione e lettura dei messaggi possono essere effettuate offline, mentre l’invio può avvenire quando si è connessi alla rete e così la ricezione (modalità asincrona). Gli utenti che vogliono utilizzare il servizio devono possedere una casella postale, che risiede su server. Un indirizzo di posta elettronica è composto da:
    • nome utente (username) - @ - dominio Architettura di un sistema di posta elettronica è formato da 3 entità: }MUA : programma che l’utente usa per leggere e scrivere i messaggi (out look) }MTA : programma che invia i messaggi, tramite il protocollo SMTP. }MDA : programma che riceve i messaggi, tramite i protocolli
    • POP3 : permette l’autenticazione dell'utente, la richiesta di un messaggio, la cancellazione di un messaggio.
    • IMAP : permette le stesse operazioni di POP3, ma in più gestisce le caselle di posta in remoto. AUDIO E VIDEO SU INTERNET Internet è anche un sistema alternativo al telefono e alla televisione per la trasmissione della voce e delle immagini; La tecnologia VOIP , permette agli utenti di parlarsi tra loro utilizzando il telefono, ma anziché essere collegato alla linea telefonica, è collegato ad internet. La tecnologia IPTV , permette agli utenti di guardare la televisione collegandola ad internet anziché all’antenna. Queste tecnologie funzionano grazie allo STREAMING: sistema per la trasmissione di dati via Internet, solitamente audio e/o video, che consente di usare del contenuto senza la necessità di aspettare che quest’ultimo sia stato completamente scaricato. In questo modo le informazioni appartenenti al contenuto richiesto verranno automaticamente riprodotte mano a mano che queste arriveranno sul dispositivo di destinazione. Al contrario del Download , dove un dato per poter essere visualizzato deve essere stato ricevuto totalmente. Tipologie Di Streaming: }Streaming live: molto simile alle tradizionali trasmissioni radiotelevisive. In questo caso i dati vengono trasmessi utilizzando una o più appropriate tecniche di compressione, in maniera tale da alleggerire il più possibile il carico sulla rete utilizzata per la trasmissione delle necessarie informazioni. L’utilizzo di queste particolari tecniche di compressione comporta però un leggero ritardo, una decina di secondi, nella trasmissione del flusso di informazioni richiesto. Es. sito web delle dirette Rai che trasmette i vari canali della TV. Utilizza la trasmissione dei dati Multicast : è una tecnica per mandare lo stesso pacchetto a più ricevitori. }Streaming on demand : tutti i contenuti audiovisivi che è possibile richiedere si trovano già pronti all’uso, sotto forma di file compressi; In questo caso, quando un utente richiede un determinato file audio e/o video, questo, una volta giunto a destinazione, viene subito decompresso da un appropriato programma o dispositivo, chiamato codec , il quale provvede immediatamente a riprodurre le informazioni contenute nel file richiesto pochi secondi dopo l’inizio della ricezione delle stesse. Es. YouTube, Netflix.

CAPITOLO 20

EVOLUZIONE DELL’INFORMATICA

● Le origini dell'informatica possono essere fatte risalire alla progettazione delle prime macchine in grado di effettuare operazioni matematiche (il calcolatore di Pascal nel 17° secolo, la macchina differenziale di Babbage nel 19° secolo). ● L'informatica nasce ufficialmente, però, nel 1936 con la Macchina di Turing , e si compone:

  • di un nastro, suddiviso in singole celle nelle quali può essere scritto un simbolo
  • di una testina di lettura/scrittura che scorre sopra il nastro.

● Nel 1943 fu iniziata la costruzione del primo calcolatore elettronico, cioè completamente a valvole, l'ENIAC. Erano macchine molto costose e ingombranti e poco affidabili. (1 GENERAZIONE DI COMPUTER) ● Negli anni 50 furono sviluppati prima i linguaggi ASSEMBLER , successivamente, furono sviluppati i primi linguaggi di programmazione di alto livello, FORTRAN e COBOL. Verso la fine degli anni Cinquanta, le valvole vennero sostituite dai transistor , dispositivi elettronici che svolgono la stessa funzione delle valvole, ma sono molto più piccoli, più veloci e, soprattutto, contrariamente alle valvole, non si rompono facilmente. (2 GENERAZIONE DI COMPUTER) ● A metà degli anni Sessanta, i transistor vennero sostituiti dai circuiti integrati , costituti da elementi microscopici saldati su una piccolissima piastrina di silicio. (3 GENERAZIONE DI COMPUTER) Vennero sviluppati i sistemi operativi , come sostituto automatico dell’operatore; ciò portò allo sviluppo del multitasking (programmi utilizzati contemporaneamente da un solo utente) e al DBMS (software per la gestione dei dati). ● Verso la metà degli anni settanta e gli inizi degli anni 80, comparvero sul mercato i primi calcolatori elettronici che utilizzavano il microprocessore. A causa del loro basso costo e delle ridotte dimensioni, questi computer poterono essere acquistati anche da singole persone. Nacque così la QUARTA GENERAZIONE di calcolatori elettronici, quella a cui appartengono anche gli odierni Personal Computer. ● A partire dagli anni '90 La rivoluzione dell'informatica consiste nella diffusione della rete internet ; nasce il WWW. ● A partire dai primi anni duemila si sta, infine, assistendo ad una convergenza tra l'informatica, televisione e telefono.

La PROGRAMMAZIONE è una parte della progettazione del software, questa comporta infatti diverse fasi:

  1. Analisi del problema
  2. Caratteristiche che il sistema deve avere per risolvere il problema
  3. Impostazione del progetto
  4. Realizzazione del sistema in un linguaggio di programmazione
  5. Verifica del sistema ed eventuali correzioni LINGUAGGIO C progettato nel 1972 da Ritchie presso i laboratori AT & T Bell. È un linguaggio di programmazione compilato, ciò significa che è necessario utilizzare un "compilatore" per trasformare il codice sorgente - > in un programma eseguibile dal sistema operativo. ● LA MACCHINA ASTRATTA C È FORMATA DA:
    • unità centrale - memoria centrale. - standard input - standard output Gli ultimi 3 sono divisi in celle. Le celle di memoria (dette variabili ) contengono un certo dato; e sono indicati tramite identificatori simbolici scritti dal programmatore; Alcuni identificatori sono predefiniti e riservati , ovvero associati a priori a qualche elemento del linguaggio e non possono essere usati dal programmatore con significati differenti da quelli predefiniti. Le parole chiave indicano altre parole predefinite, anch’esse sono riservate e non possono fungere da normali identificatori. ● UN PROGRAMMA C È COMPOSTO:
  • Intestazione : identificatore predefinito MAIN ( )
  • Sequenza di istruzioni : ognuno termina con il simbolo ; (delimitatore) Le istruzioni sono di 3 tipi: 1. Istruzione d’assegnamento : serve per assegnare a una variabile il valore di un’espressione. 2. Istruzione d’ingresso e uscita : consiste negli identificatori predefiniti scanf o printf. Esse consentono di leggere o di scrivere il valore di una variabile dallo standard input o sullo standard output. 3. Istruzione composta : dette cosi perché contengono più istruzioni semplici al proprio interno. Producono effetti diversi a seconda che siano verificate o meno certe condizioni sul valore delle variabili, per condizioni (dette anche espressioni booleane) si intende un’espressione il cui valore può essere vero o falso. Le istruzioni composte sono di due tipi: - Le istruzioni condizionali : permettono di effettuare operazioni diverse a seconda dei valori delle variabili. E si scrivono come if-else ; in alternativa possiamo utilizzare istruzioni di selezione come switch. L’IF viene affiancato da una condizione descritta tra parentesi tonde. Se la condizione è vera allora vengono eseguite tutte le istruzioni che susseguono dall’if fino AL’ELSE. - l’istruzione interattiva (ciclo/loop): essa permette la ripetizione dell’esecuzione di una sequenza di istruzioni ogni volta che una certa condizione è verificata. È costituita dalla parola chiave while seguita dalla condizione racchiusa tra parentesi tonde e da una sequenza di istruzioni fra parentesi graffe. In alternativa possiamo utilizzare istruzioni di controllo cicliche come For. Il TEOREMA DI BOEHM-JACOPINI: afferma che qualunque algoritmo può essere attivato utilizzando tre sole strutture: la sequenza, la selezione e il ciclo.