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: Storia, Struttura e Funzionamento dei Calcolatori, Appunti di Fondamenti di informatica

Riassunto libro e appunti del corso di informatica umanistica, primo anno Scienze dell'educazione, prof. Cazzaniga Paolo

Tipologia: Appunti

2021/2022

Caricato il 14/12/2022

chiara-gobbi-6
chiara-gobbi-6 🇮🇹

4.5

(12)

13 documenti

1 / 43

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INFORMATICA UMANISTICA
1.1 FONDAMENTI DI INFORMATICA
L’informatica è una disciplina scientifica che studia l’informazione e le macchine in grado di elaborarla
automaticamente; viene per questo anche detta “scienza del computer”, pur utilizzandolo semplicemente
come mezzo di studio.
La principale macchina di elaborazione automatica è il calcolatore (computer) in grado, non solo di elaborare
le informazioni, ma di garantire anche una riduzione dei tempi di elaborazione facilitando il compito all’uomo,
e una minore probabilità di errori.
Ad oggi, in alternativa al termine “informatica” viene utilizzata l’affermazione “Tecnologia dell’informazione”
(IT), in quanto le telecomunicazioni hanno aumentato il potenziale dei calcolatori grazie alla loro capacità di
trasmettere informazioni a distanza; ciò ha dato origine ad una nuova disciplina: “Information and
communication technology” (ICT).
IL DATO
Il dato è un insieme di simboli tracciati su una componente fisica, il cui ordine stabilisce un determinato
significato.
ESEMPIO: 39,5 ha come simboli “3”-”9”-”,”-”5”.
Per ricavare un’informazione dovrò poi mettere in relazione al dato una determinata proprietà; quando poi,
elaborando l’informazione e ricavandone delle regole potrò trarre dall’informazione un vantaggio, si tratterà
allora di conoscenza.
55555ESEMPIO: se al dato 39,5 associo la proprietà di temperatura corporea potrò ricavare come informazione
che il soggetto ha la febbre e di conseguenza le regole che conosco da seguire in questa determinata
condizione.
I LINGUAGGI FORMALI
Sappiamo che il linguaggio si può suddividere in:
naturale = utilizzato dell’uomo per comunicare, è però ambiguo in quanto caratterizzato da una
pluralità di sensi e significati e va contestualizzato;
formale =5 creato per gli ambiti in cui bisogna evitare ambiguità, come nell'informatica.5
Esso è caratterizzato da un alfabeto finito di simboli definiti da una grammatica formale, che vanno
contestualizzati in aree semantiche formali che permettono di attribuire un significato.
LA CODIFICA E LA RAPPRESENTAZIONE DELL’INFORMAZIONE
In generale sappiamo che nel linguaggio la stessa informazione può essere codificata con simboli e modalità
diverse; nel caso del linguaggio formale (del calcolatore) l’informazione viene codificata in sequenze di “BIT”,
cifra binaria contenente solamente i simboli “0” e “1”.
Il valore dei BIT viene poi rappresentato dai dispositivi bistabili e, considerando tutte le sequenze possibili di
questi due BIT, posso allora ottenere che:
2 BIT = 4 sequenze possibili
3 BIT = 8 sequenze possibili
8 BIT = 64 sequenze possibili, 8 BIT corrispondono a 1 BYTE
Questo perché il numero di sequenze possibili corrisponde a due volte il5 numero di BIT utilizzati → nBIT =
2^n sequenze possibili.
La capacità della memoria di un calcolatore viene quindi misurata in BIT, BYTE o nei loro multipli espressi
tramite gli stessi prefissi del Sistema Internazionale, a differenza del quale però vengono calcolati sulla
potenza di 2 e non di 10.
GLI STRUMENTI PER L’ELABORAZIONE DELL’INFORMAZIONE
L’elaborazione dell’informazione corrisponde ad una qualsiasi attività condotta sull’informazione stessa
come:
creazione
modifica
confronto
conservazione e trasmissione
eliminazione
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b

Anteprima parziale del testo

Scarica Introduzione all'Informatica: Storia, Struttura e Funzionamento dei Calcolatori e più Appunti in PDF di Fondamenti di informatica solo su Docsity!

INFORMATICA UMANISTICA

1.1 FONDAMENTI DI INFORMATICA

L’informatica è una disciplina scientifica che studia l’informazione e le macchine in grado di elaborarla automaticamente; viene per questo anche detta “scienza del computer”, pur utilizzandolo semplicemente come mezzo di studio. La principale macchina di elaborazione automatica è il calcolatore (computer) in grado, non solo di elaborare le informazioni, ma di garantire anche una riduzione dei tempi di elaborazione facilitando il compito all’uomo, e una minore probabilità di errori. Ad oggi, in alternativa al termine “informatica” viene utilizzata l’affermazione “Tecnologia dell’informazione” (IT), in quanto le telecomunicazioni hanno aumentato il potenziale dei calcolatori grazie alla loro capacità di trasmettere informazioni a distanza; ciò ha dato origine ad una nuova disciplina: “Information and communication technology” (ICT). IL DATO Il dato è un insieme di simboli tracciati su una componente fisica, il cui ordine stabilisce un determinato significato. ESEMPIO: 39,5 ha come simboli “3”-”9”-”,”-”5”. Per ricavare un’informazione dovrò poi mettere in relazione al dato una determinata proprietà; quando poi, elaborando l’informazione e ricavandone delle regole potrò trarre dall’informazione un vantaggio, si tratterà allora di conoscenza. ESEMPIO: se al dato 39,5 associo la proprietà di temperatura corporea potrò ricavare come informazione che il soggetto ha la febbre e di conseguenza le regole che conosco da seguire in questa determinata condizione. I LINGUAGGI FORMALI Sappiamo che il linguaggio si può suddividere in:  naturale = utilizzato dell’uomo per comunicare, è però ambiguo in quanto caratterizzato da una pluralità di sensi e significati e va contestualizzato;  formale = creato per gli ambiti in cui bisogna evitare ambiguità, come nell'informatica. Esso è caratterizzato da un alfabeto finito di simboli definiti da una grammatica formale, che vanno contestualizzati in aree semantiche formali che permettono di attribuire un significato. LA CODIFICA E LA RAPPRESENTAZIONE DELL’INFORMAZIONE In generale sappiamo che nel linguaggio la stessa informazione può essere codificata con simboli e modalità diverse; nel caso del linguaggio formale (del calcolatore) l’informazione viene codificata in sequenze di “BIT”, cifra binaria contenente solamente i simboli “0” e “1”. Il valore dei BIT viene poi rappresentato dai dispositivi bistabili e, considerando tutte le sequenze possibili di questi due BIT, posso allora ottenere che:  2 BIT = 4 sequenze possibili  3 BIT = 8 sequenze possibili  8 BIT = 64 sequenze possibili, 8 BIT corrispondono a 1 BYTE Questo perché il numero di sequenze possibili corrisponde a due volte il numero di BIT utilizzati → nBIT = 2^n sequenze possibili. La capacità della memoria di un calcolatore viene quindi misurata in BIT, BYTE o nei loro multipli espressi tramite gli stessi prefissi del Sistema Internazionale, a differenza del quale però vengono calcolati sulla potenza di 2 e non di 10. GLI STRUMENTI PER L’ELABORAZIONE DELL’INFORMAZIONE L’elaborazione dell’informazione corrisponde ad una qualsiasi attività condotta sull’informazione stessa come:  creazione  modifica  confronto  conservazione e trasmissione  eliminazione

