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


Informatica generale- Moriani, Dispense di Elementi di Informatica

Riassunto delle slide e documenti forniti dal prof. Moriani

Tipologia: Dispense

2023/2024

In vendita dal 24/04/2025

alice-chisci
alice-chisci 🇮🇹

4.3

(7)

12 documenti

1 / 41

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INFORMATICA GENERALE
SISTEMI DI ELABORAZIONE DELL’INFORMAZIONE
L’informatica è l’insieme dei processi e delle tecnologie che rende possibile la creazione, la
raccolta, l’elaborazione, l’immagazzinamento e la diffusione dell’informazione.
Elementi funzionali dell’informatica sono i sistemi di elaborazione dell’informazione, chiamati
elaboratori elettronici o computer.
L’informatica si regge su due pilastri: l’hardware ed il software.
- Hardware: è la parte del computer materiale/tangibile (monitor, tastiera..) - il corpo
- Software: è la parte che serve al funzionamento, è intangibile - ciò che determina il
comportamento
Dati
I dati sono la materia prima del trattamento dell’informazione
Tipi di dati: semplici (numeri, caratteri, date) e complessi (immagini, grafici, filmati, suoni..) -
la gestione dei dati complessi è resa possibile dalla potenza raggiunta dagli elaboratori
nell’ultimo decennio
Ciclo di elaborazione dell’informazione
1. Input: immissione di dati nel computer (dispositivi più comuni: tastiera, scanner,
mouse, microfono, telecamera)
2. Elaborazione: i dati vengono elaborati
3. Output: consente di vedere il risultato da dispositivi come lo schermo, stampante,
altoparlanti
4. Memorizzazione: i dati e i programmi non utilizzati vengono memorizzati su appositi
nastri o dischi in modo da poterli recuperare in qualsiasi momento
5. Distribuzione: i dati possono essere stampati, distribuiti o trasmessi da un computer
all’altro
Applicazioni dell’informatica
Gli aspetti applicativi più rilevanti sono:
- Gestione aziendale
- Sistema informativo aziendale: insieme di tutti i dati e tutti i processi che
riguardano la raccolta, l’archiviazione, l’elaborazione, la distribuzione dei dati
nelle attività operative e di controllo
- Sistema informatico: insieme delle risorse tecnologiche facenti parte il
sistema informativo
- Office automation
- Database
- Educazione
- Commercio
- Giochi ed intrattenimento
- Progettazione di prodotti complessi: tecniche CAD (es. Modellizzazione 2D/3D di
oggetti, ambienti..)
- Produzione di prodotti: tecniche CAM
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29

Anteprima parziale del testo

Scarica Informatica generale- Moriani e più Dispense in PDF di Elementi di Informatica solo su Docsity!

INFORMATICA GENERALE

SISTEMI DI ELABORAZIONE DELL’INFORMAZIONE

L’informatica è l’insieme dei processi e delle tecnologie che rende possibile la creazione, la raccolta, l’elaborazione, l’immagazzinamento e la diffusione dell’informazione.

Elementi funzionali dell’informatica sono i sistemi di elaborazione dell’informazione, chiamati elaboratori elettronici o computer.

L’informatica si regge su due pilastri: l’hardware ed il software.

  • Hardware: è la parte del computer materiale/tangibile (monitor, tastiera..) - il corpo
  • Software: è la parte che serve al funzionamento, è intangibile - ciò che determina il comportamento

Dati I dati sono la materia prima del trattamento dell’informazione

Tipi di dati: semplici (numeri, caratteri, date) e complessi (immagini, grafici, filmati, suoni..) - la gestione dei dati complessi è resa possibile dalla potenza raggiunta dagli elaboratori nell’ultimo decennio

Ciclo di elaborazione dell’informazione

  1. Input: immissione di dati nel computer (dispositivi più comuni: tastiera, scanner, mouse, microfono, telecamera)
  2. Elaborazione: i dati vengono elaborati
  3. Output: consente di vedere il risultato da dispositivi come lo schermo, stampante, altoparlanti
  4. Memorizzazione: i dati e i programmi non utilizzati vengono memorizzati su appositi nastri o dischi in modo da poterli recuperare in qualsiasi momento
  5. Distribuzione: i dati possono essere stampati, distribuiti o trasmessi da un computer all’altro

