Sei sulla pagina 1di 101

La struttura del calcolatore

1
Anno accademico 2010-2011

Sommario
La struttura del calcolatore
Larchitettura a BUS
La CPU
La gerarchia di memorie
La memoria centrale

La memoria secondaria
I dispositivi di I/O

Linguaggio macchina e assembler


Il sistema operativo
Scopo del sistema operativo
Architettura e servizi
2
Anno accademico 2010-2011

La struttura del calcolatore


IBM S/360 Mod 40 (1964)
1.6 MHz 32KB256KB
225.000$

IBM S/360 Mod 50 (1964)


2.0 MHz 128KB256KB
550.000$

IBM S/360 Mod 65 (1964)


5.0 MHz 256KB1MB
1.200.000$
3
Anno accademico 2010-2011

La struttura del calcolatore


Si possono considerare diversi livelli di astrazione:
Circuiti elettronici (hardware)
Architettura e linguaggio macchina
Sistema operativo (software di sistema)
Linguaggi di programmazione
Programmi applicativi

Silicon Graphics

Il calcolatore basato su circuiti


elettronici digitali, ovvero modellabili con
lalgebra di Boole; i circuiti elettronici
implementano le funzioni logiche AND,
OR, NOT, permettono di memorizzare il
valore di variabili booleane, di effettuare
calcoli, etc.
Anno accademico 2010-2011

La macchina di Von Neumann 1


Tutti i calcolatori attuali si rifanno allarchitettura di Von Neumann,
costituita dalle quattro componenti:

CPU (Central Processing Unit)

Memoria centrale

Bus di sistema

Periferiche

Memoria
centrale

BUS di sistema

tastiera

Anno accademico 2010-2011

CPU

mouse

memoria di
massa

Periferiche

monitor
5

La macchina di Von Neumann 2


Carratteristiche del modello di Von Neumann
Proceduralit: possibilit di eseguire differenti programmi

memorizzati

Il modello basato sul paradigma di programmazione

procedurale: il programma indica la sequenza di istruzioni


da eseguire per ottenere la soluzione ad una data classe di
problemi

Sequenzialit: regola della selezione dellistruzione da

eseguire rigidamente fissata

Connessione tra le unit funzionali con singolo flusso di

informazione tra memoria e processore: architettura a BUS

6
Anno accademico 2010-2011

Architettura a BUS
Larchitettura pi consolidata per il calcolatore prevede quindi
unit funzionali fra loro collegate attraverso un unico canale di
comunicazione, il bus
Il bus fisicamente realizzato mediante un insieme di connettori
elettrici
Dispositivi di Input/Output

CPU

Memoria
principale

I/O

I/O

I/O

BUS
Indirizzi
Dati
Controllo
Anno accademico 2010-2011

Il BUS 1
Il bus utilizzato per trasferire dati fra le unit
funzionali
Lunit che inizia il trasferimento (in genere la CPU)

fornisce lindirizzo, che individua univocamente il dato,


sulle linee del bus indirizzi, e configura le linee del bus di
controllo, inviando un comando al dispositivo che
contiene il dato (es. READ, alla memoria principale)
Il dato da trasferire reso disponibile sul bus dati e
viene ricopiato nel dispositivo destinatario

8
Anno accademico 2010-2011

Il BUS 2
Esempio
Un bus indirizzi composto da 32 connettori indirizza 4 GB di

memoria
Per una CPU a 32 bit, anche il bus dati composto da 32
connettori
Indirizzo a
32 bit (32 fili)
0008AB38

CPU
0008AB38

Memoria
principale
0008AB38

CPU
5F66B102

Memoria
principale
5F66B102

0008AB38
5F66B102

READ1 MEM1

READ1 MEM1
5F66B102
Dato a 32 bit (32 fili)
trasferito dalla memoria principale alla CPU

Anno accademico 2010-2011

La CPU 1
La Central Processing Unit lunit
centrale di elaborazione: esegue le
istruzioni dei programmi e ne
regola il flusso, esegue i calcoli
La CPU un dispositivo sincrono,
cio pu cambiare stato solo
quando riceve un impulso di clock,
Intel Pentium
lorologio del sistema che fornisce al computer un
battito regolare
La CPU lavora a N GHz: segue un ritmo di N miliardi di
impulsi al secondo (es., una CPU con un clock a 3 GHz
temporizzata da tre miliardi di impulsi al secondo)
10
Anno accademico 2010-2011

La CPU 2
La frequenza di clock determina la velocit di
elaborazione del computer: pi alta la frequenza di
clock, maggiore la velocit di elaborazione
La velocit e la potenza di un computer dipendono
per anche dalla larghezza del bus, ovvero dal numero
di bit (ampiezza del singolo dato) che il processore
in grado di ricevere e di elaborare simultaneamente
Attualmente, i processori sono in grado di elaborare dati

rappresentati con 64 bit

11
Anno accademico 2010-2011

La CPU 3
La CPU costituita da tre elementi fondamentali:
Unit AritmeticoLogica (ALU)
Registri
Unit di Controllo (CU)

BIU

registri

Bus Interface
Unit

EU

Execution Unit

PC Contatore di programma
(Program Counter)

ALU

BUS

CU

IR

Registro Istruzione
(Instruction Register)

12
Anno accademico 2010-2011

La CPU 4
A livello macroscopico, ad ogni impulso di clock, la CPU:
legge il suo stato interno (determinato dal contenuto dei

registri di stato) e la sequenza di ingresso (determinata dal


contenuto dei registri istruzione e dati)

produce un nuovo stato dipendente dallo stato in cui si

trovava originariamente

In pratica, la CPU realizza una complessa funzione logica,


con decine di ingressi e di uscite

la corrispondente tabella di verit avrebbe un numero


enorme di righe (miliardi di miliardi)

13
Anno accademico 2010-2011

La CPU 5
Lo stato della CPU costituito da informazioni
(memorizzate negli opportuni registri) su:
dati da elaborare (contenuti nei
istruzione da eseguire (nel

registri dati)

registro istruzioni)

indirizzo in memoria della prossima istruzione da eseguire

(nel program counter)

eventuali

anomalie o eventi
lelaborazione (nei registri flag)

verificatisi

durante

14
Anno accademico 2010-2011

La CPU 6
Set di istruzioni di base:
somma (da cui sottrazione)
scorrimento (shift)

