132
Precorso di Informatica 2008/2009 A.A. 2008/2009

Precorso di Informatica 2008/2009

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Precorso di Informatica 2008/2009

Precorso diInformatica 2008/2009

A.A. 2008/2009

Page 2: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Programma del corso

6 ore di lezioni teoriche

Lunedì 22 e giovedì 25 settembre Algoritmi e Programmazione Architettura degli elaboratori Sistemi Operativi Networking

6 ore di pratica in laboratorio

Martedì 23 e venerdì 26 settembre Linux, Desktop Environments, Bash e Manuali Account personale, posta elettronica e browser Stampare e compilare i propri programmi Compressione, scripting, SSH e SFTP

[email protected]

dsi.unive.it/~zabeo

Page 3: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Il corso di laurea in Informatica

In questo corso di laurea non si insegna ad utilizzare il computer o a programmare

(anche se sono inevitabili effetti collaterali)

«Computer science is no more about computers than astronomy is about telescopes.»

Edgser Dijkstra, Turing award in 1972

Page 4: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Una corretta alimentazione

Programmazione,Ing. del Software,

Architettura,Sistemi Operativi,

Basi di Dati....

Logica, Algebra,Teoria dei grafi,

Matematica discreta,Calcolo numerico,Computabilità....

Algoritmi,Complessità,Correttezza,

Terminazione,Strutture dati....

BasiMatematiche

Linguaggi eProgrammazione

Algoritmie strutture dati  

Page 5: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Il mestiere dell'informatico

Il laureato in materie informatiche è flessibile:

Non tutti i compiti hanno lo stesso grado di desiderabilità... (...e di difficoltà)

Programmatore Sistemista Progettista

Docente Call center operator Altro....

Page 6: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Un po' di storia

• L'ingresso del calcolatore nel mondo del lavoro risale all'inizio del 1900; la tecnologia delle macchine di calcolo prodotte all'inizio del secolo era meccanografica

• Con queste macchine si eseguivano calcoli ad una discreta velocità (per quei tempi), dell'ordine di 60 operazioni al minuto; la loro gestione era tuttavia molto complessa

• I “programmi” venivano “scritti” su schede perforate che venivano interpretate meccanicamente dall’elaboratore.

Una scheda perforata

Page 7: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Alan Turing

• Nel 1936 il logico inglese Alan Turing definisce il modello del calcolatore moderno, la cosiddetta 'macchina di Turing'

• Essa è in grado di eseguire operazioni elementari secondo uno schema di calcolo ricorsivo, che consenta di risolvere ogni tipo di problema di logica simbolica in un numero finito di passi

• Non ne verranno costruiti esemplari reali, ma la sua idea costituirà la base dell'architettura dei futuri computer.

Page 8: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 La guerra ed ENIAC

Con lo scoppio della Seconda Guerra Mondiale, il progresso nell'area dei computer subirà degli sconvolgimenti: le esigenze strategiche e militari daranno impulso a nuovi tipi di ricerche e di macchine, tra cui l’ENIAC (Electronic Numerical Integrator and Calculator), che impiegò per la prima volta valvole elettroniche, e venne utilizzato per calcolare traiettorie balistiche.

ENIAC

Page 9: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Enigma

• Enigma è una macchina crittografica utilizzata durante la guerra dalle armate tedesche per cifrare le comunicazioni

• La macchina era stata inventata da un ingegnere polacco e non è chiaro come sia potuta finire nelle mani dei tedeschi

• A causa di questo elaboratore, gli inglesi ebbero grossi problemi a decifrare i messaggi intercettati.

Page 10: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Gli anni '50

• Il 1955 vede la nascita di IBM 702: la prima macchina commerciale completamente costruita con transistor e messa sul mercato da IBM.

