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, Schemi e mappe concettuali di Elementi di Informatica

riassunto di informatica del prof.segio Mariani

Tipologia: Schemi e mappe concettuali

2025/2026

Caricato il 28/01/2026

leonardo-sebastian-warthon-estela
leonardo-sebastian-warthon-estela 🇮🇹

5

(1)

12 documenti

1 / 29

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INFORMATICA GENERALE
CHE COS’È L’INFORMATICA?
L’informatica nasce per trattare automaticamente l’informazione.
Il suo scopo principale è permettere la creazione, raccolta, elaborazione, memorizzazione e diffusione delle
informazioni grazie a strumenti tecnologici chiamati sistemi di elaborazione dell’informazione, che nella
pratica sono i computer.
Il termine informatica, infatti, unisce due idee fondamentali:
informazione, cioè ciò che aumenta la nostra conoscenza
automatica, perché questo trattamento avviene senza intervento umano diretto, grazie alle
macchine
Quando un’informazione entra in un computer, diventa un dato, cioè un’informazione allo stato grezzo che
può essere manipolata, modificata e poi trasformata di nuovo in informazione utile.
Tutto il funzionamento dell’informatica si regge su due pilastri fondamentali:
Hardware, che è la parte fisica e tangibile del computer: monitor, tastiera, mouse, stampante,
scanner ecc.
Software, che è la parte immateriale, composta dai programmi e dalle istruzioni che permettono
al computer di funzionare (sistemi operativi, applicazioni, videogiochi, programmi di scrittura).
Senza hardware il software non potrebbe funzionare, e senza software l’hardware sarebbe inutile.
Dati e tipi di dati
I dati sono la materia prima dell’informatica, perché è su di essi che il computer lavora per produrre
informazione.
Esistono due grandi categorie di dati:
Dati semplici, come numeri, caratteri e date
Dati complessi, come immagini, suoni, video, grafici e animazioni
La possibilità di gestire dati complessi è legata alla grande potenza di calcolo dei computer moderni, che
consente di elaborare enormi quantità di informazioni in tempi molto brevi.
Ciclo di elaborazione dell’informazione
Ogni sistema informatico funziona seguendo un ciclo continuo, che trasforma i dati grezzi in informazioni
utili.
1. Input: È la fase in cui i dati vengono inseriti nel computer tramite dispositivi di input come tastiera,
mouse, scanner, microfono, telecamera o touchpad.
2. Elaborazione: I dati inseriti vengono elaborati seguendo le istruzioni del software. L’elaborazione
può essere, ad esempio, un calcolo, la formattazione di un testo, l’esecuzione di un comando o la
creazione di immagini e suoni.
3. Output: Il risultato dell’elaborazione viene restituito all’utente. L’output è quindi un input
elaborato, visibile o ascoltabile tramite dispositivi di output come schermo, stampante o
altoparlanti.
4. Memorizzazione: I dati e i programmi non utilizzati vengono salvati su memorie permanenti (dischi
o nastri), così da poter essere recuperati e riutilizzati in qualsiasi momento.
5. Distribuzione: Le informazioni ottenute possono essere stampate, condivise o trasmesse ad altri
computer, ad esempio tramite email, siti web o cloud.
Questo ciclo non si conclude mai davvero, perché l’output può diventare nuovo input per un’ulteriore
elaborazione.
Digital divide
📌 Il digital divide è il divario tra chi ha accesso alla tecnologia e chi ne è escluso.
Questa mancanza di accesso limita le possibilità di crescita economica e sociale di molti Paesi.
🔹 Come ridurlo:
Riutilizzo dell’hardware (trashware): recupero e ricondizionamento di vecchi computer per scuole.
Software libero: utilizzo di programmi gratuiti e aperti a tutti, che riducono i costi e favoriscono la
diffusione tecnologica.
Breve storia dell’informatica
2400 a.C. → invenzione dell’abaco, primo strumento di calcolo manuale.
1642Pascal realizza la prima macchina meccanica capace di eseguire somme.
1900 nasce la prima macchina automatica a schede perforate, usata per elaborazioni statistiche.
1946 → negli Stati Uniti viene creato l’ENIAC, il primo computer elettronico programmabile.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d

Anteprima parziale del testo

Scarica informatica generale e più Schemi e mappe concettuali in PDF di Elementi di Informatica solo su Docsity!

INFORMATICA GENERALE

CHE COS’È L’INFORMATICA?

