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: Dati, Informazione, Conoscenza e Elaborazione, Appunti di Fondamenti di informatica

Una panoramica introduttiva all'informatica, esplorando concetti fondamentali come dati, informazione e conoscenza. Si analizza il processo di elaborazione dell'informazione, l'architettura di von neumann e la codifica dei dati. Vengono inoltre introdotti i concetti di periferiche virtuali e web 2.0, con particolare attenzione alla condivisione di informazioni e all'interazione tra utenti.

Tipologia: Appunti

2021/2022

Caricato il 25/02/2025

mammadimarika
mammadimarika 🇮🇹

1 documento

1 / 34

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Mercoledì 6 ottobre
Informatica o computer science il calcolatore permette di elaborare l’informazione
Tecnologia dell’informazione c’è uno studio teorico ma l’informatico usa la tecnologia per
elaborare l’informazione
Comunicazione perché si comunica tramite l’elaboratore
Dato informazione e conoscenza permettono di elaborare l’informazione
Dato è un insieme di simboli di un alfabeto, il quale viene definito da chi vuole elaborare
l’informazione
Il dato non è sufficiente manca l’informazione, quindi se io associo al dato una proprietà ottengo
una informazione
Al calcolatore per elaborare una informazione manca la conoscenza
Definisco delle regole che permettono di elaborare una informazione e quindi posso usare il
calcolatore
È indispensabile dare una definizione dei dati, associare delle proprietà ai dai per definire delle
informazioni e definire una serie di regole che permette l’elaborazione della informazione.
Più complessa è l’elaborazione dell’informazione più saranno le regole.
Strategie sempre più efficaci per elaborare l’informazione.
Nascita informatica verso anni 40, è una disciplina in continua evoluzione sia teoricamente che
praticamente.
Difficoltà dell’elaborazione automatica dell’informazione:
La conoscenza per elaborare l’informazione dobbiamo esprimerla e renderla capibile a chi deve
elaborare l’informazione
Per parlare con l’elaboratore non possiamo utilizzare il nostro linguaggio perché il linguaggio
naturale è ambiguo ed il calcolatore non è in grado di risolvere l’ambiguità. Dobbiamo
contestualizzare le regole per elaborare l’informazione, ma contestualizzare non basta
Quindi sono stati introdotti dei linguaggi chiamati linguaggi formali per evitare le ambiguità, sono
composti da un alfabeto finito di simboli e per evitare ambiguità associamo una grammatica formale
che permette una sola via di interpretazione, anche il linguaggio è in evoluzione si cerca di trovare
dei linguaggi che permettano di elaborare l’informazione in maniera sempre più veloce
Come codifica le informazioni? Utilizza i bit, le cifre binarie (binary digit) è l’unità di misura per la
codifica dell’informazione nel calcolatore. Il bit è una cifra binaria usiamo solo due cifre 0 e 1, si
basano su memorie bistabili in grado di mantenere due stati stazionari distinti per poter salvare
l’informazione. (magnete due poli, elettricità c’è o non c’è, luce c’è o non c’è)
Un bit può assumere i valori 0 e 1 che vengono combinati tra loro, uso delle sequenze di bit, se le
uso sempre più lunghe posso esprimere informazioni sempre diverse tra loro.
Abbiamo 2 alla
1 bit possono elaborare due informazioni
2 bit possiamo elaborare 4 informazioni
3 bit possiamo elaborare 8 informazioni
8 bit possiamo elaborare 256 informazioni
8 bit equivalgono ad 1 byte byte unità di misura della capacità di memoria del calcolatore
Avendo a disposizione delle cifre binarie, dobbiamo definire delle codifiche di bit molto lunghe per
elaborare delle informazioni complesse
Tutte le memorie usano i bit per codificare e memorizzare le informazioni, contengono delle
sequenze di bit che codificano l’informazione. La capacità della memoria è misurata in bit, byte o
multipli come Kilobit (Kb cioè 2 alla 10 bit 1024 bit) Gigabyte (GB 2 alla 30 byte) Terabyte (TB 2
alla 40 bit)
Elaborare l’informazione: creazione dell’informazione, modifica dell’informazione (eliminata
eliminazione è una elaborazione dell’informazione) confronto dell’informazione, conservazione
salvataggio dell’informazione, trasmissione dell’informazione
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

Anteprima parziale del testo

Scarica Introduzione all'Informatica: Dati, Informazione, Conoscenza e Elaborazione e più Appunti in PDF di Fondamenti di informatica solo su Docsity!

Mercoledì 6 ottobre Informatica o computer science il calcolatore permette di elaborare l’informazione Tecnologia dell’informazione c’è uno studio teorico ma l’informatico usa la tecnologia per elaborare l’informazione Comunicazione perché si comunica tramite l’elaboratore Dato informazione e conoscenza permettono di elaborare l’informazione Dato è un insieme di simboli di un alfabeto, il quale viene definito da chi vuole elaborare l’informazione Il dato non è sufficiente manca l’informazione, quindi se io associo al dato una proprietà ottengo una informazione Al calcolatore per elaborare una informazione manca la conoscenza Definisco delle regole che permettono di elaborare una informazione e quindi posso usare il calcolatore È indispensabile dare una definizione dei dati, associare delle proprietà ai dai per definire delle informazioni e definire una serie di regole che permette l’elaborazione della informazione. Più complessa è l’elaborazione dell’informazione più saranno le regole. Strategie sempre più efficaci per elaborare l’informazione. Nascita informatica verso anni 40, è una disciplina in continua evoluzione sia teoricamente che praticamente. Difficoltà dell’elaborazione automatica dell’informazione: La conoscenza per elaborare l’informazione dobbiamo esprimerla e renderla capibile a chi deve elaborare l’informazione Per parlare con l’elaboratore non possiamo utilizzare il nostro linguaggio perché il linguaggio naturale è ambiguo ed il calcolatore non è in grado di risolvere l’ambiguità. Dobbiamo contestualizzare le regole per elaborare l’informazione, ma contestualizzare non basta Quindi sono stati introdotti dei linguaggi chiamati linguaggi formali per evitare le ambiguità, sono composti da un alfabeto finito di simboli e per evitare ambiguità associamo una grammatica formale che permette una sola via di interpretazione, anche il linguaggio è in evoluzione si cerca di trovare dei linguaggi che permettano di elaborare l’informazione in maniera sempre più veloce Come codifica le informazioni? Utilizza i bit, le cifre binarie (binary digit) è l’unità di misura per la codifica dell’informazione nel calcolatore. Il bit è una cifra binaria usiamo solo due cifre 0 e 1, si basano su memorie bistabili in grado di mantenere due stati stazionari distinti per poter salvare l’informazione. (magnete due poli, elettricità c’è o non c’è, luce c’è o non c’è) Un bit può assumere i valori 0 e 1 che vengono combinati tra loro, uso delle sequenze di bit, se le uso sempre più lunghe posso esprimere informazioni sempre diverse tra loro. Abbiamo 2 alla 1 bit possono elaborare due informazioni 2 bit possiamo elaborare 4 informazioni 3 bit possiamo elaborare 8 informazioni 8 bit possiamo elaborare 256 informazioni 8 bit equivalgono ad 1 byte byte unità di misura della capacità di memoria del calcolatore Avendo a disposizione delle cifre binarie, dobbiamo definire delle codifiche di bit molto lunghe per elaborare delle informazioni complesse Tutte le memorie usano i bit per codificare e memorizzare le informazioni, contengono delle sequenze di bit che codificano l’informazione. La capacità della memoria è misurata in bit, byte o multipli come Kilobit (Kb cioè 2 alla 10 bit 1024 bit) Gigabyte (GB 2 alla 30 byte) Terabyte (TB 2 alla 40 bit) Elaborare l’informazione: creazione dell’informazione, modifica dell’informazione (eliminata eliminazione è una elaborazione dell’informazione) confronto dell’informazione, conservazione salvataggio dell’informazione, trasmissione dell’informazione