• Dal 1956 fu introdotto il FORTRAN, primo linguaggio di programmazione ad alto livello,a cui seguirono LISP, COBOL, ALGOL e BASIC (Beginner's All-purpose Symbolic Instruction Code).

IBM 702

Page 11: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Gli anni '60

• Nel 1962 nasce al MIT il primo video game, sviluppato da Steve Russell; tuttavia non era molto economico, visto che una partita di un'ora costava circa 300$.

• Nel 1964 La Epson inventa la stampante a matrice di punti (dot matrix printer).

Page 12: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Il 1969

• I laboratori Bell sviluppano il sistema operativo

UNIX.• Viene disegnata una semplice combinazione di un

processore e di una unità di calcolo (la prima CPU), che sarà poi effettivamente realizzata dalla Intel. Il processore Intel 4004 a 4 bit diede

inizio alla rivoluzione elettronica;in un unico chip era contenuta tutta lapotenza di calcolo dell’ENIAC.

• Su commissione del Dipartimento della Difesa USA, ARPANET studia la prima rete (ha solo 4 nodi), che diverrà la più grande rete mondiale: Internet.

Page 13: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Il Computer entra in casa

• Fino al 1977 gli elaboratori erano utilizzati soltanto da aziende e organismi governativi, ed avevo prezzi esorbitanti

• In quell’anno viene annunciato l'APPLE II, il primo personal computer, con programmi di videoscrittura, fogli di calcolo, giochi e tanto altro.

• Nel 1984 viene annunciato dalla Apple il personal computer Macintosh; si tratta una macchina interamente grafica, dal prezzo abbordabile.

PC APPLE IIApple 

Macintosh

Page 14: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Microsoft windows

• Otto anni dopo la Microsoft sviluppa Windows 1.0, introducendo aspetti tipici del Macintosh nei computer DOS.

• Si verificheranno continue dispute legali tra Microsoft ed Apple a causa dell’eccessiva somiglianza di Windows e Macintosh.

Nel 1977 Bill Gates e Paul Allen fondano la 

Microsoft

Page 15: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 File System

• Negli ultimi dieci anni la potenza di calcolo dei PC ha avuto una crescita continua; tuttavia la loro complessità è irrisoria rispetto a quella dei supercomputer:

– elaboratori dedicati ad utilizzi in cui vi sia la necessità di sostenere elevati volumi di elaborazione, come in enti di difesa, centri di ricerca, istituti di meteorologia, aziende aerospaziali ecc.

Page 16: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 I concetti chiave dell'Informatica

In effetti l'informatica è una scienza piuttosto semplice, in quanto si occupa unicamente di due cose:

Informazione (cosa)

Algoritmi (come)

Page 17: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Il concetto di informazione

Informazione è qualsiasi cosa che possa essere:

✔ Comunicata

✔ Capita

✔ Interpretata ed assimilata

A questa idea corrispondono tre livelli di definizione dell'informazione:

✔ Livello sintattico

✔ Livello semantico

✔ Livello cognitivo

Page 18: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Livello sintattico

L'informazione per essere comunicata ha bisogno di:

✔ Un linguaggio con cui esprimerla

✔ il linguaggio naturaleil linguaggio dei segniil linguaggio matematico

✔ Un messaggio (espresso in tale linguaggio) che la codifichi

✔ una frase in italianouna sequenza di 13 simboli scelti in {1,2,X}

Page 19: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Livello sintattico

Esempio: il numero dieci

✔ In italiano: dieci

✔ In inglese: ten

✔ In notazione decimale: 10

✔ In notazione binaria: 1010

✔ In notazione esadecimale: A

✔ In numeri romani: X

Tutti questi messaggi esprimono il numero dieci, ciascuno in un linguaggio diverso, ma nessuno è il numero dieci

Page 20: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Livello semantico

Definisce il significato di ciò che è rappresentato in un messaggio:

✔ Nell'esempio precedente il numero “dieci” (dal punto di vista concettuale)

Il livello semantico riguarda “concetti” e quindi prevede un agente in grado di “capire” il significato veicolato dal messaggio

Tale comprensione necessità una definizione rigorosa del livello sintattico comune a chi invia e a chi riceve il messaggio:

✔ L'interpretazione del messaggio “X” cambia a seconda che mi stia esprimendo secondo la sintassi italiana, del totocalcio o dei numeri romani

Page 21: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Livello semantico

In prima approssimazione i computer sono macchine completamente stupide

Non sono in grado di “capire” nessun concetto, ma solo di manipolare simboli (di un determinato linguaggio):

✔ Spostare simboli

✔ Confrontare simboli

✔ Combinare simboli

In questo senso il computer opera sempre a livello sintattico

Page 22: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Livello semantico

I “programmi” (che sono scritti da umani per svolgere compiti specifici) fanno sì che il computer manipoli l’informazione a livello sintattico in modo coerente con il livello semantico che a questa informazione è associato (dagli umani, che lo capiscono)

Il complesso computer/programma diventa un po’ meno stupido: se il programma è scritto correttamente, è in grado di veicolare messaggi che sono coerenti con la semantica ad essi attribuita (sempre dagli umani)

Page 23: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Livello semantico

Esempio:

Se uso un motore di ricerca su Internet e digito “Università di Genova”, il programma che gestisce il motore non ha idea di cosa sia l’università e del fatto che Genova sia una città, ma mi restituirà comunque i documenti che trova che contengono la frase “Università di Genova”, che sono esattamente quel che voglio ottenere.

Page 24: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Livello cognitivo

Il livello cognitivo invece:

✔ Riguarda la conoscenza veicolata dal messaggio e segue il livello semantico

✔ Prevede l'integrazione dell'informazione data dal messaggio nel contesto della conoscenza propria di chi lo riceve

✔ Implica l'idea di imparare (o dedurre) qualcosa di nuovo dai messaggi ricevuti

Page 25: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Livello cognitivo

Il livello cognitivo è proprio degli esseri intelligenti

Il trattamento automatico dell’informazione a questo livello viene studiato in alcune aree interdisciplinari che coinvolgono l’informatica:

✔ Intelligenza artificiale

✔ Information retrieval

✔ Machine learning

Con i prodotti di queste discipline i computer possono effettuare un trattamento dell’informazione a livello cognitivo (possono “imparare”) anche se restano ancora lontani dall’essere “intelligenti”

Page 26: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Il concetto di informazione

Riassumendo:

✔ Il computer è una macchina che sa manipolare sintatticamente simboli in un linguaggio proprio e lo sa fare in modo molto efficiente

✔ Ci occuperemo di rappresentazione e manipolazione dell’informazione a livello sintattico (quel che fanno i computer)

✔ Vedremo i programmi (algoritmi) come strumenti per istruire il computer a manipolare l’informazione sintatticamente in modo consistente con il livello semantico

✔ Rendere i computer in grado di “capire” e “imparare” è molto complicato e la scienza sta solo muovendo i primi passi in questa direzione

Page 27: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Definizione di algoritmo

“Sequenza non ambigua di istruzioni elementari che permettono la soluzione di un problema in un numero finito di passi”

Sequenza = esiste un ordine ben definito

Non ambigua = esiste un'interpretazione certa

Passi finiti = è definita una terminazione

Ciascun algoritmo risolve un problema specifico e deve funzionare su qualunque istanza di tale problema.

Page 28: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Definizione di algoritmo

Nel dettaglio

✔ Un algoritmo consta di una sequenza di istruzioni che spiegano come affrontare il problema in dipendenza dei dati

✔ I dati sono informazioni che definiscono l’istanza del problema e che saranno manipolate dall’algoritmo

✔ Cambiando i dati possono cambiare le azioni che l’algoritmo prevede, ma tutto resta consistente con l’idea generale di risolvere quel problema specifico

✔ Per essere eseguito un algoritmo deve essere codificato in un programma, che traduce le istruzioni in un linguaggio comprensibile al computer

Page 29: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Esempio di algoritmo

1) Se la macchina è spenta, accenderla

2) Inquadrare il soggetto

3) Finché il campo inquadrato non va bene

1) Se è troppo largo, aumentare lo zoom

2) Se è troppo stretto, diminuire lo zoom

4) Scattare

5) Controllare la foto sul visore

6) Se è venuta male

1) Cancellarla

2) Tornare al punto 2

Scattare una foto con una macchina digitale

Page 30: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Struttura classica di algoritmo

Un algoritmo è costituito di una sequenza di passi

Ci sono tre tipi di successione temporale dei passi:

✔ Sequenziale

✔ Condizionale

✔ Iterativa

Le istruzioni condizionali ed iterative consentono di cambiare il flusso dell’algoritmo secondo quel che succede (ossia secondo la situazione creata dai dati su cui si sta lavorando)

Page 31: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Rappresentazione in pseudocodice

Esempio: Una classe di dieci studenti partecipa a un test. Dati i voti di ciascuno studente, determinare il voto medio riportato dalla classe

Poni il totale a zeroInizializza il contatore degli studenti a 1

while( il contatore è minore o uguale a 10){Leggi il prossimo votoAggiungi il voto al totaleAggiungi uno al contatore degli studenti

}

Il voto medio è il totale diviso 10Stampa il voto medio

Page 32: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Diagramma di flusso

Totale = 0Studenti = 1

Studenti <= 10 ?

Leggi ilprossimo voto

Si

Totale = Totale + VotoStudenti = Studenti + 1

Media = Totale / 10

No

Stampa Media

Page 33: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Linguaggio macchina

• Rappresenta l’unico linguaggio direttamente eseguibile dall’elaboratore

• Non necessita quindi di una “traduzione” ulteriore

• La sua rappresentazione è la codifica binaria

• Risulta di difficile comprensione da parte dell’utente, che solitamente programma in linguaggi di alto livello.

Page 34: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Linguaggio di alto livello

• Ogni istruzione di questi linguaggi esprime una serie di azioni elementari

• L’esecuzione di un programma scritto in linguaggio di alto livello necessita una traduzione in linguaggio macchina (compilazione)

• Questi linguaggi astraggono dai dettagli legati all’architettura e sono di semplice comprensione.

Page 35: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Ricapitolando