L’informatica nasce per trattare automaticamente l’informazione. Il suo scopo principale è permettere la creazione, raccolta, elaborazione, memorizzazione e diffusione delle informazioni grazie a strumenti tecnologici chiamati sistemi di elaborazione dell’informazione, che nella pratica sono i computer. Il termine informatica , infatti, unisce due idee fondamentali:

  • informazione, cioè ciò che aumenta la nostra conoscenza
  • automatica, perché questo trattamento avviene senza intervento umano diretto, grazie alle macchine Quando un’informazione entra in un computer, diventa un dato, cioè un’informazione allo stato grezzo che può essere manipolata, modificata e poi trasformata di nuovo in informazione utile. Tutto il funzionamento dell’informatica si regge su due pilastri fondamentali :
  • Hardware , che è la parte fisica e tangibile del computer: monitor, tastiera, mouse, stampante, scanner ecc.
  • Software , che è la parte immateriale , composta dai programmi e dalle istruzioni che permettono al computer di funzionare (sistemi operativi, applicazioni, videogiochi, programmi di scrittura). Senza hardware il software non potrebbe funzionare, e senza software l’hardware sarebbe inutile. Dati e tipi di dati I dati sono la materia prima dell’informatica, perché è su di essi che il computer lavora per produrre informazione. Esistono due grandi categorie di dati:
  • Dati semplici, come numeri, caratteri e date
  • Dati complessi, come immagini, suoni, video, grafici e animazioni La possibilità di gestire dati complessi è legata alla grande potenza di calcolo dei computer moderni, che consente di elaborare enormi quantità di informazioni in tempi molto brevi. Ciclo di elaborazione dell’informazione Ogni sistema informatico funziona seguendo un ciclo continuo , che trasforma i dati grezzi in informazioni utili.
  1. Input: È la fase in cui i dati vengono inseriti nel computer tramite dispositivi di input come tastiera, mouse, scanner, microfono, telecamera o touchpad.
  2. Elaborazione : I dati inseriti vengono elaborati seguendo le istruzioni del software. L’elaborazione può essere, ad esempio, un calcolo, la formattazione di un testo, l’esecuzione di un comando o la creazione di immagini e suoni.
  3. Output : Il risultato dell’elaborazione viene restituito all’utente. L’output è quindi un input elaborato , visibile o ascoltabile tramite dispositivi di output come schermo, stampante o altoparlanti.
  4. Memorizzazione : I dati e i programmi non utilizzati vengono salvati su memorie permanenti (dischi o nastri), così da poter essere recuperati e riutilizzati in qualsiasi momento.
  5. Distribuzione : Le informazioni ottenute possono essere stampate, condivise o trasmesse ad altri computer, ad esempio tramite email, siti web o cloud. Questo ciclo non si conclude mai davvero, perché l’output può diventare nuovo input per un’ulteriore elaborazione. Digital divide 📌 Il digital divide è il divario tra chi ha accesso alla tecnologia e chi ne è escluso. Questa mancanza di accesso limita le possibilità di crescita economica e sociale di molti Paesi. 🔹 Come ridurlo:
  • Riutilizzo dell’hardware (trashware): recupero e ricondizionamento di vecchi computer per scuole.
  • Software libero: utilizzo di programmi gratuiti e aperti a tutti, che riducono i costi e favoriscono la diffusione tecnologica. Breve storia dell’informatica
  • 2400 a.C. → invenzione dell’abaco, primo strumento di calcolo manuale.
  • 1642 → Pascal realizza la prima macchina meccanica capace di eseguire somme.
  • 1900 → nasce la prima macchina automatica a schede perforate, usata per elaborazioni statistiche.
  • 1946 → negli Stati Uniti viene creato l’ENIAC, il primo computer elettronico programmabile.
  • 1967 → debutta la prima calcolatrice portatile.
  • 1982 → arrivano i computer portatili e i compact disk (CD).
  • 1985 → si diffondono i telefoni cellulari, aprendo l’era della comunicazione mobile. RAPPRESENTAZIONE DELL’INFORMAZIONE Il bit Il bit è l’unità minima di informazione e può assumere solo due valori: 0 o 1. Il computer utilizza la logica binaria perché i segnali digitali, avendo solo due stati, sono più affidabili dei segnali analogici. Per questo motivo, tutte le informazioni provenienti dal mondo esterno vengono codificate in forma binaria per poter essere elaborate dal computer. Le informazioni rappresentabili sono numeri, testi, immagini, audio e video. 📍 Codifica binaria: Un insieme di 8 bit forma 1 byte , che permette 256 combinazioni diverse (2⁸). I byte possono essere raggruppati in multipli come KB, MB, GB, TB. 📊 Multipli del byte: Sistemi numerici Per rappresentare i numeri in modo comprensibile anche da una macchina, è necessario usare un insieme limitato di simboli, chiamati cifre, e stabilire delle regole su come combinarli. Da qui nascono due grandi categorie di sistemi numerici:
  • Nei sistemi non posizionali : il valore della cifra non dipende dalla posizione che occupa nel numero. Es. numero romano
  • Nei sistemi posizionali : il valore di ogni cifra dipende dalla posizione che occupa all’interno del numero. Es. il sistema decimale. In un sistema posizionale ogni numero si costruisce secondo la formula generale: valore = cifra × base^posizione à^ dove la base (r) indica quante cifre diverse si possono usare. Tipi principali di sistemi numerici
  • Sistema decimale (base 10) → Usa le cifre da 0 a 9 ed è quello che utilizziamo normalmente. Esempio: 8427 = (8 × 10³) + (4 × 10²) + (2 × 10¹) + (7 × 10⁰)
  • Sistema binario (base 2) → usa solo 0 e 1, cioè gli unici due simboli che un computer riesce a comprendere. Esempio: 1011 = (1 × 2³) + (0 × 2²) + (1 × 2¹) + (1 × 2⁰) = 8 + 0 + 2 + 1 = 11
  • Sistema ottale (base 8) → Usa le cifre da 0 a 7 ed è una rappresentazione più compatta del binario, perché ogni cifra ottale corrisponde a 3 bit.
  • Sistema esadecimale (base 16) → Usa le cifre da 0 a 9 e le lettere A–F per rappresentare i valori da 10 a 15. È molto usato in informatica perché ogni cifra esadecimale corrisponde a 4 bit , rendendo le sequenze binarie più brevi e leggibili. Bit necessari e limiti di rappresentazione Un computer ha sempre una memoria finita, quindi non può rappresentare quantità infinite di valori. Questo significa che esiste sempre un limite massimo ai numeri che possono essere memorizzati. Utilizzando n bit , è possibile rappresentare fino a 2ⁿ − 1 valori diversi. Se si vuole sapere quanti bit servono per rappresentare un certo valore X , si utilizza la formula: n = log₂ X. Quando però il numero da rappresentare supera la capacità dei bit disponibili, si verifica un fenomeno chiamato overflow. In questo caso la numerazione “riparte da capo”, causando risultati errati perché il computer non è più in grado di distinguere correttamente i valori. Memorizzazione su calcolatore e codici Nel computer l’unità minima di informazione è il bit, ma l’elemento operativo fondamentale è il byte, formato da 8 bit. Un Insiemi più grandi di bit prendono il nome di word , che possono essere di 16, 32 o 64 bit , a seconda della potenza del calcolatore. La dimensione della word è molto importante perché influenza:

SOFTWARE

Il software è l’insieme dei programmi che permettono al computer di funzionare e di svolgere diversi compiti. A differenza dell’hardware, il software non è materiale, ma è ciò che “comanda” il comportamento del computer. Il software si divide in due grandi categorie.

  • Il software di sistema : comprende tutti i programmi necessari al funzionamento del computer, come i sistemi operativi e i linguaggi di programmazione, che gestiscono e controllano le risorse interne della macchina.
  • I programmi applicativi : sono quelli utilizzati dall’utente per svolgere attività pratiche, come scrivere testi, fare calcoli, navigare su Internet, ascoltare musica o guardare video.