Applicazioni dell’informatica Gli aspetti applicativi più rilevanti sono:

  • Gestione aziendale
    • Sistema informativo aziendale: insieme di tutti i dati e tutti i processi che riguardano la raccolta, l’archiviazione, l’elaborazione, la distribuzione dei dati nelle attività operative e di controllo
    • Sistema informatico: insieme delle risorse tecnologiche facenti parte il sistema informativo
  • Office automation
  • Database
  • Educazione
  • Commercio
  • Giochi ed intrattenimento
  • Progettazione di prodotti complessi: tecniche CAD (es. Modellizzazione 2D/3D di oggetti, ambienti..)
  • Produzione di prodotti: tecniche CAM
  • Home banking (gestione del conto corrente, movimenti, gestione di portafogli di titoli..)
  • E-government (gestione di grandi archivi, erogazione di servizi online..)
  • Medicina e salute (gestione dati clinici, controllo ambulanze, automazione di apparecchiature mediche, supporto ad interventi..)
  • Telelavoro (domiciliare, mobile)
  • Istruzione e formazione (iscrizione e gestione studenti, gestione orari e aule, comunicazioni, supporto a studenti con esigenze speciali, apprendimento assistito..)
  • Commercio elettronico (vendita di beni e servizi tramite la rete Internet - costi ridotti, accessibilità continua..)
  • Sistema di navigazione mondiale (costituito da 24 satelliti in orbita nello spazio, da 5 postazioni terrestri che ne controllano il funzionamento) - applicazioni del GPS in agricoltura, controllo del traffico aereo, trasporti, ricerche scientifiche

Digital divide L’impossibilità di avvicinarsi alla tecnologia oggi chiude qualsiasi possibilità di recupero economico di molti paesi Come contrastarlo? Riutilizzo dell’hardware (trashware), software libero

Storia 2400 ac - invenzione abaco 1642 - Pascal crea la prima macchina meccanica per il calcolo delle somme 1900 - prima macchina automatica a schede perforate 1946 - primo computer elettronico negli USA (ENIAC) 1967 - prima calcolatrice portatile 1982 - computer portatili, compact disk 1985 - telefoni cellulari

RAPPRESENTAZIONE DELL’INFORMAZIONE Il BIT Si consideri un alfabeto di 2 simboli: 0 e 1

  • i segnali analogici sono molto sensibili alle interferenze (rumore)
  • i segnali digitali possono assumere solo due stati → per un dispositivo è semplice distinguere questi due dati, per cui vi è una maggiore immunità alle interferenze → l’informazione arriva dal mondo esterno, questa viene poi codificata/decodificata dalla rappresentazione binaria del computer

Le informazioni possono essere rappresentate da:

  • numeri (interi positivi, positivi o negativi, reali)
  • testi
  • immagini fisse (vettoriali, bitmap)
  • audio
  • video

Codifica binaria Esiste una particolare aggregazione di bit che è costituita da 8 bit (2^8 = 256 osservazioni) e prende il nome di byte

MEMORIZZAZIONE SU CALCOLATORE E CODICI

L’unità atomica è il bit, l’insieme di 8 bit è detto byte → Word: tipicamente 16,32 o 64 bit - insieme di bit la cui dimensione è un’importante caratteristica del calcolatore considerato. Essa influenza:

  • la larghezza degli indirizzi
  • la dimensione dei registri del processore
  • larghezza dei bus (word o multipli di essa)

Intervalli di variabilità ● Bit ○ Numero di configurazioni: 2 ○ Intervallo di variabilità: {0,1} ● Byte ○ Numero di configurazioni: 256 ○ Intervallo di variabilità: dipende dal tipo di codifica

Codifica dei testi Si utilizza una tabella (arbitraria). Lo standard oggi quasi universalmente riconosciuto è: Codice ASCII, in cui ogni carattere è codificato con 7 bit (128 simboli diversi)

Esiste anche il Codice ASCII esteso, in cui si utilizzano 8 bit e quindi si hanno 256 simboli diversi