L’informazione viene elaborata dagli algoritmi, software app che si basano su algoritmi, sequenza di istruzioni/regole da applicare che permette la corretta elaborazione dell’informazione Algoritmo è teorico e l’app è la sua realizzazione Algoritmo è una sequenza di informazioni che porta un dato in ingresso ed un dato in uscita: input e output. Abbiamo una evoluzione dei sistemi di elaborazione dell’informazione (vedi anche libro pagg8/9) Legge di Moore: Gordon Moore ingegnere aveva previsto l’evoluzione della tecnologia “ogni due anni raddoppierà la capacità di elaborazione dei calcolatori” abbiamo una sequenza esponenziale DOMANDA: quale è l’unità di misura della capacità per la memoria di un calcolatore? Bit. BPS bit per secondo unità di misura che riguarda la capacità di trasmissione dell’informazione DOMANDA: chi ha formulato la legge secondo la quale il numero di transistor integrabili in un unico circuito raddoppia circa ogni due anni? Gordon Moore. Jhon von Neumann informatico famoso Lui ha realizzato un calcolatore universale, ha definito quella che oggi si chiama macchina di von Neumann che si basa sull’architettura di von Neumann. Vuole un calcolatore che sia in grado di elaborare qualsiasi forma di informazione, prima c’erano macchine che erano in grado di fare cose specifiche. Caratteristiche del suo calcolatore universale: Presenza di un dispositivo di memorizzazione in cui i dati da elaborare e le istruzioni per elaborare i dati usano lo stesso tipo di codifica Sequenze di bit utilizzando aritmetica binaria Separazione tra dispositivi di memorizzazione ed elaborazione Schema dell’architettura di von Neumann vedi pag11 del libro (bus di sistema, processore CPU, memoria centrale, interfaccia delle periferiche) Processore CPU: legge dalla memoria l’istruzione che esegue su dati in memoria (prende i dati dalla memoria e le istruzioni per elaborare i dati, fa elaborazione e rimanda in memoria il risultato dell’elaborazione) Memoria: contiene dati o istruzioni in celle identificate da un indirizzo numerico (definita come se fosse una cassettiera dove in ogni cassetto ho una informazione, celle di memoria, per una elaborazione efficiente bisogna dare un nome alle celle di memoria) Interfaccia: di input e output, interagiscono con l’ambiente tramite periferiche di input e output (ci permettono di interagire con la macchina) Bus: canale di comunicazione per lo scambio di informazioni (scambia le informazioni necessarie a tutte le altre componenti) Linguaggio macchina è un insieme delle istruzioni (in binario) specifiche di una determinata CPU (istruzione eseguite da una particolare CPU) Due macchine distinte sono compatibili solo se usano lo stesso linguaggio macchina Problema: collo di bottiglia di von Neumann. La CPU elabora dati molto più velocemente di quanto il bus si in grado di trasferire. Le CPU sono diventate così veloci da essere molto più veloci del bus, la CPU elabora molto velocemente tanto che il canale di comunicazione BUS non faceva in tempo a prendere i nuovi dati da eseguire che il processore aveva già finito Abbiamo delle CPU che all’interno hanno delle memorie per ovviare il problema del collo di bottiglia. Giovedì 7 Il processore CPU esegue le informazioni lette nella memoria centrale. Si occupa di fare i calcoli elabora le informazioni esegue le istruzioni sui dati che gli vengono forniti. Calcoli perché si usa una codifica binaria cioè una sequenza di bit da elaborare usando una aritmetica binaria. Nella CPU c’è una sotto parte ALU unità aritmetico logica. Dalla memoria arrivano i dati da elaborare il processore fa una serie di operazioni: lettura dalla memoria (fetch), decodifica, esecuzione e scrittura. Una volta lette le info dalla memoria (fetch) vengono portate

Si utilizzano delle tecniche (che da una parte operano sulla memoria e dall’altra parte sulla CPU) per accedere alle informazioni in memoria in modo da velocizzare l’accesso alle informazioni le strategie si basano su due principi di località temporale e spaziale. Località temporale: lettura in memoria nella stessa cella in istanti di tempo successivi. Località spaziale: lettura in memoria nelle celle adiacenti a quella letta attualmente. Ma questo non basta per la limitazione è data anche dal canale di comunicazione. Perciò per risolvere in modo definito il problema abbiamo inserito altre memorie ovvero i registri della CPU. All’interno della CPU vi sono delle memorie chiamate memorie cache che sono memorie di appoggio in cui vengono accumulate le cose da fare in modo che il CPU abbia sempre cose da fare. Gerarchie di memoria pag. 22 le memorie che stanno in alto sono quelle più veloci e più vicine al processore quindi ci vuole anche meno tempo per accedervi, verso il basso memorie più grandi e più lontane dal processore. Cache memorie di appoggio che contengono tutto ciò che serve alla CPU per elaborare l’informazione. Periferica dispositivo connesso all’unità centrale del calcolatore, che permette immissione ed emissione dei dati (input e output) permettono interazioni essere umano e calcolatore. Periferica a volte è esterna altre volte sono interne al dispositivo stesso. Le periferiche si connettono al calcolatore usando delle interfacce che vengono inserite nelle schede madri dei pc o usando le pc card dei laptop. Vi sono diversi connettori tra pc e periferica pag. 22 e 23 del libro in poi Le principali periferiche Tastiera periferica di input che ha tasti modificatori che modificano il normale funzionamento del tasto. Video periferica di output, videoproiettore, schermo del pc, del telefono. La scheda grafica si occupa degli aspetti grafici dei calcolatori. Risoluzione la qualità dell’immagine disegnata sullo schermo è data dal numero di punti disegnati sullo schermo maggiori sono i punti maggiore è la risoluzione. L’aspect ratio rapporto tra altezza e larghezza dello schermo. Lunedì 11 Dispositivi di puntamento sono dispositivi di input, sono nati quando sono nate le interfacce grafiche. Ci permettono di muovere il puntatore e ci permette di interagire con gli elementi dello schermo. GUI interfaccia grafica per l’utente, da queste nasce la necessità di avere una periferica di input come il mouse ad esempio. Altri esempi pag.25-26. Stampante dispositivo output (pag27) (plotter stampa grandi formati) risoluzione della stampa misurato in punti per pollice che possono essere disegnati dalla stampante sul foglio, maggiori sono i punti, quindi la risoluzione, maggiore è la qualità della stampa. La qualità deriva anche dalla tecnologia della stampante. Periferiche di acquisizione di immagini sono periferiche di input acquisire una immagine dal mondo reale e digitalizzarla. Lo scanner ha OCR e permette di acquisire l’immagine digitalizzata del testo e di avere modo di andare a modificarlo. Periferica di dispositivi di audio output tutto ciò che riguarda l’audio, abbiamo la scheda sonora. Combinazioni di periferiche dispositivi che combinano diverse periferiche un esempio è il touchscreen, è sia si input e output, LIM, strumenti per realtà aumentata (realtà reale con qualcosa che viene aggiunto), Google glasses che utilizza tanto tecnologie permetteva di avere delle informazioni proiettate sullo schermo e tramite gli occhiali uso tutte le funzioni di Google. Nuovi occhiali Ray-Ban hanno integrato fotocamera, controllo touch ed audio. Realtà aumentata nelle auto, vedo sul parabrezza dell’auto alcune informazioni, oppure in contesto medico. Realtà virtuale, realtà al di fuori della realtà stessa (cave usata in psicoterapia per guarire e studiare gli stati d’ansia). Dispositivi della realtà virtuale vengono usati in diversi ambiti medico, psicoterapeutico. Classificazione dei calcolatori: personal computer (desktop piccolo da poter essere appoggiato sulla scrivania, tower è molto grande, small form factor molto molto piccoli)

