

































Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Riassunto delle slide e documenti forniti dal prof. Moriani
Tipologia: Dispense
1 / 41
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!


































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.
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
Applicazioni dell’informatica Gli aspetti applicativi più rilevanti sono:
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
Le informazioni possono essere rappresentate da:
Codifica binaria Esiste una particolare aggregazione di bit che è costituita da 8 bit (2^8 = 256 osservazioni) e prende il nome di byte
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:
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
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:
Funzioni principali:
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
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:
Difetti:
Tipi di Bus:
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
RISC - criteri di progettazione
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?
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:
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:
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:
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:
Proprietà dell’algebra booleana
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:
Rappresentazione degli algoritmi è necessario far riferimento a dei formalismi che:
La rappresentazione può essere:
L’esecutore è in grado di valutare espressioni aritmetiche ed assegnarle alla variabile specificata nella parte sinistra
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:
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:
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:
Dimensione della rete le reti possono essere classificate in base alla loro estensione fisica:
Reti locali (LAN)
Lo scopo di ciascun livello è quello di offrire dei servizi agli strati sovrastanti, nascondendo la complessità relativa all’implementazione del servizio stesso
Tra ogni coppia di livelli adiacenti è definita un’interfaccia, che definisce:
Stratificazione del software per le reti Il software per le reti è suddiviso in strati: ogni layer si occupa di una specifica problematica:
La comunicazione è segmentata in pacchetti in modo che
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 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