(da cui moltiplicazione e divisione)

operazioni logiche
operazioni di accesso alla memoria

trasferimento di un dato da una locazione di memoria ad unaltra


trasferimento da memoria a un registro della CPU
trasferimento da un registro della CPU a memoria
operazioni di confronto (sufficiente confronto con zero)

Le operazioni (eccetto quelle di accesso alla memoria) sono


eseguite allinterno della ALU e coordinate dallunit di controllo
Anno accademico 2010-2011

15

LUnit AritmeticoLogica
LALU (ArithmeticLogic Unit) un circuito
in grado di eseguire operazioni aritmetiche
e logiche su 2 operandi, rappresentati su n
bit (es. 32/64 bit); oltre al risultato
delloperazione pu produrre informazioni
ulteriori su linee specifiche (il risultato
zero, si verificato un overflow, etc.)

A L U o p e r a ti o n

a
ALU

Z e ro
R e s u lt
O v e r f lo w

C arry O u t

Il tipo di operazione selezionata, in un dato istante, dipende dallo


stato di alcune linee di controllo provenienti dalla CU
Le operazioni logiche (es. AND) vengono eseguite bit a bit fra i due
operandi
Esiste una unit specializzata per le operazioni in virgola mobile (FPU)
16
Anno accademico 2010-2011

I registri
Name

31

EAX

Use

ECX

GPR 1

EDX

GPR 2

EBX

GPR 3

ESP

GPR 4

EBP

Registri del Pentium

GPR 0

CS

Code segment pointer

SS

Stack segment pointer (top of stack)

DS

Data segment pointer 0

ES

Data segment pointer 1

FS

Data segment pointer 2

GS

Data segment pointer 3

EIP

GPR 5

ESI

GPR 6

EDI

GPR 7

EFLAGS

Instruction pointer (PC)


Condition codes

I registri sono dispositivi di memorizzazione che consentono un


accesso molto veloce ai dati che contengono; hanno dimensioni
prefissate (es. 32/64 bit)
Alcuni registri hanno funzioni specifiche (es. contatore di
programma)
Nella maggior parte delle architetture, le operazioni della ALU si
possono effettuare solo fra dati presenti nei registri ed anche il
risultato viene momentaneamente memorizzato in un registro
Anno accademico 2010-2011

17

Registri e loro funzioni


Registri accumulatori: sono integrati alla ALU, che vi pu operare
direttamente; mantengono risultati temporanei
Registro di stato: PSW (Program Status Word), contiene i flag di
stato, bit impostati dallHW della CPU dopo unoperazione, per
indicare particolari condizioni circa lesito dellesecuzione (es. segno,
risultato nullo, overflow, carry,)
Registro puntatore allo stack: SP (Stack
Pointer), lo stack un insieme di celle di
memoria che pu essere acceduto in
SP
modalit LIFO (LastInFirstOut); la 2000
posizione in cui si trova lelemento inserito
2000
per ultimo la testa dello stack, che viene
puntata dal registro SP; lo stack 2100
organizzato in modo da crescere verso
indirizzi decrescenti: SP viene decrementato
ad ogni nuova immissione (push) ed
incrementato ad ogni prelievo (pop)
0

18

Anno accademico 2010-2011

Lunit di controllo
memoria
Istruzione 1
Istruzione 2
Istruzione 3

BUS

P
C

CU

Segnali di controllo
(ALU, Registri, etc.)

02AD77F2

IR
02AD77F2

Esegue le istruzioni prelevandole dalla memoria nella fase di fetch


La prossima istruzione da eseguire individuata dallindirizzo presente nel
registro contatore di programma (PC)
Listruzione in esecuzione memorizzata nel registro istruzione (IR)
Listruzione un codice binario che deve essere decodificato dalla CU;
specifica il tipo di operazione, gli eventuali operandi, etc.

Normalmente le istruzioni sono eseguite in sequenza: dopo il fetch, il PC


viene incrementato, per fare riferimento allistruzione successiva
Anno accademico 2010-2011

19

Come si eseguono i programmi 1


Il processore esegue le istruzioni di un programma una
alla volta in sequenza: estrae le istruzioni dalla memoria,
le interpreta e le esegue una dopo laltra
Un programma indica la sequenza di istruzioni da eseguire

per ottenere la soluzione ad un data classe di problemi

Il processore esegue ogni istruzione mediante una


sequenza ben definita di operazioni detta ciclo di
istruzione o ciclo macchina
Estrazione di una istruzione: fase di fetch
Esecuzione dellistruzione: fase di execute
20
Anno accademico 2010-2011

Come si eseguono i programmi 2


Fase di fetch
Lunit

di controllo preleva dalla memoria centrale


listruzione, utilizzando lindirizzo conservato nel PC
L istruzione prelevata viene memorizzata nel registro IR

Fase di Execute
Lunit di controllo interpreta listruzione e determina le

operazioni da eseguire
Lunit di controllo sovrintende allesecuzione delle
operazioni
Il PC viene incrementato per puntare allistruzione
successiva

21
Anno accademico 2010-2011

Le memorie 1
Le memorie sono dispositivi per lo stoccaggio delle
informazioni
Ogni memoria costituita da celle, a cui si accede
tramite un indirizzo
In ogni elaboratore vi sono tre tipi di memorie:
Registri:

contengono informazioni
elaborazione della singola istruzione

necessarie

alla

Memoria centrale: contiene dati e istruzioni attualmente

elaborati dal processore

Memorie di massa: contengono dati e programmi che

non sono oggetto di elaborazione immediata

Anno accademico 2010-2011

22

Le memorie 2
I parametri fondamentali che definiscono una memoria sono:
Dimensione della parola (locazione di memoria)
Modalit di accesso (diretto o sequenziale)
Permanenza o volatilit dei dati
Capacit (numero di locazioni disponibili), espressa in KB, MB, GB,

etc.

Tempo di accesso, necessario per accedere ad una locazione di

memoria per unoperazione di lettura o scrittura, espresso in


nanosec, millisec, sec

In base agli ultimi due parametri, le memorie si collocano a


diversi livelli di una gerarchia, che va da memorie pi capaci
ma pi lente (memorie di massa) a memorie piccole e veloci
(registri)
23
Anno accademico 2010-2011

Gerarchia di memorie