Queste attività seguono tutte lo stesso schema, partendo dalla codifica di una precedente informazione (INPUT) in dati che vengono poi rigenerati in nuovi dati e codificati in una nuova informazione (OUTPUT). Per garantire la corretta elaborazione automatica di un’informazione ed evitare ambiguità vengono fornite all’esecutore delle istruzioni: gli algoritmi. Gli algoritmi vengono poi a loro volta descritti dai "linguaggi di programmazione”; un algoritmo viene perciò definito programma e programmatore è la persona che scrive l'algoritmo. I DISPOSITIVI AUTOMATICI PER L’ELABORAZIONE DELL’ INFORMAZIONE A seconda dell’intervento umano possono essere suddivisi in:

1. sistemi manuali = forniscono una codifica dei dati, raggiunta però attraverso le modifiche dirette dell’utente (sistema di calcolo con carta e penna) 2. sistemi automatici rigidi (semi automatici) = elaborano autonomamente i dati ma vengono comunque gestiti dalle indicazioni continue fornite dall’utente (calcolatrice) 3. sistemi automatici flessibili = la loro memoria interna contiene sia i dati che le istruzioni per trasformali, sono quindi in grado di formulare autonomamente un’elaborazione (calcolatore) La loro evoluzione storica:  utilizzo delle 10 dita della mano o delle loro singole falangi  l’abaco e il regolo calcolatore (rappresentazione numerica posizionale)  la pascalina e l'analytical engine (prime calcolatrici meccaniche)  ENIAC ed EDVAC, calcolatori elettronici universali (Mauchly e Eckert) > si rifanno all’architettura di John von Neumann  transistor e circuiti integrati (microchip)  microprocessore > ha determinato la diffusione dei personal computer  computer palmari, dotati di schermo tattile e offerta di diverse applicazioni  telefoni cellulari, permettono la comunicazione attraverso la rete di telecomunicazione cellulare  smartphone, che unisce caratteristiche e funzioni del palmare e del cellulare La legge di Moore = ogni volta che il numero di transistor integrati in un unico circuito raddoppia, allo stesso tempo si evolvono la velocità di elaborazione e la capacità di memorizzazione. (ogni 2 anni circa) LA RETE INTERNET A partire dagli anni 60 si scoprì il potenziale della rete, che permetteva la comunicazione e la condivisione di risorse tra computer diversi; da qui si sviluppò poi l’Internet , che permette oggi di interconnettere elaboratori in tutto il mondo fornendo diversi servizi all’utente. A partire dal 2000 è stato introdotto “l’internet delle cose” (IoT), grazie al quale tramite collegamento internet gli oggetti quotidiani assumono un ruolo attivo. L’ARCHITETTURA DI VON NEUMANN Nel 1944 stese una bozza sull’architettura del moderno calcolatore, con l’obiettivo di creare un calcolatore universale caratterizzato da:  dispositivo di memorizzazione  utilizzo di aritmetica binaria  separazione tra dispositivo di memorizzazione dispositivo di elaborazione Le componenti:  processore (CPU) = recupera ed esegue le istruzioni contenute nella memoria > ogni istruzione deve essere codificata in cifre binarie per poter essere rappresentata nella memoria  la memoria, composta da celle identificate numericamente e contenenti dati ed istruzioni  interfaccia di input e output delle informazioni > si connette con le periferiche  il bus = canale comunicativo che gestisce lo scambio di informazioni Il linguaggio macchina: linguaggio di programmazione della CPU, è binario e se identico permette la compatibilità tra due calcolatori. IL DIFETTO “COLLO DI BOTTIGLIA” Avviene quando la CPU elabora dati molto più velocemente di quanto il BUS è in grado di trascriverli nella memoria, questo porta la CPU a “perdere” tempo perché non può elaborare nuovi dati finchè quelli precedenti non sono stati trascritti.

calcolatori embedded > installati all’interno di sistemi come automobili, semafori, catene di montaggio ecc. IL PROCESSORE (cpu) Ha il compito di prelevare ed elaborare istruzioni e dati dalle varie celle della memoria centrale tramite il BUS e i registri di memorizzazione > registro IR Le sue fasi di attività sono:

  1. lettura
  2. decodifica
  3. esecuzione > la corretta esecuzione è garantita dal “Program Counter” ed avviene tramite “l’unità aritmetico-logica”, viene invece modificato dalle “istruzioni jump”
  4. scrittura all’interno della memoria La velocità con cui la CPU opera viene scandita dal dispositivo clock , la cui frequenza viene misurata in Hertz > per aumentare maggiormente la velocità vengono installati dei processori multi-core che permettono a più CPU di operare in parallelo. LA MEMORIA CENTRALE (ram) Dispositivo che, attraverso l’interazione con la CPU e il BUS, legge, memorizza e scrive istruzioni e dati che vengono inseriti nelle celle di memorizzazione, a loro volta identificabili attraverso indirizzi numerici. E’ una componente volatile, ovvero necessita di una continua alimentazione a corrente > se il PC si spegne vengono persi tutti i dati ed ha una capacità in GB. Tipi di accesso:  sequenziale, devo leggere tutte le celle precedenti a quella di interesse per accedervi  diretto, mi basta digitare l’indirizzo numerico per leggere una cella specifica > caratteristico della RAM  misto, alterna letture dirette a letture sequenziali  associativo, trova e accede alla cella attraverso il suo contenuto e non tramite indirizzo numerico Solitamente in ogni calcolatore vengono aggiunte, oltre alla RAM, altri due tipi di memoria:  ROM > memoria di sola lettura  EPROM > memoria non volatile, in cui i dati e le istruzioni permangono e possono essere modificati LE MEMORIE DI MASSA Dette anche memorie secondarie hanno tempi più lunghi rispetto alla RAM ma sono permanenti e hanno un minor costo di memorizzazione. Possono essere fisse oppure caratterizzate da supporti drive e USB rimovibili, che permettono lo scambio di dati. Esistono perciò diversi tipi di interfaccia per connettere la memoria di massa al calcolatore, come ad esempio la “Serial ATA” o la “Seria Attached SCSI”. Il backup e la ridondanza: In caso di guasto su uno dei componenti del calcolatore ho la possibilità di sostituirlo e di ripristinare le funzionalità ma allo stesso tempo vi è il rischio di perdere tutto il contenuto; è necessario quindi ricorrere a misure preventive per il “disaster recovery” come:  Backup > copie aggiuntive dei dati scritte su un’altra memoria  Ridondanza > duplicazione identica dei dati su più supporti per garantire la possibilità di recupero, adotta tecniche RAID In base alla tecnologia impiegata le memorie di massa si suddividono in: Dispositivi magnetici : Memoria con supporto in superficie ferromagnetica, rischio di smagnetizzazione e perdita dati; Possono essere:  Disco rigido = costituito da dischi o piatti che, sovrapposti e connessi tra loro, vengono letti scritti dalle apposite testine sulla superficie, che viene suddivisa in “blocchi” a loro volta suddivisi in “settori” i quali contengono le “tracce”, sulle quali viene effettivamente scritta l’informazione.