I computer sanno solo eseguire un numero molto ridotto di operazioni sintattiche su simboli di un dato linguaggio (i numeri binari, che vedremo)

Per funzionare, un computer ha bisogno di:

✔ Un programma che lo istruisca su cosa fare

✔ Dati sui quali agire

Abbiamo quindi bisogno di tradurre sia gli algoritmi che i dati in un linguaggio “comprensibile” al computer

Parleremo di rappresentazione e codifica dell’informazione

Page 36: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Codifica dell'informazione

Per rappresentare l’informazione in modo fruibile dai computer abbiamo bisogno di codici che la possano esprimere in modo semplice, sintetico e non ambiguo.

Un codice (o un linguaggio) si basa su:

✔ Un alfabeto di simboli

✔ Una sintassi con sui comporre tali simboli in sequenze

✔ Una semantica da associare ai simboli o alle sequenze

Nella codifica dei dati, la semantica resterà per lo più dominio degli umani che tali dati interpretano

Nella codifica dei programmi, la semantica sarà interpretata dal computer in termini di operazioni elementari che questo è in grado di eseguire

Page 37: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Codifica dell'informazione

I computer hanno un grosso limite: possono gestire solo rappresentazioni finite codificate attraverso un insieme finito di simboli

Dato qualunque insieme finito di n simboli, questo può essere messo in relazione con i primi n numeri interi (partendo da zero)

Quindi basta trovare un modo efficiente e opportuno (per il computer) di rappresentare i numeri interi e si può in questo modo codificare qualunque rappresentazione (finita)

Page 38: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Codifica decimale

La codifica decimale la conosciamo bene:

✔ Alfabeto di dieci simboli (cifre): 0 1 2 3 4 5 6 7 8 9

✔ Assumiamo per il momento di rappresentare numeri di non più di n cifre

✔ Ogni numero si rappresenta con una sequenza (stringa) di n cifre

✔ A ogni cifra si assegna una semantica (quella solita)

✔ Ogni cifra ha una posizione nella sequenza e ad ogni posizione di assegna una semantica: unità, decine, centinaia, migliaia, ecc…

105 104 103 102 101 100

Page 39: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Codifica decimale

La semantica di una stringa si ottiene moltiplicando ciascuna cifra per la potenza di dieci corrispondente al posto che occupa e sommando il tutto

✔ 0x100000+0x10000+0x1000+1x100+2x10+7x1 = 127

✔ Con questa regola il numero 127 si scriverà in effetti 000127 e il numero più grande che si riesce a rappresentare è il 999999

✔ Normalmente non abbiamo questi limiti perché assumiamo l’esistenza di un simbolo separatore (ad esempio lo spazio) che ci indica dove inizia e dove finisce un numero

0

105

0

104

0

103

1

102

2

101

7

100

Page 40: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Codifica binaria

Stesso meccanismo, ma:

✔ l’alfabeto è di soli due simboli: 0 1

✔ La semantica assegnata alle posizioni in una stringa di cifre binarie corrisponde (da destra a sinistra) potenze successive di due: 1, 2, 4, 8, 16, …

✔ La semantica di una stringa si ottiene moltiplicando ciascuna cifra per la potenza di due corrispondente al posto che occupa e sommando il tutto

1

25

0

24

1

23

0

22

0

21

1

20

Page 41: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Operazioni binarie

    1 1 0 0 1  +   

       1 1 0 1  =

 ___________

 1 0 0 1 1 0

(1)01110010+

011(1)100

10­

    1 1 0 0 1  ­  

       1 1 0 1  = 

________

       1 1 0 0

Somma

In parentesi è indicato il riporto

Sottrazione

In parentesi è indicato il prestito

25 +13 =____38

25 ­13 =____12

Page 42: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Esempio di sommatore

1111110011101010100110110010100110000000RocRiba

+I S

O

a b

Ro Σ Ric

a

Ro Ri

c

b

011101110000OIS

Page 43: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Numeri binari e computer

Qualunque informazione rappresentata nel computer (sia dati che programmi) viene codificata in forma binaria

Ragioni pratiche:

✔ I simboli 0 e 1 si fanno corrispondere a due livelli di tensione elettrica e l’elaborazione dell’informazione avviene attraverso commutazioni tra questi due livelli di tensione, operati da circuiti logici, fatti di un numero elevatissimo di transistor miniaturizzati, ciascuno molto semplice

✔ Conviene costruire molti circuiti molto semplici piuttosto che meno circuiti più complessi

Page 44: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Numeri binari e computer

Ragioni filosofiche:

✔ La numerazione binaria è adeguata a rappresentare il ragionamento creativo (Leibnitz, XVII secolo): ogni cifra può rappresentare una decisione (cfr istruzioni condizionali)

✔ C’è corrispondenza tra la matematica in base 2 e la logica (Boole, XIX secolo), quindi possiamo formalizzare il ragionamento (logico) attraverso procedure algoritmiche (matematiche)

✔ Si può ottenere un modello del cervello umano rappresentando una rete di neuroni ciascuno dei quali può assumere due stati attivo/inattivo (McCulloch & Pitts, 1943)

Page 45: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Numeri binari e computer

Una cifra binaria (rappresentata in un computer) si chiama genericamente bit (contrazione di binary digit = cifra binaria)

Un gruppo di 8 bit si chiama byte

Il byte è l’unità di misura usata per quantificare l’informazione rappresentata in un computer (ad esempio, la capacità della sua memoria)

I multipli del byte si ottengono moltiplicandolo per potenze di 2 che si avvicinano a potenze di 10

Page 46: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Numeri binari e computer

Page 47: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 la memoria del computer

Una memoria è un contenitore fatto di “scatolette” (celle) ciascuna delle quali può contenere un gruppetto di bit

La capacità di una cella di memoria di solito è di qualche byte (8, 16, 32 o 64 bit)

✔ 8 bit = numeri da 0 a 255

✔ 16 bit = numeri da 0 a 65.535

✔ 32 bit = numeri da 0 a 4.294.967.295

✔ 64 bit = numeri da 0 a circa 18,5 miliardi di miliardi

Page 48: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 I dati

I dati sono informazioni rappresentate secondo una certa codifica

In ultima analisi, qualunque dato viene codificato attraverso numeri binari immagazzinati nelle celle di memoria del computer

Per arrivare a questo possono essere però necessari diversi passaggi, che aumentano con la complessità strutturale dei dati da rappresentare

Page 49: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 I dati

Esempio: i numeri naturali

✔ Dobbiamo prima di tutto decidere quanti ne vogliamo rappresentare e quindi quanti bit servono per rappresentarne uno

✔ Quindi per esempio se abbiamo scelto n=4 possiamo rappresentare solo numeri tra 0 e 15 e la sequenza 0010100011110001 rappresenta nell’ordine i numeri 2 8 15 1

✔ Se scegliessimo n=8 la stessa sequenza rappresenterebbe nell’ordine i numeri 40 e 241