Sistemi operativi Il sistema operativo (SO) è il programma principale del computer, perché coordina e controlla tutte le componenti hardware e software, permettendo all’utente di usare il computer senza conoscere i dettagli tecnici. Grazie al sistema operativo è possibile eseguire programmi, salvare file, stampare documenti, collegarsi a una rete e gestire suoni e video. Con il tempo, le funzioni del sistema operativo si sono ampliate fino a includere quasi tutte le attività fondamentali del sistema. Le funzioni principali del sistema operativo sono:

  • la gestione delle risorse dell’elaboratore ;
  • il controllo del corretto svolgimento delle operazioni;
  • la decisione su dove memorizzare dati e programmi;
  • il coordinamento della comunicazione tra i componenti ;
  • la gestione dell’interazione tra utente e programmi applicativi. Quando l’utente compie un’azione, come fare doppio clic su un’icona, una parte del sistema operativo chiamata interprete dei comandi interpreta l’input e avvia il programma richiesto. Multitasking e multithreading I vecchi sistemi operativi potevano eseguire un solo programma alla volta.
  • I sistemi operativi moderni, invece, sono multitasking , cioè permettono di utilizzare più programmi contemporaneamente, ad esempio scrivere un documento mentre si ascolta musica.
  • Inoltre, i programmi moderni sono multithreading , cioè possono eseguire più operazioni in parallelo all’interno dello stesso programma. Questo rende le applicazioni più rapide ed efficienti, perché diverse attività vengono svolte nello stesso momento. Il progresso dell’informatica L’evoluzione dell’informatica non è avvenuta all’improvviso, ma in modo graduale e continuo. Ogni innovazione ha bisogno di tempo per diffondersi e per influenzare tutte le componenti del sistema informatico. In generale, il progresso segue un percorso ben preciso: prima migliora l’hardware, poi il sistema operativo e infine i programmi applicativi. Questo significa che inizialmente si sviluppano le tecnologie fisiche del computer, come processori, memoria e dispositivi. Successivamente, il sistema operativo viene aggiornato per sfruttare al meglio queste nuove potenzialità. Solo dopo, i programmi applicativi si adattano, offrendo funzioni sempre più moderne ed efficienti all’utente. Negli anni ’50 , i programmi venivano scritti su schede perforate , che dovevano essere inserite manualmente nel computer ogni volta che si voleva eseguire un’operazione diversa. In quel periodo non esisteva un vero sistema operativo: era l’ operatore umano a controllare manualmente l’esecuzione dei programmi, svolgendo di fatto il ruolo del sistema operativo. Oggi, invece, i sistemi operativi sono diventati molto più complessi e autonomi. Non si limitano a eseguire i programmi, ma gestiscono tutte le risorse del computer, controllano il corretto funzionamento del sistema e includono numerose applicazioni integrate che rendono l’uso del computer più semplice e immediato. I nterfacce utente L’ interfaccia utente è il mezzo di comunicazione tra l’utente e il computer. Attraverso l’interfaccia possiamo impartire comandi, aprire programmi e vedere i risultati sullo schermo. 📍 Esistono diversi tipi di interfaccia: (non è cosi specificata questa parte)
  • A caratteri: si utilizza solo la tastiera per scrivere comandi (es. vecchi sistemi come MS-DOS).
  • Grafica (GUI): basata su icone, finestre e mouse; è quella dei moderni sistemi operativi come

Windows o macOS.

  • A finestre: consente di aprire più applicazioni contemporaneamente
  • Con click del mouse: le funzioni si attivano con un semplice clic invece di scrivere comandi.
  • Tecnologia WYSIWYG (“What You See Is What You Get”): permette di vedere sullo schermo il risultato finale come apparirà nella stampa o nel documento reale.
  • Standardizzazione dei comandi: i principali comandi (come copia, incolla, salva) sono uguali in molti programmi, rendendo l’esperienza più intuitiva e uniforme.

IL BUS

