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: Hardware, Software e Rappresentazione delle Informazioni, Appunti di Elementi di Informatica

Materiale per l'esame di informatica con il prof Pozzato

Tipologia: Appunti

2020/2021

Caricato il 30/01/2021

albaparodi
albaparodi 🇮🇹

3

(2)

5 documenti

1 / 16

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Informatica – Gian Luca Pozzato
Lo sviluppo tecnologico rende presto obsolete le conoscenze tecniche molto dettagliate. Il
computer è versatile, ovvero non si possono prevedere gli usi futuri.
Breve storia del calcolo automatico
A partire dalla rivoluzione industriale si è deciso di farsi aiutare dalle macchine, in quanto
effettuare calcoli a mente è un’attività noiosa, incline all’errore e dispendiosa in termini di tempo.
Per secoli l’uomo ha cercato di porre rimedio a questo fatto automatizzando il processo di calcolo.
Il calcolatore elettronico subentra proprio in questo contesto.
Il primo strumento che possiamo classificare tra quelli che hanno aiutato l’essere umano a
svolgere la propria attività di calcolo è l’abaco. È la prima macchina di calcolo nota, la sua origine
risale al V millennio a.C. Il suo scopo è quello di assistere l’uomo mentre fa i calcoli, tuttavia non è
molto diverso da un foglio di carta, in quanto la logica e la correttezza dell’operazione dipendono
unicamente dall’utente.
Un passo importante è rappresentato dalla Pascalina (XVII secolo d.C.), la quale permette di fare
delle somme, ma la logica dell’operazione è controllata dalla macchina. Il problema è che
permetteva di effettuare solo addizioni e sottrazioni. Moltiplicazioni e divisioni potevano essere
calcolate mediante ripetizioni di addizioni e sottrazioni, ma era di nuovo l’utente a dover
controllare il processo. Si può pensare di affrontare il problema modificando la macchina in modo
da introdurre la divisone e la moltiplicazione. Nonostante ciò, si ripresenterebbero altri problemi
(radice quadrata etc.). Il problema vero è che la logica che governa le operazioni è cablata nella
macchina calcolatrice, per cui la soluzione è trattare tale logica come parte dell’input della
macchina.
In questa direzione si è mosso intorno al 1840 Charles Babbage, che ha inventato il primo esempio
di macchina di calcolo programmabile: la macchina analitica. L’utente può fornire anche come
trattare i dati. Babbage era molto avanti rispetto ai suoi tempi, la tecnologia non era ancora
sviluppata a sufficienza, tanto che la macchina analitica avrebbe dovuto funzionare a vapore.
Inoltre, l’esigenza di automatizzare il calcolo non era forte. Per questi motivi le sue idee furono
dimenticate per quasi un secolo.
Le idee di Babbage vennero riscoperte nella prima metà del Novecento da Alan Turing e John von
Neumann. Turing è considerato uno dei padri dell’Informatica, moltissime sue idee sono attuali
anche oggi e a lui si deve la cosiddetta “macchina di Turing”. Quest’ultima è un progetto teorico
che gli ha permesso di tracciare a livello concettuale i limiti di ciò che è calcolabile
automaticamente (computazionalmente trattabile). Alla base del suo funzionamento c’è la stessa
idea alla base della macchina analitica.
Il contributo di von Neumann è più pratico, in quanto descrive un calcolatore effettivamente
costruibile partendo dalle idee di Babbage e Turing. È ancora oggi il modello su cui si basano i
computer moderni, nonostante siano cambiate le tecnologie.
Informatica in inglese:
Information and Communication Technology: informatica come tecnologia (risvolti fisico-
matematici del calcolo automatico, teorie e tecniche di comunicazione)
Computer Science: informatica come scienza (modelizzazione, formalizzazione e verifica
sperimentale). Affronta tanti temi: sicurezza, basi di dati, sistemi operativi, reti di calcolatori,
linguaggi di programmazione.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Anteprima parziale del testo

Scarica Introduzione all'informatica: Hardware, Software e Rappresentazione delle Informazioni e più Appunti in PDF di Elementi di Informatica solo su Docsity!

Informatica – Gian Luca Pozzato

Lo sviluppo tecnologico rende presto obsolete le conoscenze tecniche molto dettagliate. Il computer è versatile, ovvero non si possono prevedere gli usi futuri.

Breve storia del calcolo automatico

