Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca...

56
Architettura dei calcolatori da una lezione del prof. Luca Cabibbo 1

Transcript of Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca...

Page 1: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Architettura dei calcolatorida una lezione del prof. Luca Cabibbo

1

Page 2: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Applicazioni 1/2

Aspetti rilevanti di un’applicazione (o programma applicativo o programma)

• gestisce informazioni

• offre operazioni per la manipolazione di queste informazioni

• consente di perseguire un qualche scopo

2

Page 3: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Il gioco Solitario

• qual è lo scopo? quali le informazioni? quali le operazioni?

• informazioni: • carte• mazzo (in alto a sinistra) • pile di carte (sono 4, in alto a destra) • colonne di carte (sono 7, in basso)

3

Page 4: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Ulteriori commenti

• In un’applicazione • di solito le operazioni possono essere eseguite in modo interattivo

• non è sempre così

• l’utente può perseguirne lo scopo utilizzando solo le operazioni fornite dall’applicazione

• Componenti software che possono essere (ri)usati nello sviluppo di nuovo software hanno le stesse caratteristiche

4

Page 5: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Applicazioni 2/2

Esistono moltissime tipologie di applicazioni

Le applicazioni dei computer hanno in genere caratteristiche simili a quelle del gioco Solitario

• un’applicazione permette ai suoi utenti di perseguire un particolare scopo

• un’applicazione gestisce un insieme di dati e informazioni

• un’applicazione consente l’elaborazione delle informazioni che gestisce mediante delle operazioni

• ciascuna operazione può essere eseguita solo se sono soddisfatte le condizioni che ne abilitano l’esecuzione

• ciascuna operazione va richiesta con la sua modalità

• l’utente interagisce con l’applicazione eseguita dal computer richiedendo l’esecuzione di una sequenza di operazioni, un’operazione alla volta

5

Page 6: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Applicazioni e risoluzione di problemi

La possibilità di poter eseguire su un medesimo computer una varietà di applicazioni diverse rende il computer una macchina che può essere utilizzata da un utente, in modo versatile, per la risoluzione di problemi

• l’utente deve possedere un’applicazione in grado di risolvere un suo problema

• inoltre, l’utente deve fornire all’applicazione delle “istruzioni” dettagliate su come risolvere il problema

• ciascuna “istruzione” corrisponde alla richiesta di eseguire una delle operazioni fornite dall’applicazione

• ciascuna applicazione è infatti caratterizzata • dalla tipologia di informazioni che permette di gestire

• dall’insieme delle operazioni che fornisce

• per usare un’applicazione, l’utente deve conoscere l’insieme delle operazioni che l’applicazione fornisce, comprenderne il significato e saperne richiedere l’esecuzione

6

Page 7: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Alcuni esempi di applicazioni

7

Page 8: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Word processor

Un word processor è un’applicazione per l’elaborazione di testi che consente la scrittura e stampa di documenti

8

Page 9: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Browser web

Un browser web consente l’accesso a documenti (chiamati pagine) sul World Wide Web e la loro visualizzazione

9

Page 10: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Applicazione web

Un’applicazione web è un’applicazione sul World Wide Web che viene eseguita tramite un browser web

10

Page 11: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Intelligenza

• Intelligenza:• “the capacity to learn and solve problems” (Websters dictionary)

• In particolare:• the ability to solve novel problems

• the ability to act rationally

• the ability to act like humans

• Intelligenza Artificiale• costruire e capire entità o agenti intelligenti

• 2 approcci principali: “engineering” versus “cognitive modeling”

Page 12: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Applicazioni e interfacce

• Un’applicazione viene utilizzata tramite la sua interfaccia utente

• L’interfaccia di un’applicazione è il mezzo di interazione tra l’utente (utente dell’applicazione) e il computer (esecutore dell’applicazione)

• Tre tipi principali di interfacce utente • interfacce grafiche (GUI)

• interfacce a caratteri (stdin / stdout)

• interfacce digitali (es., arduino)

12

Page 13: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Interfacce grafiche

Le interfacce grafiche hanno di solito le seguenti caratteristiche• visualizzano sullo schermo del calcolatore delle finestre