Il bus può essere immaginato come una “strada” comune che collega CPU, memoria e periferiche, permettendo lo scambio di dati, comandi e segnali. 📍 Tutte le unità condividono questa linea, quindi solo una alla volta può utilizzarla. Per evitare confusione, il sistema stabilisce una gerarchia:

  • la CPU svolge il ruolo di master , cioè controlla e gestisce i trasferimenti
  • mentre le periferiche sono gli slave , che eseguono le operazioni richieste. Pregi del bus
  • Semplice: perché utilizza un’unica linea di collegamento per tutti i dispositivi.
  • Estendibile: dato che si possono aggiungere nuovi dispositivi senza modificare quelli esistenti
  • Standardizzato: permettendo la comunicazione tra componenti di produttori diversi. Difetti del bus
  • Lentezza: poiché il bus può essere usato da un dispositivo per volta, il trasferimento dei dati risulti più lento e non parallelo.
  • Capacità limitata: se si collegano troppi dispositivi, il bus può creare un “collo di bottiglia”, rallentando il sistema
  • Sovraccarico della CPU: la CPU deve gestire ogni operazione di trasferimento, aumentando il proprio carico di lavoro. Tipi di bus All’interno di un computer non esiste un solo bus, ma tre tipi principali , ciascuno con una funzione specifica.
  • Il bus dati trasporta i dati veri e propri tra CPU, memoria e periferiche.
  • Il bus indirizzi indica la posizione di memoria in cui leggere o scrivere i dati.
  • Il bus di controllo trasporta i segnali di comando che coordinano le operazioni e stabiliscono se il trasferimento avviene in lettura o in scrittura. Architettura di Von Neumann L’architettura di Von Neumann è un modello di calcolatore proposto da Burks, Goldstein e Von Neumann, in cui dati e programmi sono memorizzati nella stessa memoria. Prima di questo modello, programmi e dati erano separati e il programma doveva essere caricato manualmente ogni volta. 📍 In questo tipo di architettura la memoria è indifferenziata, cioè non distingue tra dati e istruzioni. È la CPU, durante l’esecuzione, a stabilire se una sequenza di bit rappresenta un dato da elaborare oppure un’istruzione da eseguire. Questo modello è alla base dei computer moderni e consente l’esecuzione automatica e sequenziale dei programmi. Unità Centrale di Elaborazione (CPU) La CPU è il cervello del computer. Ogni volta che fai qualcosa — scrivere, aprire una foto, guardare un video — il computer non decide da solo: chiede alla CPU cosa fare. La CPU prende le istruzioni, le capisce e dice al computer come comportarsi. La CPU è collegata a tutto il resto del computer (memoria, tastiera, schermo…) tramite una specie di strada chiamata bus , che serve per far viaggiare le informazioni avanti e indietro. All’interno della CPU si trovano tre componenti fondamentali , che collaborano tra loro:
  1. Unità di Controllo (CU) → Legge le istruzioni dalla memoria e decide cosa bisogna fare. Non fa i calcoli, ma dice agli altri: “adesso fai questo, poi quest’altro”.
  2. Unità Aritmetico-Logica (ALU) → È la parte che fa davvero i calcoli: addizioni, sottrazioni, divisioni. Inoltre, confronta i numeri (più grande, più piccolo, uguale) e fa scelte logiche come sì/no.
  3. Registri → sono piccole memorie molto veloci interne alla CPU, utilizzate per conservare Servono per tenere per un attimo i dati e le istruzioni che la CPU sta usando proprio in quel momento , così non deve andare ogni volta a cercarli nella memoria (che è più lenta). Dentro la CPU ci sono tanti registri, ognuno con un compito preciso:
  • Il PC (Program Counter) è come un segnalibro : indica qual è la prossima istruzione da leggere.
  • L’ IR (Instruction Register) contiene l’istruzione che la CPU sta eseguendo adesso.
  • Il MAR (Memory Address Register) dice dove andare in memoria a prendere o scrivere i dati.
  • Il MDR (Memory Data Register) trasporta i dati veri e propri tra memoria e CPU.
  • Il PSW (Program Status Word) dice come sta andando il lavoro, ad esempio se un risultato è zero o se c’è stato un errore.
  • I registri R0, R1, R2… sono come cassetti liberi , che la CPU usa quando le servono per fare i calcoli. Tipologie di istruzioni Quando la CPU lavora, non fa magie: segue delle istruzioni , cioè ordini molto precisi che le dicono cosa deve fare passo dopo passo. Queste istruzioni si possono dividere in tre grandi tipi :
  1. Istruzioni aritmetico-logiche → servono per fare calcoli e confronti , come sommare, sottrarre, dividere o capire se un numero è maggiore, minore o uguale a un altro.
  2. Istruzioni di controllo del flusso → servono per decidere l’ordine delle operazioni , ad esempio ripetere un’azione, fare una scelta oppure tornare indietro e ricominciare.
  3. Istruzioni di trasferimento → servono per spostare i dati tra CPU, memoria e dispositivi esterni come disco o stampante. Il data path: come si muovono i dati Dentro la CPU i dati si muovono lungo un percorso chiamato data path. 📍 I registri mandano i dati all’ ALU , l’ALU esegue l’operazione richiesta e il risultato viene riportato in un registro o in memoria. 👉 I dati entrano, vengono elaborati ed escono. Il ciclo di esecuzione delle istruzioni (Fetch–Decode–Execute) Ogni volta che il computer esegue un programma, la CPU ripete sempre lo stesso ciclo , composto da tre fasi.
  • Nella fase di Fetch, la CPU va in memoria e prende l’istruzione da eseguire.
  • Nella fase di Decode, la CPU interpreta l’istruzione e capisce che operazione deve svolgere.
  • Nella fase di Execute, la CPU esegue davvero l’operazione, ad esempio un calcolo o uno spostamento di dati. Terminata un’istruzione, la CPU passa subito alla successiva e ripete questo ciclo milioni di volte al secondo, permettendo al computer di lavorare in modo continuo e veloce. Due modi di costruire i processori: CISC e RISC Nel tempo sono stati sviluppati due approcci diversi per progettare i processori: CISC e RISC. 🧱 CISC (Complex Instruction Set Computing) Nel modello CISC (Complex Instruction Set Computing) il processore dispone di molte istruzioni , anche molto complesse. L’idea è quella di ridurre il numero di comandi necessari per completare un programma. 📍 Vantaggi:
  • Le istruzioni complesse rendono la programmazione più semplice.
  • Si riduce la distanza tra linguaggio macchina e linguaggio di alto livello (quello dei programmatori).
  • Sfrutta bene la memoria, evitando sprechi. 📍 Limiti:
  • Le istruzioni sono più lente, perché sono più complicate.
  • Il processore deve essere più grande e più potente per gestirle. 💡 In breve: con CISC una singola istruzione può fare molte cose, ma richiede più tempo per essere eseguita. ⚡ RISC (Reduced Instruction Set Computing) Nel modello RISC (Reduced Instruction Set Computing) il processore utilizza poche istruzioni semplici , tutte simili tra loro. Ogni istruzione fa una sola cosa, ma viene eseguita molto velocemente 📍 Caratteristiche principali:
  • Le istruzioni sono brevi e tutte della stessa lunghezza.
  • Ogni operazione occupa lo stesso spazio in memoria.
  • Il numero di formati di istruzione è ridotto (più facile da decodificare).
  • Il processore lavora con alta frequenza di clock , cioè compie più operazioni al secondo. 📍 Vantaggi:
  • Processori più semplici, economici e molto veloci.
  • Tutte le operazioni vengono eseguite con ritmo costante. 📍 Limiti:

ALGEBRA BOOLEANA