laptop computer mobili (notebook, tablet pc, netbook, ultrabook) PDA, palmari, console per videogiochi. Workstation, server, minicomputer, supercomputer. Caratteristiche dei calcolatori: velocità di elaborazione, capacità di archiviazione dei dati, affidabilità, sicurezza, dotazione di periferiche, capacità di connettersi ad altri elaboratori o dispositivi, dimensioni, modularità (compatibilità delle componenti) scalabilità (consentire il miglioramento). A seconda del calcolatore e del ruolo che assume avrà diverse caratteristiche. DOMANDA: Nella CPU qual è il contenuto del registro PC (program counter)? L’indirizzo della cella di memoria contenente la prossima istruzione da eseguire. Nel linguaggio macchina, a cosa servono le istruzioni di salto (jump)? Sono fondamentali per far eseguire perché permettono di modificare il flusso normale che si sta seguendo nell’esecuzione delle istruzioni. Quindi risposta: a modificare il contenuto del program counter per cambiare il normale flusso di esecuzione sequenziale. (cambiare e mettersi a fare altre cose usa le istruzioni di salto jump) Algoritmi pag. 33 del libro Con sviluppo di algoritmi che verranno implementati in software, si intende lo sviluppo della definizione di una soluzione ad un problema. Alcuni informatici sviluppano software partendo dagli algoritmi. Algoritmo è una sequenza di istruzioni la cui esecuzione consente di risolvere uno specifico problema. Ogni algoritmo ha queste caratteristiche: deve avere un esecutore (in ambito informatico è il calcolatore), ha dei dati in input e output, deve essere formulato in un linguaggio comprensibile all’esecutore, deve contenere solo istruzioni elementari (esecuzione di operazioni elementari), non deve essere ambiguo (le istruzioni che io fornisco all’esecutore devono avere un significato ben preciso), deve fornire dati di output in un tempo finito, deve essere deterministico cioè dare la stessa risposta a fronte dello stesso input (ne esistono alcuni probabilistici e stocastici) ed i dati di input devono essere parametrici. Alan Turing è il padre dell’informatica. Mercoledì 13 ottobre La macchina di Turing pag. 37 del libro Quando parliamo di algoritmo siamo nella fase teorica in cui si cerca di definire le istruzioni necessarie per risolvere un problema. Alan Turing padre dell’informatica tra gli anni 30/50 del secolo scorso. Era inglese ideò la macchina di Turing. Durante la Seconda guerra mondiale i tedeschi hanno costruito una macchina in grado di fare una cosa specifica ENIGMA usata per cifrare (cambiare codifica del messaggio per renderlo illeggibile al nemico) le loro comunicazioni radio. Il governo inglese raggruppa dei matematici tra questi Turing ed è stato chiesto la chiave di decodificare i messaggi tedeschi, ma i tedeschi ogni giorno cambiavano la chiave di lettura. Turing dice costruiamo una macchina per decodificare questi messaggi. La macchina che ha costruito Turing NON è il calcolatore universale che usiamo noi oggi perché la macchina di Turing è in grado di fare una cosa sola codificare ENIGMA, il calcolatore universale viene costruito da von Neumann. Turing ha fatto alcuni studi, studiando un gioco Imitation game (una coppia si reca in una stanza, il resto del gruppo in un’altra, il gruppo passa delle domande scritte alla coppia la quale deve rispondere facendo credere che il maschio sia la femmina e che la femmina sia il maschio, se il gruppo ci casca vince la coppia, nel caso contrario vince il gruppo) dice se al posto della coppia mettiamo un calcolatore ed il gioco consiste nel capire chi è l’essere umano e chi la macchina, oppure se dall’altra parte mettiamo solo il calcolatore e chi si trova dall’altra parte deve capire se si tratta di una macchina o di un essere umano. Ipotizza di modificare il gioco in questo modo e dice nel momento in cui la macchina sarà in grado di vincere il gioco di imitazione per numero di volte pari a quante vince l’uomo allora avremo dei computer che sanno pensare. Turing avvia l’intelligenza artificiale. La sua intuizione è completamente sbagliata, ma ha dato via a degli studi che si basano su tale affermazione. Posso configurare un calcolatore che sia in grado di rispondere a delle domande, ma non lo rendo in grado di pensare. La macchina di Turing: dispositivo (astratto) per l’elaborazione dell’informazione. Permette di analizzare le proprietà dell’elaborazione automatica dell’informazione, degli algoritmi e delle complessità. È costituito da un alfabeto finito di simboli, un nastro di lunghezza infinita diviso in

Il SO gestisce la memoria, in questo caso la memoria centrale RAM. Il SO va ad allocare in memoria lo spazio che serve per il processo. Quando apro un software, questo viene caricato nella memoria RAM una volta caricato può essere eseguito dal SO. La multiprogrammazione (più software in insieme) richiede la presenza di un gestore della memoria in grado di: controllare la RAM, gestire lo spazio necessario a ciascun processo, proteggere lo spazio di ogni processo, gestire lo spazio comune tra processi (usato per lo scambio di messaggi). (vecchie lezioni RAM è volatile necessito di riavviare il computer per svuotarla, si riempie con ogni processo che ho in esecuzione, una volta piena il SO rallenta). Una volta che la RAM è piena il SO utilizza memoria virtuale, pagine (blocchi di memoria), Memory Management Unit (dispositivo hardware), swapping (area di swap area di scambio). Una volta che la RAM è piena il SO sposta pezzo di memoria su un’area della memoria di massa hard disk. Gestisce i processi dividendoli in blocchi di memoria chiamate aree di memoria. Quando eseguo un software è prenderlo dall’hard disk alla RAM e viene caricato dal SO. Le periferiche virtuali permettono al calcolatore di interfacciarsi con il mondo esterno. Con i SO moderni far credere ai processi in esecuzione di avere tutte le periferiche a proprio disposizione. Il SO permette ad ogni processo di accedere ed utilizzare le periferiche, in qualche modo le periferiche vengono virtualizzate, è come se il SO definisse delle periferiche per ogni processo. Un processo opera come se la periferica sia a sua completa disposizione, il processo è device independent grazie al driver. L’impiego di una periferica in un dato SO è dipendente dalla presenza di un driver specifico. Per le periferiche specifiche è necessario installare un software che permetta al SO di utilizzare quella specifica periferica, un esempio è driver cioè un software specifico per usare quella periferica. Memoria di massa, è permanente e qui vengono salvati tutti i file in maniera persistente. Ed è sempre il SO che si occupa della gestione di tutti i file, file system, cioè quella componente del SO che si occupa della gestione di tutti i file. I file sono organizzati in maniera gerarchica a partire da una cartella root. Dalla root viene originata una gerarchia con struttura ad albero. Un file viene identificato univocamente tramite pathname. Il file system memorizza le seguenti proprietà per ogni cartella: formato (tipo di dato, viene salvato il formato per riuscire ad aprire il contenuto), dimensione (utile per la memoria), data ed ora di creazione, data ed ora dell’ultima modifica, autorizzazioni (per gestire le operazioni di lettura, scrittura, ecc. agli utenti autotizzati). Posso avere due file con lo stesso nome, basta che siano in due cartelle diverse. La gestione della rete fatta dal SO, i SO moderni vengono spesso definiti Network operating systems (NOS) proprio perché gestiscono la rete internet. Esistono diverse modalità di interazione tra utenti e calcolatori in ambito di rete: interazione uomo-calcolatore locale, interazione uomo- calcolatore remoto (es client-server), interazione tra uomini mediata da calcolatori (es chat) L’interfaccia utente è la componente che gestisce l’interazione con l’essere umano. Il SO gestisce anche tutte le operazioni di autentificazione cioè di riconoscimento dell’utente. Il SO mette in atto una serie tecniche per l’autentificazione: dimostrazione di conoscenza (credenziali), dimostrazione di possesso (card), dimostrazione di caratteristiche fisiche (dati biometrici). Utenti diversi hanno autorizzazioni diverse: amministratore di sistema. Operatore di sistema, programmatore, utente applicativo (può usare solo software presenti sul computer) Cosa significa WYSIWYG? Acronimo usato nei SO moderni, What You See Is What You Get. Quello che vedo è quello che ho. Software maligni cioè Malware. Esistono diversi tipi di software maligno (vedi pag. 53 del libro): virus e worm in grado di replicarsi da soli e si infilano all’interno di altri software e infettano tutte le macchine che incontrano, hanno la capacità di mutare per non essere riconosciuti. Trojan, quando tento di eseguire un software scaricato, quello è un cavallo di troia cioè un virus. Spyware e crimeware restano silenti rubano i dati personali, intercettano tutti i messaggi e identificano tutti i nostri dati sensibili. Adware inondano di bunner pubblicità, chi ha creato il software ci guadagna sulle visualizzazioni dei bunner. Ramsonware bloccano i dati, li criptano, viene chiesto il riscatto per sbloccare i dati. Spam riguarda i messaggi indesiderati. Hoax contenuti falsi e fake news.