l’informazione codificata nei dati si può recuperare solo se è nota la semantica del codice utilizzato per rappresentarli !

Page 50: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 I dati

Esempio: il testo

Vogliamo rappresentare sequenze composte da:

✔ lettere dell’alfabeto maiuscole e minuscole

✔ cifre decimali

✔ segni di punteggiatura

✔ parentesi varie

✔ simboli speciali

✔ spazi

Servirebbero almeno 7bit per rappresentare ciascun simbolo

Con questo metodo è stata ottenuta la tabella ASCII, largamente usata

Page 51: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Tabella ASCII

Page 52: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 I dati composti

I dati come numeri e caratteri di testi si dicono elementari perché abbiamo una regola semplice per definire come codificarli

A partire da questi, si possono definire tipi di dato più complessi, ottenuto per composizione

Per esempio, la scheda di un cliente in un archivio di contabilità potrà contenere diversi campi di diverso tipo:

✔ codice cliente (numero intero)

✔ nome e cognome (stringhe di testo)

✔ partita iva (numero intero)

✔ ecc…

Page 53: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Trasmissione dell'informazione

Sorgente

Trasmettitore Ricevitore

Destinazione

Messaggio

Messaggio

Sistema di trasmissione

Canale di trasmissione

Rumore

Segnale

Page 54: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Errore di trasmissione

• A causa del rumore, non è sempre possibile garantire che i dati ricevuti da un canale di trasmissione siano corretti.

• Si verifica un errore di trasmissione quando il dato ricevuto in uscita dal canale è diverso dal dato immesso.

– L’errore si definisce singolo, doppio, triplo ecc. in base al numero di bit errati.

• Esistono appositi codici di rilevazione e correzione degli errori di trasmissione.

Page 55: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Rilevazione degli errori

• Codice di parità: al dato da trasmettere si aggiunge un bit di parità, che indica se gli 1 del dato sono pari o dispari.– parità pari: es. a 01001110 si aggiunge 0

per ottenere 01001110 0– parità dispari: es. a 01101110 si aggiunge

1 per ottenere 01001110 1• In questo modo i dati ricevuti devono avere

sempre un numero pari di 1, altrimenti sono errati.

• Tuttavia questo codice permette di rilevare solo gli errori singoli o dispari.

Page 56: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Trasmissione dei segnali

Modulazione(AM,FM,PM)

Digitalizzazione(campionamento e 

quantizzazione)

Modulazione(modem)

Codifica

Segnale analogico

Segnale digitale

Canale analogico

Canale digitale

Page 57: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Modello concettuale di un calcolatore

Elaborazione

Comunicazione

MemorizzazioneInterconnessione

Page 58: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Schema di riferimento

Schermo Tastiera Mouse Altreperiferiche

InterfacciaI/O

InterfacciaI/O

InterfacciaI/O

InterfacceI/O

Memoriacentrale

CPU

Bus DatiBus Indirizzi

Bus di Controllo

Page 59: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Caratteristiche del collegamento a bus

Vantaggi• Semplicità: unica linea di connessione implica costi ridotti• Estendibilità: aggiunta di nuovi dispositivi molto semplice• Standardizzabilità: regole precise di comunicazione tra 

dispositivi diversiSvantaggi• Lentezza: il bus è utilizzabile solo in mutua esclusione• Limitata capacità: al crescere del n. di dispositivi collegati• Sovraccarico del processore: la CPU funge infatti da 

master sul controllo del bus

Page 60: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Organizzazione “bus oriented”

Memoria centrale

Unità disco

Terminale Stampante

Unità di controllo

Unità aritmetico

 logica (ALU)

Registri

Dispositivi di I/O

BUS

Page 61: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Tipologie di istruzioni

• Istruzioni aritmetico­logiche– somma, sottrazione, divisione, …– AND, OR, XOR, …– maggiore, minore, uguale, minore o uguale, …

• Controllo del flusso delle istruzioni– flusso sequenziale– selezione semplice, a due vie, a n vie, ...– ciclo a condizione finale, iniziale, …

• Trasferimento di informazione– trasferimento dati e istruzioni tra CPU e memoria– trasferimento dati e istruzioni tra CPU e dispositivi di 

I/O attraverso le relative interfacce

Page 62: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Elementi della CPU

• Unità di controllo: legge le istruzioni dalla memoria e ne determina il tipo.

• Unità aritmetico­logica: esegue le operazioni necessarie per eseguire le istruzioni.

• Registri ­ caratteristiche:– memoria ad alta velocità, usata per risultati temporanei e 

informazioni di controllo– il valore massimo memorizzabile in un registro è 

determinato dalle dimensioni del registro– registri specifici sono ad esempio: program counter (PC), 

che indica l’indirizzo dell’istruzione successiva, l’instruction register (IR), che indica l’istruzione che si sta eseguendo, lo stack pointer (SP) ecc.  

Page 63: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Esecuzione delle istruzioni

• Prendi l’istruzione corrente (in linguaggio macchina) dalla memoria e mettila nel registro istruzioni IR (fetch);

• Incrementa il program counter PC in modo che contenga l’indirizzo dell’istruzione successiva;

• Determina di che tipo è l’istruzione corrente (decode);• Se l’istruzione usa una parola in memoria, determina 

dove si trova;• Se necessario carica la parola in un registro della CPU;• Esegui l’istruzione (execute);• Ripeti il ciclo.

Page 64: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Evoluzione delle CPU

29 000134 000

275 000

275 000

1 200 000

3 100 000

7 500 000

24 000 000

42 000 000

8 ­ 16

16 ­ 1632 ­ 32

32 ­ 16

32 ­ 3232 ­ 64

32 ­ 64

32 ­ 64

32 ­ 64

4.77 ­ 12

8 ­ 1616 ­ 33

16 ­ 33

33 ­ 50

60 ­ 200233 ­ 400

450 ­ 11331600 ­ 2000

Dimensione registri ­ bus dati

19781982

1986

19881989

19931997

1999

2000Pentium 4

Pentium III

80386

808680286

80386 SX

80486 

Pentium

Pentium II

CPU Anno Frequenza (MHz)

Numero transistor

Page 65: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Legge di Moore

“Il numero di transistor per cm2 raddoppia ogni 18 mesi”Ovvero di circa il 60% ogni anno. 

Page 66: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Incrementare le prestazioni: il parallelismo

• La frequenza di clock influenza direttamente il tempo di esecuzione delle istruzioni ed è limitata dalla tecnologia disponibile.

• Il parallelismo permette di migliorare le prestazioni senza modificare la frequenza di clock. Esistono due forme di parallelismo:– parallelismo a livello delle istruzioni (architetture 

pipeline e superscalari)– parallelismo a livello di processori 

(multiprocessori e multicomputer).

Page 67: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Architettura pipeline

   Consiste nell’organizzare la CPU come una “catena di montaggio”• la CPU viene suddivisa in stadi, ognuno dedicato 