Gbyte

Tbyte

24
Anno accademico 2010-2011

La memoria centrale 1
La memoria centrale o memoria principale, detta anche
RAM (Random Access Memory, ovvero memoria ad
accesso casuale, perch qualsiasi cella pu essere
letta/scritta in un tempo, mediamente, costante), la
memoria in linea con il processore, che contiene i dati
e i programmi che sono attualmente utilizzati/in
esecuzione
Un programma, quando non oggetto di elaborazione,
memorizzato su memoria di massa (dischi)

Quando deve essere eseguito, viene caricato tutto o in


parte, in memoria centrale (memoria virtuale)
25
Anno accademico 2010-2011

La memoria centrale 2
Le caratteristiche fondamentali della memoria centrale
sono:
accesso diretto alle informazioni
velocit elevata
volatilit: quando il computer viene spento, i dati e i

programmi presenti in memoria vengono cancellati

La tecnologia utilizzata per la memoria centrale


quella dei dispositivi a semiconduttori, che la fanno
apparire come una matrice di bit
Ogni bit presente come stato (alto o basso) di

tensione

26
Anno accademico 2010-2011

La memoria centrale 3
La memoria principale un insieme di locazioni o celle

Lunit di memorizzazione, la dimensione della singola


cella, il byte
Ciascun byte nella memoria individuato da un
indirizzo che lo distingue da tutti gli altri, costituito da
un numero variabile da 0 a 2N1, dove N la
dimensione in bit dellindirizzo (es. numero di bit/fili sul
bus indirizzi)

27
Anno accademico 2010-2011

La memoria centrale 4
Esempio: memoria con capacit di 4 GB
32 bit
00000000

227
128 MB

128 MB 27220 byte


137438953472 byte
00000xxxxxxxxxxxxxxxxxxxxxxxxxxx

07FFFFFF

27 bit indirizzo allinterno


del blocco

28
Anno accademico 2010-2011

Architettura della memoria centrale


Registro indirizzi

Esempio: un registro a 16 bit indirizza


65536 posizioni di memoria

Decodificatore indirizzi

Il decodificatore di indirizzi un
dispositivo in grado di selezionare la
cella il cui indirizzo corrisponde a
quello contenuto nel registro indirizzi

Il registro dati contiene linformazione


da scrivere/letta sulla/dalla cella
indirizzata; la dimensione del registro
uguale a quella delle celle di
memoria
Anno accademico 2010-2011

BUS

Il registro indirizzi contiene lindirizzo


della cella che deve essere acceduta;
la sua dimensione deve essere tale da
permettere che tutte le celle di
memoria possano essere indirizzate

Memoria centrale

Registro dati

29

Processore e RAM
La connessione tra memoria e processore rappresenta un
limite degli elaboratori di Von Neumann
Limite architetturale: il bus permette laccesso ad una sola

informazione per volta (collo di bottiglia)

Limite tecnologico: la velocit con cui il processore ottiene le

informazioni dalla memoria centrale (velocit di accesso della


RAM) inferiore alla velocit con cui in grado di elaborarle

Soluzioni
Allargamento del bus dati, in modo da poter estrarre pi

istruzioni e/o dati per volta

Superamento del limite tecnologico mediante introduzione di

una memoria intermedia tra memoria centrale e processore


che approssimi la velocit del processore

30
Anno accademico 2010-2011

La memoria cache
Piccola RAM molto veloce, interposta tra CPU e memoria
principale, per migliorare le prestazioni del sistema
Quando viene indirizzata una parola, quella parola e alcune di

quelle vicine vengono trasferite dalla lenta memoria centrale


nella pi piccola e veloce memoria cache, in modo che la
parola successiva sia accessibile pi velocemente (principio di
localit spaziotemporale del software)

31
Anno accademico 2010-2011

La memoria ROM
Una parte della memoria centrale la ROM (Read Only
Memory ), una memoria a sola lettura, destinata a
contenere informazioni non variabili
Caratteristiche delle memorie ROM:
accesso casuale alle informazioni
velocit elevata (inferiore alle RAM)

La ROM viene scritta in modo permanente in fase


costruttiva: le celle della ROM possono essere
successivamente lette, ma mai riscritte
Viene usata per memorizzare programmi di sistema
32
Anno accademico 2010-2011

Il software della ROM 1


La ROM contiene il software e i dati necessari ad
inizializzare il computer ed a far funzionare i dispositivi
periferici
Il nucleo del software della ROM costituito dalle
routine di avviamento che comprendono il caricatore di
bootstrap ed il ROM BIOS
Le routine di avviamento realizzano linizializzazione del
calcolatore:
Ne effettuano un rapido controllo di affidabilit, per

accertare che tutte le componenti hardware siano


perfettamente funzionanti
Caricano il sistema operativo dal disco (caricatore di
bootstrap)
33
Anno accademico 2010-2011

Il software della ROM 2


Il caricatore di bootstrap ha la funzione di leggere un
programma di lancio dal disco, detto bootstrap, e di
trasferire ad esso il controllo: il boostrap carica il nucleo
del sistema operativo e lo manda in esecuzione
Il ROM BIOS Binary InputOutput System la
parte della ROM attiva quando il computer al lavoro: il
suo ruolo quello di fornire un insieme di servizi di
base richiesti per il funzionamento delle periferiche

34
Anno accademico 2010-2011

Operazioni sulla memoria centrale


Le operazioni che si effettuano sulla memoria sono
operazioni di lettura e scrittura
Entrambe presuppongono lutilizzo di un indirizzo che
identifica
univocamente
la
cella
interessata
alloperazione
Loperazione di scrittura distruttiva, cio cancella
linformazione precedentemente contenuta nella cella
Loperazione di lettura preserva il contenuto della cella
indirizzata: allesterno della memoria centrale viene
trasferita copia dellinformazione
35
Anno accademico 2010-2011

La memoria secondaria
Esistono diversi dispositivi di memoria
secondaria: dischi magnetici (hard disk),
dischi ottici (CD, DVD), dispositivi USB,
memorie flash
Memoria non volatile ad alta capacit

Dischi magnetici
Anno accademico 2010-2011

Il disco fisso costituito da uno o pi


piatti metallici ricoperti di materiale
magnetico su entrambe le facce

Ciascuna superficie associata ad una o