A partire dalla rivoluzione industriale si è deciso di farsi aiutare dalle macchine, in quanto effettuare calcoli a mente è un’attività noiosa, incline all’errore e dispendiosa in termini di tempo. Per secoli l’uomo ha cercato di porre rimedio a questo fatto automatizzando il processo di calcolo. Il calcolatore elettronico subentra proprio in questo contesto. Il primo strumento che possiamo classificare tra quelli che hanno aiutato l’essere umano a svolgere la propria attività di calcolo è l’abaco. È la prima macchina di calcolo nota, la sua origine risale al V millennio a.C. Il suo scopo è quello di assistere l’uomo mentre fa i calcoli, tuttavia non è molto diverso da un foglio di carta, in quanto la logica e la correttezza dell’operazione dipendono unicamente dall’utente. Un passo importante è rappresentato dalla Pascalina (XVII secolo d.C.), la quale permette di fare delle somme, ma la logica dell’operazione è controllata dalla macchina. Il problema è che permetteva di effettuare solo addizioni e sottrazioni. Moltiplicazioni e divisioni potevano essere calcolate mediante ripetizioni di addizioni e sottrazioni, ma era di nuovo l’utente a dover controllare il processo. Si può pensare di affrontare il problema modificando la macchina in modo da introdurre la divisone e la moltiplicazione. Nonostante ciò, si ripresenterebbero altri problemi (radice quadrata etc.). Il problema vero è che la logica che governa le operazioni è cablata nella macchina calcolatrice, per cui la soluzione è trattare tale logica come parte dell’input della macchina. In questa direzione si è mosso intorno al 1840 Charles Babbage, che ha inventato il primo esempio di macchina di calcolo programmabile: la macchina analitica. L’utente può fornire anche come trattare i dati. Babbage era molto avanti rispetto ai suoi tempi, la tecnologia non era ancora sviluppata a sufficienza, tanto che la macchina analitica avrebbe dovuto funzionare a vapore. Inoltre, l’esigenza di automatizzare il calcolo non era forte. Per questi motivi le sue idee furono dimenticate per quasi un secolo. Le idee di Babbage vennero riscoperte nella prima metà del Novecento da Alan Turing e John von Neumann. Turing è considerato uno dei padri dell’Informatica, moltissime sue idee sono attuali anche oggi e a lui si deve la cosiddetta “macchina di Turing”. Quest’ultima è un progetto teorico che gli ha permesso di tracciare a livello concettuale i limiti di ciò che è calcolabile automaticamente (computazionalmente trattabile). Alla base del suo funzionamento c’è la stessa idea alla base della macchina analitica. Il contributo di von Neumann è più pratico, in quanto descrive un calcolatore effettivamente costruibile partendo dalle idee di Babbage e Turing. È ancora oggi il modello su cui si basano i computer moderni, nonostante siano cambiate le tecnologie. Informatica in inglese: Information and Communication Technology: informatica come tecnologia (risvolti fisico- matematici del calcolo automatico, teorie e tecniche di comunicazione) Computer Science: informatica come scienza (modelizzazione, formalizzazione e verifica sperimentale). Affronta tanti temi: sicurezza, basi di dati, sistemi operativi, reti di calcolatori, linguaggi di programmazione.

Informatica: informazione automatica, insieme dei processi e delle tecnologie che consentano la creazione, la raccolta, l’elaborazione, l’immagazzinamento, la diffusione dell’informazione. Computer: elaboratore (dispositivo in grado di eseguire automaticamente una serie di istruzioni) elettronico (usa componenti elettronici) digitale (elabora info binarie) Hardware: componente fisica del sistema informatico Algoritmo: insieme delle operazioni necessarie a risolvere un problema Un programma implementa diversi algoritmi Software: insieme dei programmi che fanno funzionare l’hardware. Due categorie: sistemi operativi (software di base) e programmi applicativi, i quali svolgono i compiti più vari (app)

La rappresentazione delle informazioni