all’esecuzione di un compito specifico• l’esecuzione di una istruzione richiede il passaggio 

attraverso tutti o alcuni degli stadi della pipeline• in un certo istante, ogni stadio esegue la parte di 

istruzione di sua “competenza”• in un certo istante esistono diverse istruzioni 

contemporaneamente in esecuzione, una per stadio.

Page 68: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Esempio di pipeline a 5 stadi

• S1. lettura istruzioni dalla memoria e loro  caricamento in un apposito buffer

• S2. decodifica dell’istruzione per determinarne il tipo e gli operandi richiesti

• S3. individuazione e recupero degli operandi dai registri o dalla memoria

• S4. esecuzione dell’istruzione• S5. invio dei risultati all’apposito registro.

Page 69: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Multiprocessori e multicalcolatori

• Nei Multiprocessori diverse CPU condividono una memoria comune:– le CPU devono coordinarsi per accedere alla memoria– esistono diversi schemi di collegamento tra CPU e 

memoria; quello più semplice prevede ci vi sia un bus condiviso.

• Nei Multicalcolatori si utilizzano più calcolatori, ognuno dei quali dotato di una memoria privata:– la comunicazione tra CPU è basata su scambio di 

messaggi– si è arrivati a costruire multicalcolatori con ~10000 

CPU.

Page 70: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 La memoria

• Supporto alla CPU: deve fornire alla CPU dati ed istruzioni il più rapidamente possibile

• Archivio: deve consentire di archiviare dati e programmi garantendone la conservazione e la reperibilità anche dopo elevati periodi di tempo

• Esigenze:– velocità per il supporto alla CPU– non volatilità ed elevate dimensioni per l’archivio

• Tecnologie:– elettronica: veloce ma costosa e volatile– magnetica e ottica: economica e non volatile, ma molto 

lenta.

Page 71: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Caratterizzazione di una memoria

• Velocità:– tempo di accesso: quanto trascorre tra richiesta e relativa risposta– velocità di trasferimento: quanti byte/sec si possono trasferire

• Volatilità:– cosa succede quando la memoria non è alimentata?– per quanto tempo i dati vi rimangono immagazzinati?

• Capacità: quanti byte può contenere?• Costo per bit• Modalità di accesso:

– diretta (o casuale): il tempo di accesso è indipendente dalla posizione

– sequenziale: il tempo di accesso dipende dalla posizione– mista– associativa: indicato il dato, la memoria risponde indicando 

l’eventuale posizione che il dato occupa.

Page 72: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Memoria centrale

• Mantiene al proprio interno dati e istruzioni dei programmi in esecuzione.

• È una memoria ad accesso “casuale” (Random Access Memory)

• Tecnologia elettronica (veloce ma volatile e costosa)• Due diversi tipi di memoria elettronica:

– R.O.M. (Read Only Memory): permanente e di sola lettura (serve ad esempio a memorizzare le istruzioni da effettuare all’accensione del calcolatore (bootstrap))

– Flash: permanente e riscrivibile (USB, memorie per piccoli apparecchi elettronici quali palmari, cellulari, fotocamere, ...).

Page 73: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Il principio di località: la cache

• Località spaziale: “quando si accede all’indirizzo A, è molto probabile che gli accessi successivi richiedano celle vicine ad A.”

• Località temporale: “quando si accede all’indirizzo A, è molto probabile che gli accessi richiedano di nuovo la cella A.”

• Si utilizza quindi una memoria che consenta accessi estremamente veloci su blocchi utilizzati di recente. Questa memoria è la cache: veloce ma molto costosa, quindi piccola.

Page 74: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Gerarchia di memorie

max

maxminCPU Registri

Cache

Memoria centrale

Dischi magnetici / ottici

Nastri magnetici

Dimensioni Velocità

min

Costo/bitmax

min

Page 75: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Dischi magnetici

• Sono piatti, generalmente di alluminio,                    ricoperti di materiale ferromagnetico 

• Fattore di forma (diametro)– sempre più piccolo, consente velocità di rotazione maggiori– 3.5 pollici per sistemi desktop e fino ad 1 pollice per i portatili.

• Testina (strumento di lettura/scrittura)– è sospesa appena sopra la superficie magnetica– scrittura: il passaggio di corrente positiva o negativa attraverso 

la testina magnetizza la superficie– lettura: il passaggio sopra un’area magnetizzata induce una 

corrente positiva o negativa nella testina.

Page 76: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Tracce e settori

• Traccia (track): sequenza circolare di bit scritta mentre il disco compie una rotazione completa. Tra una traccia e l’altra c’è un piccolo spazio separatore (gap).

• Settore (sector): parte di una traccia corrispondente ad un settore circolare del disco– un settore contiene 512 byte di dati, preceduti da un preambolo 

e seguiti da un codice di correzione degli errori

• Altre sottostrutture sono i cluster e i blocchi.• Formattazione: operazione che predispone tracce e 

settori per la lettura/scrittura– circa il 15% dello spazio si perde in gap, preamboli e codici di 

correzione errori.

Page 77: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Tracce e settori

Traccia Settore

Page 78: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Hard disk

L’Hard Disk è composto da più superfici (piatti) e da una testina di lettura per superficie.

Page 79: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Floppy disk

• Funzioni: distribuzione del software su larga scala (con l’avvento dei PC) e archiviazione dati

• Struttura analoga a quella di un disco magnetico– il disco si ferma quando non è operativo– l’avvio della rotazione comporta un ritardo di ½ 

secondo• Caratteristiche tipiche di un floppy da 3.5’’:

– capacità: 1.44 MB– tracce × settori: 80 × 18– giri per minuto (RPM): 300– velocità di trasferimento: 500 Kbps.

Page 80: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Dischi ottici

• Lettura ottica basata sulla riflessione (o sulla mancata riflessione) di un raggio laser sul supporto

• Densità di registrazione più alta che nei dischi magnetici

• Creati in origine per registrare programmi televisivi, successivamente applicati ai calcolatori.

• Tipologie: – CD­ROM, CD­R, CD­RW, DVD, DVD­RAM, ...

Page 81: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Compact Disk (CD)

• Supporto proposto nel 1980 da Philips e Sony per sostituire i dischi musicali in vinile

• Standard di fabbricazione IS­10149:– diametro: 12 cm; spessore: 1.2 mm e foro di 15 mm al centro– produzione:

• laser ad alta potenza che brucia fori di 0.8  m in un μ disco master (le depressioni sono dette pit e le aree tra i pit sono dette land)

• dal master si ricava uno stampo• nello stampo viene iniettata una resina liquida di policarbonato che 

forma un CD con la stessa sequenza di pit del master• sul policarbonato viene depositato uno strato molto sottile di 

alluminio riflettente• copertura con strato protettivo e poi con una etichetta.

Page 82: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Lettura dei CD

• Un laser a bassa potenza  emette una luce infrarossa sul disco

• I pit  appaiono come cunette su una superficie piatta• I passaggi pit/land o land/pit indicano un 1, e la loro 

