21 20 21 21200 ⋅+⋅+⋅+⋅+⋅+ =0+0+4+8+0+32=44 Brevi cenni

Transcript

21 20 21 21200 ⋅+⋅+⋅+⋅+⋅+ =0+0+4+8+0+32=44 Brevi cenni
Appunti di informatica. Non esauriscono gli argomenti trattati e vanno integrati con gli appunti presi a lezione.
Premessa: numerazione binaria.
Si può decidere di usare un sistema numerico con 2 simboli invece che 10.
Base 2
Base 10
0
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
…
0
1
2
3
4
5
6
7
8
9
10
11
12
…
Qualunque numero può quindi essere espresso utilizzando soltanto due simboli.
Come passare da un numero scritto in forma binaria ad uno scritto in forma decimale ?
Esempio:
Binario:
101100
Decimale:
0 + 0 ⋅ 21 + 1 ⋅ 2 2 + 1 ⋅ 2 3 + 0 ⋅ 2 4 + 1 ⋅ 2 5 =0+0+4+8+0+32=44
Come passare da un numero scritto in forma decimale ad uno scritto in forma binaria ?
Scrivo (da destra a sinistra) i resti delle successive divisioni per 2.
Esempi:
55
55/2 = 27 resto 1
…1
27/2 = 13 resto 1
…11
13/2 = 6 resto 1
…111
6/2 = 3 resto 0
…0111
3/2 = 1 resto 1
…10111
1/2 = 0 resto 1
110111
Quindi 55→110111
28
28/2 = 14 resto 0
14/2 = 7 resto 0
7/2 = 3 resto 1
3/2 = 1 resto 1
1/2 = 0 resto 1
Quindi 28→11100
…0
…00
…100
…1100
11100
Brevi cenni sulle reti informatiche.
Problema della trasmissione di un messaggio.
Immaginare di dover trasmettere un messaggio a distanza in modo chiaro e inequivocabile. Per evitare
fraintendimenti è opportuno utilizzare un alfabeto con pochi simboli, possibilmente due.
Un alfabeto a due simboli si dice “binario”. I due simboli si indicano solitamente con 0 e 1, ed indicano l’assenza o la
presenza di qualcosa (un segnale luminoso, sonoro, elettrico, ecc).
Nelle reti informatiche i messaggi viaggiano in forma binaria.
E’ necessario decidere una convenzione per tradurre un messaggio da un alfabeto all’altro, una corrispondenza ad
esempio tra ogni lettera dell’alfabeto latino e una particolare sequenza di 1 e 0.
Unità di misura dell’informazione: bit.
1 byte (B) = 8 bit
10
1 kilobyte (kB) = 2 bytes = 1024 bytes
10
1 kilobit (kb) = 2 bytes = 1024 bytes
1 megabyte (MB) = 1024 Kb
1 gigabyte (GB) = 1024 Mb
1 terabyte (TB) = 1024 Gb
Codice ASCII:
è un sistema di codifica che a ognuno dei 256 diversi stati esprimibili da un byte fa corrispondere un carattere (le 26
lettere dell’alfabeto latino maiuscole e minuscole, i caratteri accentati, i segni di punteggiatura, i numeri, ecc.)
Ogni computer della rete è identificato da un INDIRIZZO IP.
E’ un identificativo univoco costituito da 4 bytes.
Per una lettura più comoda invece che scrivere la sequenza di bit si scrive l’indirizzo IP con 4 numeri che vanno da 1
a 256 (uno per byte), separati da un punto.
Es: 192.13.67.251
11011010010…
1
3
1100…
010010111…
5
2
4
Quante combinazioni diverse si possono ottenere con 4 bytes ? 2 32 , cioè circa 4 miliardi. Quindi questo è il numero
massimo di computer (o dispositivi di qualunque tipo) collegabili a internet.
Questi indirizzi si stanno rapidamente esaurendo. Si sta studiando l’utilizzo di un diverso sistema che preveda
indirizzi a 16 bytes.
Chi assegna gli IP ?
Un provider (fornitore di servizi internet, in Italia ad esempio Fastweb, Telecom, Wind, ecc.) chiede un certo numero
di IP ad un’autorità governativa e li assegna successivamente ai suoi clienti.
L’indirizzo IP tiene anche informazioni di tipo geografico.
www.mostraip.it
IP dinamico vs IP statico
L’indirizzo IP assegnato al nostro computer di casa non è sempre lo stesso. Ad ogni accesso il nostro provider ci
assegna uno degli IP a sua disposizione. In questo caso si parla di IP dinamico.
In alcuni casi c’è invece bisogno di chiedere al provider che venga assegnato sempre lo stesso IP (ad esempio se sul
nostro computer ospitiamo un sito internet). In questo caso di parla di IP statico.
DNS (Domain Name System): sistema di traduzione da indirizzo IP a indirizzo letterale.
Per evitare che gli utenti di internet debbano memorizzare gli indirizzi IP numerici, si associa ad un IP statico un certo
nome.
Esempi (reali):
66.220.153.15 www.facebook.com
173.194.33.104 www.google.it
Questa informazione (l’associazione tra ip numerico e nome) è distribuita su un certo numero di computer sparsi nel
mondo.
Come viaggiano i dati ?
Sono suddivisi in pacchetti. Un file, una pagina internet, ecc. sono composti da molti pacchetti.
Un pacchetto è un pezzo di un messaggio.
Per ogni pacchetto all’inizio vengono aggiunte delle informazioni aggiuntive, ad esempio:
ip del mittente
ip del destinatario
numero identificativo del pacchetto
ecc.
Queste informazioni aggiuntive costituiscono quella che si chiama intestazione del messaggio (overhead).
101110...
Intestazione
1110110001010100010110111…..
Dati del pacchetto
I pacchetti viaggiano autonomamente sulla rete.
1
1,2
1
2
3
2,3
4
1
4
Ogni volta che il destinatario riceve un pacchetto invia un messaggio di conferma al mittente. Il mittente tiene in
memoria i pacchetti fino alla ricezione del messaggio di conferma. Nel caso in cui dopo un certo tempo il messaggio
di conferma non gli arrivi lo invia nuovamente.
Brevi cenni sull’architettura di un calcolatore.
Hardware: parte fisica (materiale) del computer.
Software: parte logica (i programmi).
CPU
(processore)
bus
Memorie
(Disco fisso, RAM, Cache Memory, …)
Dispositivi di input/output:
chiavetta USB, DVD,
monitor…
I dati sono scritti in memoria e vengono elaborati dalla CPU (il processore).
Memorie:
Memoria volatile (RAM, Cache Memory)
• Più veloce
• Più costosa
• Deve essere alimentata (si azzera quando il computer si spegne)
Vengono scritti in queste memorie i dati che servono ad un programma durante il suo funzionamento ma che non devono
essere salvati.
Tra le memorie volatili la cache memory è più veloce ma più costosa, si trova quindi in minore quantità nei computer.
Memoria non volatile (disco fisso, …):
• Meno veloce
• Meno costosa
• Non deve essere alimentata (sopravvive a computer spento)
CPU
Legge in memoria i dati da elaborare e le istruzioni sul come elaborarli (cioè i programmi).
Quando la CPU agisce dati e programmi passano dal disco fisso alla RAM per poter essere utilizzati più velocemente.
La CPU agisce tramite istruzioni elementari. Il linguaggio macchina è il linguaggio di ogni processore, come il
processore legge la sequenza di 0,1 per ricavarne delle istruzioni.
Se durante il funzionamento del computer la RAM si esaurisce (ad esempio se molti programmi funzionano
contemporaneamente) il computer usa al suo posto una parte del disco fisso. Questo meccanismo si chiama SWAP e causa un
rallentamento del computer.
SOFTWARE:
Sistema Operativo:
Ci permette di rapportarci non con la macchina fisica ma con una sua rappresentazione (macchina virtuale).
E’ uno “strato” che si pone tra l’utilizzatore e la macchina fisica.
Tra i più diffusi sui computer domestici quelli di Windows (XP, Vista, 7, …). Altri sono i sistemi Mac Os (della Apple) o Linux.
Programmi applicativi: i programmi che vengono utilizzati per svolgere compiti specifici.
I software si definiscono di alto o basso livello a seconda della loro “distanza” dall’hardware.
Basso livello
Alto livello
(più vicino all’hardware)
(più vicino allo specifico compito che si vuole svolgere)
Word
Excel
Lettori di file musicali
Videogiochi
Lettori di file video
Sistema operativo
linguaggio macchina
HARDWARE
Dispositivi di memoria portatili:
Tra le memorie non volatili ci sono le memorie esterne, cioè i dispositivi “portatili”.
La capacità di questi dispositivi è notevolmente aumentata negli anni, eccone alcuni con le rispettive capacità.
Fino agli anni ’90 i dispositivi di memoria esterni più diffusi erano i floppy disk da 5¼ pollici e da 3½ pollici (1
pollice=2,54cm) che immagazzinavano rispettivamente 160kB e 720kb.
Successivamente:
CD: ne esistono di diversi tipi, i più diffusi hanno una capienza di 700MB
DVD: ne esistono di diversi tipi, ma i più diffusi hanno una capienza di 4,7GB
Blu-ray: la capienza base è di 25GB (ma può aumentare)
Negli ultimi anni è cresciuta la capacità delle chiavette USB (pen drive), e contemporaneamente ne è diminuito il
costo. Una chiavetta USB da 10 euro al giorno d’oggi (2011) ha una capacità di 4 oppure 8GB.
Memory stick, Flash Card, ecc.: memorie di dimensioni ridotte diffuse sulle macchine fotografiche (qualche GB).
I file:
L’estensione di un file è l’insieme dei caratteri che si trovano dopo l’ultimo punto nel nome del file. L’estensione
permette al sistema operativo di conoscere con quale programma il file deve essere aperto.
Alcuni esempi di estensioni:
.txt→file di testo
.doc oppure .docx →file di Word
.xls oppure .xlsx→file di Excel
.ggb→Geogebra
.py→Python
.jpg, .jpeg, .gif, .bmp, .png o altri→immagini
.htm oppure .html→pagine web (internet)
.mp3, .wav o altri→audio
.avi, .mp4, .mpeg o altro→video
Dimensione indicativa per alcuni tipi di file:
file di testo: qualche kB
una canzone mp3: qualche MB
un film: se non compresso occupa tutto il dvd (o il blu-ray); spesso vengono invece compressi fino a 700MB
oppure1,4GB
un file word senza immagini: qualche decina di kB (dipende dal contenuto)
una foto ad alta risoluzione: qualche MB
una foto compressa: dipende quanto è compressa, quelle che si trovano su internet solitamente qualche decina di
kB
Velocità delle reti: la velocità delle reti viene solitamente indicata in Mb/s oppure kb/s(megabit oppure kilobit per
secondo, da non confondersi con megabyte o kilobyte). La velocità di connessione a internet in Italia mediamente ad
oggi è di qualche Mbps in download (quando si scaricano i dati sul proprio computer), inferiore in upload (quando si
inviano i dati).
Esercizi:
• quanto tempo si impiega a scaricare un file di 5MB alla velocità di 35kB/s?
• quanto tempo si impiega a scaricare un file di 3MB alla velocità di 20kb/s? (attenzione alla differenza tra kB e
kb)
• quanto tempo si impiega a scaricare un file di 2GB alla velocità di 500KB/s?
• per visualizzare in streaming un video che ha una dimensione di 5MB e che dura 4 minuti, quale velocità
minima deve avere la linea ? (in Mb/s e kb/s)
• per visualizzare in streaming un video che ha una dimensione di 700MB e che dura 90 minuti, quale velocità
minima deve avere la linea ? (in Mb/s e kb/s)
Algoritmo: l’insieme dei “passi” che portano alla risoluzione di un problema.
In campo non informatico sono ad esempio algoritmi:
una ricetta di cucina
le istruzioni per montare un mobile
la procedura per la divisione tra polinomi
…
Algoritmo segreto:
il modo in cui Google seleziona i risultati
Un algoritmo deve essere non ambiguo e i passi devono essere “interpretabili” dall’esecutore.
Una ricetta di cucina non può essere eseguita da un neonato o da una persona che non capisce la lingua in cui è
scritta.
INPUT → ALGORITMO → OUTPUT
Solitamente un algoritmo elabora dati di ingresso (input) e fornisce dati di uscita (output).
In informatica l’algoritmo viene implementato utilizzando un linguaggio di programmazione.
Implementare l’algoritmo in un certo linguaggio vuol dire scriverlo utilizzando il suo lessico e la sua sintassi (cioè
utilizzando le parole proprie del linguaggio combinate nel modo giusto).
Sono linguaggi di programmazione:
Java, C, C++, Pascal, Visual Basic, Php, Python, …
Anche excel è uno strumento per l’implementazione di algoritmi. Spesso gli esercizi in excel consistevano proprio nel
trovare un algoritmo per risolvere un certo problema, ed implementarlo successivamente nel foglio excel.
HTML: è il linguaggio per la programmazione visuale delle pagine web. Ogni pagina è in realtà una sequenza di
parole caratteristiche di questo linguaggio.
Sul nostro computer queste pagine sono “interpretate” e visualizzate mediante appositi software, chiamati browser.
I browser al momento più diffusi sono:
Internet Explorer (Microsoft)
Chrome (Google)
Firefox (Fondazione Mozilla, un’organizzazione no-profit)
Safari (Apple)
…
Internet Explorer è al momento il browser più diffuso; per dati aggiornati sulla diffusione dei browser potete
guardare ad esempio su
http://gs.statcounter.com/#browser-ww-monthly-201110-201201-bar
Microsoft:
viene fondata nel 1975 da Bill Gates e Paul Allen (ai tempi 20 e 22 anni).
La sede principale è a Redmond, vicino a Seattle.
Principali prodotti:
-) i sistemi operativi della famiglia Windows (dal 1985)
-) il browser Explorer (dal 1995). E’ diventato il browser più usato perché distribuito assieme ai sistemi operativi
Windows.
-) i software del pacchetto Office (Word, Excel, Power Point, …).
Windows e il pacchetto Office non sono software gratuiti, ma richiedono il pagamento di una licenza.
Apple:
viene fondata nel 1976 da Steve Jobs e Steve Wozniak (ai tempi 21 e 26 anni).
La sede principale è a Cupertino, California (nella Silicon Valley).
Principali prodotti:
-) i personal computer della serie Macintosh (dal 1984).
Il sistema operativo dei Macintosh furono i primi sistemi operativi grafici a finestre diffusamente commercializzati,
prima ancora dell’introduzione di Windows. Il primo sistema operativo grafico a finestre fu in ogni caso realizzato
dalla XEROX durante gli anni 70.
Dopo una crisi durata fino alla fine degli anni 90 il successo di Apple ricominciò grazie a una nuova serie di prodotti:
-) i personal computer della linea iMac
-) iPod (dal 2001)
-) iPhone (dal 2007)
Google:
nasce nel 1998 come motore di ricerca creato da Larry Page e Sergey Brin (allora 25enni).
La sede principale è a Mountain View, California (nella Silicon Valley).
Nel 2006 ha comprato YouTube.
Con gli anni ha iniziato ad offrire anche altri servizi, tra cui:
-) il browser Chrome
-) servizi fruibili su internet quail Google Maps, Google Earth, Gmail, ecc.
-) un pacchetto di software simile al pacchetto Office di Microsoft che si chiama Google Docs, con la caratteristica di
poter essere utilizzato in rete (cloud computing). Il software risiede sui computer di Google e anche i file vengono
salvati sui loro computer.
-) il sistema operativo Android (per dispositivi mobili: smartphone, tablet, …)
Modello client-server:
Sui computer degli utenti (chiamati client) funziona un software che gestisce l’interfaccia (il modo in cui l’utente
visualizza il programma) ed effettua delle richieste al server.
Su un computer detto server vengono invece archiviate ed elaborate le informazioni.
SERVER
Sono applicazioni client/server tutte quelle applicazioni che funzionano su internet (posta elettronica, facebook,
ecc.).
Una tipica applicazione client è il browser, altre sono la chat di MSN, iTunes, Wiris, ecc.
Modello peer to peer:
Si tratta di programmi che funzionano in rete ma in cui i “nodi” sono equivalenti. Ad esempio E-Mule o i programmi
per la condivisione di streaming video.
Invece software che funzionano interamente sul computer dell’utente si chiamano solitamente “stand alone” (ad
esempio Excel, Word, …).