Tutte le sue componenti sono contenute in una scatola fissa all’interno del calcolatore (disco fisso), per la cui manutenzione vengono utilizzati i sistemi di “Formattazione” [cancellazione definitiva di eventuali dati preesistenti ed organizzazione del file system] e “Deframmentazione” [ottimizza le prestazioni del disco riorganizzando periodicamente i blocchi del file system].Nastri magnetici = piccole dimensioni, sono formati da un nastro avvolto in una cassetta, permettono tempi brevi ed elevate capacità ma sono limitati ad un accesso solo di tipo sequenziale. Dispositivi ottici: Supporti rimovibili di sola lettura (ROM) che, una volta inseriti in un drive apposito, vengono letti grazie ad una luce laser e sono costituito da strati, quello principale è il substrato, su cui si alternano parti di superficie occupate dall’etichetta e parti libere impiegate per codificare i dati. Altri dispositivi ottici si presentano invece privi di contenuto e possono quindi essere scritti grazie all’utilizzo del “drive masterizzatore”, questi si possono suddividere in supporti WORM (scrivibili una volta sola) e supporti RW (riscrivibili più volte). I supporti ottici più diffusi sono:  CD > primo supporto per la distribuzione audio in formato digitale  DVD > primo supporto per la visione di materiale audiovisivo di intrattenimento domestico  BD> visione di materiale audiovisivo ad una maggior risoluzione grazie all’utilizzo di un raggio laser blu per la lettura (blu-ray). Memorie flash: tecnicamente denominate EEPROM sono supporti il cui contenuto può essere programmato (scritto), cancellato e riprogrammato mediante processi che non richiedono un’alimentazione a corrente, sono quindi memorie non volatili con consumi ridotti di corrente; hanno però dei limiti massimi di cicli di scrittura e cancellazione. I più comuni sono:  Memory Card > supporti di memoria dei recenti dispositivi (schede SD, mini e micro)  Drive USB > consentono l’accesso, la lettura, la scrittura e lo scambio di dati su diversi calcolatori  Drive a stato solido > simili ai vecchi dischi rigidi sono dati di velocità superiori. LE GERARCHIE DI MEMORIA Vengono create in base alle caratteristiche delle Cache , altri dispositivi di memorizzazione più veloci contenuti nei calcolatori in aggiunta alle memorie centrali e di massa: Le gerarchie si basano sul grado di livello della cache più vicino alla CPU:

1. registri CPU > massima velocità e capacità di alcune centinaia di byte 2. Cache livello 1 > capacità di qualche decina di kilobyte 3. Cache Livello 2 > capacità di circa 500 kilobyte 4. Cache Livello 3 > può essere contenuta anche sulla scheda madre, ha una capacità di circa 2 megabyte 5. memo centrali, dischi interni ed esterni LE PERIFERICHE Sono dispositivi connessi all’unità centrale del calcolatore tramite i connettori , interfacce che permettono lo scambio di dati, si possono collegare infatti sia al BUS che al dispositivo, permettendo quindi di accoppiare qualsiasi dispositivo. La “comunicazione” tra interfaccia e dispositivo può essere di due tipi:  seriale, un unico canale di trasmissione (un singolo bit alla volta)  parallela, più canali di trasmissione simultanei (più gruppi di bit alla volta) Esempi di connessioni sui PC comuni:  connettore SATA, SCSI, SAS per il collegamento di dischi rigidi, drive e masterizzatori  connettore PS/2, per connettere mouse e tastiere  connettore VGA e DisplayPort, per connettere interfaccia grafica e video  connettore minijack, per la scheda audio/microfono/speaker  connettore Rj45, per il collegamento all’interfaccia di rete  connettore USB e FireWire  connettore IrDA, per la connessione wireless senza fili  connettore Bluetooth Le principali periferiche:

 Dispositivi audio Sono schede sonore di espansione in grado di supportare segnali audio che dispone di connettori per il collegamento input di microfoni e registratori; rendono quindi il calcolatore in grado di acquisire segnali sonori, codificarli in digitale e archiviarli.  convertitore digitale analogico = lavora in output ed è in grado di riconvertire la codifica digitale in segnale analogico e di inviarlo ad amplificatori o cuffie. → notifiche, media center, home theater, lettori Mp  registratore sonoro = lavora in input e permette all’utente di registrare la propria voce, ne fanno utilizzo ad esempio le sintesi vocali, il riconoscimento vocale (VoIP)  Dispositivi per l'acquisizione di immagini Dispositivo di input capace di digitalizzare un’immagine grazie alla codifica di pixel memorizzati sul calcolatore caratterizzati per grandi dimensioni di immagine, profondità del dolore e risoluzione interpolata. Sono un esempio gli scanner, in grado di acquisire un’immagine riportata su un supporto:  scanner piano = digitalizzare un’immagine appoggiata su un piano luminoso /(fotocopiatrici)  scanner manuale = digitalizzare un’immagine che l'utente fa scorrere sulla sua superficie  scanner pellicola = digitalizza immagini presenti su una pellicola fotografica (negativi)  scanner di rete = invia immagini digitalizzate direttamente agli elaboratori connessi a quella rete  scanner OCR = scanner a riconoscimento ottico dei caratteri in grado di digitalizzare testi scritti che il calcolatore interpreta come immagini, mentre l’utente è in grado di interpretare come testo. Altri tipi di dispositivi sono le macchine fotografiche e videocamere digitali = imprime l’immagine o il filmato, sotto forma di pixel, su un sensore elettronico di immagini e la archivia su una scheda di memoria. Molto utilizzate oggi per le loro caratteristiche:  possibilità di visualizzare l’immagine subito dopo l’acquisizione  posso archiviare, cancellare e trasferire sul calcolatore migliaia di fotografie alla volta Esempi di macchine fotografiche digitali sono: le digicam compatte, le reflex digitali, le webcam e le mirrorless; sono dispositivi di questo tipo anche i lettori di codice a barre o Qr Code. LE COMBINAZIONI DI PERIFERICHE Più periferiche vengono combinate tra loro al fine di consentire modalità di interazione più efficaci tra utente e macchina. Ne sono esempio i sistemi di realtà virtuale (google glass, LIM o CAVE), che possono essere composti da micro computer oppure da una serie di calcolatori connessi in un cluster. 2.1 IL SOFTWARE Insieme di programmi contenenti le istruzioni per l’elaborazione dati → gli algoritmi L’algoritmo è quindi una sequenza di istruzioni input > output che mi permette di trattare l’informazione.  Funzionano come le ricette di cucina: grazie agli ingredienti (informazioni input) l’utente, seguendo le istruzioni della ricetta, otterrà il piatto desiderato (dati output). Allo stesso modo un algoritmo presuppone la presenza di un esecutore che, partendo da dati di input e seguendo le istruzioni del software, ottenga nuovi dati in output. Le caratteristiche:  linguaggio comprensibile e non ambiguo  operazioni e istruzioni elementari e in tempistiche definite  deve essere deterministico = generare sempre gli stessi dati output partendo più volte dagli stessi dati input  deve essere parametrico = in grado di risolvere più problemi contemporaneamente