assenza indica uno 0• Pit e land sono impressi in una spirale unica che 

compie 22.188 giri attorno al disco• La lettura viene effettuata a velocità costante (120 

cm/sec), molto meno della velocità di lettura degli hard disk.

Page 83: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Pit e Land su CD

Passaggio da land a pitPassaggio da pit a land

Page 84: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 CD-Rom

• Nel 1984 Philips e Sony definiscono uno standard per i CD­ROM (Compact Disk­Read Only Memory) in cui si definiva la struttura ed il formato da utilizzare per memorizzare dati digitali invece che “musica”

• Rispetto ai CD audio i CD­ROM hanno:– stesse dimensioni– compatibilità dell’ottica  e della meccanica– stesso processo produttivo– migliore capacità di correggere gli errori

• Nel 1986 si definisce la possibilità di mischiare audio, video e dati nello stesso settore.

Page 85: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Velocità e capacità dei CD-Rom

• Velocità base (1x):– 75 settori/sec– 153.6 KByte/sec– velocità superiori (n x) crescono in proporzione

• Capacità– 74 minuti di musica ~ 640 MB– 80 minuti di musica ~ 700 MB

• Tempo di accesso– alcune centinaia di millisecondi.

Page 86: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 CD Recordable (CD-R)

• Sono CD che vengono scritti una sola volta (WORM)– si utilizzano per backup, produzioni in piccole serie, 

generazione di master, …– hanno le stesse dimensioni dei CD­ROM

• La riflettività di pit e land è simulata– c’è uno strato di colore tra il policarbonato e lo strato 

riflettente: nello stato iniziale questo strato è trasparente– per scrivere, un laser ad alta potenza colpisce un punto 

nello strato della superficie colorata, rompe un legame chimico e crea una macchia scura.

Page 87: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 CD ReWritable (CD-RW)

• Dischi ottici riscrivibili• Lo strato di registrazione utilizza una lega di argento, 

indio, ammonio e tellurio che ha due stati stabili:– lo stato cristallino, con elevata capacità di riflessione (land)– lo stato amorfo, con ridotta capacità di riflessione (pit)

• Si usa un laser con tre potenze diverse:– alta potenza: il laser scioglie la lega e un raffreddamento rapido 

la porta dallo stato cristallino a quello amorfo– media potenza: la lega si scioglie e si raffredda tornando nel suo 

stato cristallino– bassa potenza: si rileva solo lo stato del materiale.

Page 88: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Digital Versatile Disk (DVD)

• Pit più piccoli, spirale più serrata, utilizzo del laser rosso• Caratteristiche dei DVD:

– capacità di 4.7 GB = 133 minuti di video         ad alta risoluzione, con colonna sonora          in 8 lingue e sottotitoli in 32 lingue

• Diversi formati di DVD:– lato unico strato unico (4.7 GB)

– lato unico strato doppio (8.5 GB)

– due lati strato unico (9.4 GB)

– due lati strato doppio (17 GB)

Page 89: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Nastri magnetici e unità DAT

• Capacità di diversi GB• Accesso sequenziale ai dati• Molto lenti• Utili solo per operazioni di backup

Inter­record gap Record

Traccia 1

Traccia 9

Page 90: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Architettura della macchina di Von Neumann

Memoria

CPU

Unità di ingresso Unità di uscita

Programmi e dati

Risultati

Unità centrale

CPU: Central Processing Unit

ALUUnità di controllo

I microprocessori attuali sono dispositivi elettronici in grado di implementare all'interno di un unico circuito integrato le funzioni di un'intera CPU

Page 91: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Unità centrale

DA T A

B U S

ALU

CPUUnità di controllo

MAR Memoria ROM

MBR

MAR Memoria RAM

MBR

C O N T R O L 

B U S

A D D R E S S 

B U S

Page 92: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Microprocessori e bus

• I microprocessori sono dispositivi elettronici che implementano in un unico circuito integrato le funzioni di una intera CPU. I microprocessori attuali hanno bus dati a 8, 16, 32, 64 bit.

• Il bus dati (data bus) esprime la capacità di elaborazione del processore (quanti bit possono essere elaborati in parallelo)

• Il bus indirizzi (address bus) esprime la capacità di memorizzazione del processore (2m celle di memoria, se m è il numero dei bit del bus)

• La capacità di indirizzamento indica il numero di celle diverse cui si può accedere:

210 Byte = 1024 byte = 1 KByte220 Byte = 1048576 byte = 1 Mbyte230 Byte = 1073741824 byte = 1 GByte

Page 93: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Un esempio

• Variazione nella precisione di misura di 1 Kg. in un sistema di pesatura basato su microprocessori con diversa dimensione del bus dati

Numero di bit bus dati 4 8 16

Dati rappresentabili 24=16  28= 256  216= 65536

Precisione relativa 6.25% ~3.9 ‰  ~0.015‰

Precisione max. 62.5 gr ~3.9 gr ~0.015 gr

Page 94: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Osservazioni

• I microprocessori a 8 bit di dato hanno tipicamente bus indirizzi a 16 bit con capacità di indirizzamento di 64 KB

• I microprocessori a 16 bit di dato hanno tipicamente bus indirizzi a 20­24 bit con capacità di indirizzamento di 1­16 MB

• I microprocessori a 64 bit di dato hanno bus indirizzi a 64 bit con capacità di indirizzamento fino a circa 1019 byte

• I microprocessori Single Chip riuniscono in un unico circuito integrato più di uno dei blocchi costituenti un microcalcolatore (eventualmente tutti).

Page 95: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Architettura di una CPU

SP PC R e g 0

R e g N

F

L

A

G

ACC C

O

N

T

R.

D

E

C

O

D.

I

N

S

T.

R

E

G.

BUS DATI INTERNO

….

BUS INDIRIZZI INTERNO BUS IND. ESTERNO

BUS DATI ESTERNO

ALU

Page 96: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Ciclo di esecuzione delle istruzioni

•FETCH (prelevamento dell’istruzione)•DECODIFICA•ESECUZIONE

La memoria (ROM e RAM) contiene il programma e i dati sui quali opera la CPU. Il Program Counter (PC) contiene l’indirizzo della cella di memoria con la prossima istruzione da eseguire.

FORMATO DELLE ISTRUZIONICodice Operativo Operando 1 Operando 2

Campo che caratterizza le varie istruzioni Gli operandi possono 

essere 0, 1, 2

Page 97: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Sequenza delle operazioni elementari

•FETCH: vengono letti i campi che costituiscono l’istruzione:1) (PC)→MAR2) ((MAR)) →MBR; (PC)+1 →PC3) (MBR) → IR