L’ algebra booleana prende il nome da George Boole ed è un sistema matematico usato per descrivere le operazioni logiche su cui si basa l’informatica e il funzionamento dei circuiti digitali. Si basa su variabili booleane , che possono assumere solo due valori: 1 (vero) e 0 (falso). Con queste variabili si costruiscono le funzioni booleane (o funzioni logiche), ad esempio F(x, y, z). Il risultato di una funzione booleana può essere solo 0 oppure 1. Ogni funzione booleana può essere rappresentata attraverso una tabella della verità , che mostra il valore dell’uscita ( F ) per tutte le combinazioni possibili delle variabili di ingresso ( x, y, z ). Le funzioni si distinguono in:

  • Funzioni completamente specificate: quando il valore è definito per ogni combinazione
  • Funzioni non completamente specificate: quando per alcune combinazioni il valore non è indicato Costanti booleane Poiché i valori possibili sono solo due, esistono anche solo due costanti booleane: 0 e 1. Operatori logici Gli operatori logici servono per mettere in relazione variabili e costanti. Possono essere
  • monadici , se agiscono su una sola variabile.
  • diadici , se agiscono su due variabili. L’operatore NOT è monadico e serve a invertire il valore: 1 diventa 0 e 0 diventa 1. L’operatore AND è diadico e restituisce 1 solo se entrambe le variabili valgono 1; in tutti gli altri casi il risultato è 0. L’operatore OR è diadico e restituisce 1 se almeno una delle due variabili vale 1. L’operatore XOR restituisce 1 solo se le due variabili sono diverse ; se sono uguali, il risultato è 0. Operatori universali Oltre agli operatori principali, esistono due operatori che da soli permettono di costruire qualsiasi funzione logica. L’operatore NAND restituisce 0 solo quando entrambe le variabili sono 1; in tutti gli altri casi restituisce 1. L’operatore NOR restituisce 1 solo quando entrambe le variabili sono 0; negli altri casi restituisce 0. Proprietà dell’algebra booleana

ESERCIZI SU EXCEL (ci sono 2 esercitazioni)

ALGORITMI

Risolvere un problema significa trovare una serie di istruzioni che, partendo da alcuni dati, permetta di arrivare a un risultato. Questa serie di istruzioni si chiama algoritmo. Un algoritmo è quindi un procedimento logico , formato da una sequenza ordinata di passaggi semplici , che portano passo dopo passo alla soluzione del problema. Un algoritmo può essere paragonato anche a una ricetta di cucina , perché è un insieme di azioni da svolgere in ordine per ottenere un risultato finale. Un buon algoritmo deve avere 3 caratteristiche fondamentali:

  • La finitezza significa che deve essere formato da un numero finito di passi e quindi deve terminare.
  • La non ambiguità significa che ogni istruzione deve essere chiara e univoca, così chiunque la esegua ottiene sempre lo stesso risultato: l’algoritmo è quindi deterministico.
  • La realizzabilità (o responsabilità) significa che l’algoritmo deve poter essere eseguito davvero, usando risorse disponibili come tempo, memoria e potenza di calcolo. Rappresentazione degli algoritmi Per descrivere un algoritmo in modo chiaro si usa un linguaggio formale , cioè un modo di scrivere che non crea ambiguità, viene capito allo stesso modo da tutti e permette di rappresentare bene tutti i passaggi. Questo serve anche come base per trasformare l’algoritmo in un vero programma. Esistono due modi principali per rappresentare un algoritmo: Esistono due modi principali per rappresentare un algoritmo:
  1. Diagramma di flusso (Flow Chart): È una rappresentazione grafica dell’algoritmo. Usa simboli e frecce per mostrare l’ordine delle operazioni e il percorso da seguire.
  2. Pseudocodice: È una rappresentazione testuale dell’algoritmo. Descrive i passaggi a parole, usando istruzioni simili a quelle dei linguaggi di programmazione, ma più semplici e facili da leggere. Simboli fondamentali del Flow Chart
  • Ovale → indica l’inizio o la fine dell’algoritmo
  • Parallelogramma → serve per leggere dati in input o mostrare risultati in output
  • Rettangolo → rappresenta un’operazione o un calcolo (A= B+3)
  • Rombo → indica una decisione (vero / falso) che porta a due possibili percorsi Operazioni di base Un algoritmo è formato da operazioni di base , cioè istruzioni semplici che permettono di leggere dati, fare calcoli e prendere decisioni. Le operazioni principali sono le istruzioni di input/output , le istruzioni di assegnamento , la valutazione di espressioni e le strutture di controllo , che servono per cambiare il normale flusso delle operazioni.

Istruzioni di I/O

Le istruzioni di input servono per leggere dati dall’esterno, mentre quelle di output servono per mostrare i risultati. Esempi: Input → leggi A Output → scrivi B

Istruzione di assegnamento

Le istruzioni di assegnamento servono per dare un valore a una variabile. Esempio: A = 5 → alla variabile A viene assegnato il valore 5.

RETI DI COMPUTER

Le reti di computer permettono ai computer di comunicare e scambiarsi informazioni. Senza le reti, ogni computer lavorerebbe da solo e i dati resterebbero isolati. In passato esistevano solo due modi per collegare più dispositivi.

  • Nel primo caso, più terminali erano collegati a un computer centrale , che faceva tutto il lavoro.
  • Nel secondo caso, i file venivano trasferiti manualmente da un computer all’altro, senza una comunicazione continua. Si parla di rete di computer quando più computer autonomi e indipendenti possono dialogare tra loro, scambiando informazioni attraverso un mezzo di connessione, come cavi o onde radio. Una vera rete deve funzionare in modo standardizzato , cioè permettere la comunicazione indipendentemente dal tipo o dalla marca dei computer. Le tecnologie moderne permettono anche di collegare reti diverse tra loro , per esempio reti cablate e reti wireless. Questo ha portato alla nascita di Internet , che è una grande rete formata da tante reti più piccole. Utilizzi delle reti di computer: Le reti di computer vengono usate ogni giorno per moltissime attività, come lo scambio di informazioni , l’accesso a servizi online, le comunicazioni, gli acquisti, le transazioni finanziarie, il gioco e l’intrattenimento. Come si realizza una rete di computer? Per costruire una rete servono due tipi di componenti.
  • I componenti hardware comprendono i computer, i dispositivi di collegamento come router, switch e modem , e i mezzi di trasmissione come cavi, fibra ottica, onde radio e Wi-Fi.
  • I componenti software sono i programmi e i protocolli che permettono ai dispositivi di riconoscersi, comunicare e scambiarsi correttamente le informazioni.