2.2 I PROGRAMMI, I LINGUAGGI DI PROGRAMMAZIONE E LA LORO TRADUZIONE

Il linguaggio di programmazione , anche chiamato linguaggio macchina, descrive gli algoritmi tramite codifica in bit. Dato che programmare tramite linguaggio macchina è dispendioso di tempo ed energie, gli informatici hanno realizzato il linguaggio assemblatore = ogni istruzione viene codificata in lingua inglese e successivamente, attraverso un assemblatore, gli input in lingua informale vengono letti e tradotti in linguaggio macchina (formale) generando un informazione output che il calcolatore sarà poi in grado di eseguire. Esistono quindi due tipi di programmi di traduzione:  il compilatore = riceve in input l’intero programma sorgente e lo traduce direttamente in linguaggio macchina generando un programma oggetto → vantaggioso quando si vuole trascrivere su altri calcolatori l’intero programma  l’interpreta = riceve in input il programma sorgente e ne traduce singolarmente ogni istruzione, si può eseguire nell’immediato → più vantaggioso quando va corretta una singola parte del programma Calcolatore e relativi traduttori costituiscono una Macchina astratta. 2.3 LA MACCHINA DI TURING Alan Turing viene considerato per la sua invenzione il padre dell’informatica moderna; la sua macchina consiste in un potente dispositivo di elaborazione il cui studio astratto delle proprietà aiuta a comprendere l’elaborazione automatica dell’informazione → progetto non realizzabile praticamente Caratteristiche:  alfabeto finito di simboli contenente obbligatoriamente il simbolo "blank"  nastro infinito suddiviso in “celle correnti” contenenti ognuna un simbolo dell’alfabeto –< info in input  una testina posizionata sulle celle in grado di leggere il simbolo contenuto o di scriverne uno nuovo → trasforma l’info in output  insieme finito di s tati iniziali e finali (input e output) e un registro in grado di memorizzare lo stato corrente → memo interna del sistema  una tabella delle azioni in cui vengono indicati stato e simbolo corrente contenuto nella cella, nuovo simbolo da scrivere nella cella e nuovo stato da memorizzare. Quando viene attivata la macchina si comporta quindi come un calcolatore, in grado di eseguire in modo preciso l'algoritmo espresso nella tabella delle azioni. Turing elaborò anche il progetto di una macchina universale in grado di simulare il funzionamento di una qualsiasi altra macchina di Turing, una sorta di primordiale dispositivo di memoria unico per contenere dati e istruzioni. La congettura di Church-Turing: teoria formulata dal matematico Alfonzo Church, il quale affermava che se una funzione è intuitivamente considerata calcolabile allora esiste sicuramente una macchina di Turing in grado di calcolarla. Questo significa che qualsiasi proprietà degli algoritmi può essere studiata più facilmente su una Macchina di Turing. → (esempio pag 39) 2.4 INGEGNERIA DEI SOFTWARE Sviluppa approcci sistematici applicabili per lo sviluppo e la manutenzione dei software a livello industriale. Questi approcci si basano su delle fasi raggruppate nel “Ciclo di vita” del software e sono:

1. analisi, produce un documento di specifica contenente informazioni sul problema che il software dovrà risolvere 2. progettazione, delinea la struttura, l’architettura e le caratteristiche del software e delle sue singole componenti 3. implementazione, realizzazione di più programmi che andranno a costituire il software _4. collaudo

  1. rilascio,_ installazione del prodotto software presso utenti 6. manutenzione Ad ogni software house e ai singoli produttori viene poi affidata la licenza dei diritti d’autore e il modo in cui questa viene gestita crea diverse tipologie di vendita:  Licenza d’uso = tipica nei software a pagamento viene concessa senza i diritti d’autore e non permette quindi la copia, la modifica e la ridistribuzione del software  Shareware = utilizzata per i software distribuiti via internet, concede un periodo di prova e utilizzo gratis dopo il quale l'utente deve però pagare il software  Freeware = i software vengono distribuiti e utilizzati gratuitamente, ne permette quindi la copia e la ridistribuzione