I computer non elaborano solamente numeri, ma anche testi, immagini, suoni, filmati. È sufficiente che l’info sia rappresentabile in modo digitale (0,1). Tipi di segnali: Segnali analogici, cioè un insieme continuo di valori sensibili alle interferenze. Segnali digitali, insieme discreto di valori (0,1) semplici da distinguere. I vantaggi del digitale sono che è un sistema molto semplice, non ambiguo (non sensibile alle interferenze) e riproducibile senza errori. IL BIT Binary digit, cifra binaria. All’interno del computer ci sono tantissimi interruttori, ciascuno di questi è un bit, che permette di rappresentare un segnale binario. Si tratta di un elemento di base per rappresentare le informazioni. Come viene realizzato un bit? Presenza/assenza di carica elettrica, direzione di magnetizzazione, presenza/assenza di corrente/tensione, passaggio/non passaggio di luce. Un bit può assumere due valori (0,1), quindi con un bit possiamo rappresentare due info. La corrispondenza informazione-valore del bit è una convenzione. Tuttavia non tutte le informazioni possono essere rappresentate da 1 bit, ma ne servono di più. Come fare per rappresentare più di due informazioni usando i bit? Combiniamo più bit per rappresentare ogni informazione. 2 bit = 4 info: 00,01,10,11. Con 3 bit ho 8 combinazioni Con 1 bit si rappresentano 2 info (2^1 ) Con 2 bit si rappresentano 4 info (2^1 x 2 = 2^2 ) Con 3 bit si rappresentano 8 info (2^2 x 2 = 2^3 ) Con N bit si rappresentano 2N^ informazioni Se abbiamo K info, di quanti bit abbiamo bisogno per rappresentarle? Dobbiamo utilizzare un numero di bit sufficiente per esprimerle tutte. Dobbiamo scegliere 2N^  K Se 2N^ = K, ogni combinazione di bit ha un’informazione corrispondente Se 2N^  K, alcune combinazioni di bit non corrispondono a info IL BYTE È stato attribuito un significato particolare ai gruppi di 8 bit (= 1 byte) 8 bit  28 = 256 info diverse

Numerale 6 10 ? x 2^2 +? x 2^1 +? 20 = =? x 4 +? x 2 +? x 1 = = 1 x 4 + 1 x 2 + 0 x 1 = 4 + 2 + 0 = 6 (^25710) 257 = 256 + 1 257 = 2^8 + 2^0 Sono a 1 i bit in posizione 8 e 0 25710 = 100000001 2

La rappresentazione dei caratteri

Per rappresentare i caratteri, occorre stabilire una convenzione per la corrispondenza tra configurazione di bit e carattere: codice ASCII. Quest’ultimo usa i 7 bit meno significativi di un byte (2^7 = 128 diversi caratteri rappresentabili) Nel codice ASCII le lettere maiuscolo hanno associato un codice più piccolo delle lettere minuscole. Di conseguenza, se chiediamo a un computer di ordinare alfabeticamente le parole “abete” e “Zacinto”, le metterà in questo ordine: 1. Zacinto. 2. Abete Il codice ASCII è insufficiente per rappresentare i comuni segni diacritici. Soluzione: codice ASCII esteso usa 8 bit. Al massimo 2^8 = 256 caratteri. Le cifre da 0 a 9 rappresentate in ASCII sono caratteri e non quantità numeriche, quindi non possono essere utilizzate per rappresentare quantità da utilizzare in calcoli aritmetici. 256 dell’ASCII esteso sono insufficienti per alcuni sistemi di scrittura. Quindi non esiste un unico ASCII esteso, ma uno o più diverso per ogni lingua. Soluzione: definire uno standard che utilizzi più bit e che comprenda tutti i sistemi di scrittura. Abbiamo quindi Unicode. Unicode prevede di utilizzare fino a 4 byte per ogni carattere = 32 bit per carattere. 2^32 = oltre 4 miliardi di possibili caratteri rappresentabili. Attualmente sono rappresentati oltre 98000 caratteri. Unicode ha introdotto due “dialetti” che definiscono come codificare il numero di un carattere Unicode come sequenza di bit: UTF-

  • Alcuni caratteri codificati con 8 bit, altri con 16 bit, altri con 32 bit
  • Compatibile con ASCII: i caratteri codificati con 8 bit coincidono con i caratteri ASCII
  • La più usata per e-mail e pagine web UTF-
  • Alcuni caratteri codificati con 16 bit, altri con 32 bit
  • Usata internamente da Windows

Codifica delle immagini

Vi sono varie tecniche utilizzate per memorizzare in modo digitale un’immagine, e poi elaborarla. Immaginiamo di dover codificare un’immagine in bianco e nero. L’idea è quella di creare una griglia formata da linee a distanza costante e apporla sull’immagine. Ciascun quadrato derivato da tale suddivisione viene chiamato pixel (picture element) e può essere codificato in binario con la convenzione che:  0 rappresenta un pixel bianco  1 rappresenta un pixel nero Per avere una sequenza di bit, in quale ordine leggere i pixel? Occorre una convenzione.