pi testine di lettura/scrittura che si
muovono radialmente per leggere/
scrivere linformazione organizzata in
tracce concentriche
36

I dischi magnetici 1

I dischi magnetici rappresentano il mezzo fondamentale per la


memorizzazione di massa
I dischi ruotano ad una velocit (costante) compresa tra i 60 e i

200 giri al secondo

37
Anno accademico 2010-2011

I dischi magnetici 2
Linformazione disposta sul
disco in tracce, ovvero in
cerchi concentrici

Platters

Tracks
Platter

La densit dei bit decresce


dalle tracce interne alle pi
esterne
per
mantenere
costante la quantit di dati che
passano sotto le testine
nellunit di tempo
Le tracce sono divise in settori
La capacit di memorizzazione dei dischi cresce in
conseguenza allo sviluppo tecnologico

Sectors

Track

Anno accademico 2010-2011

38

I dischi magnetici 3
Il numero di bit contenuti in una traccia dellordine
delle centinaia di migliaia (512/4096 byte a settore)
Centinaia di settori (512/1024 per traccia)
Decine di migliaia di cilindri (tracce concentriche
disposte sulle diverse facce dei diversi dischi)
Per leggere (o scrivere) sul disco, la testina si deve
posizionare sulla traccia che contiene il dato ed
attendere che il dato passi sotto di essa
Le operazioni di lettura/scrittura si basano sulla propriet

del campo magnetico di indurre/essere indotto il/dal


passaggio di corrente in una bobina

Anno accademico 2010-2011

39

I dischi magnetici 4
La magnetizzazione avviene infatti mediante la testina
magnetica (una piccola bobina racchiusa in un involucro
di metallo dotato di una minuscola fessura, il traferro)
Facendo passare corrente nella bobina si induce un
campo magnetico nel traferro (invertendo la corrente si
inverte anche il campo)
Quando si fa passare corrente attraverso la testina
alternandone la direzione, le aree del disco al di sotto
della testina si magnetizzano in una delle due direzioni:
questo procedimento rappresenta la scrittura su disco
40
Anno accademico 2010-2011

I dischi magnetici 5
I dati binari che lunit scrive sul disco sono tradotti in
un formato costituito da una serie di aree magnetizzate
in un senso o nell'altro
Lettura da disco: poich le particelle magnetizzate sono
circondate da un campo magnetico, quando il traferro
passa sul disco le variazioni del campo inducono sulla
testina una corrente che si manifesta con variazioni di
voltaggio alle estremit della bobina; i circuiti di lettura
decodificano le variazioni nellandamento dellintensit di
corrente riconducendole a 0/1
41
Anno accademico 2010-2011

Accesso al disco
Il tempo medio di accesso
memorizzata su disco dato da

allinformazione

T tseek tlat ttr


tseek il

tempo di ricerca, necessario per posizionare la testina

tlat il

tempo di latenza, necessario perch linformazione

ttr il

tempo di trasferimento ; dipende dalla velocit di

sulla
traccia
che
contiene
dallampiezza dello spostamento

linformazione;

dipende

ricercata passi sotto la testina; dipende dalla velocit di


rotazione dei dischi
rotazione, dalla densit di registrazione e dalla quantit di
informazione da trasferire

Anno accademico 2010-2011

42

I dischi ottici 1
Sui dischi ottici si utilizza la tecnologia laser per
realizzare le operazioni di lettura/scrittura
Densit dei bit uniforme
Ununica traccia elicoidale o

tracce pi lontane dal centro del disco sono pi lunghe e

contengono un maggior numero di settori (fino al 40% in


pi rispetto alle tracce vicine al centro di rotazione)

43
Anno accademico 2010-2011

I dischi ottici 2
Sui dischi di lettura/scrittura i dati possono essere
modificati pi e pi volte (dischi a cambio di fase)
I dischi WORM, Write OnceRead Many, si possono
scrivere una sola volta
La tecnologia originale per dischi WORM consiste
nellinserire una pellicola di alluminio tra due piatti di
plastica o di vetro (o un pigmento polimerico)
Per scrivere un bit, lunit usa un raggio laser per
praticare un piccolo foro nellalluminio (o opacizzare il
pigmento): linformazione pu venir distrutta ma non
alterata
44
Anno accademico 2010-2011

I dispositivi di InputOutput
Insieme di dispositivi che consentono lacquisizione di dati (input), la
loro archiviazione (storage) e la loro presentazione verso il mondo
esterno (output)
Si possono classificare in base a tre diverse caratteristiche:

Comportamento: Input (read once), output (write only),


memoria (rilettura/riscrittura)

Partner: uomo o macchina

Velocit del flusso dei dati: quantit di dati trasferiti nellunit


di tempo da o verso la CPU o la memoria centrale

Anno accademico 2010-2011

input
input
input/output
storage

uomo
uomo
macchina
macchina

102 KB/s

velocit

Tastiera
Mouse
Rete
Hard Disk

104 KB/s

45

Linguaggio macchina e assembler

46
Anno accademico 2010-2011

Il linguaggio macchina
Quando il programma in esecuzione, memorizzato nella
memoria principale; esso rappresentato da una serie di numeri
binari che codificano le istruzioni eseguibili dallunit centrale
00000000101000010000000000011000
00000000100011100001100000100001
10001100011000100000000000000000
10001100111100100000000000000100
10101100111100100000000000000000

PC

Il programma non quindi distinguibile dai dati osservando il


contenuto della memoria; le istruzioni sono individuate dai valori
assunti dal registro PC durante lesecuzione del programma
Ogni codice binario codifica il tipo di istruzione (OPCODE) ed
eventuali parametri (es. registri, indirizzi in memoria)
I primi calcolatori si programmavano direttamente in linguaggio
macchina!
Anno accademico 2010-2011

47

Il set di istruzioni macchina


Linsieme delle istruzioni eseguibili, e la relativa
codifica, sono generalmente diverse per modelli diversi
di processore
Le istruzioni possono essere codificate con un numero
variabile di bit (es. Pentium) o con un numero fisso
(es. MIPS 32 bit)
Le categorie di istruzioni normalmente disponibili sono:
Trasferimento dati: spostano dati (byte, word) tra registri,
memoria principale e dispositivi di ingresso/uscita (I/O)
Aritmeticologiche: eseguono i calcoli nella ALU
Salti (condizionati e incondizionati): prendono decisioni e
alterano la normale esecuzione sequenziale delle istruzioni
Anno accademico 2010-2011