A partire da questo momento le schede perforate vennero via via sostituite da applicazioni che permettevano all’utente di interagire direttamente con il calcolatore durante l’esecuzione di un programma. Queste applicazioni di gestione della CPU sono classificata in:  applicazioni I.O. Bound = s ono interattive ma il tempo necessario a compiere un'elaborazione è molto più lungo e determinato dall'attesa delle operazioni di input/output.  applicazioni CPU Bound = non interattive, sfruttano molto le risorse del processore, ma non richiedono grandi sprechi di tempo per le operazioni input/output dati. Per risparmiare tempo e risorse si pensò di collegare più terminali allo stesso calcolatore, così da simulare per ciascun utente una CPU a lui dedicata → “parallelismo virtuale”. Questi sistemi vennero soprannominati con gli aggettivi "timesharing" e “multitasking”. Il processo: Una sequenza dinamica di attività ( task ) caricata su memoria RAM, generata e controllata da un programma; viene identificato da un codice univoco chiamato PID e si svolge su un processore sotto la gestione del rispettivo sistema operativo. Può essere visibile all'utente, come nel caso di un’applicazione durante la sua esecuzione, oppure può essere eseguito in background e si evolve nel corso dell’esecuzione del programma, annullandosi quando questa sarà terminata. In questo caso il multitasking viene impiegato per l’esecuzione di più applicazioni contemporaneamente, che a noi appare gestita da più finestre attraverso un’illusione virtuale; in realtà la finestra attiva che lavora è una sola (in foreground), mentre tutte quelle non attive svolgono i loro processi in background. Esistono a questo proposito programmi progettati per lavorare sempre in background ogni volta che l’utente attiva il calcolatore, vengono chiamati processi "demoni" o “servizi”. Le fasi di un processo:

  1. pronto, fase iniziale successiva alla sua creazione
  2. in attesa, aspetta il completamento di un’operazione asincrona
  3. in esecuzione, può accedere alla CPU Dopo la fase di esecuzione, a seconda dello stato dell’operazione, il processo può essere:  messo in attesa, se richiede un’operazione asincrona  rimane in esecuzione, ma solo per un determinato periodo  eliminato, se ha completato l’esecuzione a lui assegnata I passaggi del processo da una fase all’altra vengono stabiliti dal “context swapping”. 2.6 LA GESTIONE DELLA MEMORIA DI MASSA Dato che per ogni processo è necessario creare nella RAM spazio per i suo dati l’esistenza di calcolatori caratterizzati da multiprogrammazione comporta la necessità di un gestore della RAM all’interno del sistema operativo, che deve essere in grado di:  controllare al RAM  garantire spazio per ciascun processo e proteggerlo da processi non autorizzati ( indirizzamento virtuale )  gestire gli spazi comuni utilizzati dai processi per lo scambio di informazioni Queste attività vengono generalmente gestite da una memoria virtuale, che consente ad ogni programma di operare come se avesse a disposizione l'intero spazio in RAM; in realtà a ciascuno viene attribuito uno spazio specifico (pagina) all'interno della memoria attraverso il sistema "Memory Management Unit”. Se un processo occupa più dello spazio prestabilito dalla pagina in memoria RAM questo viene spostato in un’apposita area all’interno della memo di massa meno utilizzata tramite swapping. 2.7 LA GESTIONE DELLE PERIFERICHE I sistemi operativi sono dotati di un gestore che consente ad ogni processo di lavorare su periferiche virtuali, simulando per ogni processo uno spazio a sua completa disposizione; nel frattempo in realtà il gestore associato ad un driver trasforma i comandi generati dal processo per le periferiche virtuali in istruzioni specifiche per le periferiche reali. I calcolatori più recenti, dotati di un sistema Plug and Play (PnP), sono in grado di individuare una nuova periferica e di riconoscere automaticamente il driver associato, installandolo e configurandolo. 2.8 LA GESTIONE DEI FILE

I dati memorizzati in modo persistente all’interno di una memoria di massa vengono raccolti in file, che a loro volta vengono organizzati in cartelle da cui si dirama una struttura ad albero logica e gerarchica , creata dal file system , che permette all'utente non solo di organizzare i file in base al contenuto ma facilita anche la successiva ricerca. Ogni file e cartella viene poi identificato con un nome e con un " pathname ", che descrive il percorso da seguire per raggiungerli partendo dalla cartella radice; oppure esistono sistemi che permettono di sovrapporre alla cartella radice dei riferimenti virtuali di altri file ubicati in un’altra cartella. Ogni File System memorizza poi, per i singoli file e cartelle, le seguenti caratteristiche:  il formato e le dimensioni  data e ora di creazione e dell’ultima modifica  le autorizzazioni  il tipo di dati contenuti e l’applicazione da usare per gestirli Il File System deve inoltre consentire all’utente la possibilità di creare, leggere, modificare ed eliminare il contenuto della cartella; oppure di spostare, rinominare o fare il backup di questa. 2.9 LA GESTIONE DELLA RETE Ad oggi i sistemi operativi vengono definiti “sistemi operativi di rete” in quanto devono obbligatoriamente garantire la connessione del calcolatore in rete; questo permette agli utenti di usufruire in modo indipendente dei servizi disponibili in rete regolandone la corretta gestione delle autorizzazioni di accesso. Esistono, nell’ambito della rete, diverse modalità di interazione tra utente e calcolatore:  interazione utente-calcolatore di tipo Locale = tradizionale, senza rete.  interazione utente-calcolatore di tipo Remoto = tramite un'applicazione del computer locale (client) l’utente può interagire con un’altra applicazione presente su un altro dispositivo connesso alla stessa rete (server),  interazione tra più utenti mediata dal calcolatore = tramite un’applicazione client l’utente può interagire con un altro utente che a sua volta sta utilizzando sul suo calcolatore un’applicazione client (es: le chat). 2.10 L’INTERFACCIA CON L’UTENTE E’ sostanzialmente l’interprete dei comandi che l’utente manda al sistema operativo che, prima di iniziare l’esecuzione, deve però riconoscere attraverso l'autenticazione l’utente con cui dovrà interagire. Questa autenticazione informatica, a seconda del livello di sicurezza che garantisce, può essere svolta in 3 modalità:

1. dimostrazione di conoscenza = utilizza credenziali, nome utente e password 2. dimostrazione di possesso = dimostrare di possedere un oggetto fisico (smart card) 3. dimostrazione di caratteristiche fisiche (lettore retina o impronte digitali) A seconda delle autorizzazioni concesse l’utente può poi identificarsi in:  amministratore di sistema = garantisce il funzionamento complessivo del calcolatore  operatore di sistema = può sostituire su delega l’amministratore in compiti di routine  programmatore = realizza applicazioni  utente applicativo = utilizza le applicazioni Sviluppo delle interfacce utente/macchina: _1. Interfaccia a linee di comandi

  1. Interfaccia interattiva modale,_ l'applicazione esegue i comandi dell’utente solo dopo che quest’ultimo ha risposto a delle domande poste dall’applicazione stessa 3. interfaccia interattiva non modale, l’applicazione semplicemente attende che sia l’utente ad attivare o terminare l’operazione 4. Interfaccia multimediale, si avvalgono di più media in input e output 2.11 LA VIRTUALIZZAZIONE In informatica si intende “virtuale” quel sistema che simula caratteristiche e funzionalità diverse da quelle reali.  realtà virtuale > applicazioni che, grazie a calcolatori, trasmettono alla persona stimoli sensoriali realizzando una dimensione illusoria diversa da quella reale