Nati decenni fa utilizzati per fare solo danni (cancellare dati dalla memoria, rompere il computer tramite delle operazioni il virus che controlla la macchina faceva fare cose inutili al processore e di spegnere le ventole per dissipare il calore in modo che il computer si fondeva) o per rubare informazioni. Chi sviluppa software maligni lo fa per guadagnare soldi, creati tanti per la diffusione della rete internet. Ci possiamo difendere con dei software sviluppati con questo obiettivo: firewall si mette tra il nostro computer e la connessione internet e controlla tutto ciò entra ed esce e blocca comunicazioni non autorizzate, antivirus riconosce pericoli e li blocca deve essere aggiornato tutti i giorni perché i virus mutano. Nei sistemi Iunix non ci sono antivirus perché sono sviluppati in modo che non possono avere virus. Lunedì 18 ottobre I SI vanno ad operare su tutte le componenti della macchina di von Neumann. Esistono software specifici che permettono all’utente di proteggersi contro i software maligni. Questi software sono utili per proteggersi, ma è fondamentale l’uso dell’utente a seconda di cosa fa nella rete può imbattersi in software maligni. DOMANDA: Cos’è un algoritmo? Una descrizione delle istruzioni che consentono ad un esecutore di compiere autonomamente un’elaborazione. Cosa è Internet Explorer? Un browser per la navigazione sul Web. E’ un software applicativo, software specifico per la navigazione in internet. Quale unità di misura è rappresentata dalla sigla “GB”? Gigabyte. Quale di questi non è un linguaggio di programmazione? Google. Come vengono codificate le informazioni? La codifica viene fatta tramite sequenze di bit. La codifica dell’informazione: rappresentare i dati su un supporto fisico del calcolatore, con sequenza di simboli (sequenze di bit) che codificano l’informazione, il supporto fisico viene sottoposto ad una trasformazione che modifica i dati, i dati ottenuti vengono decodificati generando nuova informazione. Elaborazione dell’informatica avviene tramite una trasformazione grazie all’aritmetica binaria. Perché usiamo una codifica binaria? I calcolatori moderni utilizzano dei supporti bistabili rappresentano in maniera stabile due soli valori, questo è dovuto alle caratteristiche fisiche dei supporti. Supporti fisici bistabili (RAM e memoria di massa o disco rigido) rappresento le informazioni tramite bit e qualsiasi tipo di informazione è codificato con sequenze 0 e 1 (informazioni che può essere numerica, testuale, grafica, sonora). Esiste un’area di ricerca del ICT in continua evoluzione che ha come obiettivo: (cerca di capire se i dati codificati nelle memorie possano essere codificati in altri modi, modi più efficienti ed efficaci, parliamo di occupazione della memoria perché se riesco a trovare una codifica che mi permetta di diminuire il numero di bit necessari per memorizzare un’informazione io risparmio memoria, e se diminuisco il numero di bit per memorizzare l’informazione oltre a salvare memoria ho anche vantaggi legati alla connessione ed alla trasmissione dell’informazione. Non è sempre detto che diminuir una sequenza di bit che codificano l’informazione mi dia dei vantaggi perché si potrebbe avere qualcosa che viene codificato usando meno bit, ma che diventa molto più complicato da elaborare (es immagini catturate molto piccole, ma la codifica dell’informazione è difficile da elaborare che per aprire la mia immagine ci impiego tanto tempo)) quindi devo avere delle codifiche efficienti, minor numero di bit, ma che siano efficaci quindi una codifica semplice risparmiare il tempo di calcolo. Definire tecniche per codificare secondo il sistemo binario nuovi tipi di informazione (rendendoli quindi trattabili dai calcolatori). Definire tecniche di codifica efficienti cioè minimizzare il numero di simboli utilizzati, diminuire la dimensione dell’informazione (maggiore quantità di dati memorizzati e maggiore velocità di trasmissione), definire tecniche di codifica efficaci per rendere l’informazione più semplice da trattare da parti di algoritmi e programmi Modifica di una codifica che permette di avere vantaggi:

Rappresentazione della quantità di caramelle: analogica: numero di sassolini corrispondente ( sassolini per 18 caramelle) digitale: notazione numerica decimale posizionale (la sequenza di 18 simboli). La differente notazione di rappresentare i valori porta delle meta informazioni che possono essere vantaggiose e/o svantaggiose a seconda del contesto. Approccio digitale è più compatto (il numero scritto in cifre è meno ingombrante di quello scritto in parole), la codifica analogica contiene delle meta-informazione (ordinale: relazione d’ordine tra valori posso capire la quantità maggiore e minore, metrico: quantificare le differenze tra valori), analogico (tre sassolini rappresentano un valore maggiore di un sassolino togliendo tre sassolini da un mucchio di 5 sassolini ne restano 2), digitale (senza regole di codifica non posso sapere chi è il maggiore tra due numeri e non posso sapere la differenza tra due numeri. Devo fare attenzione perché quando utilizzo una codifica digitale che è quella utilizzata anche nei calcolatori devo andare a definire delle regole usate per codificare le informazioni ma anche altre regole che mi servono per andare a capire che tipo di relazione c’è tra le diverse misure come cambia la rappresentazione della mia misura. Nel mondo reale abbiamo delle grandezze che sono definite continue: valori appartenenti all’insieme dei numeri reali (hanno una variazione continua nel tempo o una variazione continua nei valori che possono assumere es termometro a mercurio ad ogni variazione di temperatura la colonnina sale e coglie ogni variazione per questo è continua) e delle grandezze definite discrete (codifica digitale): valori appartenenti all’insieme dei numeri naturali (con le grandezze discrete perdo le variazioni piccolissimi es termometro digitale la temperatura sul display cambia solo se viene raggiunta una certa soglia 37.05 superata e vedo 37.1 questo è il processo di discretizzazione che mi fa passare da una rappresentazione delle grandezze che sto misurando che per loro natura sono continue e che assumono valori nei numeri reali ad una rappresentazione discreta in cui le grandezze sono identificate con dei numeri reali o che hanno un certo livello di precisione. Anche questo va tenuto conto quando si passa dal mondo reale a quello digitale. Mercoledì 20 ottobre Quantizzazione è un processo necessario a poter codificare in maniera finita l’informazione del mondo reale (i numeri naturali sono infiniti e quindi dovrei avere sequenze infinite di bit). Quando devo codificare un’informazione digitale la devo discretizzare perché altrimenti avrei bisogno di un numero infinito di bit per poter codificare quell’informazione. (non ho una salita lineare di valori, ma sono discreti a gradini) devo definire un numero finito di valori che possono digitalizzare con questa operazione posso avere una sequenza di bit finita. Se un valore continuo viene rappresentato con una codifica digitale allora è necessario discretizzarlo. La rappresentazione discreta (a gradini) prevede un processo di quantizzazione, caratteristica intrinseca di tutte le codifiche digitali. La quantizzazione prevede l’individuazione di un numero finito di intervalli e tutti i diversi valori all’interno dello stesso intervallo vengono rappresentati con la stessa sequenza di simboli. Esempio nella rappresentazione della temperatura fino ai decimi di grado le temperature 37,51 e 37,54 vengono rappresentate con la stessa sequenza di simboli 37,5, schiaccio i numeri di un intervallo di tempo ad un unico numero che vado poi a digitalizzare. La quantizzazione e discretizzazione possiamo considerarli sinonimi. La quantizzazione serve per avere una rappresentazione a scalini delle grandezze. Molto spesso quando dobbiamo rappresentare qualcosa nel mondo digitale questo qualcosa varia nel tempo esempio la temperatura. Non posso misurare/avere un numero infinito di temperature allora posso decidere di prendere la temperatura ogni tot di ore, minuti, ecc. in modo da avere un numero finito di valori. Questa cadenza con cui misuro ogni tot è la frequenza ed i valori che ho ogni tot è il campionamento. Frequenza Hz è l’inverso del Secondo. Per rappresentare l’andamento nel tempo di una grandezza continua, usando una codifica digitale è necessario effettuare un campionamento: si divide l’intervallo di osservazione del fenomeno in sotto-intervalli, il valore viene rilevato in un istante predefinito (es. all’inizio del sotto-intervallo) e

la frequenza di campionamento è definita come numero di campioni per unità di tempo una frequenza di 7Hz indica che ogni secondo vengono rilevati 7 campioni. La quantizzazione porta ad una approssimazione dei valori es. 37,51 e 37,54 --> 37, Il campionamento porta ad una approssimazione. Con queste operazioni perdo delle informazioni ma ottengo una versione digitalizzata del mondo reale seppur approssimativa, ma è un’ottima versione. Posso rappresentare con sequenze di bit l’informazione del mondo reale, è un’operazione necessaria per poterla dare al mio calcolatore. La codifica digitale ha avuto un grande successo grazie all’avvento dei calcolatori. La codifica dei calcolatori ha il vantaggio di essere più facile da trasmettere perché le informazioni ed i dati vengono codificati con sequenze di bit quindi con solo due valori. Se trasmetto solo due valori possibili è più facile trasmettere dati tenendo conto che la trasmissione dei dati avviene su canali rumorosi. Il rumore è una sorta di ostacolo per l’informazione. I messaggi digitali sono più facili da trasmettere rispetto a quelli analogici, se la codifica è binaria, avendo solo 2 valori ammissibili, è facile capire se ci sono stati errori di trasmissione (scostamento dei valori 0 e 1 causati dal rumore), per individuare gli errori, trasmettitore e ricevitori possono concordare meccanismi di ridondanza. Ridondanza: La sequenza di bit trasmessa viene inviata due volte in modo che chi le riceve le confronta. Questi meccanismi vengono chiamati schemi di ripetizione. Ogni bit viene trasmesso più volte: il messaggio viene scomposto in blocchi di bit (byte o nibble) ed ogni blocco viene ripetuto più volte. Chi manda si mette d’accordo con chi riceve e dice ti mando il messaggio in bit lo scompongo in quattro sequenze di bit, ogni sequenza di quattro bit te la ripeto due volte. Se c’è un errore il messaggio deve essere rinviato. Bit di parità: viene contato il numero di bit 1 presenti nei blocchi del messaggio, se il blocco contiene un numero dispari di 1, viene aggiunto un bit di parità a 1, se il blocco contiene un numero pari di 1, viene aggiunto un bit di parità 0. I numeri aggiunti 0 e 1 serve al ricevente per capire se ha ricevuto le sequenze corrette. Anche in questo caso ci possono essere degli errori di trasmissione, i singoli errori vengono identificati, ma se cambiano 2 bit nello stesso byte, il messaggio risulta corretto. In ogni caso gli errori non possono essere corretti dal ricevente. L’informazione non numerica il codice. Per informazione non numerica vengono identificati dei codici, cioè rappresentazioni di informazioni più o meno sintetiche delle informazioni reali. Il codice è una sequenza di simboli impiegati per rappresentare sinteticamente oggetti del mondo reale. Se io definisco i codici so definire l’informazione e so come andare a rappresentarla nel mondo del calcolatore. La comunicazione di informazioni codificate è possibile solo se mittente e destinatario concordano il tipo di codifica. Nei calcolatori tutti i codici sono costituiti da sequenze di bit. Quante sequenze posso esprimere con n bit? 2 alla n sequenze Quanti bit servono per codificare i giorni della settimana? 3 bit quindi 2 alla terza cioè 8 sequenze (una resta inutilizzata). Questa è operazione di codificazione dei codici, ci si mette d’accordo a livello internazionale e sappiamo che tale codifica rimanda all’informazione. Importante stabilire quali sono i codici e le sequenze di bit che rimandano all’informazione. Bisogna stabilire delle sequenze di bit, dei codici che rappresentano l’informazione. La codifica del testo viene realizzata associando un codice binario ad ogni singolo carattere. Sono codici internazionali, standard internazionali ISO stabilisce gli standard) ASCII: ogni carattere è rappresentato da una sequenza di 7 bit (2alla7 128 simboli), è stato adottato dall’ISO. ASCII esteso: usa una codifica a 8 bit (2alla8 256 simboli), ISO ha rilasciato diverse versioni di ASCII esteso (vedi libo) Unicode: usa una codifica a 21 bit (2alla21 circa 2 milioni di caratteri) Millenium Bug: nel secolo scorso quando sono nati i sistemi informatici si era deciso di memorizzare le date utilizzando solo due cifre per l’anno, le ultime due prese da destra. Cosa succederà ai sistemi informatici quando dal 1999 dovranno passare al 2000? Alcuni sistemi avrebbero interpretato il 2000 come 1900. Tra la notte del 99 e del 2000 tutti si era bloccato perché

Usando questi modelli ho bisogno di molte sequenze di bit per codificare colori diversi. Codifiche diverse portano ad ottenere immagini di dimensione diverse: per un’immagine 1024x768 pixel: monocromatica: 1024x768=786432 bit=98304 byte (ho diviso per 8 per ottenere i byte) circa 100KB; tonalità di grigio: 786432 byte circa 800 KB; RGB: 2359296 byte circa 2,3 MB (più sequenze di bit, più occupa la memoria) Formati di immagini: formato raster sono memorizzati con matrice di pixel, indicazione del numero di pixel esempi JPEG, BMP il primo formato inventato (formato non compresso utilizza la codifica vista prima), GIF, TIFF e PNG. Tutti gli altri sono formati compressi cioè cambiano la modalità con cui vengono memorizzate le informazioni nelle sequenze di bit con l’obiettivo di occupare meno spazio. Un’immagine JPEG formato compresso ed occupa pochi megabyte al contrario del BMP che occupa tanto spazio. Formato vettoriale: immagini che non vengono rappresentate andando ad utilizzare la codifica in bit di ogni pixel, ma vengono memorizzate quelle direttive matematiche e geometriche che servono per riprodurre l’immagine stessa. Una fotografia non può essere memorizzata usando questo tipo di formato. È una rappresentazione tramite forme geometriche codificate in equazioni matematiche CMG, SVG, WMF. Per riprodurre le immagini vettoriali è necessario un processo di rasterizzazione che permette di sfruttare meglio la risoluzione della periferica usata, ottenendo migliore qualità. Se ho un’immagine vettoriale posso sfruttare al meglio la risoluzione dello schermo lo zoom perché l’immagine viene ridisegnata usando lo zoom e la risoluzione che ho scelto io, non perdiamo di qualità l’immagine. Anche per i font esistono i formati raster e vettoriali e valgono gli stessi discorsi per la qualità di immagine. Quando ho un file vettoriale per portelo vedere sullo schermo devo rasterizzarlo. La codifica binaria di suoni vien tipicamente fatta seguendo le caratteristiche tipiche dei CD audio: stereofonia: due segnali che riproducono la distribuzione spaziale delle sorgenti sonore; frequenza di campionamento è di 44100 Hz; quantizzazione: 65536 livelli (codifica a 16 bit 2alla16 16 bit per ogni campione). I formati audio WAV non compresso, AIFF non compresso, MP3, AAC. Digitalizzare il suono lo campiono e vado a quantizzare i livelli partendo dalle frequenze più basse a quelle più alte, scelgo le frequenze che voglio codificare in modo da avere un numero finito di frequenze e quindi un numero finito di bit. Il campionamento serve per registrare il suono con una determinata frequenza, perché il suono è una cosa continua che cambia nel tempo. Compressione lossy (con perdita) e compressione lossless (senza perdita). Lossy comprimo la mia informazione, ma posso anche tornare indietro. Lossless comprimo l’informazione e perdo ciò che ho eliminato per occupare meno spazio. Il nostro calcolatore ed i SI del calcolatore riescono a distinguere le diverse tipologie di informazione che vengono codificate in funzione dell’estensione del file che memorizza quell’informazione. Giovedì 21 ottobre 15 novembre prova di informatica, invierà il link per accedere al questionario di Google per iscriversi alla prova 8 novembre, prova a distanza, avviso nel team e nella pagina moodle. Formato MP3 formato compresso, per quanto riguarda l’informazione di tipo audio memorizzata su file audio nelle memorie dei nostri dispositivi (file audio di Spotify sono in un altro formato). Il formato MP3 definito da una società italiana nata dal prof del politecnico di Torino a metà degli anni 90, fino a quel momento la musica era digitalizzata con altri formati, il supporto era il CD audio e si poteva mettere poca musica, con il formato MP3 abbiamo più memoria. (Napster nato esclusivamente per condividere file MP3, con il formato MP3 è più facile avere musica in termini di memoria di occupazione ed è più facile da trasmettere in rete.) MP3 formato lossy una volta compresso perdo alcune informazioni.

I filmati digitali sono composti da una serie di fotogrammi (immagini digitali) mostrati ad una frequenza costante (FPS- frame per second), le strategie per digitalizzare le immagini possono essere usate per i filmati allo stesso modo per l’audio. I formati video sono: Quick Time sviluppato da Apple, MPEG- 2 (ha fatto anche gli MP3) usato per DVD e Bluray usa compressione lossy sia per il video che per l’audio, FLV flash video sviluppato da Macromedia e supportato da Adobe per la fruizione di filmati internet usa compressione lossy, ci si è reso conto che aveva una falla informatica sfruttata per attaccare utenti magari tramite malware, AVI Audio Video Interleave è un contenitore di file che possono essere codificati in vari formati codec, viene usato un software specifico per la codifica delle immagini il codec, senza quello niente immagine. YouTube formato HTML5 prima aveva il formato flash FLV. La compressione è un processo che riorganizza l’informazione codificata in sequenza bit in un modo diverso per poter ridurre la dimensione dell’informazione quindi diminuire il numero di bit. Riformulazione del contenuto informativo con una codifica differente che permette di ridurne le dimensioni. Compressione lossless (senza perdita) WinZip per windows e GunZip per Linux, è un processo reversibile. Il rapporto di compressione e la riduzione dell’occupazione di spazio dipendono dal tipo di formato dei dati. Compressione lossy (con perdita) parte delle informazioni viene persa irreversibilmente, per le immagini viene cambiato il colore di alcuni pixel (difficilmente rilevabile dall’occhio umano), per l’audio modelli psico-acustici vengono tolte frequenze molto alte (basse) o suoni a basso volume, video anziché memorizzare tutti i frame vengono memorizzate solo le differenze tra frame consecutivi. La sicurezza informatica Quando si parla di cybersecurity si fa riferimento ai seguenti aspetti: riservatezza (privacy) protezione da letture non autorizzate, l’integrità protezione da modifiche non autorizzate per la trasmissione di dati (autenticità garanzia dell’identità della sorgente, del destinatario e del contenuto del messaggio; non ripudiabilità garanzia che la sorgente non possa negare di avere inviato un messaggio e che il destinatario non l’abbia ricevuto) e la disponibilità protezione da interventi non autorizzati che compromettono la possibilità di accesso ai dati da parte degli utenti autorizzati devono essere sempre accessibili agli utenti. Queste caratteristiche devono essere garantite dai servizi che noi usiamo, ma molte volte non succede così. Le misure preventive sono: formazione del personale per il riconoscimento di minacce e comportamenti fraudolenti, sistemi di protezione per i locali che ospitano componenti HW dei sistemi informativi, ridondanza delle componenti HW, aggiornamento dei SW, antivirus, firewall, backup, autenticazione informatica, accountability cioè registrazione degli accessi ai sistemi informatici, firma digitale e servizi basati su certificati digitali. Normative italiane ed europee sulla privacy: dato personale “qualunque informazione relativa a persona fisica, giuridica, ente o associazione, identificati o identificabili anche indirettamente”; dato sensibile “ dato personale idoneo a rivelare l’origine razziale ed etnica, le convinzioni religiose, filosofiche o di altro genere, le opinioni politiche, l’adesione a partiti, sindacati, associazioni od organizzazioni a carattere religioso, filosofico, politico o sindacale, lo stato di salute e la vita sessuale”; dato giudiziario “dato personale idoneo a rivelare provvedimenti.. in materia di casellario giudiziale, di anagrafe delle sanzioni amministrative dipendenti da reato e dei relativi carichi pendenti, o la qualità di imputato o di indagato” Per raccogliere i dati personali è necessario avere il consenso della persona. I dati personali oggetti di trattamento devono essere (dobbiamo garantire che i dati vengano conservati non divulgati): pertinenti, completi e non eccedenti rispetto alle finalità per le quali sono stati raccolti, conservati in una forma che permetta il riconoscimento della persona per un periodo di tempo non superiore a quanto necessario, custoditi e controllati per evitare la perdita o gli eccessi non autorizzati.

Dato che il numero di informazioni è sempre più grande si è iniziato a parlare di Big Data grandissime collezioni di dati, raccolti nei social network e nei motori di ricerca che riguardano gli utenti e che magari hanno anche scopi pubblicitari. Lunedì 25 ottobre Le periferiche virtuali: un processo opera come se la periferica sia a sua completa disposizione, il processo è device independent driver. L’impiego di una periferica in un dato SO è dipendente dalla presenza di un driver specifico. (vedi libro) Quantizzazione e campionamento: sono due operazioni necessarie per passare dal mondo reale a quello digitale ed abbiamo parlato di codifica analogica riguardante il mondo reale e la codifica digitale che codifica sempre l’informazione del mondo reale ma su un calcolatore quindi utilizzando sequenze di bit. Sono due operazioni che portano ad una approssimazione della realtà in due modi differenti. La quantizzazione porta ad una approssimazione dei valori di una grandezza analogica che essa assume nel tempo in maniera continua perché non posso rappresentare con una sequenza di bit un numero infinito di valori distinti tra di loro; quindi, alcuni valori vengono schiacciati ed approssimati è una rappresentazione discreta dei valori che può assumere una grandezza analogica. L’operazione di campionamento è legata ad una approssimazione, ad una operazione distinta di registrazione della grandezza, anche qui non possiamo usare unna sequenza di bit infinita allora dobbiamo campionare la grandezza, cioè misurare la grandezza un numero finito di volte. Reti ed internet Oggi i calcolatori hanno una grande capacità di comunicare e sfruttare servizi attraverso la rete ed internet. Quando possiamo parlare di rete di calcolatori? Quando abbiamo due o più calcolatori connessi tra loro (o anche dispositivi) internet things possiamo collegare qualsiasi dispositivo alla rete. Esistono reti che non sono internet (La Rete). Internet nasce perché ci sono diverse reti connesse tra loro. Internet viene anche definita rete delle reti (abbiamo un’estensione delle reti collegate tra di loro fino ad una copertura globale) In generale una rete è un insieme di: dispostivi informatici, detti nodi della rete (calcolatori, stampanti, nas, media center), connessioni (linea telefonica, fibra ottica), protocolli si parla di una serie di regole che permette di regolamentare qualcosa, se parliamo di protocolli Internet sono tutte quelle regole che devono essere seguite da mittente e destinatario di una comunicazione per poter comunicare in maniera corretta (FTP, HTTP, SSH), software (posta elettronica, esplorazione di risorse di rete) ed utenti. In una rete la comunicazione (invio e ricezione di messaggi) avviene a commutazione di pacchetto: con messaggio indichiamo qualsiasi tipo di sequenza di bit inviata (mail, chat, file, ecc.), un pacchetto indica l’unità minima nella quale un messaggio viene diviso, ogni pacchetto segue il proprio percorso nella rete per raggiungere il destinatario (comunicazione più efficiente, i guasti possono essere bypassati, possibilità di inviare contemporaneamente più messaggi sulla rete) i software impacchettano l’informazione in modo che possa essere inoltrata sulla rete di comunicazione e possa arrivare correttamente a destinazione. Divisione in pacchetti (unita di misura di ciò che viene inviato) perché noi usiamo delle reti che sono ridondanti, quindi l’idea è quella di passare dalla totalità della mia informazione a divisioni di pacchetti i quali vengono inviati tutti sulla rete, i pacchetti possono seguire strade diverse l’importante è che arrivino a destinazione, ma se hanno la possibilità di seguire strade diverse allora la comunicazione diventa più efficiente perché io in qualche modo vado a parallelizzare l’invio, sfrutto tutte le connessioni e posso inviare anche più informazioni. Qui vengono sfruttare le tecniche di bit di parità (controllo che l’informazione si arrivata in modo corretto). I protocolli di rete stabiliscono il formato dei pacchetti, le modalità di comunicazione e le regole per invio e ricezioni dei messaggi. Non è l’utente a preoccuparsi di come funziona l’infrastruttura, ma i programmi. Chi gestisce i protocolli di rete: ISO, W3C emanano protocolli o standardizzano protocolli già esistenti (ad esempio TCP/IP).

Il protocollo TCP/IP interazione gerarchica tra livelli, applicazione, trasporto, internetworking, collegamento, il livello più alto serve per l’interazione con l’utente, il livello più basso per l’interazione con il supporto fisico. Protocollo che funziona molto bene è su più livelli, ognuno dei quali deve fare qualcosa. Sono operazioni che usano la commutazione di pacchetto. Si passa dal livello più alto a quello più basso e viceversa. Nelle reti i nodi possono essere attivi o passivi, alternativamente possiamo parlare di client e server. Client è colui che richiede un servizio esempio l’utente. Server è colui che fornisce un servizio esempio il sito web. Client e server sono due tipologie di nodo. Client è attivo fa le richieste, il server è passivo che attende di ricevere le richieste. Un server è un oggetto HW o SW? Può essere sia HW che SW. Anche il client entrambi. Nodi sono i client server. Protocolli che permettono la comunicazione tra nodi. Serie di servizi che a seconda del tipo di rete sono diversi tra loro, non c’è solo internet o altre reti tra dispositivi come le reti LAN local area network una rete a estensione locale, sono reti esempio nei piccoli uffici nei laboratori diversi computer collegati tra loro. Su queste reti si può fare: calcolo scientifico si usa la potenza di tutti i computer a livello locale; archivio centralizzato; dischi condivisi dove tutti condividono informazioni; backup. La posta elettronica ha senso in rete locale? Si ha senso, pensa nei contesti lavorativi vogliono un sistema per scambiarsi documenti ed usano questa, non arriva nulla dall’esterno e niente mi intocca l’interno. La posta elettronica è qualcosa di internet a livello globale, ma può essere usata anche a livello locale. Posta elettronica primo dei servizi creati dalla rete Internet. Reti WAN (MAN) una rete di ampiezza metropolitana/larga usata per interoperabilità, cooperazione tra diverse sedi. Internet nasce alla fine degli anni 60, come progetto del Ministero della Difesa degli Stati Uniti. (perché durante le Seconda guerra mondiale era importante l’uso dei calcolatori). Aveva come obiettivo: rete di calcolatori con SO diversi (ma computer diversi parlano lingue diverse e quindi hanno usato dei protocolli di comunicazione basati su commutazione di pacchetto) decentrata (volontà di avere calcolatori dislocati in diversi punti del paese), non vulnerabili (ad attacchi alle infrastrutture di telecomunicazione). Caratteristiche: utilizzo di una struttura ridondante (per poter raggiungere un calcolatore devo avere la possibilità di passare per più nodi di rete) e comunicazione con commutazione di pacchetto. Migliore tecnologia di comunicazione e fare più cose. Negli USA la diffusione iniziale di Internet è in ambito Militare Accademico (dove si fa ricerca). In Europa arriva negli anni 70. In Italia nel 1986. Alcune applicazioni sviluppate in quegli anni ci sono ancora oggi come la posta elettronica nata negli anni 70, molte altre sono state cancellate dalla killer application di Internet sviluppata negli anni 90. La killer application di Internet è il World Wide Web. Il Web ha un’origine diversa da Internet nasce 30 anni dopo Internet. Internet diverso da Web, ma sono legate perché il Web va con Internet. Il sito web è server ed il server è un nodo della rete Internet. Internet viene ampliata se vengono aggiunte nuove rete è in continua espansione ed è composta anche da sotto reti (la Rete delle Reti). Le utenze domestiche entrano a fare parte di Internet grazie agli Internet Service Provider (ISP). Essendo composto da più sottoreti, la connessione tra loro viene gestita da gateway. In Internet i nodi vengono individuati univocamente tramite indirizzi IP. La modalità definita per creare una comunicazione corretta è quella di identificare ognuno dei nodi connessi alla rete internet tramite un indirizzo numerico univoco IP. Indirizzo IP Internet Protocol: sono indirizzi a 32 bit (2alla32), vengono solitamente indicati con 4 numeri (decimali) compresi tra 0 e 255 (ad es. 192.168.1.1). L’ICANN (International Corporation for Assigned Names and Numbers) attribuisce indirizzi IP ad aziende e paesi. Gli indirizzi IP sono solo 2 alla 32, circa 4 miliardi. Gli indirizzi sono già finiti per cui bisogna trovare strategie per ovviare a questo problema. Qualche idea? Proviamo a fare indirizzi IP a 128 bit 2alla128, aggiornare tutti i sistemi con questi 128bit di indirizzi IP è complicato allora qualcun altro ha detto usiamo strategie diverse sempre con 32 bit strategia NAT solo il gateway ha un indirizzo univoco, tutti i calcolatori della sottorete hanno indirizzi diversi tra loro, ma non necessariamente diversi da quelli di altre sottoreti. Sapendo che ci sono sottoreti e possiamo accedere ai nodi della sottorete che

campo cc vede che ci sono altri indirizzi nel campo A e viceversa. Se invece voglio inviare un messaggio informando una terza persona, ma non voglio che il diretto interessato sappia che è stata informata una terza persona l’indirizzo della terza persona lo specifico nella ccn. L’indirizzo A non vede gli altri destinatari perché sono nascosti, mentre chi ha l’indirizzo Ccn vede che il messaggio è stato anche inviato a qualcun altro. La mail di risposta arriverà però solo a me non anche ai ccn. Nella cc dipende se rispondo solo al mittente oppure posso rispondere a tutti anche quelli in copia. Perché i messaggi con allegati troppo grandi possono essere rifiutati? Le caselle di posta elettronica all’inizio erano poco capienti quindi con un allegato grande si rischiava di intasare la casella di posta del destinatario. Oggi anche se le caselle hanno uno spazio di memoria molto ampio c’è comunque il rischio di saturare le caselle di posta. Servizio di internet è uno dei POP servizi, nato prima del web. FTP (File Transfer Protocol) è un protocollo usato per la copia di dati tra nodi della rete, l’utente può usare SW detti Server FTP e Client FTP (Filezilla), lo scambio può avvenire anche tra calcolatori con SO e filesystem diversi, un server FTP mette a disposizione dello spazio di memoria dove è possibile copiare i dati, i client FTP si connettono usando credenziali per l’accesso. E’ stato introdotto per ovviare alcune limitazioni della posta elettronica come l’ultima domanda. In questo caso usiamo un servizio client/server in cui abbiamo un client FTP e l’altro server FTP e grazie alla loro interazione gli utenti si scambiano file. Client fa richiesta si collega ad un server, il quale mette a disposizione spazio e memoria sulla sua memoria, client prende un file lo carica sulla memoria del server e così si può informare l’utente che il file è caricato sulla memoria del server e l’altro utente si collega al server preleva il file e se lo scarica in locale. Servizio nato per dare la possibilità a dispositivi che usavano SO diversi per scaricare file. È protetto da eventuali accessi non autorizzati, solo utenti che hanno in possesso le credenziali corrette possono accedervi. Utilizzo principale del protocollo FTP distribuzione di pacchetti software (ad esempio aggiornamento del software), upload di pagine su un sito web, invio di file di grandi dimensioni. Quando abbiamo degli aggiornamenti spesso la loro distribuzione viene fatta usando il protocollo di trasferimento dei file: il SO si collega ad un server, scarica il file dell’aggiornamento e li esegue sul computer. Il peer to peer (p2p) punto a punto non usano client/server: è un’architettura paritaria, non c’è una gerarchia client/server, diffuso per attività di file sharing, si utilizzano programmi come eMule, eDonkey, attenzione al copyright. Nato per gli utenti per condividere file senza passare da un server. Qui è client/client. Gruppi di discussione e forum (fanno riferimento ad Internet, ma oggi troviamo anche in forma diversa): servizi per lo scambio di informazioni tra comunità, newsgroups server USENET per la diffusione dei messaggi, utilizza un’architettura client/server il client inviava l’informazione al server ed il server la inviava a tutti gli altri client per via di questo scambio macchinoso ci sono possibili problemi nella cronologia degli aggiornamenti, forum discussioni tematiche organizzate in thread e richiedono registrazione per partecipare alle discussioni è presente un moderatore che controlla il contenuto del forum. La comunicazione sincrona: chat, instant messaging, ICQ, MSN messenger, WhatsApp, Telegram, Skype. Sincrona quando mittente e destinatario sono entrambi connessi al canale di comunicazione. Ora posso comunque inviare messaggi anche quando l’altro ha il telefono spento. Skype primo software in assoluto che ha permesso le chiamate vocali tramite Internet e permette di scambiare messaggi ma solo quando gli utenti sono connessi, ora funziona come i messaggi di WhatsApp. Quale è la differenza tra chat ed instant messaging? Chat stanza virtuale si accedeva e si poteva parlare con altre persone presenti nella stessa stanza, si usavano solo messaggi è un sistema di comunicazione sincrono Questi servizi hanno un’architettura client/server o p2p? Tutti questi servizi si basano su client/server es Skype appena accedo mi collego al server ed il server dice agli altri che sono online, tutti gli altri servizi di messaggistica si basano su architettura client/server.

Backup di file e cartelle in remoto cioè copia sicurezza dei dati copiata su un server in internet gestito in maniera incrementale vengono aggiunte le modifiche fatte al file. Archiviazioni tramite strumenti di versioning (CVS, GIT). Condivisione di file tra più utenti che possono leggere/scrivere (Google Drive, DropBox) e cloud computing archiviazioni e/o elaborazioni in remoto (cloud computing servizio internet facciamo riferimento a dei computer che sono collegati ad Internet tramite un server il quale mette a disposizione dell’utente sia spazio di archiviazione sia potenza di calcolo, ad esempio con Google Maps si usa l’elaborazione in remoto del cloud computing, l’elaborazione viene fatta in remoto (in cloud) cioè non sul nostro telefono, ma su un computer di Google che ospita il servizio poi l’informazione viene inviata sul nostro telefono e viene mostrato il percorso migliore. Questa elaborazione non viene fatta sul nostro telefono perché impiegherebbe un sacco di tempo, ma soprattutto consumerebbe tutta la batteria del telefono La comunicazione: due calcolatori comunicano attraverso messaggi codificati con appositi segnali che possono essere livelli di tensione, o luce in fibra ottica (messaggi sequenza di bit inviata tra due nodi di rete). I messaggi vengono inviati tramite appositi canali di trasmissione. I canali di trasmissioni sono affetti da rumore per questo è stata introdotta una codifica con ridondanza. I tipici canali di comunicazione sono: doppino telefonico, cavo coassiale, fibra ottica, IrDA, Bluetooth. Connessione ad Internet tramite ISP Internet service provider. La connessione viene realizzata tramite un modem modulation e demoletion. Router, il modem fa anche da router, dà il segnale wi- fi e permette ai dispositivi connessi alla rete domestica di comunicare tra loro. Connessione tramite linea telefonica. La linea telefonica commutata 56 Kbps, ISDN 128 Kbps, DSL tra 160 Kbps e 52 Mbps, ADSL Asymmetric DSL, HDSL (High bit rate DSL simmetrica), WiMAX. Anche tramite telefonia mobile è possibile accedere a Internet: GSM 2G (seconda generazione). GPRS 2,5G. EDGE 2,75G. UMTS 3G. HSDPA 3,5G. LTE 4G. NR 5G. 5G va ad una velocità di 10Gbps ha dei vantaggi rispetto al 4G antenne più piccole localizzate che permettono la connessione di più dispositivi contemporaneamente, ha un impatto ecologico diminuisce energia richiesta per trasmissione di ogni bit, minor ritardi nella comunicazione e si possono avere dei sistemi che comunicano in tempo reale. DOMANDE: Lo scopo del primo nucleo di Internet era quello di avere una rete: decentrata e non vulnerabile. Quale delle seguenti affermazioni è vera? Per effettuare chiamate con Skype non è necessario il Web. Cosa stabiliscono i protocolli di rete? Il formato dei messaggi e le modalità di scambio fra programmi su rete. Giovedì 28 ottobre Servizio maggiormente utilizzato in Internet il Web. Per definire il Web dobbiamo definire due termini Ipertestualità e multimedialità, due concetti collegati al Web fin dalla sua nascita. Ipertesti Parti di testo collegate tra loro logicamente. I collegamenti permettono all’utente di passare da una parte del testo all’altra. Il documento ha una struttura reticolare. L’utente può navigare o effettuare una scansione non lineare del testo. In generale l’ipertesto è un documento sviluppato con implementazioni informatiche. L’ipertesto (in una forma che vedremo successivamente) si è diffuso enormemente negli anni 90 con la nascita del World Wide Web. Non necessariamente viene implementato con strumenti informatici, ma è diventato molto utilizzato quando sono arrivate le tecnologie. Diamo una definizione più formale di ipertesto: è un testo digitale, è composto da più parti (blocchi di testo) detti nodi o topics (argomento), le parti sono in connessione tramite collegamenti o link seguendo una struttura reticolare, la struttura dell’ipertesto determina la modalità di navigazione, la struttura è legata ad un autore, la struttura è aperta, nel senso che è possibile passare da un ipertesto all’altro (quest’ultimo punto fa capire la vicinanza con il web perché anche il web permette di passare da un sito web all’altro). La struttura dell’ipertesto