Non sempre il contorno della figura coincide con le linee della griglia: digitalizzando un’immagine si ha sempre un’approssimazione dell’immagine stessa. Come avere un’immagine più fedele? Aumentando la risoluzione, cioè il numero di pixel. Con un solo bit per pixel si possono codificare solo due colori. Per codificare più informazioni, dobbiamo usare più bit. Tonalità di grigio: per ogni quadratino si stabilisce il livello medio di grigio. Si codifica ogni livello di grigio: se uso 4 bit = 16 livelli di grigio. Se uso 8 bit = 256 livelli di grigio. Se uso k bit = 2k^ tinte diverse. Come associare una rappresentazione binaria a ogni possibile colore di un pixel? Il modello più utilizzato è il Truecolor o RGB. Tre colori primari: rosso verde e blu. Il funzionamento è lo stesso: un’immagine è ottenuta mescolando vari livelli di colori primari. 256 valori possibili per ogni colore primario (da 0 a 255) R G B Nero 0 0 0 Bianco 255 255 255 Rosso 255 0 0 Giallo 255 255 0 Grigio 127 127 127 Quanti colori sono rappresentabili? 256 livelli (8 bit) per ogni canale (colore primario) 3 byte per ogni pixel = 3 x 8 bit per ogni pixel 224 colori = 16 777 216 colori Occupazione delle immagini a colori Immagine 150 x 200 pixel truecolor Occorrono 3 byte (24 bit) per pixel Quindi occupa 150 x 200 x 3 = 90 000 byte Esistono tecniche di compressioni delle immagini che consentono di ridurre la dimensione dello spazio occupato. Una tecnica consiste nel codificare aree dello stesso colore in modo abbreviato (es: 000000  6 x 0). È un esempio di tecnica lossless, cioè senza perdita di informazione. Quando decomprimiamo l’immagine questa è identica all’originale. Formati compressi lossless: gif, tiff, png. Esistono anche tecniche di compressione lossy, che, invece, causano perdita di informazione. Cioè il processo di compressione scarta alcuni dati. Quando si decomprime l’immagine, questa è diversa dall’originale: è degradata in qualità. La compressione lossy permette di risparmiare molto più spazio della lossless. Formati compressi lossy: jpeg, png. Codifica delle immagini in movimento Le immagini in movimento sono sequenza di immagini, che prendono il nome di fotogramma o frame. Visto lo spazio elevato richiesto, occorrono tecniche di memorizzazione efficienti: per esempio, sono memorizzate solo le differenze tra un fotogramma e l’altro. Esistono vari formati, soprattutto lossy: mpeg, divx, avi, quicktime.

delle informazioni. Per leggere e scrivere in una cella è necessario conoscerne l’indirizzo. Specificando l’indirizzo di una cella, la CPU è in grado di leggere e/o modificare il valore del byte memorizzato i quella cella. Gli indirizzi della cella vengono espressi come sequenze di bit. Il numero di bit che utilizziamo per specificare gli indirizzi è strettamente collegato alla dimensione della memoria RAM che si ha a disposizione. Lo spazio di indirizzamento è l’insieme o il numero delle celle indirizzabili direttamente. Il numero di celle indirizzabili è una potenza di 2, con: 16 bit si indirizzano 2^16 : 65536 celle 32 bit si indirizzano 2^32 : 4.294.967.296 celle Numero di celle indirizzabili = numero di info rappresentabile con un certo numero di bit. Dimensioni della memoria L’unità di misura della memoria è il byte. Si usano dei multipli: kilobyte (KB) = 1024 byte (2^10 byte) megabyte (MB) = 1024 KB (2^20 byte) gigabyte (GB) = 1024 MB (2^30 byte) quindi con 16 bit si indirizzano 64 KB di memoria con 32 bit si indirizzano 4 GB di memoria RAM sta per Random Access Memory: memoria ad accesso casuale. Perché si chiama ad accesso casuale? Si può accedere direttamente alle varie celle, una volta noto il loro indirizzo. Il tempo necessario per accedere ad una cella è lo stesso, indipendentemente dalla posizione della cella nella sequenza. Il termine random indica il fatto che non ci sono differenze nell’accesso alle varie celle della memoria. La RAM è veloce: il tempo di lettura/scrittura di una cella è compreso tra 5 e 30 nanosecondi La RAM è volatile: formata da componenti elettronici, se viene tolta l’alimentazione anche per un breve periodo di tempo tutto ciò che contiene viene perso. La RAM è relativamente costosa ROM: Read-only Memory, memoria in sola lettura. Memoria aggiuntiva che serve per l’avvio del computer. Non può essere modificata e non è volatile. Veloce quasi quanto la RAM.