48

Esempio di programma
in linguaggio macchina
0100000000010000
0100000000010001
0100000000010010
0100000000010011
0000000000010000
0001000000010001
0110000000000000
0010000000010100
0000000000010010
0001000000010011
0110000000000000
0001000000010100
1000000000000000
0010000000010100
0101000000010100
1101000000000000

Anno accademico 2010-2011

leggi un valore in ingresso e ponilo nella cella numero 16 (variabile x)


leggi un valore e ponilo nella cella numero 17 (variabile y)
leggi un valore e ponilo nella cella numero 18 (variabile z)
leggi un valore e ponilo nella cella numero 19 (variabile r)
carica il registro A con il contenuto della cella 16
carica il registro B con il contenuto della cella 17
somma i contenuti dei dei registri A e B
copia il contenuto del registro A nella cella 20 (risultato, variabile s)
carica il registro A con il contenuto della cella 18
carica il registro B con il contenuto della cella 19
somma i contenuti dei registi A e B
carica il registro B con il contenuto della cella 20
moltiplica i contenuti dei registri A e B
copia il contenuto del registro A nella cella numero 20
scrivi in output il contenuto della cella numero 20
arresta lesecuzione (HALT)
spazio per la variabile x (cella 16)
spazio per la variabile y (cella 17)
spazio per la variabile z (cella 18)
spazio per la variabile r (cella 19)
spazio per la variabile s (cella 20)

49

Assembler
Per facilitare la programmazione stato definito il linguaggio
assembly
Lassembly impiega una notazione simbolica che in stretta
relazione con i codici in linguaggio macchina; il programma
scritto in assembly convertito automaticamente in linguaggio
macchina per mezzo del programma traduttore, lassembler
registro
LOAD R1, MEM1
CMP R1, R2
BREQ RISZERO
STORE R1, MEM1
RISZERO:
LOAD R2, MEM2

Anno accademico 2010-2011

Assembler

indirizzo di
memoria

10001000110110101101010101010100
01001000100100000000000000000000
11000000000000000000000000001000
10011000110110101101010101010100
10001001010110101101001000001100

OPCODE
(LOAD)

50

Trasferimento dei dati


Le istruzioni di trasferimento dati permettono di copiare il
valore di un dato fra registri o fra un registro e la memoria
Si fa riferimento ad un assembly generico
MEM
memoria
registro

LOAD REG1, MEM


LOAD REG1, [REG2]

REG1
Indirizzamento diretto

registro
memoria

STORE REG1, MEM


STORE REG1, [REG2]

REG1

registro
registro

MOVE REG1, REG2

REG2

Anno accademico 2010-2011

Indirizzamento indiretto

51

Operazioni aritmeticologiche
Permettono di eseguire operazioni aritmetiche o logiche
su due operandi
REG2

ADD REG1, REG2


ADD

OR REG1, REG2

REG1

ALU

REG1 0010 1100 1100 0101 1100 1111 0101 0000


REG2 1010 1110 0000 0000 0010 0001 1000 0001

REG1 1010 1110 1100 0101 1110 1111 1101 0001


52
Anno accademico 2010-2011

Istruzioni di salto 1
Modificano il flusso di esecuzione del programma
Il salto condizionato se viene effettuato solo quando si

verifica una certa condizione


BRanch EQual

UGUALI:

CMP REG1, REG2


BREQ UGUALI
LOAD REG1, MEM1

Confronta il contenuto
dei registri REG1 e
REG2

STORE REG2, MEM1

53
Anno accademico 2010-2011

Istruzioni di salto 2
Listruzione CMP confronta i due argomenti,
assegnando valori particolari a bit di condizione che si
trovano nel registro PSW (zero, segno)
Listruzione di salto condizionato pu essere basata su
diverse condizioni: BRNE (branch not equal), BRLE
(branch less equal), etc.
Listruzione di salto incondizionato, BRANCH, effettua
sempre il salto

54
Anno accademico 2010-2011

Assembler e linguaggi di alto livello

Il programma in assembler
LOAD REG1, a
LOAD REG2, b

ADD REG1, REG2

corrisponde allunica
istruzione C:

LOAD REG3, c
LOAD REG4, d

e(ab)(cd);

ADD REG3, REG4


MULT REG1, REG3
STORE REG1, e
55
Anno accademico 2010-2011

Il sistema operativo

56
Anno accademico 2010-2011

Cos un sistema operativo 1


Il software pu essere diviso in due grandi classi:
i programmi di sistema, che gestiscono le funzionalit del

sistema di calcolo

i programmi applicativi, che risolvono i problemi degli utenti

Linsieme dei programmi di sistema viene comunemente


identificato con il nome di Sistema Operativo (SO)
Definizione: Un sistema operativo un programma che
controlla lesecuzione dei programmi applicativi ed agisce
come interfaccia fra le applicazioni e lhardware del
calcolatore
57
Anno accademico 2010-2011

Cos un sistema operativo 2


Tutte le piattaforme hardware/software richiedono un
sistema operativo
Quando si accende un elaboratore, occorre attendere alcuni
istanti per poter iniziare a lavorare: durante questa pausa il
computer carica il SO

58
Anno accademico 2010-2011

Scopo del sistema operativo


Gestione EFFICIENTE delle risorse del sistema di elaborazione

Rendere AGEVOLE linterfaccia tra luomo e la macchina

59
Anno accademico 2010-2011

Percezione del sistema operativo


Per lutente, la percezione del calcolatore dipende
dallinterfaccia del SO
SO progettato pensando alla facilit duso
Qualche attenzione alle prestazioni
Scarsa attenzione allutilizzo delle risorse

Dal punto di vista del sistema di calcolo


Il SO viene percepito come un gestore di risorse (CPU,

RAM, I/O) e come un programma di controllo


Arbitra lesecuzione dei programmi utente

Non c uniformit nel definire cosa fa parte/non


compete del/al SO
60
Anno accademico 2010-2011

Esempio: il SO come gestore di risorse 1


Si consideri un ristorante con un capocuoco (che dirige la
cucina) ed i suoi aiutanti, camerieri e clienti:
I clienti scelgono un piatto dal men
Un cameriere prende lordine e lo consegna al capocuoco