come base il numero naturale prestabilito. La stessa sequenza di cifre in basi diverse rappresenta quindi numeri diversi → es p.  notazione binaria posizionale > utilizzata per rappresentare i dati all’interno di un calcolatore, per velocizzare il passaggio trascrive le cifre di dati in gruppi di “nibble” che rappresentano cifre esadecimali con una sequenza di soli 4 bit. → es p. 3.3 LA QUANTITA’ DI INFORMAZIONE: INCERTEZZA E PROBABILITA’ La teoria dell'informazione si occupa dello studio sistematico delle basi teoriche di informazione e comunicazione; infatti se un dato contiene un’informazione allora si può misurare la quantità di informazione presente in un supporto. Il calcolo va fatto prendendo quindi in considerazione le differenze tra logaritmi nelle probabilità attribuite al verificarsi di un evento. → es p. 62 codifica analogica e digitale  codifica analogica > utilizzata per il calcolo di una grandezza analogica, al variare della grandezza dovrà necessariamente variare la codifica. → otteniamo meta informazioni di tipo ordinale e metrico, è più precisa  codifica digitale > utilizza un alfabeto di simboli e regole di codifica → più compatto e gestibile, non necessità di infinite cifre numeriche ma è al contempo imprecisa in quanto implica un’approssimazione della cifra che si vuole rappresentare. La codifica digitale si avvale poi per la sua rappresentazione di metodi di quantizzazione e campionamento:  quantizzazione > l’intervallo dei valori numerici di una grandezza continua deve essere suddiviso in un numero finito di livelli, tutti rappresentati con un’unica codifica corrispondente all’intervallo stesso  campionamento > vengono prelevati e misurati dei “campioni rappresentativi” del dato multimediale ad intervalli regolari di tempo, è la misura espressa in hertz del numero di volte al secondo in cui un segnale analogico viene misurato e memorizzato in forma digitale.  frequenza di campionamento → numero di campioni acquisiti in una unità di tempo grandezza discreta e grandezza continua  grandezza discreta → l’insieme dei suoi valori possibili si ottiene con numeri naturali  grandezza continua → l’insieme dei suoi valori possibili si ottiene con numeri reali la trasmissione dell’informazione digitale Rispetto alla codifica analogica quella digitale permette una trasmissione più corretta dell’informazione; avendo infatti solamente due valori di codifica possibili se si presenta un valore diverso da essi si può con facilità individuale l’errore all’interno del messaggio. Per individuare e correggere gli errori vengono utilizzati diversi sistemi quali:  ridondanza  schema di ripetizione  controllo di parità → il trasmettitore suddivide in blocchi di bit di dimensioni prestabilite il messaggio controllando che vi sia parità di numeri 1 presenti nel blocco e nel rispettivo bit di parità, se ottiene numeri dispari avrà allora individuato l’errore → es. p 65 3.5 LA RAPPRESENTAZIONE BINARIA DELL'INFORMAZIONE NON NUMERICA I codici sono utilizzati per rappresentare sinteticamente oggetti reali e tutti possono definire una codifica, a patto che sorgente e destinatario si accordino sul tipo di codifica da utilizzare. il testo Un esempio di rappresentazione binaria dell’informazione non numerica può essere il testo in calcolatore, che può essere realizzato attraverso vari tipi di codifica quali:  ASCII > American standard code per lo scambio di informazioni, che consente di raddoppiare il numero dei caratteri utilizzabili e quindi il numero di linguaggi naturali rappresentabili  EBCDIC  UNICODE E’ opportuno poi distinguere all’interno di un calcolatore due diversi tipi di file testo:  plain text = puro file di testo

 altri file contenenti la formattazione = permettono la creazione e la modifica del testo in quanto contengono istruzioni su come deve essere impaginato → es. i file con estensione “doc” che specificano il font.  file con linguaggio di marcatura = consentono di inserire direttamente sul testo annotazioni con particolari caratteristiche sintattiche → HTML, che utilizza applicazioni come “ODT”, “RTF” e “DOCX”  Altri formati: PostScript e PDF le immagini Campionamento e quantizzazione possono essere utilizzati anche per la rappresentazione digitale delle immagini:  il campionamento viene utilizzato dai dispositivi di acquisizione per selezionare un’immagine, suddividendola poi in gruppi di pixel (bitmap) ai quali viene attribuito uno specifico colore che andrà a comporre l’immagine.  la quantizzazione viene invece utilizzata per rappresentare il colore associato ad ogni pixel; permette infatti di definire la “profondità di colore", ovvero il numero totale di bit impiegati per codificare un determinato colore. → un’immagine monocromatica è il livello massimo di possibiltà di quantizzazione, possiamo infatti associare il bianco e il nero ai due singoli bit di partenza: 0 e 1. La rappresentazione del colore prevede dei colori primari di partenza da cui generare gli altri mescolando diversi livelli di gradazione; esistono perciò due modelli di colore base:  modelli sottrattivi = partono da un foglio bianco, la miscela di colori produrrà il nero, sottraggono quindi luminosità al bianco → es “CMYK” p 69  modelli additivi = partendo da uno sfondo nero la miscela di colori genera il binaco, aggiunge quindi luminosità al nero → es “RGB” p. La qualità di un'immagine dipende quindi dalla grandezza dei pixel e dalla nitidezza dei colori → più i pixel sono grandi più l’immagine i suoi colori risulteranno sgranati. il formato dei file contenenti immagini: Formato raster → contengono una rappresentazione dell’immagine sotto forma di bitmap, sono però soggetti ad un facile deterioramento se vengono modificate le dimensioni delle immagini → utilizzano come tipo di font il bitmap. Esistono di diversi tipi:  JPEG = attraverso algoritmi di compressione lossy riescono a ridurre i file immagine così da poterli trasmettere in internet  GIF = grazie alla compressione lossless permettono di gestire animazione e sfondi, hanno però un numero limitato di colori (256)  BMP = formato standard non compresso di Windows  TIFF = garantiscono entrambi i tipi di compressione immagine  PNG = formato truecolor e supportato da una compressione lossless Formato vettoriale → rappresentano le immagini come composizioni geometriche codificate; vengono solitamente utilizzate in applicazioni CAD, applicazioni per generare animazioni o per la modellazione tridimensionale. Diversi tpi:  CGM  SVG  WMF  DXF La rasterizzazione delle immagini in questo caso consente di sfruttare al meglio la risoluzione mantenendo comunque il file in dimensioni contenute. → Utilizzano come tipo di font quello Outline I suoni: → es p. Attraverso i dispositivi “microfono” siamo in grado di generare una codifica analogica del segnale sonoro che viene memorizzato come codifica digitale avente le seguenti caratteristiche:  stereofonia = due canali che ricevono contemporaneamente più segnali audio e ne riproducono la distribuzione spaziale delle sorgenti sonore.  frequenza di campionamento = 44 100 Hz