UNICODE → 16 bit per carattere (Extended ASCII + caratteri etnici) e quindi 65536 simboli

SOFTWARE

Il software implementa le funzionalità di un sistema di elaborazione. Ci sono due categorie fondamentali di Software: ● software di sistema ○ linguaggi di programmazione ○ sistemi operativi ● programmi applicativi → programmi utilizzati per svolgere le applicazioni

Sistemi operativi Sono i programmi che fanno “funzionare” i vari componenti del computer; gestisce le risorse del sistema in maniera trasparente all’utente. Grazie al SO possiamo:

  • eseguire un programma
  • salvare un file
  • stampare un documento… Hanno subito nel corso del tempo un graduale ampliamento delle loro funzioni: connessione ad una rete, gestione del suono, gestione del video.. Appena le nuove funzionalità si diffondono vengono assorbite dal SO

Funzioni principali:

  • gestire le risorse dell'elaboratore
  • controllare che le operazioni vengano eseguite in modo regolare
  • determinare dove memorizzare dati e programmi
  • coordinare la comunicazione tra i vari componenti del computer
  • gestire l’interazione tra l’utente e i programmi applicativi

Interprete dei comandi → porzione del SO che si occupa di acquisire l’input dell’utente e di interpretarlo (es. doppio click sull’icona di un’applicazione - il SO interpreta questi comandi caricando ed eseguendo l’app)

Sistemi multitasking I vecchi So potevano eseguire soltanto un programma per volta, i SO moderni consentono di utilizzare diversi programmi contemporaneamente

Sistemi multithreading I programmi, in genere, elaborano i dati e i comandi in ordine sequenziale → solo quando un’operazione è stata portata a termine possono iniziarne un’altra. In un SO multithreading i programmi applicativi possono svolgere più operazioni parallelamente

Il progresso dell’informatica I cambiamenti non avvengono da un giorno all’altro: le innovazioni richiedono un certo tempo per estendersi a tutto il sistema innovazione di: hardware → sistema operativo → programma applicativo

Evoluzione dei SO

  • effettua le azioni che questi prevedono
  • Il programma è un insieme organizzato di istruzioni

Organizzazione Hardware e software sono organizzati a livelli (o strati). Ciascun livello corrisponde a una macchina (reale o virtuale) in grado di eseguire un proprio insieme di operazioni; ciascun livello fornisce un insieme di operazioni più semplici da utilizzare rispetto a quelle del livello sottostante. Ciascun livello è realizzato in termini dell’insieme di operazioni fornite dal livello immediatamente sottostante

Componenti di un calcolatore

Bus → è una linea a cui sono contemporaneamente connesse le unità del calcolatore e che consente il trasferimento di dati tra tali unità (problema: contesa su un mezzo condiviso, soluzione: CPU = master e periferiche = slave)

Pregi:

  • semplicità → una sola linea di connessione per tutti i dispositivi
  • estendibilità → nuovi dispositivi possono essere aggiunti tramite un'interfaccia al bus senza influenzare l'hardware preesistente
  • standardizzabilità → definizione di normative che consentono a periferiche di costruttori diversi di interagire correttamente

Difetti:

  • lentezza → uso in mutua esclusione del bus inibisce almeno parzialmente la parallelizzazione delle operazioni di trasferimento di dati tra dispositivi
  • limitata capacità → al crescere del numero di dispositivi la presenza di una sola linea comporta un limite alla capacità di trasferire dati
  • sovraccarico della CPU → l’unità centrale viene coinvolta in tutte le operazioni di trasferimento dai

Tipi di Bus:

  • bus dati → utilizzato per trasferire dati
  • bus indirizzi → identifica la posizione delle celle di memoria in cui la CPU va a scrivere o leggere
  • bus di controllo → in cui transitano i segnali di controllo che consentono di selezionare le unità coinvolte in un trasferimento dati e di definire la direzione dello scambio

Architettura di Von Neumann Burks, Goldstein e Von Neumann sono stati i primi a proporre che il codice del programma potesse essere memorizzato nella stessa memoria dei dati. La memoria è indifferenziata per dati o istruzioni; solo l’interpretazione da parte del CPU stabilisce se una data configurazione di bit è da riguardarsi come un dato o come un’istruzione