Il capocuoco riceve lordine e assegna uno o pi aiutanti alla

preparazione del piatto


Ogni aiutante si dedicher alla preparazione di un piatto, il che

potr richiedere pi attivit diverse

Il capocuoco supervisiona la preparazione dei piatti e

gestisce le risorse (limitate) disponibili

61
Anno accademico 2010-2011

Esempio: il SO come gestore di risorse 2


Il capocuoco il sistema operativo!
I clienti sono gli utenti
Le ricette associate ai piatti sono i programmi
Il men ed il cameriere costituiscono linterfaccia verso il

sistema operativo (grafica e non)

Gli aiutanti sono i processi


La cucina il computer; pentole, fornelli, etc. sono le

componenti hardware

62
Anno accademico 2010-2011

Esempio: il SO come gestore di risorse 3


Problemi del capocuoco:
Esecuzione fedele delle ricette
Allocazione efficiente delle risorse esistenti (aiutanti, fornelli,

etc.)
Coordinamento efficiente degli aiutanti
Licenziamento degli aiutanti che non si comportano secondo
le regole

Problemi del sistema operativo:

Esecuzione dei programmi utente


Efficienza nelluso delle risorse (processori, memoria, dischi,

etc.)
Coordinamento dei processi
Protezione nelluso delle risorse e abort dei processi che se
appropriano indebitamente
63
Anno accademico 2010-2011

Il SO come macchina estesa 1


Visione a strati delle componenti hardware/software che
compongo un sistema di elaborazione

64
Anno accademico 2010-2011

Il SO come macchina estesa 2


Il SO pu essere inteso come uno strumento che virtualizza
le caratteristiche dellhardware sottostante, offrendo
allutente la visione di una macchina astratta pi potente e
pi semplice da utilizzare di quella fisicamente disponibile
In questa visione, un SO
nasconde a programmatori/utenti i dettagli dellhardware e

fornisce uninterfaccia conveniente e facile da usare


agisce come intermediario tra programmatore/utente e
hardware

Parole chiave
Indipendenza dallhardware
Comodit duso
Programmabilit
65
Anno accademico 2010-2011

Il SO come macchina estesa 3


Lutente in grado di utilizzare la macchina fisica senza
conoscere i dettagli della sua struttura interna e del suo
funzionamento

3.

4.

Anno accademico 2010-2011

re

2.

Hardware fornisce le risorse fondamentali di


calcolo (CPU, memoria, device di I/O)
Sistema Operativo
controlla e coordina
lutilizzo delle risorse hardware da parte dei
programmi applicativi dellutente
Programmi Applicativi definiscono le modalit
di utilizzo delle risorse del sistema, per risolvere
i problemi di calcolo degli utenti (compilatori,
database, video game, programmi gestionali)
Utenti persone, altri macchinari, altri
elaboratori

Sy

1.

ions soft w
licat
are
p
Ap
ms softwa
st e

Hardware

Visione a cipolla del sistema


di calcolo

66

Architettura del sistema operativo


I SO sono costituiti da un insieme di moduli, ciascuno
dedicato a svolgere una determinata funzione
I vari moduli del SO interagiscono tra loro secondo regole
precise, al fine di realizzare le funzionalit di base della
macchina
Interfaccia utente

Gestore dellI/O

Gestore dei Processi

Anno accademico 2010-2011

Gestore del
File System

Gestore della
Memoria Centrale
KERNEL

Linsieme dei moduli


per la gestione della
CPU e della memoria
centrale il kernel

67

Ancora sul sistema operativo


Riassumendo: Il sistema operativo fornisce un ambiente per
eseguire programmi in modo conveniente ed efficiente;
funge infatti da
Allocatore di risorse controlla, distribuisce ed alloca le
risorse (in modo equo ed efficiente)

Programma di controllo controlla lesecuzione


programmi utente e le operazioni sui dispositivi di I/O

dei

Esempio: il filesystem
Si ha a che fare con file, directory, etc., e non ci si deve
preoccupare di come i dati sono memorizzati sul disco
68
Anno accademico 2010-2011

Compiti del sistema operativo


Gestione dei processi

Gestione della memoria principale


Gestione della memoria di massa (file system)
Realizzazione dellinterfaccia utente
Protezione e sicurezza

69
Anno accademico 2010-2011

La gestione dei processi 1


Un processo un programma in esecuzione
Un processo utilizza le risorse fornite dal sistema di elaborazione

per assolvere ai propri compiti


La terminazione di un processo prevede il recupero di tutte le
risorse riutilizzabili ad esso precedentemente allocate

Normalmente, in un sistema vi sono molti processi, di alcuni


utenti, e alcuni sistemi operativi, che vengono eseguiti in
concorrenza su una o pi CPU
La concorrenza ottenuta effettuando il multiplexing delle
CPU fra i vari processi

70
Anno accademico 2010-2011

La gestione dei processi 2


Il sistema operativo responsabile delle seguenti attivit
riguardanti la gestione dei processi:
creazione e terminazione dei processi
sospensione e riattivazione dei processi
gestione dei deadlock

comunicazione tra processi


sincronizzazione tra processi

Il gestore dei processi realizza una macchina virtuale in cui


ciascun programma opera come se avesse a disposizione
ununit di elaborazione dedicata
71
Anno accademico 2010-2011

La gestione dei processi 3


Il gestore dei processi il modulo che si occupa del
controllo, della sincronizzazione, dellinterruzione e della
riattivazione dei programmi in esecuzione cui viene
assegnato un processore
La gestione dei processi viene compiuta secondo modalit
diverse, in funzione del tipo di utilizzo cui il sistema rivolto
Il programma che si occupa della distribuzione del tempo di
CPU tra i vari processi attivi, decidendone lavvicendamento,
chiamato scheduler

Nel caso di sistemi multiprocessore, lo scheduler si occupa


anche di gestire la cooperazione tra le diverse CPU presenti
nel sistema (bilanciandone il carico)
72
Anno accademico 2010-2011

Ciclo di vita dei processi


top nella coda di scheduling

running

nascita

ready
tempo scaduto
evento

termine
Anno accademico 2010-2011

attesa evento (es. I/O)

wait
73

Politiche di scheduling
Le politiche di scheduling sono raggruppabili in due grandi
categorie:
Preemptive: luso della CPU da parte di un processo pu