• operazioni e informazioni sono rappresentate da opportuni elementi• desktop (scrivania), finestre, menu, pulsanti e icone, finestre di dialogo, …

• tecnologia WYSIWYG (what you see is what you get)

• permettono l’esecuzione di operazioni mediante l’interazione con la tastiera e il mouse

13

Page 14: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Architettura dei calcolatori

Che cos’è un computer (o calcolatore)? Come funziona un computer?

Un computer è un sistema programmabile• un computer è un sistema

• un sistema è un oggetto costituito da molte parti (componenti) che interagiscono, cooperando, al fine di ottenere un certo comportamento

• un computer è programmabile• è in grado di eseguire programmi

Studiare l’architettura di un sistema• individuare ciascun componente del sistema

• comprendere i principi di funzionamento di ciascun componente

• comprendere come i vari componenti interagiscono tra di loro

14

Page 15: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Hardware e software

La prima decomposizione di un computer • hardware

• la struttura fisica del computer, costituita da componenti elettronici ed elettromeccanici

• software• l’insieme dei programmi che consentono all’hardware di svolgere dei compiti utili

• software di base e software applicativo

15

software applicativo

software di base

hardware

Page 16: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Software e macchine virtuali

Il software virtualizza il computer• il software mostra ai suoi utenti il computer come una macchina virtuale più

semplice da usare rispetto all’hardware

• macchina virtuale – una macchina che fisicamente non esiste nella realtà, ma di cui si può avere la sensazione dell’esistenza

Ad esempio • usando l’applicazione Solitario abbiamo l’impressione di avere davanti a noi

delle carte, e di poterle muovere

• in realtà, davanti a noi non c’è nessuna carta – ma solo una loro rappresentazione virtuale

16

Page 17: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Categorie di software

Due categorie principali di software • software applicativo – ad esempio, Word – il computer è una macchina

virtuale che può essere utilizzata per la risoluzione di problemi

• software di base – ad esempio, il sistema operativo – il computer è una macchina virtuale più semplice da gestire e programmare – rispetto all’hardware utilizzato

17

Page 18: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Organizzazione a livelli e linguaggio macchina

Nell’organizzazione a livelli, l’hardware è l’unica macchina reale, mentre gli strati software corrispondono a macchine virtuali

• il repertorio di operazioni (chiamate istruzioni) che l’hardware sa eseguire direttamente è chiamato linguaggio macchina del computer

• istruzioni estremamente elementari – che il computer sa eseguire in modo molto efficiente

• le diverse macchine virtuali e i relativi insiemi di operazioni sono via via più astratti

• il significato di ciascuna operazione è sempre più vicino alla logica dell’utente e più lontano dalla logica del computer come dispositivo elettronico

• le “macchine virtuali” sono via via più semplici da usare

• le diverse macchine sono comunque ugualmente espressive

Andiamo a studiare il funzionamento della “macchina computer” reale

18

Page 19: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Macchina di Von Neumann

L’architettura dell’hardware di un computer reale è molto complessa • la macchina di Von Neumann è un modello semplificato ma effettivo dei

computer moderni

• John Von Neumann è stato il progettista (intorno al 1945) del primo computer in cui i programmi potevano essere memorizzati nel computer –anziché codificati mediante cavi e interruttori

19

Page 20: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Architettura della macchina di Von Neumann

20

CPU unità centrale

di elaborazione

bus

interfacciai/o

<memoria

secondaria

interfacciai/o

schermo

interfacciai/o

8mouse

interfacciai/o

7tastiera

macchina di Von Neumann

memoria

centrale

Page 21: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Funzionalità nella macchina di Von Neumann

Il funzionamento del computer viene descritto in termini di poche funzionalità e di poche componenti (macro-unità) funzionali

21

trasferimento

controlloelaborazione memorizzazione

scambio di dati con l’utente

Page 22: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Periferiche e interfacce di ingresso-uscita

Lo scambio di dati con l’utente avviene mediante diversi dispositivi di ingresso e/o uscita (chiamati periferiche) collegati al computer

• ad es., tastiera, mouse, schermo, stampante, modem

• anche le memorie di massa (ad esempio, le unità disco e il lettore di CD-ROM) sono considerati periferiche

