Architetture HW E SW Dei Calcolatori - Laboratorio...
Transcript of Architetture HW E SW Dei Calcolatori - Laboratorio...
Architetture HW E SW Dei Architetture HW E SW Dei CalcolatoriCalcolatori
Politecnico di Milano
Corso di Laurea in Ingegneria Civile
Lucidi a cura di
Gianpaolo Cugola
Davide Frey
Franca Garzotto
2
Politecnico di Milano
Obiettivi della lezioneObiettivi della lezione
• Studio delle architetture dei sistemi di elaborazione oggi in uso– Dal punto di vista HW…
– ... ma anche SW (sistema operativo)...
3
Politecnico di Milano
Sommario della lezioneSommario della lezione
• Una definizione di “sistema informatico”
• Architettura HW di un sistema informatico– L’architettura di von Neumann...
– ... e le sue estensioni
• Il sistema operativo– Architettura di un moderno S.O...
– ... e funzionalità offerte dai diversi strati
4
Politecnico di Milano
Sistema informaticoSistema informatico
• Con il termine “sistema informatico” ci si riferisce a sistemi molto diversi– Che vanno dal palmtop...
– ... ad una rete geografica con milioni di nodi
• Studiare l’architettura di un sistema siffatto significa individuarne i componenti e le loro relazioni
• Ciò si realizza attraverso la creazione di un insieme di modelli
• Il nostro studio procederà identificando i diversi strati che identificano la macchina “sistema informatico” a partire dall’HW di base
5
Politecnico di Milano
Gli “strati” che compongono Gli “strati” che compongono un sistema informaticoun sistema informatico
hardware
Software di base (S.O.)
Software applicativo
hardware hardwarehardwarerete
S.O. S.O.
S.O. di rete + middleware
Software applicativo
6
Politecnico di Milano
Tipologie di calcolatoriTipologie di calcolatori
• Esistono diversi tipi di calcolatori– Handheld computer
• Di dimensioni molto limitate• Usualmente privi di memorie di massa
– Notebook• Versione portatile del personal computer• Usualmente dotata di caratteristiche inferiori in
termini di potenza di calcolo e memorizzazione
– Personal computer• Dotati di monitor e tastiera separati dall’unità
centrale• Dotati di diversi dispositivi di memoria di massa
interni o esterni all’unità centrale
7
Politecnico di Milano
Tipologie di calcolatoriTipologie di calcolatori
– Workstation• Versione “potente” dei personal computer
• Dotate di monitor di dimensioni superiori
• Per lo più orientate alle applicazioni grafiche o di CAD
• Spesso condivise da più utenti (non necessariamente in contemporanea)
– Mainframe• Calcolatori di elevata potenza di calcolo e
memorizzazione
• Orientati all’elaborazione di dati per l’intera azienda
• Condivisibili da più utenti in contemporanea
8
Politecnico di Milano
Tipologie di S.O.Tipologie di S.O.
• Negli anni diversi S.O. hanno visto la luce– I primi calcolatori non avevano un vero e proprio
S.O. ma solo un sottile strato di sw di base che gestiva l’accesso all’hw
• Tipologie di S.O.– Monoutente vs. multiutente
– Single tasking vs. multi tasking
• Principali S.O. oggi presenti sul mercato:– Windows, Unix (anche Linux, FreeBSD, ecc ...),
OS/2, MacOS, DOS, ...
9
Politecnico di Milano
Tipologie applicativeTipologie applicative
• Applicazioni numeriche
• Applicazioni gestionali
• Applicazioni per l’automazione d’ufficio
• Applicazioni telematiche– Applicazioni di workgroup
• Applicazioni di automazione industriale– CAD, CAM
• Applicazioni multimediali e di intrattenimento
10
Politecnico di Milano
Architettura del calcolatore: il Architettura del calcolatore: il modello di modello di VonVon NeumannNeumann• Tutte le diverse tipologie di calcolatori sono
accomunati dalla medesima architettura logica
• Schematizzata dal modello di Von Neumanndel calcolatore
Processore(CPU)
Memoriacentrale
Interfacciadelle
periferiche
Bus di sistema
11
Politecnico di Milano
Funzionamento della macchina di Funzionamento della macchina di VonVon NeumannNeumann• Il processore (CPU) estrae le istruzioni dalla memoria e
le esegue– Le istruzioni possono comportare operazioni di manipolazione
dei dati– Oppure operazioni di trasferimento dei dati
• I trasferimenti di dati attraverso elementi funzionali diversi avvengono attraverso il bus di sistema
• Le fasi di elaborazione si susseguono in modo sincrono rispetto ad un orologio di sistema
• Durante ogni intervallo di tempo l’unità di controllo(parte del processore) stabilisce la funzione da svolgere
• L’intera macchina opera in maniera sequenziale
12
Politecnico di Milano
Architettura del calcolatore: il Architettura del calcolatore: il modello di modello di VonVon NeumannNeumann
Processore(CPU)
Memoriacentrale
Interfacciadelle
periferiche
Bus di sistema
13
Politecnico di Milano
La memoria centrale La memoria centrale -- 11
• La memoria centrale è destinata ad accogliere dati e programmi sui quali opera il calcolatore
• Concettualmente è composta da una sequenza di celle ognuna delle quali contiene una parola (word)– Ogni cella può essere acceduta direttamente (specificandone
l’indirizzo) per leggere o scrivere (in un unico passo) il valore ivi contenuto
– Una parola è composta da un numero di bit che dipende dalla macchina
• Esempio: Pentium: 32, 80286: 16, PowerPC: 32, Ultra SPARC: 64
– Le memorie in uso nei calcolatori moderni permettono l’indirizzamento di un singolo byte oltre che di un’intera parola (memorie byte-addressable)
• Un apposita linea di controllo del bus indica alla memoria se sivoglia accedere ad un’intera parola o ad un singolo byte
14
Politecnico di Milano
La memoria centrale La memoria centrale -- 22• Il numero di bit che costituiscono l’indirizzo di una
parola all’interno della memoria è caratteristico del microprocessore e caratterizza lo spazio di indirizzamento del microprocessore (Esempio: Pentium32 bit)
• Avendo a disposizione k bit per gli indirizzi, è possibile avere 2k indirizzi e percio’ indirizzare 2k
celle di memoria, i cui indirizzi varieranno tra 0 e 2k-1– pari al numero di sequenze distinte di 0 e 1 di lunghezza 3.
Esempio per k=3; 2k =8; indirizzi possibili: 000, 001, 010, 011, 100, 101, 110, 111, che corrispondono a 0,1,2,3,4,5,6,7
– Si ricorda che:210 byte = 1 Kilo Byte; 220 byte = 1 Mega Byte230 byte = 1 Giga Byte; 240 byte = 1 Tera Byte
15
Politecnico di Milano
La memoria centrale La memoria centrale -- 33
• La memoria centrale si chiama usualmente ram o memoria ad accesso casuale (random access memory)– Viene cosi detta una memoria il cui tempo di accesso sia
indipendente dall’indirizzo della parola alla quale si vuole accedere
– Si tratta di una memoria volatile
• Altri tipi di memoria presenti in un calcolatore sono le rom (read-only memory)– Hanno caratteristiche generali simili alle ram– Un tempo di accesso notevolmente maggiore – Si tratta di memorie permanenti– Sono tipicamente utilizzate per memorizzare quei dati e
programmi che servono al momento dell’accensione dell’elaboratore, prima del caricamento del S.O.
16
Politecnico di Milano
Architettura del calcolatore: il Architettura del calcolatore: il modello di modello di VonVon NeumannNeumann
Processore(CPU)
Memoriacentrale
Interfacciadelle
periferiche
Bus di sistema
17
Politecnico di Milano
Il processore (CPU): schema Il processore (CPU): schema architetturalearchitetturale
ALU
Registro di stato
APC
(Program Counter)
RnUnità di
controllo (UC)
BRegistro Istruz.Corrente
Registro interr.
Registro dati Registro indirizzi
Ro
.....
segnali di controllo
clock
ALU = Aritmetic-Logic Unit
18
Politecnico di Milano Registro dati e registro Registro dati e registro
indirizzi_1indirizzi_1Registro = dispositivo elettronico (basato su
tecnologia di semiconduttori) in grado di memorizzare una sequenza di bit (0/1) dove ogni 0 e 1 corrispondono a 2 stati di tensione possibile
Interazione della CPU con la memoria centrale attraverso due operazioni - lettura e scrittura coinvolgono REGISTRO DATI e REGISTRO INDIRIZZI
19
Politecnico di Milano
La memoria centrale e registri La memoria centrale e registri CPU (Registro dati e registro CPU (Registro dati e registro indirizzi)_2indirizzi)_2Lettura = trasferimento dati da memoria a
processore (CPU): una parola di memoria, la cui posizione e’ individuata da REGISTRO INDIRIZZI, viene copiata nel REGISTRO DATI della CPU
Scrittura= trasferimento dati REGISTRO DATI della CPU a memoria, nella posizione indicata nel REGISTRO INDIRIZZI
20
Politecnico di Milano
Il processore (CPU): schema Il processore (CPU): schema architetturalearchitetturale
ALU
Registro di stato
APC
(Program Counter)
RnUnità di
controllo (UC)
BRegistro Istruz.Corrente
Registro interr.
Registro dati Registro indirizzi
Ro
.....
segnali di controllo
clock
ALU = Aritmetic-Logic Unit
21
Politecnico di Milano
Significato degliSignificato degli altrialtri registri registri principaliprincipali
• Registro dati e Registro indirizzi: vedi slide precente• Registro Istruzione Corrente: contiene l’istruzione
che il processore sta eseguendo in un dato istante • PC (Program Counter): contiene l’indirizzo della
PROSSIMA istruzione da eseguire• Registro interruzioni: contiene informazioni sullo
stato delle periferiche• A e B: contiene gli operandi e i risultati delle
operazioni svolte dalla ALU• R0, …Rn: registri di lavoro (ad es. per memorizzare
risultati intermedi della elaborazione)
22
Politecnico di Milano
Il processore: funzionamento Il processore: funzionamento -- 11• L’esecuzione di un programma ha inizio con il
caricamento della locazione (indirizzo) della prima istruzione nel PC
• La UNITA’ DI CONTROLLO manda un segnale di controllo affinché il contenuto del PC sia spostato nel REGISTRO INDIRIZZI
• Viene inviato un segnale di controllo (read) alla memoria per effettuare la LETTURA della parola in memoria posta all’indirizzo specificato nel REGISTRO INDIRIZZI
• Per effetto della lettura, il dato contenuto in quella parola di memoria viene COPIATO nel REGISTRO DATI (la UC attende fino all’arrivo del segnale MFC - memory function completed)
23
Politecnico di Milano
Il processore: funzionamento Il processore: funzionamento -- 22
• La UC manda un segnale di controllo affinché il contenuto del registro dati sia spostato nel REGISTRO ISTRUZIONE CORRENTE
• La UC decodifica l’istruzione corrente
• La UC genera la sequenza di segnali di controllo necessari ad eseguire l’istruzione
• Dopo l’esecuzione della istruzione, il PC viene incrementato al fine di contenere l’indirizzo della prossima istruzione da eseguire
24
Politecnico di Milano
EsempioEsempio::caricamento di un dato caricamento di un dato presente in memoria nel registro Apresente in memoria nel registro A• Il valore del PC viene spostato nel registro
indirizzi
• Viene inviato un segnale di controllo (read) alla memoria per leggere il dato posto all’indirizzo specificato nel registro indirizzi e copiarlo nel registro dati (la UC attende il segnale MFC)
• La UC manda un segnale di controllo affinché il contenuto del registro dati sia spostato nel registro A
• Il PC viene incrementato al fine di puntare alla prossima istruzione
25
Politecnico di Milano
Il processore: tipologia di Il processore: tipologia di istruzioni eseguibiliistruzioni eseguibili• Le istruzioni eseguite dal processore possono
essere classificate in tre categorie principali:
– Istruzioni aritmetiche (gestite dalla ALU)• Somme, sottrazioni, moltiplicazioni, divisioni, shift ecc.
– Istruzioni di salto (... condizionale, chiamate a sottoprogramma)
– Istruzioni di trasferimento dei dati• Da un registro all’altro
• Da uno dei registri alla memoria o viceversa
26
Politecnico di Milano
Il processore: le interruzioniIl processore: le interruzioni
• Al fine di gestire richieste provenienti dalle periferiche può essere necessario interrompere la normale esecuzione di un programma
• La periferica segnala sue particolari necessità attraverso una interruzione
• Ad ogni passo di esecuzione la UC verifica lo stato del registro delle interruzioni
• Se si è verificata una interruzione: – Lo stato del processore (registri) viene salvato in memoria– Viene attivata una speciale procedura di gestione delle
interruzioni– Quando la procedura di gestione delle interruzioni termina lo
stato del processore viene ripristinato ed il programma viene ripreso
27
Politecnico di Milano
Architettura del calcolatore: il Architettura del calcolatore: il modello di modello di VonVon NeumannNeumann
Processore(CPU)
Memoriacentrale
Interfacciadelle
periferiche
Bus di sistema
28
Politecnico di Milano
Il bus di sistemaIl bus di sistema
• Il bus di sistema collega tra loro i vari elementi del calcolatore
• In ogni istante il bus è dedicato a collegare due unità, UNA TRASMETTE ed UNA RICEVE– Il processore seleziona la connessione da attivare e indica
l’operazione da svolgere (bus mastering)
• Il bus è suddiviso in tre insiemi di linee:– Bus dati– Bus indirizzi– Bus di controllo: trasportano informazioni relative alla modalità
di trasferimento e alla temporizzazione
• Esempio di uso del bus: scrittura di un dato presente in un registro del processore in memoria
29
Politecnico di Milano
Architettura del calcolatore: il Architettura del calcolatore: il modello di modello di VonVon NeumannNeumann
Processore(CPU)
Memoriacentrale
Interfacciadelle
periferiche
Bus di sistema
30
Politecnico di Milano
L’interfaccia delle perifericheL’interfaccia delle periferiche
• Concettualmente si occupa della gestione dello scambio di dati tra processore e periferiche
• In generale contiene:– Un registro dati della periferica (RDP): contiene i
dati da scambiare con la periferica (da/a)– Un registro di comando della periferica (RCP):
contiene il comando che la periferica deve eseguire– Un registro di stato: contiene informazioni sullo
stato della periferica (ad esempio: ready, busy, error..) • Talvolta collegato al registro delle interruzioni del
processore
31
Politecnico di Milano
L’interfaccia delle periferiche: L’interfaccia delle periferiche: schematizzazione graficaschematizzazione grafica
Linee degli indirizzi
Linee dei dati
Linee di controllo
BUS
Decodificatoredegli indirizzi
Circuiti dicontrollo
Registri dei datie di stato
Periferica
Interfaccia di I/O
32
Politecnico di Milano
Interfacce standardInterfacce standard
• E’ possibile avere una interfaccia diversa per ogni periferica– ma è più logico avere delle interfacce standard per periferiche
simili
• Esempi di interfacce standard:– Interfaccia seriale RS-232-C
– Interfaccia PS2
– Interfaccia USB (Universal Serial Bus)
– Interfaccia parallela Centronix
– Interfaccia ISA
– Interfaccia SCSI
– Interfaccia EIDE
33
Politecnico di Milano
Gestione delle periferiche da parte Gestione delle periferiche da parte del processore del processore -- 11• I moderni processori operano a velocità notevolmente
maggiori di ogni altra periferica– Sorge la necessità di sincronizzare le operazioni di processore e
periferiche
• Due approcci possibili: a controllo di programma(polling) o mediante interrupt
• La gestione a polling: un esempio di lettura da memoria di massa– Il processore invia sul bus il comando di lettura e si pone in
attesa che il dato sia disponibile sul registro dati della periferica– Durante l’attesa il processore esegue un ciclo verificando il
valore del registro di stato della periferica– Appena il dato è pronto il processore lo trasferisce dal registro
dati della periferica in uno dei suoi registri interni e da qui in memoria
34
Politecnico di Milano
Gestione delle periferiche da parte Gestione delle periferiche da parte del processore del processore -- 22• Difetti dell’approccio a polling
– Il processore resta impegnato in un ciclo in attesa del dato
• La gestione a interrupt: un esempio di lettura da memoria di massa– Il processore invia sul bus il comando di lettura e procede nelle
sue operazioni– Quando il dato è disponibile la periferica “solleva” un
interruzione– Il processore interrompe le sue operazioni, salva il proprio stato
ed esegue una opportuna routine di gestione delle interruzioni (parte del S.O.)
– La routine di gestione delle interruzioni verifica che un dato èdisponibile sulla periferica e lo trasferisce dal registro dati della periferica in uno dei registri interni del processore e da qui in memoria
35
Politecnico di Milano
• Le funzioni della libreria lab3.h permettono di riconoscere con un meccanismo di polling se un particolare tasto è premuto.
• La libreria è però gestita al suo interno con un meccanismo ad interrupt.
• Ogni volta che viene premuto o rilasciato un tasto il sistema richiama automaticamente una funzione di gestione dell’interrupt.
• La funzione di gestione setta a vero o a falso il valore di una variabile globale che indica se il particolare tasto è premuto
• La funzione di libreria va a controllare il valore della variabile globale e restituisce lo stato del tasto.
Interruzioni:Interruzioni:La gestione della tastieraLa gestione della tastiera
36
Politecnico di Milano
Periferiche: memorie di massaPeriferiche: memorie di massa
• Con il termine memoria di massa ci si riferisce ad un dispositivo di memorizzazione permanente capace di contenere grosse quantità di dati
• Esiste un numero grandissimo di dispositivi di tale tipo• Possibili categorizzazioni
– Dispositivi ad accesso sequenziale o casuale– Dispositivi in sola lettura (RO), in lettura e scrittura (RW) o WORM
(Write Once Read Many)– Dispositivi magnetici, ottici o magneto-ottici
• Dimensioni tipiche delle principali memorie di massa odierne– CD: 650 MB– DVD: 4 GB– Hard-Disk: 4÷30 GB– Nastri: QIC80: 350 MB, DAT 4÷20+ GB
37
Politecnico di Milano
Memorie di massa: HD Memorie di massa: HD -- 11
38
Politecnico di Milano
Memorie di massa: HD Memorie di massa: HD -- 22• Schema di memorizzazione
(creato in fase di formattazione di basso livello)
– Ogni superficie è divisa in tracce concentriche
• In ogni traccia i dati sono memorizzati in maniera sequenziale
– Ogni traccia è divisa in settori– L’insieme delle tracce omologhe
poste sulle diverse facce è detto cilindro
• Esempio: il disco IBM Deskstar25GP
– 5 dischi, 10 testine, 15.302 cilindri (utente), 512 byte per settore
39
Politecnico di Milano
Memorie di massa: HD Memorie di massa: HD -- 33
• Caratteristiche prestazionali di un HD– Tempo di posizionamento (seek time): il tempo necessario a
posizionare le testine sulla traccia richiesta• Nell’ordine di 8-10 ms
– Tempo di latenza o di rotazione (latency time): il tempo affinché il settore richiesto “passi” sotto la testina (dipende dalla velocità di rotazione del disco)
• Nell’ordine di 2-4 ms
– Tempo di trasferimento: il tempo per trasferire i dati dal disco alla memoria• In genere trascurabile
– Tempo di accesso (la somma dei tre tempi precedenti)
40
Politecnico di Milano
Periferiche: terminaliPeriferiche: terminali
• Caratterizzati da una tastiera, un video e, talvolta, un mouse o altri dispositivi di puntamento simili
• Nei PC e nelle workstation tali dispositivi sono integrati nello stesso calcolatore
• Video: caratteristiche salienti– Dimensione: misura della diagonale in pollici– Risoluzione: dimensione in pixel x pixel– Dot pitch: dimensione del singolo punto in mm– Frequenza di refresh ad una certa risoluzione:
misurata in hz
41
Politecnico di Milano
Periferiche: stampantiPeriferiche: stampanti
• Permettono di stampare su carta i dati prodotti al calcolatore
• Caratteristiche salienti:– Velocità: in ppm– Risoluzione: in punti per pollice (DPI)
• Principali tipi di stampanti:– A margherita (solo testo)– Ad aghi– A getto di inchiostro– Laser
42
Politecnico di Milano
Estensioni alla macchina di Estensioni alla macchina di VonVon NeumannNeumann• Uso di processori dedicati
• Uso di meccanismi di pipelining per parallelizzare le attività all’interno del singolo processore
• Uso di gerarchie di memorie
• Uso di canali di DMA per la gestione dell’I/O
• Uso di bus multipli
43
Politecnico di Milano
I processori dedicatiI processori dedicati
• All’interno di un moderno calcolatore esistono, in realtà, numerosi processori che svolgono funzioni specifiche:– Processori per la gestione dei canali di I/O– Processori grafici
• 2D e 3D
– Processori per la sintesi e l’acquisizione di suoni
• Taluni di questi processori possono essere anche molto complessi– Il chip grafico 3dfx III è composto da 8.2 milioni di transistor
(il Pentium II ne ha 7.5)
• I diversi processori operano sotto il controllo del processore centrale con il quale “competono” per l’accesso alla memoria e al bus
44
Politecnico di Milano
Le pipeline Le pipeline -- 11
• Il principio della catena di montaggio:– Decomporre una attività complessa che si debba ripetere
sempre eguale in più attività semplici...
– ... e parallelizzare tali attività semplici
• Applicazioni ai processori:– L’esecuzione di una istruzione può essere decomposta in un
certo numero di attività più semplici
– Da eseguire in parallelo per le diverse istruzioni che compongono il programma
– Ogni stadio della pipeline esegue una di queste attività elementari
45
Politecnico di Milano
Le pipeline Le pipeline -- 22
• Il problema dei salti– Nel caso di salti condizionali non esiste un unica sequenza di
istruzioni
– Soluzione: la branch prediction
• Il problema della dipendenza dei valori– L’esecuzione di un’istruzione può dipendere dal risultato della
precedente, ciò riduce la possibilità di eseguire le due istruzioni in parallelo
– Soluzione: l’esecuzione fuori ordine
• Un esempio: il processore PowerPC 620– Due pipeline distinte per operazioni intere e in virgola mobile
• Formate da 4 stadi la prima e 6 la seconda
– Fino ad un massimo di 4 istruzioni per ciclo di clock
46
Politecnico di Milano
Le memorie cacheLe memorie cache
• Il problema:– Le memorie non reggono più la velocità dei moderni processori
• Una memoria PC100 ha un tempo di accesso dell’ordine dei 7 ns, insufficiente per processori moderni (500 Mhz)
– E’ possibile costruire memorie più veloci ma a costi molto alti (memorie statiche)
• La soluzione:– Una GERARCHIA DI MEMORIE via via MENO veloci e PIÙ
capienti
processore
cache internaal processore (L1)
bus
cache di secondolivello (L2)
Memoriaprincipale
47
Politecnico di Milano
Memoria cache: un esempio praticoMemoria cache: un esempio pratico
• Un caso pratico: un moderno PC con PentiumII 400– Cache L1:
• 32 Kb interna al processore
• Operante a piena frequenza (400 Mhz)
– Cache L2• 512 Kb sulla scheda che ospita il processore
• Operante a frequenza pari alla metà del processore (200 Mhz)
– Memoria:• 32-512 Mb sulla scheda madre
• Operante alla frequenza del bus esterno alla CPU (100 Mhz)
48
Politecnico di Milano
I canali DMAI canali DMA
• Problema:eseguire le operazioni di I/O sotto lo stretto controllo del processore richiede risorse di calcolo
– Il processore deve richiedere il dato (singola parola) all’interfaccia delle periferiche, attendere la disponibilità del dato, leggerlo e spostarlo in memoria
– Il problema viene in parte risolto attraverso l’uso di interrupt, ma ancora la lettura è svolta un dato per volta
• Soluzione:i controllori DMA integrati nelle interfacce delle periferiche
– Il controllore DMA integrato nell’interfaccia si occupa di trasferire in maniera autonoma i dati richiesti dal processore in memoria (a blocchi)
– Il processore viene informato quando tutti i dati richiesti sono stati trasferiti (attraverso un’interrupt)
49
Politecnico di Milano
Le architetture a bus multipliLe architetture a bus multipli
• I moderni calcolatori contengono spesso più bus– Uno o più bus del processore (il caso del Pentium II)
– Uno o più bus al quale collegare schede di espansione (es. ISA, PCI, AGP)
– Uno o più bus delle periferiche (Es. EIDE, SCSI, USB)
• I diversi bus operano spesso a frequenze diverse sotto il controllo del processore– Concettualmente si tratta sempre di un unico bus ma suddiviso
in più “tratti” operanti a velocità differente
• Opportuni processori di controllo (Es. chipset della scheda madre) si occupano di gestire i passaggi di dati tra i diversi bus
50
Politecnico di Milano
Un moderno PC x86: schema Un moderno PC x86: schema architetturalearchitetturale
cache L1
bus esterno
cache L2
bus AGP
scheda video
RAMvideo
bus PCI
controller dischi
(EIDE o SCSI)
bus dischi
HD1 HDn CD...
scheda PCI
bus ISA
scheda ISA
controllerperiferiche
processore
RAM
processorevideo
51
Politecnico di Milano
Caratteristiche Caratteristiche architetturaliarchitetturali di di alcuni processori x86 alcuni processori x86 -- 11• Intel 486
– 8 registri interni a 32 bit
– 8 kbyte cache L1 unificata
– 1 istruzione per ciclo di clock
– Clock interno: 33, 66 e 100 Mhz
– Bus esterno 33 Mhz
– 1.2 - 1.8 (DX4) milioni di transistor
– 1 - 0.8 micron
• Intel Pentium MMX– 8 registri interni a 32 bit
– 16+16 kbyte cache L1
– 2 istruzioni per ciclo di clock
– Clock interno: fino a 300 Mhz
– Bus esterno 66 Mhz
– 3.5 milioni di transistor (0.35 µ)
• Intel Pentium II– registri interni a 32 bit
– 16+16 kbyte cache L1
– 3 istruzioni per ciclo di clock
– Clock interno: fino a 450 Mhz
– Cache L2 integrata nel package (512 Kbyte operanti alla metà della frequenza del clock interno)
– Bus esterno 100 Mhz
– 7.5 milioni di transistor (0.25 µ)
• Intel Celeron “mendocino”– Come sopra ma con 128 Kbyte di
cache L2 “on die” operanti a piena frequenza...
– ... e bus esterno a 66 Mhz
– Disponibile in versione slot 1 o socket 370
52
Politecnico di Milano
Caratteristiche Caratteristiche architetturaliarchitetturali di di alcuni processori x86 alcuni processori x86 -- 22• Intel Pentium III
– Come Pentium II ma con un set esteso di istruzione (KNI)
– Annunciato anche in tecnologia 0.18 µ e bus esterno a 133 Mhz
• AMD K6-2– registri interni a 32 bit
– 32+32 kbyte cache L1
– 3 istruzioni per ciclo di clock
– Clock interno: fino a 450 Mhz
– Bus esterno 100 Mhz
– 9.300.000 transistor (0.25 µ)
– Dispone di un set di istruzioni supplementare (3DNow!)
• IBM PowerPC 750– architettura RISC
– registri interni a 32 bit
– 32+32 Kbyte cache L1
– 4 istruzioni per ciclo di clock
– Clock interno fino a 400 Mhz
– Bus cache L2 operante alla metà della velocità del processore (fino a 1 MB)
– 6.350.000 transistor (0.22 µ)
53
Politecnico di Milano
Il sistema operativoIl sistema operativo
• Con il termine sistema operativo si intende l’insieme di programmi e librerie che opera direttamente sulla macchina fisica...
• ... mascherandone le caratteristiche specifiche...
• ... e fornendo agli utenti un insieme di funzionalità di alto livello
54
Politecnico di Milano
Una possibile classificazione dei Una possibile classificazione dei moderni S.O.moderni S.O.• I moderni sistemi operativi possono essere
classificati in:– Sistemi monotask:
• Permettono l’esecuzione di un solo programma utente per volta (es. DOS)
– Sistemi multitask• Permettono l’esecuzione di più programmi utente
contemporaneamente• Classificazione ulteriore:
– Multitasking cooperativo (Windows 3.1, MacOS prime versioni)
– Multitasking preemptive (Windows 95/98/NT, Unix, MacOSulime versioni)• Time sharing o meno
55
Politecnico di Milano
Architettura di un S.O. Architettura di un S.O. -- 11
• Un moderno S.O. è organizzato secondo una architettura “a strati” (a cipolla)
• Ogni strato implementa una macchina virtuale più potente del precedente– Appoggiandosi alle funzionalità offerte dallo strato precedente
• Tale approccio permette una chiara separazione tra interfaccia e implementazione delle diverse funzionalità
• Ogni strato è costituito da un insieme di programmi e librerie– I meccanismi di chiamate tra livelli possono essere diversi
• chiamate a sottoprogrammi, interruzioni sincrone o asincrone, invio di messaggi a processi
56
Politecnico di Milano
Architettura di un S.O. Architettura di un S.O. -- 22
Macchina fisica
Gestore dei processi (nucleo)
Gestore della memoria
Gestore delle periferiche
Gestore del file system
Interp. comandi Interf. graf.
Programmi utente
57
Politecnico di Milano
Funzionalità offerte dai diversi stratiFunzionalità offerte dai diversi strati
• Il gestore dei processi– Si appoggia direttamente sulla macchina fisica
– Effettua la gestione dei processi
– In un sistema multitasking realizza una macchina virtuale in cui ad ogni processo è assegnata un processore virtuale
– Comprende i principali programmi di risposta ad interruzione
– Realizza le primitive di sincronizzazione e scambio messaggi tra processi
58
Politecnico di Milano
Funzionalità offerte dai diversi strati Funzionalità offerte dai diversi strati
Memoriacentrale
Interfacciadelle
periferiche
Bus di sistema
Processorevirtuale
Processorevirtuale
Processorevirtuale
...
Disco
• La macchina virtuale realizzata dal gestore dei processi
59
Politecnico di Milano
Il gestore dei processi Il gestore dei processi -- 11
• A differenza di un programma, un processo è una entità dinamica– Composto dal codice in esecuzione e da uno stato
dell’esecuzione
• La relazione tra programma e processo non è necessariamente biunivoca– Un programma può dar luogo a più processi (programmazione
concorrente)
• In un calcolatore con singolo processore un solo processo può essere in esecuzione in ogni istante– Gli altri processi sono pronti o in attesa
60
Politecnico di Milano
Il gestore dei processi Il gestore dei processi -- 22
• Stati di un processo– In esecuzione
• Al processo è assegnato il processore
• Il processo esegue fino a quando non si verifichi un evento esterno (interruzione esterna) o fino a quando il processo non richieda l’esecuzione di una operazione di I/O attraverso una supervisor-call (interruzione interna)
– In attesa• Il processo giunge in questo stato a seguito di una
interruzione interna
• Andrà in stato di pronto non appena l’operazione richiesta sia completata
61
Politecnico di Milano
Il gestore dei processi Il gestore dei processi -- 33
– Pronto• Il processo giunge in questo stato dallo stato di
attesa a seguito del completamento della operazione di I/O richiesta...
• ... o dallo stato di esecuzione, al verificarsi di una interruzione esterna o allo scadere del quanto di tempo assegnato al processo (nel caso di S.O. preemptive, time sharing)
62
Politecnico di Milano
Il gestore dei processi Il gestore dei processi -- 44
In esecuzione
In attesaPronto
Interruzioneinterna
Interruzione esterna,fine quanto di tempo
Primo proc.pronto
Evento esternoatteso
Inizio esecuzione
Fineesecuzione
63
Politecnico di Milano
Il gestore dei processi Il gestore dei processi -- 55
• Ad ogni processo è associata un’area di memoria: il descrittore del processo– Tale area viene usata per memorizzarne il contesto
quando non è in esecuzione
Puntatore dinamicoIdentificatore
PrioritàPC
Registro 0..
Registro n
64
Politecnico di Milano
Il gestore dei processi Il gestore dei processi -- 66
• I processi possono chiedere servizi di I/O al S.O usando le supervisor call.– Tali eventi vengono detti interruzioni interne o sincrone– A seguito di tali eventi, il processo viene portato in uno stato di
attesa...
– ... il suo contesto viene salvato nel descrittore...
– ... ed il descrittore viene posto in una coda di attesa(context-switching)
– Nota: tale sequenza di operazioni deve essere atomica
– Al verificarsi di un evento esterno che segnali il completamentodell’attività di I/O richiesta il processo viene spostato dallo stato di attesa a quello di pronto
• Spostando il descrittore dalla coda dei processi in attesa alla coda dei processi pronti
65
Politecnico di Milano
Il gestore dei processi Il gestore dei processi -- 77
• Interruzioni esterne (o asincrone)– Sono utilizzate dalle periferiche per comunicare al processore il
verificarsi di un certo evento
– All’arrivo di una interruzione, il processo in esecuzione viene portato in stato di pronto (preemption)...
• Il suo contesto viene salvato nel descrittore ed il descrittore viene posto nella coda dei processi pronti
– ... e viene attivata una procedura di gestione dell’interruzione• L’indirizzo iniziale di tale procedura è contenuto nel vettore di
interruzione
• Nota: la procedura di gestione delle interruzioni deve essere eseguita ad interruzioni disabilitate
66
Politecnico di Milano
Il gestore dei processi Il gestore dei processi -- 88
• Time sharing– Per migliorare i tempi di risposta dei diversi
processi, i moderni S.O. utilizzano il meccanismo del time-sharing
– Ad ogni processo attivo è assegnato un quanto di tempo...
– ... allo scadere del quale il processo viene spostato in stato di pronto ed il processore viene assegnato ad un altro processo
– Dimensioni tipiche del quanto di tempo sono di qualche decina di millisecondi
67
Politecnico di Milano
Il gestore dei processi Il gestore dei processi -- 99
• Politiche di gestione dei processi– La coda dei processi pronti può essere
gestita secondo politiche diverse• FIFO (gestione round-robin dei processi)• Secondo priorità (gestione a priorità dei processi)
– Priorità statica vs. priorità dinamica
• Altre funzioni svolte dal nucleo– Sincronizzazione dei processi
• Realizzata implementando opportune primitive– Basate su variabili condivise (semafori)– Basate su scambio messaggi
68
Politecnico di Milano
Funzionalità offerte dai diversi strati Funzionalità offerte dai diversi strati
• Il gestore della memoria– Realizza le funzionalità di allocazione della
memoria• Supera i limiti della memoria fisica e mostra ai
processi uno spazio di memoria virtuale
– Partiziona la memoria tra i vari processi che la richiedono• Garantendo la protezione delle diverse zone di
memoria
69
Politecnico di Milano
Funzionalità offerte dai diversi strati Funzionalità offerte dai diversi strati
• La macchina virtuale realizzata dal gestore della memoria
Interfacciadelle
periferiche
Bus di sistema
Processorevirtuale ...
Disco
Processorevirtuale
Processorevirtuale
Memoriavirtuale
Memoriavirtuale
Memoriavirtuale...
70
Politecnico di Milano
Il gestore della memoriaIl gestore della memoria
• E’ responsabile di:– Suddividere la memoria tra i vari processi in
esecuzione
– Rilocare i programmi affinché possano eseguire indipendentemente dalla loro effettiva posizione fisica
– Gestire la politica di assegnamento della memoria ai processi• Tale politica deve essere coordinata con la
politica di gestione dei processi svolta dal nucleo
71
Politecnico di Milano
Il gestore della memoria:Il gestore della memoria:la memoria di la memoria di swapswap• Il gestore della memoria può usare una
parte della memoria di massa come area di memoria di appoggio– Quando un processo è sospeso i suoi
segmenti dati, codice e stack possono essere spostati su disco per liberare memoria centrale
– Ciò consente di mostrare ai processi una memoria virtuale di dimensione superiore alla memoria centrale
72
Politecnico di Milano
Il gestore della memoria:Il gestore della memoria:S.O. realiS.O. reali• Unix e Windows NT:
– Ogni processo ha la visibilità di uno spazio di indirizzamento virtuale lineare, ...
– ... distinto da quello degli altri processi in esecuzione– Le routine di S.O. eseguono in uno spazio di indirizzamento
privato e protetto (vengono eseguite in modalità “kernel”)
• Windows 95/98– Ogni processo ha la visibilità di uno spazio di indirizzamento
virtuale lineare, ...– ... solo parzialmente distinto da quello degli altri processi in
esecuzione– Le routine di S.O. eseguono nello spazio di indirizzamento del
processo chiamante (vengono eseguite in modalità “user”)
73
Politecnico di Milano
Funzionalità offerte dai diversi strati Funzionalità offerte dai diversi strati
• Il gestore delle periferiche– Maschera le caratteristiche fisiche delle
periferiche
– Fornisce agli strati superiori un insieme di procedure di alto livello per l’accesso alle diverse periferiche
– Offre ad ogni processo la visibilità di un insieme di periferiche virtuali dedicate
– Gestisce, almeno in parte, i malfunzionamenti delle periferiche
74
Politecnico di Milano
Funzionalità offerte dai diversi strati Funzionalità offerte dai diversi strati
• La macchina virtuale realizzata dal gestore delle periferiche
Interfacciaperiferiche
virtuali
Bus di sistema
Processorevirtuale
Disco
Memoriavirtuale
...Bus
Interfacciaperiferiche
virtuali
Processorevirtuale
Memoriavirtuale
Bus
75
Politecnico di Milano
Il gestore delle periferiche Il gestore delle periferiche -- 11
• Il gestore delle periferiche ha il compito di mascherare l’accesso alle periferiche– Fornendo primitive di accesso indipendenti
dall’HW
• Spesso l’accesso alle periferiche viene effettuato in maniera analoga all’accesso ai file– Il concetto di stream risulta unificatore tra i
concetti particolari di periferica e file
76
Politecnico di Milano
Il gestore delle periferiche Il gestore delle periferiche -- 22
• Il gestore delle periferiche è costituito da più strati:– Driver fisici
• Routine di risposta ad interruzione
• Concettualmente parte del nucleo
– Driver logici• Routine che operano al di sopra del nucleo fornendo
l’implementazione delle primitive di accesso alle periferiche
– File speciali• Routine che mascherano le periferiche fornendo un meccanismo
di accesso analogo ai file
• Parte del file system
– Spooling system• Routine per la gestione dell’accesso alle stampanti
77
Politecnico di Milano
Il gestore delle periferiche Il gestore delle periferiche -- 33
• L’accesso fisico alle periferiche (driver fisico) può essere realizzato attraverso due meccanismi– Accesso a polling
• Periodicamente una routine del nuvcleo verifica lo stato delle periferiche
– Accesso tramite interrupt• La periferica genera un interrupt per informare il
nucleo del completamento di un comando
78
Politecnico di Milano
Funzionalità offerte dai diversi strati Funzionalità offerte dai diversi strati
• L’interprete comandi e l’interfaccia grafica– Costituiscono l’interfaccia verso l’utente
– Consentono l’interazione dell’utente con il s.o. e con i programmi applicativi in esecuzione• Permettono di accedere ai programmi conservati su
memoria di massa e mandarli in esecuzione– allocando la memoria necessaria e creando il processo relativo
– Nel caso di un sistema multiutente forniscono ai diversi utenti la visione di una macchina virtuale dedicata
79
Politecnico di Milano
L’interprete dei comandi L’interprete dei comandi -- 11
• L’interprete dei comandi è responsabile di gestire i comandi diretti dell’utente
• Nei moderni S.O. gran parte delle funzionalità classiche dell’interprete dei comandi testuale vengono realizzate attraverso una opportuna interfaccia grafica– Basata su finestre ed icone
• Permane comunque la possibilità/necessità di ricorrere all’interprete dei comandi testuale
80
Politecnico di Milano
L’interprete dei comandi L’interprete dei comandi -- 22
81
Politecnico di Milano
Funzionalità offerte dai diversi strati Funzionalità offerte dai diversi strati
• Il gestore del file system– E’ responsabile della gestione delle
periferiche di massa
– Fornisce agli strati superiori un insieme di procedure per l’accesso al file system
– Garantisce la protezione nell’accesso ai file
82
Politecnico di Milano
Funzionalità offerte dai diversi stratiFunzionalità offerte dai diversi strati
• La macchina virtuale realizzata dal gestore del file system
Interfacciaperiferiche
virtuali
Bus di sistema
Processorevirtuale
Memoriavirtuale
...Bus
File File...
Interfacciaperiferiche
virtuali
Processorevirtuale
Memoriavirtuale
Bus
File File...
83
Politecnico di Milano
Il file system Il file system -- 11
• Il file system fornisce meccanismi per:– Identificare in maniera univoca un file
– Leggere e scrivere dati su un file
– Controllare l’accesso concorrente ai file
– Garantendo la permanenza delle informazioni anche a fronte di malfunzionamenti
– Mascherando le caratteristiche delle particolari periferiche sulle quali i file vengono conservati
84
Politecnico di Milano
Il file system Il file system -- 22
• Ad ogni file viene associato un descrittore– Contiene informazioni caratteristiche del file quale il
suo nome, la dimensione, la posizione di inizio su disco, il proprietario, i permessi di accesso , ecc.
• Ogni file è contenuto in una directory– Rappresentata dal S.O. come insieme di descrittori
• Directory possono contenere altre directory in una struttura ad albero le cui foglie sono i file
• Ogni file è identificato univocamente dal suo pathname– Es. c:\alfa\beta\gamma.txt
85
Politecnico di Milano
Il file system Il file system -- 33
• Il S.O. gestisce i file come sequenze di blocchi di dimensione fissa concatenati tra loro
• L’utente vede i file come sequenze lineari di byte– L’accesso ai file è di tipo sequenziale
• Una opportuna tabella mantiene una lista dei blocchi liberi sul disco
86
Politecnico di Milano
Il file system: Il file system: UnixUnix -- 11
• Il file system Unix è costituito da un unico albero indipendentemente dal numero di volumi– La radice dell’albero è la directory ‘/’– Ogni volume fisico può essere “montato” in un
opportuno punto dell’albero
/a/
/b/c/b
/b/d
/a/e/f/a/e
/a/e/g
87
Politecnico di Milano
Il file system: Il file system: UnixUnix -- 22
• Ogni file è di proprietà di un utente e appartiene ad un gruppo
• E’ possibile specificare permessi di accesso speciali:– per gli utenti generici,
– per gli utenti appartenenti al gruppo che “possiede” il file
– per il proprietario del file
• Es:-rw-r--r-- 1 cugola se 132592 Mar 24 19:09 intro.ps
88
Politecnico di Milano
Il file system: Il file system: UnixUnix -- 33
• Per ogni volume viene gestita una lista dei blocchi liberi (inode)
• Ogni blocco ha dimensione fissa dipendente dal volume– Non inferiore ai 512 byte
89
Politecnico di Milano
Il file system: DosIl file system: Dos
• Il file system è organizzato come un insieme di alberi, uno per ogni volume– Ogni volume ha una sua radice– Es: c:\pippo.txt d:\pippo.txt
• Non viene gestita alcuna protezione nell’accesso ai file da parte di utenti diversi
• Una tabella di dimensione fissa (FAT) tiene traccia dei blocchi liberi ed occupati– La dimensione minima dei blocchi è di 4 Kb– La dimensione fissa della FAT determina la dimensione
minima dei blocchi in dipendenza dalla dimensione del volume– La FAT originale DOS aveva 212 elementi. L’ultima versione ha
216 elementi
90
Politecnico di Milano
Il file system: Windows98Il file system: Windows98
• Window 98 permette l’uso di file system FAT 16 (DOS) o FAT 32– La FAT 32, con 232 elementi, permette di gestire
volumi di grosse dimensioni con blocchi sufficientemente piccoli
• Come in DOS non viene gestita alcuna protezione nell’accesso ai file da parte di utenti diversi
• Come in DOS esiste una radice per ogni volume
91
Politecnico di Milano
Il file system: Windows NTIl file system: Windows NT
• Windows NT permette l’utilizzo di volumi FAT 16 o NTFS
• NTFS è un file system evoluto con gestione dei permessi di accesso– Per ogni file è possibile definire permessi di
accesso diversi per ogni utente e gruppo registrato sul sistema
– Esiste una radice per ogni volume– La gestione dei blocchi liberi è simile a
quella del file system di Unix