UNITÀ CENTRALE DI ELABORAZIONE

Elementi di una CPU ● Unità di controllo → legge le istruzioni dalla memoria e ne determina il tipo ● Unità aritmetico-logica → esegue le operazioni necessarie per eseguire le istruzioni ● Registri → memoria ad alta velocità usata per risultati temporanei, determina il parallelismo della CPU ○ Generici o specifici ○ IR → usato per contenere l’istruzione in corso di esecuzione (caricato in fase di fetch, determina le azioni svolte durante la fase di esecuzione) ○ PC → tiene traccia dell’esecuzione del programma (contiene l’indirizzo di memoria in cui è memorizzata la prossima istruzione da eseguire) ○ MAR → contiene l’indirizzo della locazione di memoria da leggere o scrivere (la dimensione di MAR determina l’ampiezza dello spazio di memoria fisica) ○ MDR → registro attraverso il quale viene scambiata l’informazione tra la memoria e la CPU

  • memorie più veloci ed economiche: posso anche mettere un numero maggiore di istruzioni, però più semplici
  • comportamento dei programmi: conviene investire nella riduzione dei tempi di esecuzione delle istruzioni eseguite anzichè aggiungere raffinate istruzioni, quasi mai usate, ma responsabili dell’allungamento del tempo di ciclo di macchina
  • conviene costrire processori molto veloci, necessariamente con repertori