Nella macchina di Von Neumann, le periferiche non fanno parte del computer

• ogni periferica viene controllata mediante un’opportuna interfaccia

• un’interfaccia ha il compito di tradurre i segnali interni del computer in un formato comprensibile alla periferica stessa, e viceversa

22

Page 23: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Trasferimento

Il bus è il componente del computer dedicato al trasferimento dei dati e delle informazioni di controllo tra le varie parti del computer

• il bus è un insieme dei collegamenti

• il bus favorisce la modularità e l’espandibilità del computer

23

Page 24: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Unità centrale di elaborazione

L’unità centrale di elaborazione (o processore o CPU) è composta dall’unità di controllo e dall’unità aritmetico-logica

• l’unità centrale di elaborazione controlla l’esecuzione di un programma (memorizzato in memoria centrale sotto forma di una sequenza di istruzioni del linguaggio macchina) eseguendo ordinatamente le istruzioni del programma

L’esecuzione di un programma è basata sull’esecuzione ripetuta, controllata dal processore, di tre passi

Ciclo fetch-decode-execute• fetch – il processore legge dalla memoria la prossima istruzione da eseguire • decode – il processore si prepara ad eseguire la prossima istruzione • execute – il processore esegue l’istruzione, svolgendo un certo numero di

micro-operazioni

24

Page 25: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Controllo

Il coordinamento (controllo) tra le varie parti del computer è svolto dall’unità di controllo

• l’unità di controllo è un altro componente dell’unità centrale di elaborazione

• ogni componente dal computer esegue solo le azioni che gli sono richieste dall’unità di controllo

L’attività di controllo svolta dall’unità di controllo • coordinamento dell’esecuzione temporale delle funzioni che devono essere

svolte sia internamente all’unità di elaborazione che negli altri elementi funzionali

• avviene in modo sincrono rispetto alla scansione temporale imposta dall’orologio di sistema (clock)

25

Page 26: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Elaborazione

Le istruzioni del linguaggio macchina di un computer per la manipolazione dei dati corrispondono ad operazioni elementari

• operazioni aritmetiche

• operazioni relazionali (confronto tra dati)

• operazioni su caratteri e valori di verità

• altre operazioni numeriche

Un computer sa svolgere poche tipologie di operazioni elementari• ma le sa eseguire in modo molto efficiente

• un computer può eseguire centinaia di milioni di istruzioni del linguaggio macchina al secondo

L’elaborazione dei dati viene svolta dall’unità aritmetico-logica (ALU)• l’ALU è un componente dell’unità centrale di elaborazione

26

Page 27: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Struttura di una unità centrale di elaborazione

27

unità di controlloPC

IR PSW

registro

registro

...

registro

ALU

unità centrale di elaborazione

memoria

centrale

o

periferiche

scrivi

leggi

bus

controllo

bus

dati

bus

indirizzi

operazione

esegui

stato

MAR

MDR

Page 28: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Microprocessore

L’unità centrale di elaborazione è solitamente realizzata fisicamente sotto forma di microprocessore

• i microprocessori sono dispositivi elettronici estremamente complessi

28

Page 29: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Caratteristiche dei microprocessori

Principali caratteristiche tecnologiche di un microprocessore • repertorio di istruzioni (linguaggio macchina)

• velocità (misurata come frequenza del clock)

• ampiezza del bus

• co-processore

• cache

• numero di core

• consumo energetico

29

Page 30: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Esempio di repertorio di istruzioni

read x• legge il dato dal registro della periferica di I/O e lo scrive nella cella di

memoria di indirizzo x

write x• scrive nel registro della periferica di I/O il dato contenuto nella cella di

memoria di indirizzo x

loadA x (loadB x)• scrive nel registro A (B) il contenuto della cella di memoria di indirizzo X

sumAB (multAB)• esegue la somma (il prodotto) dei dati nei registri A e B, e scrive il risultato nel

registro A

storeA x• scrive il contenuto del registro A nella cella di memoria di indirizzo x

halt• termina l’esecuzione

30

Page 31: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Es.: Programma per la somma di due numeri

31

1 …

2 loadA 11

3 loadB 12

4 sumAB

5 storeA 13