I passi 1, 2, 3 permettono di caricare in IR (instruction register) il codice operativo (OP Code) dell’istruzione corrente. Passi analoghi permettono di caricare in opportuni registri della CPU gli operandi presenti nell’istruzione. In tal caso, nel passo 3 la destinazione del dato proveniente dalla memoria non è più IR, ma opportuni registri.•DECODE: viene identificata l’istruzione corrente sulla base dell’OP Code•EXECUTE: è diversa a seconda del tipo di istruzione. In pratica consiste nell’inviare comandi e dati alle unità interessate.

•P.S. MAR= Memory Address Register; MBR: Memory Buffer Register•Notazione: (X) →Y significa: “Il contenuto della cella puntata dal registro X viene trasferito nel registro Y

Page 98: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Formato delle istruzioni

• Le istruzioni sono codificate da stringhe di bit. • Una volta caricata nell’IR, un’istruzione deve essere decodificata ed 

eseguita. A tal scopo l’unità di controllo deve conoscere:• codice operativo• sorgente: dati su cui operare• destinatario: dove porre il risultato e, se sorgente e destinazione sono 

in memoria, la modalità di indirizzamento

Codice Operativo Sorgente Destinazione Mod. indirizzamento

Esempio 1: Somma tra il contenuto del registro R2 e il contenuto dell’accumulatore. Il risultato va nell’accumulatore

FORMATO codice operativo

FETCH come in precedenza

ESECUZIONE (R2)+(ACC)→ACC

Page 99: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Esempio di esecuzione di istruzioni

Esempio 2: somma tra il contenuto della cella di memoria il cui indirizzo è specificato nell’istruzione ed il contenuto dell’accumulatore; il risultato va nell’accumulatore

•FORMATO: codice operativo+operando

•FETCH:1) (PC)→MAR  4) (PC)→MAR2) ((MAR)) →MBR; (PC)+1 →PC 5)  ((MAR)) →MBR; (PC)+1 →PC3) (MBR) → IR 6) (MBR) →Rn

•EXECUTE:1) (Rn) →MAR 3) (MBR) →Rn2) ((MAR)) →MBR 4) (Rn)+(ACC) →ACC

Page 100: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Esempio di esecuzione di istruzioni

Esempio 3: saltare all’istruzione che è memorizzata nella cella il cui indirizzo è specificato all’interno dell’istruzione corrente:

•FORMATO: codice operativo+operando

•FETCH:1) (PC)→MAR  4) (PC)→MAR2) ((MAR)) →MBR; (PC)+1 →PC 5)  ((MAR)) →MBR; (PC)+1 →PC3) (MBR) → IR 6) (MBR) →Rn

•EXECUTE:1) (Rn) →PC

Page 101: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 I sistemi operativi

• I sistemi operativi permettono di gestire le risorse efficientemente– tengono traccia di chi accede alle risorse– accettano e soddisfano le richieste di uso di risorse– risolvono i conflitti tra più risorse

• Possono essere visti come una macchina di calcolo estesa– rappresentano la base su cui è possibile scrivere 

programmi applicativi in modo più semplice che utilizzando direttamente l’HW.

Page 102: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Vantaggi dei sistemi operativi

• I sistemi operativi permettono definire uno standard per interfacciare i dispositivi fisici, per cui:– lo sviluppo dei programmi risulti più semplice ed 

indipendente dal calcolatore che si utilizza– l’aggiornamento del SW di base e dell’HW sia 

trasparente all’utente ed alle applicazioni.

Page 103: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Il SO come intermediario tra HW e SW

Software =SO + applicazioni SW

SW SW (appl) 

HW

SO

HW

Page 104: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Composizione di un sistema operativo

Sistema Operativo

Utente

HW

Interpretecomandi

SWapplicativo

Gestioneprocessore

Gestione memoria

Gestione periferiche

File system

Page 105: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Processi e programmi

• Un programma è una entità statica composta dal codice eseguibile del processore.

• Un processo è una entità dinamica relativa al programma in esecuzione, ed è composto da:– codice del programma– dati necessari all’esecuzione del programma– stato dell’esecuzione

Page 106: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Esecuzione di un processo

Processoattivo

Processoin attesa

Richiesta di operazione I/O

Operazione I/O completata

Ogni operazione di I/O consiste in una chiamata al SO e successiva sospensione del processo utente per attendere l’esecuzione dell’operazione di I/O

Page 107: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 La multiprogrammazione

tempo

Progr. 1

Progr. 2

Progr. 3

Attesa per operazioni di I/O Elaborazione

Page 108: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Time sharing

• È possibile condividere la CPU tra più processi interattivi, suddividendo il tempo di esecuzione del processore tra più utenti

• Ogni processo utilizza periodicamente un intervallo di tempo prestabilito (quanto)  

• Durante il quanto di esecuzione di un processo, tutti gli altri processi sono sospesi

• Al termine di ogni quanto (context switch), il processo in esecuzione viene sospeso e si assegna la CPU ad un altro processo.

Page 109: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Processi pronti ed in attesa

• Quando un processo non è in esecuzione può assumere due diversi stati:– attesa: il processo è sospeso finché un determinato 

evento esterno non si verifica (i.e., I/O)

– pronto: il processo è sospeso finché non gli viene concesso l’uso della CPU 

– in ogni instante di tempo vi è un solo processo attivo, e tutti gli altri sono o in attesa o pronti, e memorizzati in apposite code che ne indicano l’ordine di esecuzione. 

Page 110: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Diagramma di esecuzione

Richiestaoperazione I/O

Completamento operazione I/O

Termine quanto di tempo

Selezione primo processo pronto e sua esecuzioneInizio esecuzione(accodamento)

Termineelaborazione

Codaprocessi 

pronti

Processo attivo

Codaprocessi in attesa

Page 111: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Round robin

quanto tempo

Proc. 1

Proc. 2

Proc. 3

E

E

E

E

E

E

E E

E

E

Richiesta I/O

P

P

P

P

P

P

P

P

A

P

A

P

A P

P P

P

P P

P

Context switch

Fine utilizzo I/O

Page 112: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Macchina astratta del kernel

processo1

CPUvirtuale

InterfacceI/O

Memoriadi lavoro

Bus DatiBus Indirizzi

Bus di Controllo

processon

CPUvirtuale

Periferiche

Page 113: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Gestione della memoria

• Ogni processo necessita di una certa quantità di memoria (ad esempio per immagazzinare il codice ed i dati utilizzati)

• Spesso l’effettiva memoria fisica non è sufficiente a contenere tutto lo spazio richiesto per n processi

• Il gestore della memoria risolve i conflitti garantendo uno spazio di memoria virtuale anche superiore alla capacità della memoria fisica.

Page 114: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Swapping

• Nonostante le diverse politiche di gestione della memoria, spesso le memoria centrale non è sufficientemente estesa per contenere tutti i programmi concorrenti

• Una soluzione consiste nel trasferire il contenuto di un’area di memoria centrale in un’area della memoria di massa (area di swap).

• La memoria di massa è molto più lenta della memoria centrale, quindi lo swap è utile per processi in attesa ma non per processi pronti.

Page 115: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Paginazione