Packet switching

Nelle reti moderne i dati non vengono inviati tutti insieme, ma vengono divisi in piccoli pacchetti. Ogni pacchetto contiene una parte del messaggio e le informazioni necessarie per arrivare a destinazione. Questo metodo si chiama packet switching e permette a più computer di condividere lo stesso canale di comunicazione, perché pacchetti di messaggi diversi possono viaggiare insieme. Come funziona?

  • Ogni pacchetto viaggia in modo indipendente.
  • Se un pacchetto si rovina durante il percorso, viene ritrasmesso solo quello.
  • I pacchetti possono arrivare in ordine sparso.
  • Sarà il computer che riceve a rimetterli nell’ordine corretto e ricostruire il messaggio originale. Reti broadcast e punto-punto: Dal punto di vista fisico, una rete può funzionare in due modi principali: broadcast oppure punto-punto.
  1. Nelle reti broadcast tutti i nodi condividono lo stesso canale di trasmissione. I dati non viaggiano in modo continuo, ma sono divisi in pacchetti , ognuno con un identificativo che indica il destinatario.
  • Tutti i nodi ricevono i pacchetti che circolano sulla rete, ma solo il destinatario li legge , mentre gli altri li scartano.
  • È possibile inviare pacchetti a tutti i nodi contemporaneamente (comunicazione broadcast) oppure solo a un gruppo di nodi (comunicazione multicast). Questo tipo di rete è semplice da gestire ed è tipico delle reti locali (LAN) , dove i dispositivi sono vicini e condividono facilmente lo stesso canale.
  1. Nelle reti punto-punto : ogni collegamento unisce direttamente due nodi e il canale è riservato solo a loro. Se un pacchetto deve raggiungere un nodo lontano, deve passare attraverso più nodi intermedi. Per scegliere il percorso migliore viene usato un algoritmo di routing, che instrada i pacchetti fino alla destinazione finale. Le reti geografiche (WAN) sono in genere di tipo punto-punto, perché devono coprire grandi distanze. Dimensione della rete le reti possono essere classificate in base alla loro estensione fisica:
  2. Le reti locali (LAN) collegano dispositivi nello stesso edificio o in aree molto vicine, entro circa 1 km.
  • Appartengono di solito a un’unica organizzazione (azienda, scuola, università), coprono uffici,

edifici o campus privati e hanno una velocità molto alta , che può andare da 10 Mbps fino a 1 Gbps. Tra le LAN più comuni troviamo :

  • la topologia a bus , in cui tutti i nodi sono collegati a un unico canale. Se più dispositivi trasmettono insieme si creano collisioni, che causano rallentamenti. Un esempio è l’Ethernet tradizionale.
  • la topologia ad anello (ring) , in cui i nodi formano un anello e trasmettono a turno, uno alla volta. Un esempio è la IBM Token Ring.
  1. Le reti metropolitane (MAN) collegano dispositivi o edifici nella stessa area urbana, fino a qualche decina di chilometri , come la rete che collega più sedi di un’azienda in una città.
  2. Le reti geografiche (WAN) coprono distanze molto grandi, da centinaia a migliaia di chilometri, fino a livello mondiale.
  • L’esempio più importante è Internet.
  • Le WAN sono formate da dispositivi finali , canali trasmissivi (fibra, cavi, satelliti, ponti radio) e nodi intermedi come router e switch, che smistano i pacchetti.
  • Il loro scopo principale è collegare tra loro più reti LAN , creando grandi reti globali. Per funzionare bene, una rete WAN ha bisogno di dispositivi specializzati che gestiscono il traffico dei dati. I dispositivi principali sono i router , che servono a instradare i pacchetti lungo il percorso più efficiente fino alla destinazione. Un router :
  • riceve i pacchetti dagli altri nodi;
  • li memorizza temporaneamente;
  • li invia al nodo successivo quando il canale è libero. Esistono anche i gateway , che sono router con funzioni aggiuntive. Oltre a instradare i pacchetti, servono a collegare reti diverse tra loro, ad esempio reti che usano protocolli o mezzi fisici differenti (cavo, wireless). TECNOLOGIE DI TRASMISSIONE NELLE WAN Le reti WAN possono usare tecnologie diverse , anche all’interno della stessa rete. Tra le più comuni troviamo:
  • linee dedicate (CDN – Circuito Diretto Numerico);
  • linee telefoniche , come DSL e ISDN;
  • ponti radio ;
  • canali satellitari.

Il software per le reti:

Quando due computer comunicano, non sono le macchine a parlare , ma i programmi (software) che girano su di esse. In questa comunicazione ci sono due ruoli principali.

  • Il client è il programma che inizia la comunicazione e chiede un servizio o una risorsa. Esempio: il browser è un client che chiede una pagina web.
  • Il server è il programma che rimane in attesa delle richieste e fornisce servizi o risorse, come file, pagine web o posta elettronica. PEER-TO-PEER (P2P) Oltre al modello client-server, esiste il modello peer-to-peer. In questo caso ogni nodo può fare entrambe le cose :
  • può offrire risorse (come un server);
  • può richiedere risorse (come un client). Un esempio tipico sono le reti di condivisione file , dove ogni computer scarica e condivide parti di file allo stesso tempo. Software e livelli di comunicazione: La comunicazione in rete è molto complessa , per questo il software di rete è organizzato in livelli. Ogni livello ha un compito preciso e serve a semplificare il funzionamento generale. Ogni livello:
  • comunica solo con il livello sopra e quello sotto ;
  • gestisce una parte specifica della comunicazione, nascondendo la complessità agli altri livelli.

Modelli e architetture delle reti

Per studiare come funzionano le reti esistono modelli teorici , che servono a descrivere l’organizzazione della comunicazione, e architetture reali , che sono quelle usate davvero su Internet.

- Il modello OSI (Open Systems Interconnection) descrive quanti livelli ha una rete e che ruolo