RISC - criteri di progettazione

  • Frequenza di clock → velocità con cui gli istanti di tempo si succedono all’interno della CPU. Si misura in Hz (volte al secondo)
  • Periodo di Clock → intervallo di tempo tra un istante ed il successivo, questo deve essere necessariamente lungo da consentire a tutti i segnali elettrici di arrivare ● Le istruzioni devono essere semplici: se l’introduzione di un’operazione di macchina fa crescere del 10% il periodo di clock, allora essa deve produrre una riduzione di almeno un 10% del numero totale di cicli eseguiti ● Tutte le istruzioni occupano lo stesso spazio di memoria (una parola) ● Ristretto numero di formati (la codificata ordinata consente accorgimenti per velocizzare l’esecuzione ● La semplificazione del repertorio tende a far aumentare la dimensione del codice

PROCESSORE ● Registri speciali ○ Program Counter → i bit del registro PC indicano l’indirizzo di una parola in RAM il cui contenuto rappresenta la prossima istruzione da eseguire ○ Registro Istruzione → i bit del registro IR indicano l’istruzione appena letta dalla RAM e da decodificare ○ Registro Indirizzi Memoria → i bit del registro MAR indicano l’indirizzo di una parola in RAM il cui contenuto deve essere letto o scritto dal processore ○ Registro Dati Memoria → i bit del registro MDR indicano una copia del contenuto di una parola in RAM letto dal processore o il valore di bit che devono essere scritti in RAM dal processore ○ Registro di Stato → i bit del registro SR indicano che una particolare condizione si è verificata a seguito dell’esecuzione di un’istruzione, ad esempio, se un’istruzione di somma genera un overflow allora la ALU scrive un certo valore nel registro SR ● Registri di uso generale ○ sono usati per l’esecuzione di istruzioni memorizzando, ad esempio: il contenuto di una parola di memoria letto dal processore, il risultato di un’elaborazione sul contenuto di uno o più registri, gli operandi di un’istruzione aritmetica..

L’unità Aritmetico-Logica è costituita da un insieme di circuiti in grado di svolgere le operazioni di tipo aritmetico e logico; legge i dati contenuti all’interno dei registri generali, esegue le operazioni e memorizza il risultato in uno dei registri generali Vi sono circuiti in grado di eseguire la somma di due numeri binari contenuti in due registri e di depositare il risultato in un registro, circuiti in grado di eseguire il confronto tra due numeri

Come sono codificate le istruzioni?

  • le istruzioni che un processore può eseguire sono anch’esse rappresentate in formato digitale
  • si sceglie di usare un certo numero di bit e si fa corrispondere ad un’operazione o ad un registro una configurazione
  • a seconda dello spazio di indirizzamento, si sceglie di usare un certo numero di bit e si fa corrispondere ad un indirizzo di configurazione
  • in questo modo le istruzioni sono contenute nella RAM per essere prelevate/lette ed eseguite dal processore

ALGEBRA BOOLEANA George Boole è stato un matematico inglese, la usa algebra è stata utilizzata a partire dall’inizio del XX secolo Si basa su variabili detto LOGICHE o BOOLEANE aventi due solo possibili valori:

  • vero
  • falso

Usando le variabili booleane, si possono costruire le funzioni booleane (o funzioni logiche) es. funzione booleana di tre variabili: F(x,y,z) Il codominio è costituito da due soli possibili stati: vero - 1, falso - 0

Tabella della verità Ogni funzione booleana è caratterizzata dalla propria tabella di verità

Funzioni booleane:

  • Funzioni completamente specificate: se per tutte le combinazioni delle variabili il suo valore è determinato
  • Funzioni non completamente specificate: se a una o più combinazioni delle sue variabili non corrisponde alcun valore della funzione

Costanti booleane Essendo l’algebra booleana definita su due soli simboli, esistono solo due costanti: 0 e 1

Operatori logici Intervengono nelle relazioni tra le variabili e le costanti Esistono due tipi di operatori, in dipendenza dal numero di variabili che utilizzano:

  • monadici
  • diadici

Operatore NAND il risultato è vero solo se è falso l’AND tra le due variabili

Operatore NOR Il risultato è vero solo se è falso l’OR tra le due variabili

Precedenze tra operatori Le precedenze sono simili al + e al x nell’algebra consueta:

  • x → priorità alta
    • → priorità bassa

Proprietà dell’algebra booleana

ESERCIZI SU EXCEL

ALGORITMI

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati; questo procedimento si chiama algoritmo ed è composto da passi elementari

L’algoritmo è caratterizzato da:

  • finitezza → composto da un numero finito di passi elementari, le operazioni sono eseguite un numero finito di volte
  • non ambiguità → i risultati non variano in funzione della macchina/persona che esegue l’algoritmo (deterministico)
  • responsabilità → deve essere eseguibile con le risorse a disposizione

Rappresentazione degli algoritmi è necessario far riferimento a dei formalismi che:

  • non introducano ambiguità e siano universalmente riconosciuti ed interpretati allo stesso modo da un generico esecutore
  • permettano di rappresentare in modo efficace un algoritmo
  • costituiscano un utile strumento per poi poter passare alla fase di codifica in un linguaggio di programmazione

La rappresentazione può essere:

  • Rappresentazione grafica → diagrammi di flusso / flow chart
  • Rappresentazione testuale → notazione lineare strutturata / PseudoCodice

L’esecutore è in grado di valutare espressioni aritmetiche ed assegnarle alla variabile specificata nella parte sinistra

RETI DI COMPUTER

Le reti sono un componente fondamentale per la realizzazione di un sistema informativo Senza la rete i computer non possono comunicare fra loro e le uniche modalità di decentralizzazione dell’elaborazione dell’informazione sono costituite da:

  • collegamento di terminali ad un computer centrale: l’elaborazione e la gestione dei dati sono concentrate sul computer, ma l’interazione tra computer e utenti è decentralizzata sui terminali (a poca distanza fisica dal computer)
  • trasferimento di file da un computer all’altro, mediante connessioni punto-punto prive di un effettivo meccanismo di comunicazione bidirezionale

Si parla di rete di computer quando effettivamente più sistemi di elaborazione autonomi (computer) possono dialogare fra loro scambiandosi informazioni attraverso un mezzo fisico di connessione e quando tale meccanismo di comunicazione e di scambio è replicabile su più computer, senza dipendere dalla specificità delle due macchine che comunicano fra loro

È molto importante la possibilità offerta dalle moderne tecnologie di rete di interconnettere fra loro reti diverse, anche mediante mezzi trasmissivi eterogenei

Gli utilizzi che oggi facciamo delle reti di computer sono numerosissimi: scambio di informazioni (mail, messaggistica, ...), accesso a banche dati, accesso a servizi on-line, acquisti e transazioni finanziarie, giochi e divertimento, ecc.

Come si realizza una rete di computer? Una rete di computer si realizza attraverso le seguenti componenti:

  • componenti fisiche → i computer, i nodi della rete e i mezzi trasmissivi
  • componenti software → i programmi che consentono ai computer e ai nodi della rete di effettuare lo scambio di informazioni

Packet switching Nelle reti di trasmissione dati l’informazione da inviare dalla sorgente al destinatario viene suddivisa in pacchetti trasmessi separatamente, questa tecnica si chiama packet switching e permette di utilizzare il medesimo canale di comunicazione per alternare la trasmissione di dati da parte di più nodi di una stessa rete che condividono il canale

SIccome il canale di comunicazione viene usato contemporaneamente da più nodi, i pacchetti possono andare in conflitto fra di loro, corrompendosi → in tal caso è necessario trasmettere nuovamente i soli pacchetti corrotti

I pacchetti vengono trasmessi sequenzialmente, ma, anche a causa delle ritrasmissioni, possono arrivare in un ordine diverso da quello con cui sono stati spediti: sarà il destinatario ad occuparsi di ricostruire la sequenza corretta dei pacchetti per restituire l’integrità all’informazione trasmessa

Reti broadcast e punto-punto Dal punto di vista fisico una rete può essere broadcast o punto-punto:

  • reti broadcast:
    • Si utilizza lo stesso canale fisico di trasmissione, suddividendo la comunicazione in pacchetti
    • Ogni pacchetto contiene l’identificativo del destinatario che riceve e legge il pacchetto di dati, gli altri nodi della rete lo scartano
    • È possibile inviare pacchetti destinati a tutti i nodi della rete (broadcast)
    • È possibile inviare pacchetti destinati ad alcuni nodi della rete (multicast)
  • reti punto-punto:
    • Il canale trasmissivo è riservato alla comunicazione tra due nodi della rete
    • Per far giungere a destinazione un dato il pacchetto deve passare attraverso più nodi connessi fra loro in modalità “punto-punto”: viene utilizzato un algoritmo di routing per instradare il pacchetto verso il nodo di destinazione Tipicamente le reti poco estese (reti locali) sono di tipo broadcast, quelle molto estese (reti geografiche) sono punto punto

Dimensione della rete le reti possono essere classificate in base alla loro estensione fisica:

  • Reti locali → collegano fra loro nodi poco distanti (es.: entro 1 Km); tipicamente collegano computer di uno stesso ufficio o edificio
  • Reti metropolitane → collegano edifici distanti solo pochi Km l’uno dall’altro (es.: la rete di una città o delle sedi di una stessa azienda nell’ambito di una città)
  • Reti geografiche → collegano computer (o intere reti locali o metropolitane) distanti fra loro centinaia o migliaia di Km

Reti locali (LAN)

  • Sono di proprietà di una stessa organizzazione (tutta la rete è di proprietà e sotto il controllo della medesima azienda)
  • Si estendono nell’ambito del medesimo edificio o di un “campus” (insieme di edifici in un’area privata): in generale non si può utilizzare il suolo pubblico per stendere cavi di telecomunicazione
  • Velocità di trasmissione: molto elevata, da 10Mbps fino a 1Gbps
  • Topologia della rete (topologia del grafo con cui può essere rappresentata la rete):
    • bus: tutti i nodi si agganciano ad uno stesso canale trasmissivo; se viene usato contemporaneamente da più nodi, si generano delle “collisioni” che obbligano a ritrasmettere i pacchetti di informazioni, causando un rallentamento nel traffico sulla rete (es.: reti Ethernet)

Lo scopo di ciascun livello è quello di offrire dei servizi agli strati sovrastanti, nascondendo la complessità relativa all’implementazione del servizio stesso

  • In questo modo è come se due livelli paritari, entrambi di livello n sui due nodi della rete, parlassero tra loro mediante un protocollo di livello n
  • In realtà i due componenti di livello n comunicano fra loro attraverso i servizi offerti dai componenti di livello n–
  • Il dato viene costruito dal livello n del primo host

Tra ogni coppia di livelli adiacenti è definita un’interfaccia, che definisce:

  • le operazioni primitive che possono essere richieste al livello sottostante
  • i servizi che possono essere offerti al livello sovrastante

Stratificazione del software per le reti Il software per le reti è suddiviso in strati: ogni layer si occupa di una specifica problematica:

  1. Come fanno due programmi a comunicare tra loro? Chi definisce le regole con cui avviene la comunicazione e quali dati devono essere trasmessi? Quale significato hanno?
  2. Nella comunicazione tra due programmi come si svolge la “sessione di comunicazione”? Come si segmenta il dato da comunicare e come lo si riassembla quando lo si riceve? Chi apre la comunicazione, chi la tiene attiva e chi la chiude al termine della comunicazione? Come si fa a tenere attive sessioni di comunicazione diverse con lo stesso computer? Come si distinguono tipi di comunicazione differenti (es.: pagine web, posta elettronica, chat, ecc.)?
  3. Su una rete, non su un singolo segmento di collegamento tra due computer, come si fa a far arrivare i dati trasmessi dal mittente fino al giusto destinatario? Quale percorso deve compiere la comunicazione? Quale cammino sul grafo deve essere scelto per far comunicare due nodi? Come identifico i nodi della rete?
  4. Come si regola il flusso di dati sul canale di comunicazione? Quanti dati devono essere inviati (o ricevuti) sul canale? Come ci si accorge di un errore di trasmissione e come si rimedia ad un eventuale errore?
  5. Quale mezzo di trasmissione deve essere utilizzato? Come si rappresentano i dati sul canale di comunicazione analogico? Come si attiva e si utilizza fisicamente il canale?

La comunicazione è segmentata in pacchetti in modo che

  • il canale trasmissivo non sia impegnato continuativamente per tempi molto lunghi
  • in caso di errore di trasmissione debba essere rispedito solo un pacchetto e non l’intero flusso di dati In fase di trasmissione, ogni livello aggiunge al pacchetto ricevuto dallo strato sovrastante un header, formando così un pacchetto più grande (il pacchetto viene “imbustato”) L’header contiene informazioni di servizio utili per lo scambio del pacchetto di dati
  • lunghezza del pacchetto
  • numero progressivo del pacchetto nell’ambito dell’intero flusso di comunicazione
  • data ed ora in cui il pacchetto è stato prodotto (timestamp)
  • ... In fase di ricezione ogni livello riceve un pacchetto “imbustato” dal livello inferiore: il livello n scorpora l’header del pacchetto dal segmento contenente i dati veri e propri (il pacchetto viene estratto dalla busta di livello n)
  • il livello n esegue anche dei controlli di integrità del pacchetto sulla base delle informazioni contenute nell’header
  • il ricevitore ricostruisce il flusso di comunicazione originario concatenando i pacchetti ricevuti non in base all’ordine di ricezione, ma in base al numero progressivo presente nell'header del pacchetto

Modelli e architetture delle reti Esistono modelli teorici per la definizione di un’architettura di una rete e architetture effettive che di fatto costituiscono uno standard nel mondo delle reti

● Modello OSI (Open Systems Interconnection) → definisce il numero, le caratteristiche e le relazioni funzionali tra i livelli di un software di rete, ma non ne definisce i protocolli effettivi. Consiste in 7 livelli ● Architettura TCP/IP (Trasmission Control Protocol / Internet Protocol) → definisce, livello per livello, anche i protocolli effettivi. Consiste in 4 livelli

Per descrivere i diversi aspetti del protocollo di rete adottiamo il modello OSI semplificato, ridotto a soli cinque livelli:

  1. Livello Fisico
  2. Livello Data Link
  3. Livello Network
  4. Livello Transport
  5. Livello Application

1: Livello fisico Il canale di comunicazione fisico per la realizzazione di reti di computer è un analogico, in cui i valori variano in modo continuo (energia elettrica, campo elettromagnetico, luce, ecc.) all’interno di un determinato intervallo detto ampiezza