Architetture HW E SW Dei Calcolatori - Laboratorio...

46
Architetture HW E SW Dei Architetture HW E SW Dei Calcolatori Calcolatori 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 lezione Obiettivi della lezione Studio delle architetture dei sistemi di elaborazione oggi in uso Dal punto di vista HW… ... ma anche SW (sistema operativo)...

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