6 …

7

8

9

10

11 35

12 7

13

14

programma

dati

xy

z = x+y

Page 32: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Memorizzazione

Un computer ha la necessità di memorizzare, in modo temporaneo o permanente, dei dati – l’unità responsabile della memorizzazione dei dati è la memoria

• la memoria è organizzata in celle• indirizzo• memorizzazione di un valore

Un’unità di memoria fornisce due sole operazioni • memorizzazione di un valore in una cella (scrittura) • accesso al valore memorizzato in una cella (lettura)

che sono rappresentate da ulteriori istruzioni del linguaggio macchina

La memoria viene usata per memorizzare• le informazioni di interesse • i programmi per l’elaborazione delle informazioni di interesse

32

Page 33: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Memoria centrale

La memoria è il componente del computer in cui vengono immagazzinati e da cui vengono acceduti i dati e i programmi

• la memoria centrale (o principale) è la memoria che può essere acceduta direttamente dal processore

33

Page 34: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Memoria centrale

Una memoria • si compone di celle (o locazioni) di memoria

• ogni cella di memoria è in grado di memorizzare una parola di memoria (ovvero, un sequenza di bit di lunghezza fissata)

• ogni cella è caratterizzata da • un indirizzo (univoco)

• un valore

• fornisce le operazioni di lettura e scrittura

34

Page 35: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Caratteristiche delle memorie centrali

Le caratteristiche principali di una memoria centrale • capacità

• 1Kbyte indica 210 byte = 1024 byte ≈ 103 byte

• 1Mbyte indica 220 byte = 1024 Kbyte = 1 048 576 byte ≈ 106 byte

• 1Gbyte indica 230 byte = 1024 Mbyte ≈ 109 byte

• velocità di accesso

• volatilità • memorie RAM (random access memory)

• memorie ROM (read only memory) e loro varianti

35

Page 36: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Rappresentazione di informazioni

Scopo fondamentale di un computer è consentire l’elaborazione di informazioni

• informazioni rappresentate sotto forma di dati • un dato è un’informazione elementare

• i computer sanno rappresentare ed elaborare direttamente solo dati molto semplici

• numeri interi

• numeri reali (razionali)

• caratteri

• valori di verità (vero/falso)

36

Page 37: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Codifica dei dati

In un computer, i dati (e le istruzioni) sono codificati in forma binaria, ovvero mediante delle sequenze finite di cifre 0 e 1

• il bit (cifra binaria) la più piccola unità di informazione in un computer• un bit può avere valore 0 oppure 1

• ciascun bit è memorizzato da una cella elementare di memoria • un dispositivo (ad es., elettronico, magnetico o ottico) in cui sono chiaramente

distinguibili due stati

Un bit è un’unità di informazione troppo piccola per essere usata individualmente

• dati codificati sotto forma di sequenze di bit

• problema dell’interpretazione delle sequenze di bit

37

Page 38: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Sequenze di bit e loro interpretazione

Ad esempio, un byte è una sequenza di 8 bit

Le possibili combinazioni degli 8 bit in un byte sono 28 = 256• un byte può essere utilizzato per rappresentare un valore tra 256 diversi

possibili valori • ad esempio, un piccolo numero intero, o un carattere in un alfabeto che contiene al più

256 caratteri, ...

• solitamente sono possibili diverse scelte sull’insieme dei valori possibili • ad esempio, con un byte si può rappresentare un numero naturale compreso

nell’intervallo da 0 a 255, oppure un numero intero relativo nell’intervallo da -128 a 127

• necessario un meccanismo per poter interpretare correttamente ciascun byte

• nella programmazione, vengono usati dei meccanismi di tipizzazione, immersi nei programmi

38

Page 39: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Tipi di dato

Alcuni tipi di dato in un computer • numeri naturali (ovvero, senza segno) a 8 bit

• per valori compresi tra 0 e +255

• interi relativi (ovvero, con segno) a 8 bit • per valori compresi tra -128 e +127

• interi relativi (ovvero, con segno) a 32 bit • per valori compresi tra -2147483648 e +2147483647

• caratteri dell’alfabeto ASCII (8 bit)

• caratteri dell’alfabeto Unicode (16 bit)