essere interrotto in un qualsiasi momento, e la risorsa


concessa ad altro processo

Non preemptive: una volta che un processo ha ottenuto luso

della CPU, unico proprietario della risorsa finch non ne


decide il rilascio

74
Anno accademico 2010-2011

Sistemi monotasking
I SO che gestiscono lesecuzione di un solo programma per
volta (un solo processo) sono detti monotasking
Non possibile sospendere un processo per assegnare la
CPU ad un altro
Sono storicamente i primi SO (es. MSDOS)
Tempo di utilizzo della CPU
Tempo di attesa di eventi
esterni

C
B

t
T

Anno accademico 2010-2011

75

Sistemi multitasking
I SO che permettono lesecuzione contemporanea di pi
programmi sono detti multitasking o multiprogrammati
Un programma pu essere interrotto e la CPU passata a un
altro programma
C

Tempo di utilizzo della CPU

Tempo di attesa di eventi


esterni

Tmulti-tasking Tmono-tasking
Anno accademico 2010-2011

76

Sistemi timesharing
Unevoluzione dei sistemi multitasking sono i sistemi
timesharing
Ogni processo viene eseguito ciclicamente per piccoli quanti
di tempo
Se la velocit del processore sufficientemente elevata si
ha limpressione di unevoluzione parallela dei processi
Esempio

0.00

Ipotesi: 1 MIPS, 4 processi,

0.25 s/utente
Conseguenze: 0.25 MIPS/utente,

TELA 4 TCPU
Anno accademico 2010-2011

0.75

0.25
C

0.50

77

Timesharing: diagramma temporale

Processo

CPU burst

C
B
A

t
78

Anno accademico 2010-2011

La gestione della memoria principale 1


La memoria principale

un array di byte indirizzabili singolarmente

un deposito di dati facilmente accessibile e condiviso tra la CPU


ed i dispositivi di I/O

Il SO responsabile delle seguenti attivit riguardanti la gestione


della memoria principale:

Tenere traccia di quali parti della memoria sono usate e da chi

Decidere quali processi caricare quando diventa disponibile spazio in


memoria

Allocare e deallocare lo spazio di memoria quando necessario

Il gestore di memoria realizza una macchina virtuale in cui


ciascun programma opera come se avesse a disposizione una
memoria dedicata
79
Anno accademico 2010-2011

La gestione della memoria principale 2

Lorganizzazione e la gestione della memoria centrale uno


degli aspetti pi critici nel disegno di un SO

Il gestore della memoria quel modulo del SO incaricato di


assegnare la memoria ai task (per eseguire un task
necessario che il suo codice sia caricato in memoria)

La complessit del gestore della memoria dipende dal tipo di


SO

Nei SO multitasking, pi programmi possono essere


caricati contemporaneamente in memoria

Problema: come allocare lo spazio in maniera ottimale?


80

Anno accademico 2010-2011

Allocazione lineare
0000x

Programma A

PROBLEMA
!!!!
Programma D
Programma B
FRAMMENTAZIONE

Programma C
Anno accademico 2010-2011

Memoria

81

Paginazione
Programma A

0000x

Programma A

Programma A
E
Programma B
Programma BF
Programma
Programma D
Programma F

Anno accademico 2010-2011

Memoria

82

La memoria virtuale 1
Spesso la memoria non sufficiente per contenere
completamente tutto il codice dei processi
Si pu simulare una memoria pi grande tenendo nella
memoria di sistema (RAM) solo le parti di codice e dati che
servono in quel momento

Si usa il concetto di memoria virtuale


I dati e le parti di codice relativi a programmi non in
esecuzione possono essere tolti dalla memoria centrale e
parcheggiati su disco nella cosiddetta area di swap
I processori moderni sono dotati di meccanismi hardware
per facilitare la gestione della memoria virtuale
83
Anno accademico 2010-2011

La memoria virtuale 2
Memoria

Programma A-1

0000x

Programma B-1
Programma D

Swap

Programma A-2
Programma A-3
Programma B-2
84
Anno accademico 2010-2011

La memoria virtuale 2
Memoria

Programma A-2

0000x

Programma B-1
Programma D

Swap

Programma A-1
Programma A-3
Programma B-2
85
Anno accademico 2010-2011

La gestione della memoria secondaria 1


Poich la memoria principale volatile e troppo piccola per
contenere tutti i dati e tutti i programmi in modo
permanente, il computer dotato di memoria secondaria
In generale, la memoria secondaria data da hard disk e

dischi ottici

Il SO garantisce una visione logica uniforme del processo di


memorizzazione:
Astrae dalle caratteristiche fisiche dei dispositivi per definire

ununit di memorizzazione logica il file

Ciascuna periferica viene controllata dal relativo device driver,

che nasconde allutente le caratteristiche fisiche variabili


dellhardware: modalit e velocit di accesso, capacit,
velocit di trasferimento
86

Anno accademico 2010-2011

La gestione della memoria secondaria 2


Il SO responsabile delle seguenti attivit riguardanti la
gestione della memoria secondaria:
Allocazione dello spazio
Gestione dello spazio libero
Ordinamento efficiente delle richieste di accesso al disco (disk

scheduling)

87
Anno accademico 2010-2011

La gestione del file system 1


Il file lastrazione informatica di un archivio di dati
Il concetto di file indipendente dal mezzo sul quale viene

memorizzato (che ha
organizzazione fisica)

caratteristiche

proprie

propria

Un file system composto da un insieme di file

Il SO responsabile delle seguenti attivit riguardanti la


gestione del file system:
Creazione e cancellazione di file
Creazione e cancellazione di directory
Manipolazione di file e directory
Codifica del file system sulla memoria secondaria
88
Anno accademico 2010-2011

La gestione del file system 2


Il gestore del file system il modulo del SO incaricato di
gestire le informazioni memorizzate sui dispositivi di
memoria di massa
Il gestore del file system deve garantire la correttezza e la
coerenza delle informazioni
Nei sistemi multiutente, fornisce meccanismi di protezione
per consentire agli utenti di proteggere i propri dati
dallaccesso di altri utenti non autorizzati
Le funzioni tipiche del gestore del file system sono:
Fornire un meccanismo per lidentificazione dei file
Fornire metodi opportuni di accesso ai dati
Rendere

