Architetture dei Calcolatori
SISTEMI OPERATIVIGi
orgi
o Gi
acin
to 2
018
Sistemi Operativi
2
Componenti di un sistema di calcoloutente
1utente
2utente
3utenten
compilatore assemblatore editor di testi base di dati
programmi applicativi
sistema operativo
dispositivi fisici coordina e controllal'uso dei dispositivi
da parte dei programmiGior
gio
Giac
into
201
8
Sistemi Operativi
3
Architettura di un sistema di calcolo
Gior
gio
Giac
into
201
8
Sistemi Operativi
4
La memoria» È l’elemento centrale dell’architettura di un
sistema di calcolo˃ Tutti i componenti del sistema memorizzano e
prelevano istruzioni e/o dati
» La CPU può eseguire solo istruzioni presenti in memoria
Gior
gio
Giac
into
201
8
Sistemi Operativi
5
Memoria principale» Accesso diretto, indipendente dalla posizione
˃ RAM e DRAM (Dynamic Random Access Memory)
» Memorie ROM (Read-Only) per informazioni che non si devono modificare (di frequente)
» Organizzazione˃ Una sequenza di celle di dimensione fissa (parola)
+ Ciascuna cella identificata univocamente da un indirizzo
Gior
gio
Giac
into
201
8
6
Sistemi Operativi
Accesso alla memoriaload <indirizzo>
» Carica in uno dei registri della CPU il contenuto della cella di memoria il cui indirizzo è specificato come argomento dell’istruzione
store <indirizzo>» Carica nell’indirizzo specificato come argomento
dell’istruzione, il contenuto di uno dei registri della CPU
Gior
gio
Giac
into
201
8
Sistemi Operativi
7
Esecuzione delle istruzioni
Architettura di Von Neumannl Il processore preleva (fetch) l’istruzione dalla memoria il cui
indirizzo è memorizzato nel registro Program Counter (PC)l Il Program Counter è incrementato al termine di ogni fase di fetch
Gior
gio
Giac
into
201
8
Sistemi Operativi
8
Registri della CPUGi
orgi
o Gi
acin
to 2
018
9
Sistemi Operativi
PC MAR
IR MBR
I/O AR
I/O BR
CPU Main Memory
SystemBus
I/O Module
Buffers
Instruction
012
n - 2n - 1
DataDataDataData
InstructionInstruction
Figure 1.1 Computer Components: Top-Level View
PC = Program counterIR = Instruction registerMAR = Memory address registerMBR = Memory buffer registerI/O AR = Input/output address registerI/O BR = Input/output buffer register
Executionunit
Esempio Somma di due numeri
Gior
gio
Giac
into
201
8
Sistemi Operativi
10
2
PC300CPU RegistersMemory
Fetch Stage Execute Stage
3 0 01 9 4 0301 5 9 4 1302 2 9 4 1
940 0 0 0 3941 0 0 0 2
ACIR1 9 4 0
Step 1
••
PC300CPU RegistersMemory
3 0 11 9 4 0301 5 9 4 1302 2 9 4 1
940 0 0 0 3941 0 0 0 2
ACIR1 9 4 0
0 0 0 3
Step 2
••
PC300CPU RegistersMemory
3 0 10 0 0 5
0 0 0 5
0 0 0 3
0 0 0 5
1 9 4 0301 5 9 4 1302 2 9 4 1
940 0 0 0 3941 0 0 0 2
ACIR5 9 4 1
Step 3
••
PC300CPU RegistersMemory
3 0 21 9 4 0301 5 9 4 1302 2 9 4 1
1
940 0 0 0 3941 0 0 0 2
ACIR5 9 4 1
Step 4
••
PC300CPU RegistersMemory
3 01 9 4 0301 5 9 4 1302 2 9 4 1
940 0 0 0 3941 0 0 0 2
ACIR2 9 4 1
Step 5
••
PC300CPU RegistersMemory
3 0 31 9 4 0301 5 9 4 1302 2 9 4 1
940 0 0 0 3941 0 0 0 5
ACIR2 9 4 1
Step 6
••
3 + 2 = 5
Figure 1.4 Example of Program Execution(contents of memory and registers in hexadecimal)
Dimensioni della memoria» In teoria tutti i programmi in esecuzione e i
relativi dati dovrebbero risiedere nella memoria centrale. Ma…˃ La memoria centrale ha comunque una capacità
limitata (costo)˃ La tecnologia con cui si realizza la memoria centrale
non consente memorizzazione persistente
Gior
gio
Giac
into
201
8
Sistemi Operativi
11
Gerarchia dei dispositivi di memoria
Costo
Velocità
Gior
gio
Giac
into
201
8
Sistemi Operativi
12
Figure 1.14 The Memory Hierarchy
InboardMemory
OutboardStorage
Off-lineStorage
Main
Memory
Magnetic Disk
CD-ROM
CD-RW
DVD-RW
DVD-RAM
Blu-Ray
Magnetic Tape
Cache
Reg-
isters
Avviamento del sistema» All’accensione del sistema si esegue un
programma d’avviamento (bootstrap)memorizzato nel firmware (ROM)˃ inizializza i diversi componenti˃ carica in memoria il sistema operativo
+ di solito solo una parte, il kernel˃ avvia l’esecuzione del sistema operativo
» Il sistema operativo a questo punto attende che si verifichi qualche evento
Gior
gio
Giac
into
201
8
Sistemi Operativi
13
Eventi» Il flusso di esecuzione di istruzioni può essere
interrotto da eventi˃ Generati da un dispositivo fisico
interruzioni˃ Generati da un programma
eccezioni+ riconosciute dall’architettura hardware (ad es.,
divisione per zero)+ generate dalla richiesta di un servizio al sistema
operativo (system call o supervisor call)
Gior
gio
Giac
into
201
8
Sistemi Operativi
14
Esecuzione istruzioni e interruzioni
START
HALT
Fetch nextinstruction
Fetch Stage Execute Stage Interrupt Stage
InterruptsDisabled
InterruptsEnabled
Executeinstruction
Check forinterrupt;
initiate interrupthandler
Figure 1.7 Instruction Cycle with Interrupts
Gior
gio
Giac
into
201
8
15
Sistemi Operativi
Device Drivers1. Il processo utente chiede
l’uso di una periferica2. Il sistema operativo
trasmette la richiesta al driver appropriato
3. Il driver imposta i valori nel controllore della periferica
4. Il controllore avvia il trasferimento dati
5. A trasferimento avvenuto il controllore segnala al driver, il driver al sistema operativo e quest’ultimo al processo utenteGi
orgi
o Gi
acin
to 2
018
Sistemi Operativi
16
Gestione delle interruzioniGi
orgi
o Gi
acin
to 2
018
Sistemi Operativi
17
Direct Memory Access (DMA)» I trasferimenti dei dati fra dispositivo e
memoria centrale possono essere gestiti˃ dalla CPU˃ da un modulo dedicato chiamato DMA
+ una unità di elaborazione specifica che accede direttamente alla memoria come la CPU
Gior
gio
Giac
into
201
8
Sistemi Operativi
18
RiassumendoGi
orgi
o Gi
acin
to 2
018
Sistemi Operativi
19
thread of executioninstructions
anddata
instruction executioncycle
data movement
DMA
memory
interrupt
cache
data
I/O request
CPU (*N)
device(*M)
Gior
gio
Giac
into
201
8
Sistemi Operativi
20
Sistemi mono- e multi-processore» Monoprocessore
˃ Una unità centrale di elaborazione responsabile di tutte le operazioni ovvero di alcuni compiti specifici
+ Ad es., scheda grafica, controller dischi, tastiera, ecc. sono esempi di architetture monoprocessore
» Multiprocessore˃ Un sistema dove molte unità di elaborazione
concorrono all’esecuzione+ Processori multicore sono una evoluzione
Gior
gio
Giac
into
201
8
Sistemi Operativi
21
Vantaggi architetture multiprocessore» Maggiore produttività
˃ throughput maggior quantità di lavoro eseguito per unità di tempo
» Economia di scala˃ Un sistema multiprocessore contro più sistemi
monoprocessore
» Maggiore affidabilità˃ tolleranza ai guasti˃ graceful degradation
Gior
gio
Giac
into
201
8
Sistemi Operativi
22
SMPMultielaborazione simmetrica
Gior
gio
Giac
into
201
8
Sistemi Operativi
23
L1 Cache
Processor
MainMemory
I/OSubsystem
System Bus
CHIP CHIP CHIP
I/OAdapter
Figure 1.19 Symmetric Multiprocessor Organization
L2 Cache
L1 Cache
Processor
L2 Cache
L1 Cache
Processor
L2 Cache
I/OAdapter
I/OAdapter
Windows, macOS, Linux supportano SMPSMP
Le operazioni sono assegnate alla prima CPU libera.Multielaborazione asimmetrica quando ciascuna CPU esegue un compito specifico
Sistemi multi-core
Gior
gio
Giac
into
201
8
Sistemi Operativi
24
Figure 1.20 Intel Core i7-5960X Block Diagram
(a) Block diagram
(b) Physical layout on chip
SharedL3Cache
I/O
Cor
e
Cor
e
Cor
e
Cor
e
Mem
ory
Con
trol
ler
Cor
e
Cor
e
Cor
e
Cor
e
Core 0
32 kBL1-I
32 kBL1-D
32 kBL1-I
32 kBL1-D
32 kBL1-I
32 kBL1-D
32 kBL1-I
32 kBL1-D
256 kBL2 Cache
Core 1
• • •
256 kBL2 Cache
4 8B @ 2.133 GT/s
Core 6
256 kBL2 Cache
Core 7
256 kBL2 Cache
20 MBL3 Cache
DDR4 MemoryControllers
PCI Express
40 lanes @ 8 GT/s
Figure 1.20 Intel Core i7-5960X Block Diagram
(a) Block diagram
(b) Physical layout on chip
SharedL3Cache
I/O
Cor
e
Cor
e
Cor
e
Cor
e
Mem
ory
Con
trol
ler
Cor
e
Cor
e
Cor
e
Cor
e
Core 0
32 kBL1-I
32 kBL1-D
32 kBL1-I
32 kBL1-D
32 kBL1-I
32 kBL1-D
32 kBL1-I
32 kBL1-D
256 kBL2 Cache
Core 1
• • •
256 kBL2 Cache
4 8B @ 2.133 GT/s
Core 6
256 kBL2 Cache
Core 7
256 kBL2 Cache
20 MBL3 Cache
DDR4 MemoryControllers
PCI Express
40 lanes @ 8 GT/s
Intel Core i7-5960X
Gior
gio
Giac
into
201
8
Sistemi Operativi
25
In assenza di sistema operativo…
Gior
gio
Giac
into
201
8
26
Sistemi Operativi
Read one record from file 0.0015 secondsExecute 100 instructions 0.0001 secondsWrite one record to file 0.0015 secondsTOTAL 0.0031 seconds
Percent CPU Utilization =
0.00010.0031
= 0.032 = 3.2%
Figure 2.4 System Utilization Example
Multiprogrammazione» Una delle principali motivazioni per l’uso di un sistema
operativo è la multiprogrammazioneSe il calcolatore eseguisse un programma alla volta, il processore sarebbe spesso inattivo perché in attesa del completamento delle istruzioni di I/O
Gior
gio
Giac
into
201
8
Sistemi Operativi
27
Multiprogrammazione» L’esecuzione concorrente di più programmi
consente l’esecuzione di un altro job quando il job in esecuzione è in attesa del completamento dell’I/O
Gior
gio
Giac
into
201
8
Sistemi Operativi
28
MultiprogrammazioneGi
orgi
o Gi
acin
to 2
018
Sistemi Operativi
29
MultiprogrammazioneEsempio
Gior
gio
Giac
into
201
8
Sistemi Operativi
30
0%
0 5 10 15 20 25 30minutes
time
(a) Uniprogramming
JOB1 JOB2 JOB3Job History
Printer
Terminal
Disk
Memory
CPU
100%0%
100%0%
100%0%
100%0%
100%
0%
0 5 10 15minutes
(b) Multiprogramming
Figure 2.6 Utilization Histograms
JOB1JOB2
JOB3
Job History
Printer
Terminal
Disk
Memory
CPU
100%0%
100%0%
100%0%
100%0%
100%
time
MultiprogrammazioneEsempio
Monoprogrammazione Multiprogrammazione
Uso del processore 20% 40%
Uso della memoria 33% 67%
Uso del disco 33% 67%
Uso della stampante 33% 67%
Tempo trascorso 30 min. 15 min.
Tasso di throughput 6 jobs/ora 12 jobs/ora
Tempo medio di risposta 18 min. 10 min.
Gior
gio
Giac
into
201
8
Sistemi Operativi
31
Organizzazione della memoria con multiprogrammazione
» La memoria deve contenere un certo numero di job per non lasciare la CPU inattiva
» È compito del sistema operativo stabilire˃ quali job fra quelli da eseguire
devono risiedere nella memoria˃ l'ordine nel quale i job saranno
eseguiti˃ Il sistema operativo può inoltre
gestire più utenti interattivi
Gior
gio
Giac
into
201
8
32
Sistemi Operativi
Sistemi a partizione di tempo» I sistemi a partizione di tempo (time sharing)
consentono a più utenti di interagire con il sistema
» Concetti analoghi alla multiprogrammazione ma obiettivi diversi˃ Multiprogrammazione ha l’obiettivo di massimizzare
il throughput˃ Time-sharing ha l’obiettivo di ridurre i tempi di
risposta per i diversi utenti
Gior
gio
Giac
into
201
8
Sistemi Operativi
33
Componenti un sistema operativo» La gestione della multiprogrammazione e dei
sistemi time-sharing ha originato lo sviluppo dei diversi componenti un sistema operativo˃ gestione della concorrenza˃ job e CPU scheduling˃ memoria virtuale˃ file system˃ gestione dei dischi˃ sicurezza dei dati e dei programmi
Gior
gio
Giac
into
201
8
Sistemi Operativi
34
Gior
gio
Giac
into
201
8
Sistemi Operativi
35
Sistema operativo e interruzioni» Se nessun programma è in esecuzione…
…il sistema operativo deve restare in attesa» Il compito del sistema operativo è reagire a
segnali di interruzione causati dall’esecuzione di programmi utente
…ma il sistema operativo è un programma…Come è stata risolta questa ambiguità?
Gior
gio
Giac
into
201
8
36
Sistemi Operativi
Duplice modalità di funzionamento
» La CPU contiene due tipi di istruzioni˃ istruzioni utente˃ istruzioni privilegiate
» Le istruzioni privilegiate sono quelle che possono essere eseguite solo se la CPU si trova nel modo supervisore (kernel)
Giorgio Giacinto 2018 Sistemi Operativi 37
Cambio di modo» C’è una istruzione che causa il cambio di modo
˃ Questa istruzione può essere eseguita solo dal sistema operativo
» Ogni volta che il sistema operativo deve intervenire˃ interruzione˃ system call
la CPU passa da modo utente a modo kernelAl termine delle attività del sistema operativo la CPU passa da modo kernel a modo utenteIl sistema operativo è dunque strettamente accoppiato all’architettura hardware
Gior
gio
Giac
into
201
8
38
Sistemi Operativi
Virtualizzazione» Può essere considerata come una estensione
del cambio di modo» La CPU può supportare diversi livelli di istruzioni
privilegiate˃ Istruzioni di virtualizzazioni con minor privilegi del
kernel e maggior privilegi dei processi utente
» Intel 64˃ 4 livelli di privilegi, ma nessuno legato
esplicitamente alla virtualizzazione
Gior
gio
Giac
into
201
8
39
Sistemi Operativi
Timer» Il sistema operativo deve controllare che nessun
programma in esecuzione˃ entri in un ciclo infinito˃ prenda possesso indefinitamente delle risorse del
sistema (memoria, CPU, I/O, ecc.)
» L’hardware mette a disposizione un timer
Gior
gio
Giac
into
201
8
Sistemi Operativi
40
Gestione dei processi» Una definizione grossolana di processo è
un programma in esecuzione» Il Sistema Operativo deve occuparsi di
˃ creazione/cancellazione dei processi+ gestire l’assegnazione di risorse (memoria, CPU, I/O)
˃ sospensione/ripristino dei processi˃ fornire meccanismi per sincronizzazione e
comunicazione fra processi˃ fornire meccanismi per gestire situazioni di stallo
Gior
gio
Giac
into
201
8
Sistemi Operativi
41
Gestione della memoria» Nell’architettura di Von Neumann la memoria
centrale contiene le istruzioni e i dati» La CPU e i dispositivi I/O devono accedere alla
memoria» Il sistema operativo e l’hardware sottostante
realizzano i meccanismi per l’utilizzo della gerarchia di memoria˃ La memoria cache fa parte della gerarchia, ma non è
gestita dal sistema operativo
Gior
gio
Giac
into
201
8
Sistemi Operativi
42
Gestione della memoria di massa» File system
˃ Gestione dei documenti memorizzati permanentemente su dischi
+ codice sorgente, codice oggetto, programmi eseguibili, utilità, documenti utente in diversi formati (testo, audio, immagini, video, ecc.)
˃ Operazioni sui file+ creazione/cancellazione+ associazione file-dispositivo di memorizzazione+ backup
Gior
gio
Giac
into
201
8
Sistemi Operativi
43
Gestione della memoria di massa» Gestione dei dischi
˃ I supporti di memorizzazione a disco sono i più utilizzati per la persistenza delle informazioni
˃ Sistema operativo deve gestire+ spazio libero+ allocazione file su disco+ politiche di accesso per evitare che diventi un collo di
bottiglia– I dischi sono molto più lenti della CPU e della memoria
centrale
Gior
gio
Giac
into
201
8
Sistemi Operativi
44
Gestione della memoriaGi
orgi
o Gi
acin
to 2
018
Sistemi Operativi
45
Level
Name
Typical size
Implementationtechnology
Access time (ns)
Bandwidth (MB/sec)
Managed by
Backed by
1
registers
< 1 KB
custom memorywith multipleports CMOS
0.25 - 0.5
20,000 - 100,000
compiler
cache
2
cache
< 16MB
on-chip oroff-chipCMOS SRAM
0.5 - 25
5,000 - 10,000
hardware
main memory
3
main memory
< 64GB
CMOS SRAM
80 - 250
1,000 - 5,000
operating system
disk
4
solid state disk
< 1 TB
flash memory
25,000 - 50,000
500
operating system
disk
5
magnetic disk
< 10 TB
magnetic disk
5,000,000
20 - 150
operating system
disk or tape
Gestione I/O» Gestione canali di comunicazione fra memoria e
dispositivi˃ Gestione dei buffer˃ Gestione dello spooling
simultaneous peripheral operation online˃ interfacce generali per i driver˃ driver specifici per i dispositivi
Gior
gio
Giac
into
201
8
Sistemi Operativi
46
Protezione e sicurezza» Il sistema operativo gestisce l’esecuzione
concorrente di utenti diversi e processi diversi˃ Proteggere
+ ciascun processo+ ciascun utente + il sistema operativo
˃ da errori causati dagli altri processi e utenti+ errori accidentali, involontari… e volontari!
» Oggi la connessione dei calcolatori in rete rende difficile stabilire il perimetro di difesa
Gior
gio
Giac
into
201
8
Sistemi Operativi
47
Gior
gio
Giac
into
201
8
48
Sistemi Operativi
ListeGi
orgi
o Gi
acin
to 2
018
Sistemi Operativi
49
» Sequenza di datidata data data null
• ••
data null nulldata data data
• ••
data data data data
• ••
Singly linked list
Doubly linked list
Circularly linked list
Pile e Code» Pila (stack)
˃ Una sequenza ordinata di dati con un solo punto di inserimento ed estrazione – LIFO (Last-In-First-Out)
+ push per inserire un elemento nella pila+ pop per estrarre l’elemento in cima alla pila
˃ usata per memorizzare variabili locali e indirizzi di ritorno delle funzioni
» Coda (queue)˃ Una sequenza in cui i dati si rimuovono nell’ordine in
cui sono inseriti – FIFO (First-In-First-Out)
Gior
gio
Giac
into
201
8
50
Sistemi Operativi
AlberiGi
orgi
o Gi
acin
to 2
018
Sistemi Operativi
51
» Quando I dati hanno fra loro una relazione gerarchica
» Alberi binari di ricerca˃ Ogni nodo ha due figli˃ Il figlio di sn ha valore
inferiore al genitore˃ Il figlio di dx ha valore
superiore al genitore
17
35
40
42
12
146
32
Funzioni hash e Bitmap» Funzione hash
˃ Trasforma un valore in ingresso in un valore d’uscita+ Utile quando il dominio dei valori di ingresso è grande
ma pochi valori sono usati+ Trasformazione non biunivoca
– Collisioni quando due valori in ingresso si trasformano nel medesimo valore d’uscita
» Bitmap˃ Un array binario con tanti bit quanti sono gli
elementi di cui si vuole rappresentare lo stato+ Ad es., blocchi liberi su disco
Gior
gio
Giac
into
201
8
52
Sistemi Operativi
Gior
gio
Giac
into
201
8
53
Sistemi Operativi
Elaborazione tradizionale» L’elaborazione tradizionale si è evoluta negli
anni» Computer connesso in rete per attività di
˃ calcolo˃ disegno e progettazione˃ elaborazione documenti, immagini e video
» I programmi possono essere ˃ residenti sul calcolatore ˃ residenti su server remoti
Gior
gio
Giac
into
201
8
54
Sistemi Operativi
Dispositivi mobili» Identiche funzionalità degli elaboratori
tradizionali˃ limite in memoria e potenza di calcolo˃ limite in autonomia
» Elementi distintivi˃ interazione tattile˃ always-on˃ servizi di localizzazione (GPS)˃ sensori di movimento
Gior
gio
Giac
into
201
8
55
Sistemi Operativi
Sistemi distribuiti» Oggi tutti i calcolatori sono collegati in rete» I sistemi operativi offrono il supporto per la
gestione delle comunicazioni in rete» È possibile configurare un insieme di calcolatori distribuiti geograficamente come un unico sistema di elaborazione (cloud computing)˃ gestione distribuita del file system˃ gestione distribuita dei processi
Gior
gio
Giac
into
201
8
Sistemi Operativi
56
Sistemi Client-Server» Spostare l’elaborazione su pochi server ad alte
prestazioni » Servizi fruibili da elaboratori con minor potenza
computazionale
Gior
gio
Giac
into
201
8
57
Sistemi Operativi
Server Network
clientdesktop
clientlaptop
clientsmartphone
Sistemi Peer-to-Peer» Ciascun elemento agisce da server nei confronti
degli altri client» Può essere supportato da un registro
centralizzato.
Gior
gio
Giac
into
201
8
58
Sistemi Operativi
client
clientclient
client client
Virtualizzazione» Emulazione CPU
˃ Più sistemi operativi isolati fra loro sullo stesso hardware
˃ Più sistemi operativi ospiti (guest) su un sistema operativo ospitante (host)
Gior
gio
Giac
into
201
8
59
Sistemi Operativi
(a)
processes
hardware
kernel
(b)
programminginterface
processes
processes
processes
kernelkernel kernel
VM2VM1 VM3
managerhardware
virtual machine
Cloud Computing» Public cloud» Private cloud» Hybrid Cloud» SaaS – Software-as-a-Service» PaaS – Platform-as-a-Service» IaaS – Infrastructure-as-a-Service
Gior
gio
Giac
into
201
8
60
Sistemi Operativi
Sistemi a orientamento specifico» Sono i sistemi più diffusi
˃ centraline motori autoveicoli˃ sistemi avionici˃ grandi e piccoli elettrodomestici˃ smartphone, lettori multimediali, Smart TV, consolle
giochi…˃ robotica
» Il sistema operativo e l’hardware sono progettati in modo strettamente accoppiato
Gior
gio
Giac
into
201
8
Sistemi Operativi
61