• numeri reali (razionali) in virgola mobile a 64 bit • mantissa con 18 cifre significative ed esponente tra -324 e +308

• numeri reali (razionali) in virgola mobile a 32 bit • 9 cifre significative ed esponente tra -45 e +38

• valori logici (vero o falso)

39

Page 40: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Struttura di una memoria centrale

40

1 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0

1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0

128 celle di memoria

di 16 bit ciascuna

indirizzo

della cella

00000000

00000001

00000010

00000011

00000100

00000101

00000110

00000111

01111000

01111001

01111010

01111011

01111100

01111101

01111110

01111111

........

........

........

........

parola letta

o da scrivere

bus dati

bus

indirizzi

cella selezionata

bus di

controllo

0 1 1 1 1 0 1 0

leggi/scrivi

Page 41: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Potenze di 2 e potenze di 10

• 1K (kilo) = 210 = 1024 ≈ 103

• 1M (mega) = 220 = 1 048 576 ≈ 106

• 1G (giga) = 230 ≈ 109

• 1T (tera) = 240 ≈ 1012

• 1P (peta) = 250 ≈ 1015

• 1m (milli) = 10-3

• 1μ (micro) = 10-6

• 1n (nano) = 10-9

41

Page 42: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Memorie secondarie

Le memorie secondarie hanno le seguenti caratteristiche specifiche, che le differenziano dalle memorie centrali

• non volatilità

• grande capacità

• bassi costi

• bassa velocità di accesso

42

Page 43: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Memorie secondarie

I dati di una memoria secondaria, per essere acceduti dal processore, devono comunque transitare nella memoria centrale

• la memoria secondaria memorizza tutti i programmi e i dati del computer

• la memoria centrale memorizza i programmi in esecuzione e i dati necessari per la loro esecuzione

43

Page 44: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Velocità a confronto

Alcuni indicatori di prestazioni di computer commerciali attuali • processore: 3GHz

• lavora per micro-operazioni da 0,33 ns (1 ns = 10-9 s)

• 2 core

• bus a 64 bit

• memoria RAM: 1333MHz • tempo di accesso di 0,75 ns

• disco rigido: 7200 rpm = 120 rps• tempo medio di accesso 4 ms per un intero settore di 4kB

(1 ms = 10-3 s)

• ma circa 1 μs per byte (1 μs = 10-6 s)

44

Page 45: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Il sistema operativo

Il sistema operativo è il principale componente del software di base, che ha le seguenti funzionalità

• è responsabile della gestione delle risorse del computer, e in particolare di come le risorse vengono allocate alle applicazioni e dell’ottimizzazione del loro uso

• fornisce all’utente un’interfaccia per usare e gestire il computer in modo semplice

Ad esempio • come fa un utente ad avviare l’esecuzione di un programma?

• che succede quando l’utente avvia l’esecuzione di un programma?

45

Page 46: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Architettura di un sistema operativo

46

gestore

della

memoria

hardware

gestore

delle

periferiche

gestore

dei

file

interprete comandi

nucleo

programmi applicativi

sis

tem

a o

pe

rativo

programmi

di

utilità

Page 47: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Sistema operativo e macchine virtuali

Le diverse componenti di un sistema operativo hanno, tra l’altro, lo scopo di gestire e virtualizzare le diverse risorse del computer, ovvero di renderle più semplici da utilizzare da parte dei suoi utenti

• utenti • utenti finali – interagiscono attraverso l’interprete comandi

• programmi in esecuzione

• risorse • processori, memoria principale, periferiche, memorie secondarie, interfaccia utente

47

Page 48: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Nucleo

Il nucleo del sistema operativo (o kernel) è il componente del sistema operativo più complesso, che in particolare è responsabile della gestione della risorsa unità di elaborazione (processore) e dei processi(un processo è un programma in esecuzione)

• un solo processore reale (o comunque pochi)

• tanti processori virtuali, uno per ciascun processo • ciascun processo in esecuzione ha l’impressione di essere l’unico processo eseguito dal

computer

• il nucleo ripartisce la capacità di elaborazione dell’unico processore reale (o dei pochi) tra i tanti processori virtuali