Memoria cache

Stesse proprietà della RAM, ma: più veloce (ma più piccola e costosa) della RAM. Localizzata tra la CPU e la RAM. Memorizza i dati di uso più frequente, evitando alla CPU di doverli recuperare tutte le volte dalla RAM. Influisce pesantemente sulle prestazioni e sul costo della CPU. Dimensioni tipiche sono 512 KB, 1 MB, 2 MB CPU Esegue programma scritti in linguaggio macchina. Tutti i programmi, anche Word, Excel, internamente sono codificati in LM. I programmi sono sequenze di istruzioni in LM. Le istruzioni sono comandi elementari, ad esempio: somma due numeri, leggi dalla memoria, scrivi in memoria, scrivi verso dispositivo di output, confronta due numeri. Ogni tipo di processore è in grado si eseguire un numero limitato di istruzioni. Le istruzioni si suddividono in

 Aritemtiche, logiche  Di salto  Di lettura/scrittura in memoria  Di lettura/scrittura verso dispositivi di I/O Combinando in modo diverso sequenza anche molto lunghe di istruzioni si possono fare svolgere al computer compiti completamente diversi. La CPU è formata da:

  • control unit
  • arithmetic logic unit
  • registri Control Unit È la parte più importante del processore. Funzioni: esegue le istruzioni dei programmi, coordina le attività del processore, controlla il flusso delle istruzioni tra il processore e la memoria. La CU svolge la sua attività in modo ciclico. Ciclo di fetch-decode-execute (o ciclo della macchina).
  1. Fetch (preleva): preleva dalla memoria principale la prossima istruzione da eseguire.
  2. Decode (decodifica): decodifica l’istruzione e preleva gli operandi specificati
  3. Execute (esegui): esegue l’istruzione utilizzando la componente opportuna, memorizza i risultati e ricomincia. L’esecuzione comporta l’invio di comandi opportuni all’unità relativa: calcoli: arithmetic logic unit lettura/scrittura dati: memoria acquisizione/stampa: dispositivi I/O la frequenza con cui è eseguito il ciclo della macchina è scandita dal clock (orologio interno). Ad ogni impulso di clock la CU esegue un ciclo. La velocità di elaborazione di una CPU dipende dalla frequenza del suo clock. Es: 2.8 GHz, cioè 2 miliardi e 800 milioni di cicli al secondo. Arithmetic Logic Unit Esegue le operazioni di tipo aritmetico e logico. Preleva gli operandi dai registri e deposita il risultato delle operazioni in uno o più registri. Registri Piccole celle di memoria con tempi di accesso molto più bassi rispetto alla memoria primaria. Mantengono le info necessarie per eseguire l’istruzione corrente. Hanno dimensione di 16, 32 o 64 bit (da cui CPU a 16, 32 o 64 bit). Sono in numero molto limitato (10, 20, 64 o 128) visto che sono all’interno della CPU. Si dividono in registri: generali e speciali. I registri generali: sono in numero ridotto. 8, 16, 32, 64, 128.. in funzione dell’architettura. Sono usati come celle di memoria temporanea, contengono gli operandi e i risultati delle istruzioni in esecuzione. In alcune architetture, alcuni registri hanno funzioni privilegiate, ad esempio l’accumulatore in genere contiene il risultato delle operazioni. Registri speciali: il Program Counter (PC). È un registro speciale. Contiene l’indirizzo in memoria principale della prossima istruzione da eseguire. Quando un programma viene avviato, l’indirizzo della prima istruzione viene caricato nel Program Counter. All’esecuzione di un’istruzione, il PC viene modificato per contenere l’indirizzo della prossima istruzione da eseguire. L’istruzione viene poi messa nell’Instruction Register (IR): un altro registro speciale, che contiene l’istruzione attualmente in esecuzione. La CU legge l’istruzione contenuta in IR e la esegue.

insieme di collegamenti in rame. Tutti i componenti del sistema sono collegati al bus. Il bus di sistema collega la CPU ad altri dispositivi del computer. Il bus locale è un’evoluzione del bus di sistema, per il collegamento veloce tra CPU, memoria e periferiche veloci.