ha ciascun livello , ma non definisce i protocolli concreti. È composto da 7 livelli.

  • L’ architettura TCP/IP invece definisce sia i livelli sia i protocolli reali usati nella comunicazione. È composta da 4 livelli ed è quella utilizzata su Internet. Per semplificare lo studio, useremo un modello OSI semplificato a 5 livelli :
  • Livello Fisico
  • Livello Data Link
  • Livello Network
  • Livello Transport
  • Livello Application 1: Livello fisico Il livello fisico si occupa della trasmissione reale dei segnali sul mezzo di comunicazione. Il canale è analogico , cioè i valori variano in modo continuo, come l’energia elettrica, le onde elettromagnetiche o la luce. Il segnale trasmesso può essere visto come una funzione sinusoidale e può essere descritto come somma di più onde con frequenze diverse. L’insieme delle frequenze che compongono un segnale si chiama banda di frequenza. Anche il mezzo fisico ha dei limiti: può trasmettere solo un certo intervallo di frequenze, chiamato banda passante (ad esempio da 0 a 3.000 Hz). 2: livello data Link Il livello Data Link garantisce una comunicazione affidabile tra due nodi collegati direttamente da un mezzo fisico, come un cavo Ethernet o una linea telefonica. Questo livello:
  • offre servizi al livello Network ;
  • suddivide i bit in frame ;
  • controlla gli errori di trasmissione e, se necessario, ritrasmette i dati;
  • regola il flusso dei dati tra sorgente e destinatario. Di solito è implementato nei driver o nel firmware della scheda di rete. Esempi di protocolli di questo livello sono PPP e SLIP. Durante la trasmissione , il Data Link:
  • riceve un pacchetto dal livello Network;
  • lo divide in frame;
  • calcola un checksum per ogni frame;
  • passa i dati al livello Fisico. Durante la ricezione , il Data Link:
  • riceve i bit dal livello Fisico;
  • ricostruisce i frame;
  • ricalcola il checksum e verifica che i dati siano corretti. 3: livello network / Internet Il livello Network si occupa di far arrivare i pacchetti di dati dalla sorgente alla destinazione , anche passando attraverso nodi intermedi come i router. In pratica decide da che strada devono passare i pacchetti : questo processo si chiama routing. Questo livello serve per:
  • conoscere la topologia della rete ;
  • scegliere il percorso migliore per i pacchetti;
  • gestire il flusso dei dati e la congestione della rete;
  • collegare reti diverse tra loro.

Il livello Network è particolarmente importante nei router , perché è qui che vengono eseguiti gli algoritmi di routing. I principali criteri usati dagli algoritmi di routing sono:

  • Cammino minimo : il pacchetto segue il percorso con meno hop , cioè con meno passaggi da un nodo all’altro.
  • Flooding : il pacchetto viene inviato su tutte le uscite del router , tranne quella da cui è arrivato.
  • Flow-based : il router valuta il traffico e la capacità delle linee e sceglie quella più adatta. Nel modello TCP/IP, il livello Network / Internet è realizzato dal protocollo IP (Internet Protocol). Traffico in uscita IP:
  • riceve i dati dal livello Trasporto ;
  • li incapsula in pacchetti IP (massimo 64 KB, di solito circa 1.500 byte);
  • li invia sulla rete tramite il livello Data Link. Traffico in ingresso IP:
  • riceve i pacchetti dai livelli inferiori;
  • li riassembla se sono stati frammentati;
  • controlla il pacchetto ed estrae i dati;
  • consegna i dati al livello Trasporto , anche se arrivano in ordine diverso da quello di invio. Un pacchetto IP è formato da:
  • un header ;
  • un segmento di dati. Nell’ header sono contenute informazioni come:
  • la versione del protocollo ;
  • la lunghezza dell’header e del pacchetto;
  • un identificativo per ricostruire il pacchetto da frammenti;
  • il time to live (TTL) , che diminuisce a ogni nodo e fa scartare il pacchetto quando arriva a zero;
  • l’ indirizzo del mittente e del destinatario ;
  • altre informazioni opzionali. → indirizzi IP Un indirizzo IP è composto da 32 bit , suddivisi in 4 gruppi da 8 bit (4 byte). Serve per identificare in modo univoco un’interfaccia di rete di un nodo (computer, router, ecc.). Ogni indirizzo IP contiene due informazioni fondamentali :
  • l’ identificativo della rete in cui si trova l’host;
  • l’ identificativo dell’host all’interno di quella rete. Per questo motivo uno stesso host può avere più indirizzi IP , ad esempio se possiede più interfacce di rete (Wi-Fi, Ethernet, ecc.). ASSEGNAZIONE DEGLI INDIRIZZI IP: Gli indirizzi IP delle reti connesse direttamente a Internet vengono assegnati a organizzazioni che ne fanno richiesta (aziende, enti pubblici, associazioni). A livello mondiale l’assegnazione è gestita da:
  • ICANN (Internet Corporation for Assigned Names and Numbers),
  • IANA (Internet Assigned Numbers Authority). In Europa il registro è gestito da RIPE NCC , mentre in Italia da NIC-IT. Esistono anche indirizzi IP privati , utilizzati in reti non connesse direttamente a Internet. Questi indirizzi:
  • non richiedono autorizzazione ;
  • possono essere usati liberamente;
  • non sono univoci a livello globale. Per questo motivo due reti private diverse possono usare gli stessi indirizzi IP , ma non possono essere collegate direttamente tra loro.