Il nucleo fornisce anche un insieme di servizi di base di supporto agli altri componenti del sistema operativo

48

Page 49: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Gestore della memoria

Il gestore della memoria è responsabile dell’allocazione dinamica della memoria centrale ai programmi in esecuzione

• per ciascun processo viene allocata un’area di memoria virtuale sufficiente per la sua esecuzione

• gestione della corrispondenza tra le memorie virtuali e l’unica memoria reale

• la dimensione della memoria virtuale può essere maggiore di quella reale

49

Page 50: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Gestore delle periferiche

Il gestore delle periferiche adatta la modalità d’uso delle singole periferiche (che possono essere estremamente diverse) a quello di poche tipologie di periferiche virtuali

• ad esempio, un programma può usare una stampante senza conoscere i dettagli precisi di funzionamento della stampante fisicamente disponibile

• un driver è un adattatore di dati dal formato virtuale (generico) usato dai programmi applicativi a quello reale della periferica effettivamente in uso

50

Page 51: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Gestore dei file

Il gestore dei file (o file system) è dedicato alla gestione della memoria secondaria (dischi)

• i dischi sono fisicamente organizzati in superfici, cilindri e settori

• il gestore dei file consente l’uso della memoria secondaria mediante una organizzazione logica in volumi, cartelle e file

• un file è una sequenza di dati di dimensioni variabili, con accesso sequenziale oppure casuale

• una cartella (o direttorio) è un contenitore di un insieme di file e cartelle

• un volume è un contenitore di file e cartelle, solitamente corrispondente ad una unità a disco

• gestione delle corrispondenze tra file e settori

Il gestore dei file permette inoltre di mostrare anche le periferiche come dei file, da cui è possibile leggere e/o su cui è possibile scrivere sequenze di dati

51

Page 52: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Interprete comandi

L’interprete comandi è l’interfaccia utente del sistema operativo • definisce le operazioni che possono essere utilizzate direttamente dall’utente

finale, chiamate comandi

• esempi di comandi sono • esegui un’applicazione

• apri un documento (eseguendo l’applicazione responsabile della manipolazione di quel tipo di documento)

L’interprete comandi può essere basato su una • interfaccia a caratteri

• interfaccia grafica

52

Page 53: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Programmi di utilità

Il sistema operativo è corredato da un insieme di programmi di utilità, per la configurazione, l’ottimizzazione e la gestione ordinaria del sistema

• gestione degli utenti

• gestione delle periferiche

• gestione delle applicazioni

• altri accessori

53

Page 54: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Programmi

Un programma è una descrizione• di un insieme di operazioni che possono essere eseguite da un computer

• dei dati necessari all’esecuzione delle operazioni

La programmazione è l’attività di scrittura dei programmi • svolta dai programmatori

Per evitare ambiguità, chiamiamo • applicazione, un programma dal punto di vista dell’utente

• programma, la descrizione di un’applicazione

54

Page 55: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Linguaggi di programmazione

Un programma è la descrizione di un’applicazione• in pratica, un programma è un insieme di frasi

• le frasi descrivono le operazioni e le tipologie di dati di interesse

• le frasi sono scritte in un qualche linguaggio specializzato per la definizione di programmi

Un linguaggio di programmazione è un linguaggio specializzato per la definizione di programmi

• ad esempio, Pascal, C, C#, Java, Perl, Visual Basic, Prolog, ML, Python, Ruby, …

• in questo corso faremo riferimento a Java

55

Page 56: Architettura dei calcolatori - fieromatre.files.wordpress.com · da una lezione del prof. Luca Cabibbo 1. Applicazioni 1/2 Aspetti rile Àanti di un’appliazione (o programma appliatio

Compilatori

Un computer è in grado di eseguire solo le istruzioni elementari del proprio linguaggio macchina

• in teoria i programmi vanno scritti in linguaggio macchina

• in pratica, i programmi vengono scritti usando linguaggi di programmazione di alto livello

• i linguaggi di programmazione di alto livello sono più semplici da usare del linguaggio macchina

• i compilatori sono applicazioni per tradurre programmi scritti in un linguaggio di programmazione in programmi equivalenti scritti nel linguaggio macchina di un computer

56