Reti di calcolatori

Insieme di uno o più elaboratori collegati tra loro mediante un mezzo che permette di farli colloquiare. Una rete permette di:

  • condividere periferiche (stampanti, dischi…)
  • rendere più semplice ed efficace la manutenzione (alcune risorse sono condivise, per cui gestite in un unico punto)
  • aumentare la tolleranza ai guasti (se un dispositivo si rompe, questo può essere sostituito da un altro)
  • eseguire applicazioni distribuite (un programma può essere distribuito su più calcolatori e quindi eseguito in modo parallelo)
  • accedere a info remore (web)
  • comunicare con altre persone (e-mail, messenger)
  • partecipare a videogiochi con altre persone
  • scrivere un’enciclopedia collaborativa (Wikipedia) una rete richiede: o un mezzo fisico attraverso cui i dati si possono propagare (un cavo o l’etere (radiofrequenza) cavo di rame, fibra ottica, aria/vuoto (onde radio) o dispositivi di I/O usati dai calcolatori per inviare/ricevere dati sulla rete (scheda di rete, modem, scheda wireless) o protocolli per disciplinare le comunicazioni (TCP/IP, http…). È necessario disciplinare le comunicazioni sulla rete per evitare il caos. In una comunicazione tra due calcolatori:
  • il calcolatore chiamante conosce l’indirizzo del calcolatore destinatario
  • il destinatario identifica l’indirizzo del chiamante
  • i calcolatori parlano la stessa lingua
  • generalmente trasmette un solo calcolatore per volta il protocollo deve definire come è strutturato un messaggio, come associare un indirizzo all’elaboratore, quale percorso far seguire ai messaggi per arrivare a destinazione, come rilevare e gestire gli errori di comunicazione. TCP/IP è il protocollo di comunicazione usato in Internet e anche nella maggior parte delle altre reti. Commutazione di circuito e di pacchetto Non è possibile collegare fisicamente e direttamente ogni computer a tutti i computer con cui comunica. È più conveniente stabilire una connessione indiretta, attraverso modi (elaboratori) intermedi. Come funziona il collegamento indiretto? Due tecniche:  commutazione di circuito: tra i due vengono riservate tutte le risorse in modo esclusivo dedicate alla comunicazione. Un esempio è la normale rete telefonica ogni telefono è collegato a una centrale, la quale è a sua volta collegata ad altre centrali. Quando si telefona, la chiamata instaura un circuito: tutte le risorse necessarie vengono prenotate ad uso esclusivo all’inizio della connessione. Le centrali costruiscono un percorso tra chiamante e chiamato che dura per tutto e solo il tempo della chiamata. Se le risorse non sono disponibili il chiamante viene informato (es: segnale di occupato).

Svantaggi: circuito occupato, anche se la banda non è usata interamente. Gli altri calcolatori non possono utilizzare i collegamenti finché il circuito non viene rilasciato. Poca efficienza. Vantaggi: garanzia di servizio. Dato che le risorse necessarie sono prenotate, la banda è costante e garantita  commutazione di pacchetto: usata da internet. Invece di riservare delle risorse alla comunicazione, i nodi intermedi restano a disposizione di chiunque. Si rinuncia alla garanzia di servizio per aumentare l’efficienza. Best effort delivery: nessuna garanzia, ma il meglio possibile a seconda della situazione. Simile al sistema postale; gli uffici postali non vengono riservato, i postini fanno il meglio possibile, ma la consegna può venire ritardata in caso di elevato traffico. Il mittente in genere non viene informato se la consegna è avvenuta. Pacchetto IP: contiene lo spazio per scrivere: informazione (una quantità imitata), u numero progressivo (identificatore), l’indirizzo IP del destinatario. I pacchetti IP sono inviati attraverso internet uno alla volta. Possono seguire percorsi diversi anche fra i medesimi mittente e destinatario. Ogni pacchetto occupa il mezzo trasmissivo per un tempo limitato. Come fare arrivare i pacchetti a destinazione? Ogni nodo ritrasmette i pacchetti ricevuti al nodo (cui è collegato) più vicino alla destinazione (instradamento/routing). I nodi possiedono una tabella che indica, per ogni destinazione, a quale vicino trasmettere il pacchetto. Inoltre, la scelta del nodo di inoltro dipende anche da situazioni temporanee di carico della rete, guasti, alternative di inoltro. Vantaggi: maggiore efficienza. A e B non occupano una linea completa per tutta la durata della conversazione. Svantaggi: nessuna garanzia: se i pacchetti sono troppi, vengono messi in coda. Possono arrivare in ritardo oppure venire scartati. Cosa succede quando ci colleghiamo da casa? Dall’elaboratore di casa al provider è in atto un collegamento a commutazione di circuito, la linea risulta occupata. Dal provider a un altro punto sulla rete Internet è in corso una commutazione di pacchetto. Due modi per classificare le reti:  topologia, in base a quali collegamenti esistono tra i calcolatori. o A bus o lineare: tutti i nodi sono collegati tramite una stessa linea. Il segnale emesso da un nodo percorre tutta la linea, raggiungendo così la destinazione. o Ad anello: i nodi sono collegati in una struttura circolare. Ogni nodo è collegato solo ad altri due nodi. Il segnale emesso da un nodo passa al successivo finché non raggiunge il destinatario, viene ritrasmesso al nodo seguente. o A stella: i nodi sono collegati a un nodo centrale. La comunicazione avviene attraverso il nodo centrale. L’info trasmessa da un nodo viene smistata dal nodo centrale verso il nodo di destinazione o Punto-punto: i nodi sono collegati a coppie e operano allo stesso livello. La comunicazione è diretta tra due nodi, è utilizzabile solo per pochi nodi. Topologie miste: combinazioni di più topologie semplici  estensione, in base all’area coperta dalla rete o Personal Area Network. Rete personale, collega due o più dispositivi vicini a un utente (cellulare con PDA, stampante, antenna GPS). Raggio di una decina di metri. Spesso sono wireless, usano Bluetooth

.di.unito.it: sotto-sottodominio, che identifica la rete del Dipartimento di Informatica pianeta.di.unito.it: identifica l’elaboratore “pianeta” appartenente al sotto-sottodominio del Dipartimento di Informatica. Per localizzare un elaboratore occorre conoscere il suo indirizzo IP. Come ottenerlo a partire dall’indirizzo logico? Il DNS è il servizio che gestisce la traduzione tra indirizzi logici e indirizzi IP. Il DNS ha una struttura gerarchica. Internet offre tutte una serie di servizi: WWW, e-mail, Instant messaging, Voice over IP, File sharing. World Wide Web. Servizio basato su Internet. Nato all’inizio degli anni ’90 al CERN a Ginevra per permettere agli scienziati di condividere informazioni. Costituito da documenti ipertestuali che si trovano su elaboratori distribuiti in tutto il mondo. I contenuti dei vari documenti sono in genere collegati fra loro mediante link. I contenuti sono consultabili mediante programmi chiamati browser. L’interazione tra browser e server web è di tipo client-server. URL Gli indirizzi logici e IP non sono sufficienti per identificare un determinato documento nel web. Quindi, ai documenti web viene associato un indirizzo al fine di essere reperiti. La posta elettronica Servizio che permette di spedire e ricevere messaggi. Gli utenti hanno un indirizzo: nome utente @ dominio

Basi di dati

Una delle applicazioni informatiche più utilizzate. Database. In ogni ambiente in cui è necessario memorizzare e reperire grandi quantità di dati è utile un database (anagrafe, biblio). Memorizza grandi quantità di informazioni in modo da facilitare la modifica e il reperimento. Soluzioni: File system/foglio elettronico. Svantaggi: organizzazione dei file a carico dell’utente. Dati non strutturati: come confrontarli ed elaborarli? Difficile condivisione tra più utenti, difficile reperire informazioni. DB adatti a memorizzare dati omogenei che devono essere strutturati. Gestiti da DBMS, sistema di gestione di basi di dati. Vantaggi: permettono di considerare i dati come risorsa di un’organizzazione. Una risorsa comune: a disposizione di molteplici utenti e applicazioni. Offrono un modello formale della realtà di interesse. Preciso, riutilizzabile. Un DBMS gestisce insieme di dati: grandi, persistenti, condivisi. Concorrenza = Nello stesso momento più applicazioni possono accedere al medesimo dato; tali accessi non devono interferire tra loro per garantire l’integrità dei dati. La condivisione permetti di evitare ridondanza e incoerenza. I DBMS danno backup e recovery. Utenti: amministratore, responsabile della progettazione, controllo e amministrazione. Modello dei dati Insieme di concetti utilizzati per organizzare i dati di interesse a descriverne la struttura. Il modello Entità-Relazioni

Il sistema operativo

Il software è un insieme di programmi che permettono di trasformare un insieme di circuiti elettronici in un oggetto in grado di svolgere funzioni di varia natura. I computer sono programmabili: possono svolgere compiti diversi in base a istruzioni contenute nei programmi. Il sistema operativo (software di base) è un insieme di programmi che interagiscono e cooperano tra di loro per gestire efficientemente il computer e le sue periferiche, creare un ambiente virtuale per facilitare l’interazione uomo-macchina. Il s.o. esegue un comando seguendo i seguenti passi:

  1. Verifica se si tratta di un comando valido
  2. Lo traduce per la macchina fisica
  3. Eseguito il comando a. Fornisce un riscontro all’utente b. Si pone in attesa di un nuovo comando da parte dell’utente Funzioni  Accensione e configurazione della macchina (bootstrap)  Gestione del processore  Gestione della memoria (principale e virtuale)  Linguaggio ad alto livello per l’interazione con l’utente  Gestione e accesso alle info su memoria secondaria (file system)  Gestione e uso ottimale delle risorse di input/output  Supporto per la comunicazione tra elaboratori  Supporto per i programmi applicativi (installazione, accesso alle risorse di sitema)  Ambienti di programmazione Bootstrap = avvio dell’elaboratore La CPU esegue esclusivamente programmi in memoria principale. La RAM è volatile, quindi è vuota quando si accende il computer. Prima soluzione: mettere i programmi in memoria secondaria Per caricare i programmi da memoria secondaria usiamo il file system (s.o.), ma il s.o. risiede in RAM (volatile) Seconda soluzione: usiamo un piccolo programma (BIOS) che ha il compito di caricare la prima parte del s.o. da memoria secondaria. La CPU esegue esclusivamente programmi in memoria principali, RAM volatile Terza soluzione: memorizziamo il BIOS in una parte della memoria principale non volatile, la ROM. Non possiamo memorizzare direttamente il sistema operativo in ROM? No perché la ROM è a sola lettura: ha senso memorizzarvi esclusivamente programmi/dati che non è necessario cambiare. Applicativi e s.o. devono potere essere variati e aggiornati.

Dato che la RAM è molto più veloce dell’hard disk, aumentare la quantità della RAM può migliorare le prestazioni del computer, perché il s.o. dovrà fare ricorso meno frequentemente all’hard disk per implementare la memoria virtuale.

Fogli di calcolo

Lo scopo è quello di mettere a disposizione un sistema per i calcoli. Formato tabellare.

La multimedialità

= integrare più media sullo stesso dispositivo. I media possono essere: suoni, immagini ferme, immagini in movimento, testi etc. Applicazioni: intrattenimento, addestramento, istruzione e formazione, web, ufficio, basi di dati multimediali. Le immagini. Due classi principali di grafica al calcolatore: grafica bitmap (Paint), le immagini non sono scalabili, se ingrandite perdono qualità. Grafica vettoriale (Powerpoint), si basa sul concetto di primitive grafiche: linee, poligoni, ellissi, archi. Le primitive sono memorizzate con una descrizione matematica: coordinate e/o formule matematiche. Quindi abbiamo un controllo accurato delle linee e dei colori, vi è la possibilità di ruotare e ridimensionare oggetto, di inserire testo. Inoltre c’è una ridotta occupazione di spazio se l’immagine è semplice, in quanto si memorizza l’oggetto non ciò che produce. La grafica vettoriale viene usata specialmente per immagini di sintesi, fondamentale quando bisogna ridimensionare/ruotare un’immagine (loghi, simboli, animazioni 3D, CAD).

Il linguaggio HTML

Linguaggio a tag. Tutti i blocchi vanno racchiusi tra un tag di apertura e tag di chiusura con la slash.

  1. parte di intestazione.
  2. titolo, visualizzata sull’etichetta della finestra del browser
  3. <body> quanto viene visualizzato sulla pagina web
  4. <body bgcolor=”orange”>
  5. <h1> </h1> titolo
  6. <h2> </h2> sottotitolo
  7. <img src=”mascherina.png” width=”200”>
  8. <p> </p> paragrafi
  9. <b> </b> grassetto
  10. <i> </i> corsivo
  11. <table> </table> tabella
  12. <font color=”red”> </font>
  13. <a href=”mascherine.html”> </a>