eventuali duplicati e ricompone il flusso corretto. Solo a questo punto i dati vengono consegnati, nell’ordine giusto , al livello Application. In questo modo l’applicazione riceve i dati come se fossero arrivati in modo continuo e ordinato, anche se in realtà hanno viaggiato separati. SOCKET E PORT NUMBER La comunicazione TCP avviene tra due punti di accesso , chiamati socket. Un socket è identificato da una coppia: IP address : port number Il port number è un numero a 16 bit , quindi può assumere valori da 0 a 65.. I valori tra 0 e 255 sono riservati ai servizi standard , come quelli per il web o la posta elettronica. Grazie a IP e port number, il livello Trasporto riesce a far comunicare programmi specifici , non solo computer. 5:Livello Application: Il livello Application è quello in cui le applicazioni vere e proprie (un client e un server) comunicano tra loro, scambiandosi dati. Qui avviene il dialogo “visibile” per l’utente, ma tutto funziona grazie ai livelli sottostanti , che si occupano della trasmissione, del controllo e dell’instradamento dei dati. A questo livello sono definiti diversi protocolli applicativi , che si possono distinguere in tre grandi categorie:

  • Ci sono i protocolli di servizio , che servono a rendere possibile o più semplice la comunicazione in rete, come DNS o SNMP.
  • Ci sono poi i protocolli standard , usati per servizi comuni come il web, la posta elettronica o l’emulazione di terminale.
  • Infine esistono i protocolli proprietari , definiti da chi sviluppa un software specifico, per permettere la comunicazione tra il suo client e il suo server (ad esempio software gestionali). Un protocollo applicativo è quindi un insieme di comandi e di regole di sintassi che stabiliscono:
  • come client e server si scambiano i comandi;
  • in che formato devono essere inviati i dati e i parametri. DNS - DOMAIN NAME SYSTEM Usare direttamente gli indirizzi IP per gli utenti è poco pratico. Per questo è stato creato il DNS , che permette di identificare i nodi della rete usando nomi di dominio , molto più facili da ricordare. Il sistema DNS è composto da tre elementi collegati tra loro:
  • uno schema gerarchico di nomi , basato sul concetto di dominio;
  • un database distribuito , che memorizza i nomi e i relativi indirizzi IP;
  • un protocollo di comunicazione , che permette di interrogare e aggiornare questo database. I nomi di dominio non sostituiscono gli indirizzi IP, perché il livello Network lavora solo con IP. Il DNS serve proprio a tradurre un nome in un indirizzo IP. Quando un’applicazione deve contattare un host di cui conosce solo il nome (ad esempio www.google.com), avviene questo processo:
  1. l’applicazione usa una funzione API per chiedere la risoluzione del nome a un DNS server locale ;
  2. se il DNS locale conosce già l’indirizzo IP, lo restituisce subito; altrimenti interroga un DNS di livello superiore ;
  3. l’applicazione riceve l’indirizzo IP e lo usa per aprire la connessione TCP verso l’host.

Struttura di un nome di dominio

Un nome host ha la forma: hostname.subdomain.domain.top-level-domain Dove:

  • hostname identifica il nodo all’interno di un sottodominio;
  • subdomain indica una suddivisione del dominio;
  • domain è il dominio principale;
  • top-level-domain (TLD) è il dominio di primo livello. GERARCHIA DEL DNS E TLD Il database DNS è gerarchico.

La gestione dell’albero principale è affidata a ICANN e IANA , che delegano la gestione dei TLD ad altre organizzazioni. Esistono:

  • ccTLD (Country Code TLD) , come .it, .fr, .uk, assegnati alle autorità nazionali (in Italia NIC-IT );
  • gTLD (Generic TLD) , come .com, .net, .org, che non sono legati a un Paese specifico. Organizzazioni, aziende e privati possono richiedere un dominio di secondo o terzo livello tramite enti di registrazione accreditati. Per gestire un dominio è necessario disporre di un DNS server , configurato per mantenere il database che associa i nomi host agli indirizzi IP. La definizione dei nomi host interni è responsabilità dell’organizzazione che possiede il dominio. STRUMENTI DI INTERROGAZIONE DNS: Esistono due strumenti software molto usati:
  • nslookup , per interrogare un DNS server e ottenere l’indirizzo IP di un hostname;
  • whois , per interrogare i database delle autorità di registrazione e ottenere informazioni su un dominio. Protocolli applicativi principali All’interno del livello Application , diversi protocolli permettono alle applicazioni di scambiarsi dati svolgendo funzioni specifiche, come trasferire file, accedere a un computer remoto o gestire la posta elettronica. FTP – File Transfer Protocol: Il protocollo FTP serve per scambiare file tra un computer client e un computer server. I file trasferiti possono essere sia file di testo ASCII sia file binari , come immagini, programmi o file compressi. Il server FTP mette a disposizione del client un filesystem remoto , organizzato ad albero con directory e sottodirectory, molto simile a quello di un normale computer. Il client può interagire con questo filesystem usando una serie di comandi, tra cui:
  • user , per l’autenticazione;
  • put , per caricare un file dal client al server;
  • get , per scaricare un file dal server al client;
  • list / dir , per visualizzare il contenuto di una directory;
  • cd / lcd , per cambiare directory rispettivamente sul server o sul client;
  • bin , per scegliere se trasferire file binari o ASCII;
  • hash , per visualizzare l’avanzamento del trasferimento. FTP è un protocollo orientato alla sessione : durante la stessa connessione, l’utente può modificare lo stato (ad esempio la directory corrente) e ogni comando tiene conto dell’effetto di quello precedente. Telnet – Emulazione di terminale: Telnet permette di collegarsi da remoto a un computer come se si stesse usando direttamente il suo terminale. Oggi il suo utilizzo è sconsigliato , perché i dati (incluse le password) viaggiano in chiaro , senza cifratura. Nonostante questo, Telnet è spesso usato come strumento di test , perché consente di collegarsi manualmente a una qualsiasi porta TCP e dialogare con servizi di rete diversi. SMTP – Simple Mail Transfer Protocol: SMTP è il protocollo utilizzato per inviare messaggi di posta elettronica da un server di posta a un altro. Ogni dominio Internet deve avere almeno un mail exchanger , indicato nel DNS tramite record MX , che è il server incaricato di ricevere le email per quel dominio. SMTP lavora tramite una sessione di comunicazione , durante la quale possono essere inviati più messaggi di posta consecutivamente. Questo protocollo non serve a leggere la posta, ma solo a trasferirla tra server. POP3 – Post Office Protocol: POP3 è il protocollo che consente a un client di posta elettronica (come Outlook o Apple Mail) di:
  • collegarsi al server di posta;
  • autenticare l’utente;
  • scaricare i messaggi presenti nella sua mailbox. Una volta scaricati, i messaggi possono essere eliminati dal server o mantenuti, a seconda della configurazione.