• Un miglioramento nell’efficienza dell’uso della memoria si ha grazie alla paginazione, ovvero la suddivisione della memoria in sezioni di dimensioni fisse (pagine)

• Si basa sul principio di località spaziale e temporale: si possono utilizzare zone di memoria non fisicamente contigue e tenere in memoria centrale solo la porzione di codice che si sta eseguendo.

Page 116: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Pagine logiche e pagine fisiche

Memoria centrale (spazio fisico)

pagina 0

pagina 1

pagina 2

pagina 3

pagina 4

pagina 5pagina 

6pagina 7

pagina 0

pagina 1

pagina 3

pagina 1

pagina 2

pagina 0Spazio logico

processo 1

Spazio logicoprocesso 2

Page 117: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Macchina astratta della memoria

Processo nProcesso 1Memoria 

logica

CPUvirtuale

InterfacceI/O

Bus DatiBus Indirizzi

Bus di Controllo

Memoria logica

CPUvirtuale

Periferiche

InterfacciaI/O

Memoriadi

massa

Page 118: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Gestore delle periferiche

• Il gestore delle periferiche permette la comunicazione tra il calcolatore e tutti i dispositivi esterni ad esso collegati (video, tastiera, stampanti, mouse, ecc.); inoltre:– garantisce un comportamento asincrono dell’ambiente 

rispetto al calcolatore e gestisce di accessi contemporanei da parte di più periferiche

– nasconde ai processi il numero (spesso limitato) di risorse HW disponibili (i.e. più stampe su un’unica stampante)

– non permette ai processi di distinguere tra differenti risorse dello stesso tipo.

Page 119: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Sistemi Plug&Play

• Nelle versioni più recenti dei sistemi operativi, la necessità di configurare “manualmente” ogni periferica tramite appositi driver viene sostituita da funzioni Plug&Play:– ad ogni accensione del calcolatore il SO scandisce 

tutte le risorse HW rilevando quelle non ancora configurate

– ogni periferica comunica al SO i driver di cui necessita ed il SO installa gli appositi driver senza l’intervento dell’utente.

Page 120: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Lo spooling

• La tecnica di spooling è utilizzata dai driver per rendere virtuali più periferiche non condivisibili; ad esempio, nel caso di una stampante e più processi che intendono stampare:– ogni processo invia il file da stampare al driver della 

stampante, che lo mette in coda nella directory di spooling

– i file in coda vengono stampati secondo l’ordine di arrivo

– a directory di spooling vuota il driver rimane in memoria in attesa di una nuova richiesta di stampa.

• In questo modo i processi evitano lunghe attese ed operano indipendentemente dalla periferica.

Page 121: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Macchina astratta dell I/O

Processo nProcesso 1Memoria 

logica

CPUvirtuale

Bus DatiBus Indirizzi

Bus di Controllo

Memoria logica

CPUvirtuale

InterfacciaI/O

Memoriadi

massa

I/Ovirtuale

I/Ovirtuale

I/Ovirtuale

I/Ovirtuale

Page 122: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Evoluzione dei sistemi operativi

• I primi calcolatori non prevedevano l’uso di sistemi operativi, ed erano direttamente programmati in linguaggio macchina.

• Con l’aumento della complessità degli elaboratori e del codice da implementare si è reso necessario introdurre un intermediario tra HW e SW che facilitasse la gestione del lavoro.

• Uno dei primi SO fu OS/360.• Con l’introduzione della multiprogrammazione furono 

progettati sistemi come CTSS e MULTICS, che spianarono la strada alla nascita di UNIX uno dei più popolari ed efficienti sistemi operativi.

Page 123: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Evoluzione dei sistemi operativi

• In seguito nacque l’MS­DOS, fin troppo “ispirato” a UNIX, ma particolarmente semplice ed adatto ai personal computer.

• Una nota particolare merita Linux, un discendente diretto di UNIX ed apparso per la prima volta nel 1991.

• Uno dei suoi pregi è di essere completamente gratuito ed “open source”, ovvero qualsiasi utente può modificarne il codice sorgente.

• Tuttavia i sistemi che hanno registrato il maggior successo negli ultimi anni sono Macintosh e Windows, grazie alla loro estrema semplicità e chiarezza dell’interfaccia grafica.  

Page 124: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 File System

È un meccanismo per memorizzare e accedere a dati e programmi

Le informazioni (dati/programmi) sono codificate in sequenze di byte, e sono raccolte in file.

I file possono avere varie semantiche, a seconda del tipo di dati che contengono. La semantica si capisce (nella maggior parte dei casi) guardando l’estensione del file:

.txt .c .html

.jpg .gif .mp3

.pdf .ps .doc

.exe .xls

Page 125: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Interfaccia testuale al File System

Page 126: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Interfaccia grafica al File System

Page 127: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 File System

I file sono raggruppati in directory, che possono contenere file o altre directory.

Si forma così una struttura gerarchica ad albero, le cui foglie sono i file e le directory vuote

/

usr lib home

bin games mario

Prova.c

floppy

Page 128: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Pathname

Ciascun file ha un pathname che lo identifica in modo univoco all’interno del file system.

Un pathname e’ una sequenza di nomi di directory che conducono da una directory di partenza ad un certo file, attraverso l’albero del file system.

Pathname assoluto: /home/mario/Prova.cPathname relativo: Prova.c

/

usr lib home

bin games mario

Prova.c

Page 129: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Home Directory

Ogni utente del sistema Linux ha associata una directory personale, dove può raccogliere e organizzare i propri file.

La directory personale si chiama home directory e si inserisce nel file system sotto la directory /home/

Il nome della propria home directory corrisponde alla propria login:

/

usr lib home

anna luigi mario

Page 130: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Directory corrente

Quando un utente si collega al sistema, il s.o. gli fa guardare il file system partendo dalla sua home directory.

All’inizio la directory corrente è la vostra home dir

Per leggere un file si usano i comandi

more <pathname>

less <pathname>

/

lib home

mario

Prova.cProva.c

altrimenti si deve specificare il pathname assoluto, cioè more /lib/Prova.c

con more Prova.cIl file è cercato nella directory corrente

Page 131: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Navigare nel File System

Per cambiare la directory correntee navigare nel file system cd <pathname>

I pathname possono contenere dei simboli speciali:. denota la directory corrente

.. denota la directory soprastante

/

usr lib home

bin games mario

Prova.c

cd ../../usr

more ../home/mario/Prova.c cd ./bin corrisponde a  cd bin

Page 132: Precorso di Informatica 2008/2009

Pre

cors

o d

i In

form

ati

ca -

A.A

. 2

00

8/2

00

9 Navigare nel File System

Comandi per visitare il file system:

• cd <pathname> sposta la directory corrente

• pwd ritorna il path assoluto della directory corrente

• ls [<pathname>] visualizza il contenuto della directory. Prova le opzioni –l e –a

• more <pathname> visualizza il contenuto del file

• cp <path1><path2> copia il primo file nel secondo (path2 viene sovrascritto)