installati su un server a parte oppure direttamente su un comune PC, come ad esempio “Apache OpenOffice Base”. Un DBMS offre alle applicazioni due tipi di linguaggio utilizzabile dall'utente:  DDL = per definire le strutture che dovranno contenere dati e relazioni tra dati  DML = per modificare il contenuto della base di dati, attraverso l’inserimento di nuovi, l’eliminazione o appunto la modifica; questo tipo di messaggio viene anche utilizzato per compiere interrogazioni, ovvero ricerca di dati che soddisfino le richieste informative dell’utente. L’accesso ai dati può realizzarsi in varie modalità:  linguaggi testuali interattivi → SQL (structured query language)  linguaggi ospite = comandi specifici formulati in SQL presenti in linguaggi programmazione più generici  GUI → consente di creare interrogazioni in formato non testuale 3.8 SICUREZZA INFORMATICA (cybersecurity) Agisce per garantire diversi aspetti:  riservatezza, privacy  integrità, protezione da modifiche non autorizzate  autenticità della sorgente  non ripudiabilità della sorgente, garantendo che questa e il destinatario non neghino la trasmissione e la ricezione di un messaggio  disponibilità, protezione dei dati da interventi non autorizzati che comprometterebbero la possibilità di accesso La protezione di questi aspetti viene gestita da varie misure preventive come:  antivirus, backup, firewall  autenticazione informatica tramite accountability, credenziali, firme digitali, certificati digitali (HTTPS) la normativa privacy italiana ed europea: E’ costituita dal decreto legislativo 101, che definisce:  dato personale = qualsiasi informazione relativa ad enti e persone fisiche identificabili anche indirettamente  dato sensibile = dato personale idoneo che ricava dell’utente l’opinione politica, la credenza religiosa, l’etnia di appartenenza, lo stato di salute…  dato giudiziario = dato personale idoneo a rivelare provvedimenti e sanzioni amministrative per un reato il trattamento dei dati: Consiste in qualunque tipo di operazione che consente la raccolta, la registrazione, la modifica, il blocco, l’accesso e l’elaborazione dei propri dati. Per raccogliere questo tipo di informazioni è necessario avere il consenso dell’utente tramite informativa, ma esistono comunque misure minime di sicurezza stabilite dalla legge nel caso di trattamento informatico:  autenticazione informatica  gestione delle credenziali di accesso  aggiornamento periodo del tipo di trattamento che viene concesso → aggiornare un documento programmatico sulla sicurezza  protezione da trattamenti illeciti  custodia di copie di sicurezza Dal 2018 è entrato poi in vigore il “Regolamento Generale sulla Protezione dei dati” (RGPD), che mira a rafforzare la protezione di dati sensibili, biometrici, genetici e personali rendendo obbligatorio:  chiarimento dei diritti dell’utente  creazioni e aggiornamento di un registro delle attività di trattamento  attuazione di misure tecniche e organizzative idonee  denuncia, da parte del titolare, di un eventuale “data breach” la crittografia: E’ una tecnica utilizzata per garantire la riservatezza dei dati durante la loro trasmissione → prime tecniche crittografiche risalgono ai romani (codice di cesare).

Esistono due tipi di algoritmi: → es p. 82  A chiave segreta = algoritmi simmetrica tramite cui mittente e destinatario utilizzano una stessa chiave segreta per criptare e decriptare un messaggio  A chiave pubblica = algoritmo asimmetrico che adotta una coppia di chiavi, una diversa dall’altra, tali per cui la decifratura di una non permette quella dell’altra; in questo modo quindi il mittente utilizza una chiave di cifratura diversa da quella che il destinatario utilizzerà per decifrare il messaggio. 4.1 DALLE RETI A INTERNET A livello generale esistono 3 tipi di rete: di dispositivi, di documenti e di persone; ogni tipo di rete viene studiata dalla telematica. Per quanto riguarda l’informatica parliamo di reti di dispositivi e, più nello specifico di reti di calcolatori e della loro interconnessione in rete: una rete di calcolatori è quindi un insieme di più dispositivi (detti nodi di rete) connessi tra loro allo scopo di comunicare e trasmettere informazioni. Le reti di calcolatori vengono poi classificate in base al loro raggio d'azione in:  rete personale (PAN) = tra un personal computer e dispositivi periferici in un raggio d’azione limitato  rete locale (LAN) = tra più calcolatori in uno stesso edificio  rete metropolitana (MAN) = ha un’area più ampia delle precedenti ma limitata su scala urbana  rete geografica (WAN) = si estende su un’ampia area geografica  rete globale (GAN) = si estende a livello globale  rete privata virtuale (VPN) = simulazione di una rete dedicata privata attraverso una rete pubblica, offre le stesse caratteristiche di sicurezza ad un prezzo inferiore E’ quindi possibile connettere due nodi appartenenti a reti diverse, creando un’unica rete più ampia estesa a livello globale → interne t o internetworking Va quindi specificato che si può essere connessi in rete anche senza essere connessi in internet, ovvero essere connessi ma non a livello globale. la comunicazione: Affinché due calcolatori costituiscano una rete essi devono essere in grado di comunicare e scambiarsi informazioni attraverso dei segnali, il cui andamento nello spazio e nel tempo possa essere controllato dall’utente stesso. Questi segnali sono costituiti da simboli scelti di un alfabeto e quindi, affinché la comunicazione avvenga correttamente, è necessario che mittente e destinatario condividano lo stesso contenuto informativo ovvero lo stesso alfabeto.  un canale di trasmissione è quindi un sistema fisico in grado di trasferire un segnale e, alle sue estremità, si trovano un trasmettitore e un ricevitore che concordano il metodo di codifica e decodifica del messaggio. → es p. La sorgente invia quindi il messaggio al trasmettitore che ne modifica i simboli e li invia al ricevitore che, a sua volta è in grado di decodificarli e di trasmettere il messaggio al destinatario.  il rumore, ovvero qualunque segnale indesiderato, può interferire su qualsiasi canale di trasmissione modificando il messaggio. → es p.88/ Per evitare queste interferenze trasmettitore e ricevitore utilizzano le tecniche di ridondanza, che consentono di verificare la corrispondenza tra messaggio ricevuto e messaggio trasmesso, individuando e correggendo eventuali errori. La ricezione di un byte con un numero pari di bit non garantisce però la corretta trasmissione del messaggio, questo perché potrebbe essere in realtà il risultato di una molteplicità di errori ; è però molto raro secondo le statistiche. I mezzi fisici utilizzati per connettere calcolatori tra loro: Dato che i calcolatori usano codifiche binarie è necessario che anche i mezzi fisici utilizzati per connetterli siano in grado di trasmettere messaggi binari; a questo scopo vengono utilizzati mezzi guidati e non:

Esempi di DSL: ADSL, HDSL, WiMAX Anche le compagnie di telefonia mobile ad oggi funzionano come la rete ISP, ovvero connettendosi alla celle wireless presenti sul territorio consentono l'interconnessione tra più smartphone e modem cellulari presenti nei calcolatori.