trasparente la struttura fisica del supporto di


memorizzazione
Implementare meccanismi di protezione dei dati
Anno accademico 2010-2011

89

Organizzazione del file system


Quasi tutti i SO utilizzano unorganizzazione gerarchica del
file system

Lelemento utilizzato per raggruppare pi file insieme la

directory

Linsieme gerarchico delle


directory e dei file pu essere
rappresentato attraverso un
grafo (un albero nei SO pi
datati) delle directory

Directory

File

Grafo delle directory


90
Anno accademico 2010-2011

La gestione dei dispositivi di I/O


La gestione dellI/O richiede:
Uninterfaccia comune per la gestione dei

device driver

Un insieme di driver per dispositivi hardware specifici


Un

sistema di gestione di buffer per il caching delle


informazioni

Il gestore dei dispositivi di I/O il modulo del SO incaricato


di assegnare i dispositivi ai task che ne fanno richiesta e di
controllare i dispositivi stessi
Da esso dipende la qualit e il tipo di periferiche riconosciute
dal sistema
Il gestore delle periferiche offre allutente una versione
astratta delle periferiche hardware; lutente ha a
disposizione un insieme di procedure standard di alto livello
per leggere/scrivere da/su una periferica che percepisce
come dedicata
Anno accademico 2010-2011

91

Device driver
Il controllo dei dispositivi di I/O avviene attraverso speciali
moduli software, detti device driver
I device driver sono spesso realizzati dai produttori dei
dispositivi stessi, che ne conoscono le caratteristiche fisiche
in maniera approfondita
I device driver implementano le seguenti funzioni:
Rendono trasparenti le caratteristiche fisiche tipiche di ogni

dispositivo

Gestiscono la comunicazione dei segnali verso i dispositivi


Gestiscono i conflitti, nel caso in cui due o pi task vogliano

accedere contemporaneamente allo stesso dispositivo

Anno accademico 2010-2011

92

Linterfaccia utente 1
Tutti i SO implementano meccanismi per facilitare lutilizzo
del sistema di calcolo da parte degli utenti
Linsieme di tali meccanismi di accesso al computer prende
il nome di interfaccia utente
Serve per
attivare un programma, terminare un programma, etc.
interagire con le componenti del sistema operativo (gestore

dei processi, file system, etc.)

93
Anno accademico 2010-2011

Linterfaccia utente 2
Interfaccia testuale:
Interprete dei comandi (shell)
Esempio: MSDOS/UNIX

Interfaccia grafica (a finestre):


Loutput dei vari programmi viene visualizzato in maniera

grafica allinterno di finestre

Lutilizzo di grafica rende pi intuitivo luso del calcolatore


Esempio: WINDOWS/Linux

Differenze:
Cambia il linguaggio utilizzato, ma il concetto lo stesso
Vi sono per differenze a livello di espressivit
94
Anno accademico 2010-2011

Linterfaccia grafica
Realizza la metafora della scrivania desktop
Interazione semplice via mouse
Le icone rappresentano file, directory, programmi, azioni, etc.
I diversi tasti del mouse, posizionato su oggetti differenti,

provocano diversi tipi di azione: forniscono informazioni


sulloggetto in questione, eseguono funzioni tipiche
delloggetto, aprono directory folder, o cartelle, nel gergo
GUI (Graphical User Interface)

95
Anno accademico 2010-2011

Protezione e sicurezza 1
Protezione il meccanismo usato per controllare laccesso
da parte di processi e/o utenti a risorse del sistema di
calcolo
Sicurezza il meccanismo di difesa implementato dal
sistema per proteggersi da attacchi interni ed esterni
Denialofservice, worm, virus, hacker

In prima istanza, il sistema distingue gli utenti, per


determinare chi pu fare cosa
Lidentit utente (user ID) include nome dellutente e numero

associato uno per ciascun utente


Luser ID garantisce lassociazione corretta di file e processi
allutente e ne regola la manipolazione
Lidentificativo di gruppo permette inoltre ad un insieme di
utenti di accedere correttamente ad un gruppo di risorse
comuni (file e processi)
Anno accademico 2010-2011

96

Protezione e sicurezza 2
In Linux

$ ls l

97
Anno accademico 2010-2011

Sistemi operativi commerciali


In commercio sono presenti una grande quantit di sistemi
operativi diversi
In passato, la tendenza delle case costruttrici di sistemi di
elaborazione era di sviluppare sistemi operativi proprietari
per le loro architetture

La tendenza attuale quella dello sviluppo di sistemi


operativi portabili su piattaforme hardware diverse

98
Anno accademico 2010-2011

Windows
CPU Intel (da 80386),
MIPSR4000, etc.

ma

anche

per

DECAXP,

Multitask
Monoutente/Multiutente
NTFS (NT File System)
Microkernel, thread

Sistema a 32/64 bit

99
Anno accademico 2010-2011

Linux
Nato nel 91, grazie a Linus Torvalds, studente finlandese
dellUniversit di Helsinki

Sei fortunato che non sei un mio studente. Non prenderesti un buon
voto per un tale progetto. (Andrew S. Tanenbaum, Universit di
Amsterdam, creatore del sistema operativo MINIX e professore di SO,
dal quale Torvalds prese spunto per Linux)

Sviluppato su piattaforma Intel 80386, fu distribuito da subito su


Internet (free e opensource)
Multitask
Multiutente
L'architettura del sistema Unixlike: un kernel molto piccolo che
contiene solo funzioni fondamentali per la gestione delle risorse del
computer (CPU, memoria, dischi, rete, I/O) ed una larga collezione
di programmi di sistema che lutente usa per richiedere servizi al SO
100
Anno accademico 2010-2011

Conclusioni: i SO oggi
Sistemi complessi che presentano miriadi di problemi e
milioni di linee di codice (1001000 programmatori per
anno)
Interazioni complesse
Universali (eseguiti su piattaforme diverse)

Differenti classi di utenti hanno necessit diverse


La performance cruciale!

Poco compresi:
Il SO tipicamente dura pi di chi lo ha programmato ed

troppo grande per essere compreso da una singola persona

Mai completamente privi di errori (OS/360 rilasciato con 1000

bug); comportamenti difficili da prevedere; aggiustamenti


spesso eseguiti per tentativi

Anno accademico 2010-2011

101