4.3 LE RETI

Parlando di reti si fa riferimento sostanzialmente ad un insieme di dispositivi informatici connessi tra loro, grazie a nodi di rete, che seguono specifici protocolli di comunicazione e vengono supportati da software per favorire l’utilizzo efficace da parte dell’ utente.i protocolli sono ad oggi importanti dato che nelle reti odierne la comunicazione è di tipo “a pacchetto", ovvero il messaggio viene diviso in piccole molteplici parti e distribuito nei canali di comunicazione; i protocolli in questo caso stabiliscono i formati dei messaggi e le modalità di colloquio da seguire. A loro volta vengono poi gestiti da organismi sovranazionali (architetture di rete) quali IOS e W3c le architetture di rete: → es p. 95 (fig. 4.1 e 4.2) Organizzano i vari protocolli in strati, ciascuno dei quali ha il compito di regolare la comunicazione di uno specifico livello della struttura; I livelli interagiscono poi in modo gerarchico tra loro, ovvero un determinato livello sfrutta le risorse fornite dal livello a lui inferiore e genera nuove risorse che verranno a loro volta utilizzate dal livello successivo per lo svolgimento del suo protocollo. → livelli più alti sono più vicini all’utente ed utilizzano quindi dati maggiormente astratti → livelli più bassi sono più vicino alla macchina ed utilizzano dati manipolabili fisicamente Le reti internet possono poi essere classificate in base alla loro accessibilità in:  reti INTRAnet = reti locali di un’organizzazione che consentono la comunicazione interna e l’accesso ai dati solo a specifici utenti facenti parti dell’organizzazione  reti EXTRAnet = una parte della rete locale intranet è accessibile anche ad enti esterni all’ organizzazione, quali clienti e fornitori Questa suddivisione garantisce la messa a disposizione di servizi di rete. All’interno di una rete possono essere collocati due tipi di nodi di connessione: attivi o passivi, in base al loro compito di utilizzo o produzione di servizi  Nodi attivi o server , forniscono servizi (sito internet, calcolatore, programma)  Nodi passivi o client, usufruiscono dei dati forniti dal server (utente) Queste due funzioni possono essere interscambiabili. → es p 96 riga 16 Funzioni e utilità delle reti: Prima di tutto una rete dovrà permettere la comunicazione e la condivisione di risorse tra più nodi/utenti, mettendo in comune risorse di calcolo e memorizzazione. Internet come inviluppo di reti: Negli anni ‘60 il Ministero della difesa degli Stati Uniti progettò una rete di calcolatori con sistemi operativi diversi che fosse decentrata e non vulnerabile ad attacchi e interferenze esterne; basò questa innovazione su due tecnologie già esistenti: la struttura ridondante e la comunicazione di pacchetto. Internet divenne quindi una rete di reti che offrì nuovi servizi, spazzando via quelli più datati con la rivoluzione della Killer Application, overo con la nascita e la diffusione del World Wide Web A differenza di una rete di comunicazione qualsiasi la rete Internet cresce con l’aumentare delle reti connesse e non con l’aumentare dei calcolatori; a livello strutturale infatti all’interno di Internet troviamo

diverse sottoreti con un calcolatore per ciascuna (gateway) che gli permette di connettere calcolatori di una stessa rete a calcolatori di reti diverse presenti in Internet. Per garantire un’efficace comunicazione è perciò necessario che ogni messaggio venga indirizzato ad un destinatario (nodo) facilmente e univocamente individuabile attraverso il suo indirizzo, stabilito dai protocolli di rete → indirizzi IP , formati da 32 bit LA distribuzione di questi indirizzi viene gestita, per ogni utente che ne fa richiesta nei diversi Stati, da un’autorità internazionale detta ICANN. La numerazione in 32 bit attribuita agli indirizzi permette però la creazione di un numero limitato di indirizzi diversi, creando quindi problemi di assegnazione a cui si è cercato di ovviare attraverso:

1. tecniche software di mascheramento degli indirizzi = solamente ai gateway viene attribuito un IP diverso e unico nel resto dell’internet, mentre per le sottoreti presenti in un determinato nodo (gateway) gli IP non sono necessariamente unici a livello mondiale. 2. Internet Protocol 6 (IPv6) = prevede l’aumento dei bit utilizzati per gli indirizzi a 128, così da garantire l’assegnazione ad ogni dispositivo e nodo di un indirizzo univoco a livello mondiale Per gli utenti umani si parla invece di indirizzi simbolici , più facili da ricordare e digitare, ciascuno con una precisa corrispondenza ad un indirizzo IP. Esiste perciò una convenzione che regola la corrispondenza tra indirizzi simbolici e indirizzi IP tramite il server in rete "DNS" , che attraverso tabelle di corrispondenza traduce l'indirizzo simbolo scritto dall'utente in un indirizzo IP. gli indirizzi simbolici: Sono anche questi formati da stringhe alfanumeriche, lette da destra a sinistra, che specificano i vari livelli dei domini:  dominio di primo livello = identifica il paese di appartenenza del registrante (dominio nazionale, - it per Italia ) e il tipo di registrante (dominio sovranazionale, com per i commerciali ) → la loro assegnazione è gestita dall ICANN  dominio di secondo livello = viene associato all'ente o alla persona legata a quell indirizzo (es. marcolazzard.it )  dominio di terzo livello = non sempre presente, viene associato ad servizio o Host specifico dell'ente del secondo livello 4.4 I SERVIZI SU INTERNET i principali:  posta elettronica  FTP e reti paritarie peer to peer  gruppi news e forum  chat e instant messaging  backup, archiviazione e condivisione → È importante sottolineare la differenza tra web e internet, in quanto il web non corrisponde alla rete internet ma è in realtà un servizio offerto da essa. posta elettronica: sistema asincrono di scambio di messaggi via rete tra un mittente e uno o più utenti , entrambi i quali hanno a disposizione una casella di posta contrassegnata da un indirizzo email. Il funzionamento della posta elettronica è reso poi possibile da una rete di mail server , calcolatori che fungono da uffici postali. → la mail client = consente l'invio e la ricezione di messaggi, è di 3 tipi:

  1. programma di posta a se stante che comunica con il server e memorizza localmente i messaggi
  2. programma integrato aggiuntivo al browser, con il quale si naviga nel web
  3. programma di posta messo a disposizione da un sito Web (gmail), che consente l’accesso alla propria casella di posta via Web, hanno però uno spazio di memorizzazione limitato e i messaggi vengono memorizzati da remoto e sono accessibili solo se connessi al Web Il client server viene a sua volta gestito da 3 tipologie di protocolli:  SMTP = per l’invio da parte degli utenti e per la comunicazione tra i server  POP e IMAP = per la ricezione e la consultazione dei messaggi da parte degli utenti