Anno accademico 2010-2011 1 La struttura del calcolatore.

101
Anno accademico 2010-2011 Anno accademico 2010-2011 1 La struttura del La struttura del calcolatore calcolatore

Transcript of Anno accademico 2010-2011 1 La struttura del calcolatore.

Page 1: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

11

La struttura del calcolatoreLa struttura del calcolatore

Page 2: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

22

SommarioSommario

• La struttura del calcolatoreLa struttura del calcolatore L’architettura a BUSL’architettura a BUS La CPULa CPU La gerarchia di memorieLa gerarchia di memorie

La memoria centraleLa memoria centraleLa memoria secondariaLa memoria secondaria

I dispositivi di I/OI dispositivi di I/O• Linguaggio macchina e assemblerLinguaggio macchina e assembler• Il sistema operativoIl sistema operativo

Scopo del sistema operativoScopo del sistema operativo Architettura e serviziArchitettura e servizi

Page 3: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

33

La struttura del calcolatoreLa struttura del calcolatoreIBM S/360 Mod 40 (1964) IBM S/360 Mod 40 (1964) 1.6 MHz 32KB1.6 MHz 32KB256KB256KB225.000$225.000$

IBM S/360 Mod 50 (1964)IBM S/360 Mod 50 (1964)2.0 MHz 128KB2.0 MHz 128KB256KB256KB550.000$550.000$

IBM S/360 Mod 65 (1964)IBM S/360 Mod 65 (1964)5.0 MHz 256KB5.0 MHz 256KB1MB1MB1.200.000$1.200.000$

monica
Nel 1964, IBM lanciò sul mercato la serie /360, coniando per l’occasione la definizione di generazione: “The third generation begins” era infatti il titolo dell’articolo in cui veniva presentata la serie IBM/360, per la quale venivano impiegati per la prima volta i circuiti integrati.La base dei circuiti integrati è un cristallo di silicio, ampio qualche millimetro quadrato. Su questa base possono trovarsi migliaia di componenti logiche elementari, stampate direttamente sul circuito o inserite e saldate nei punti di connessione: si raggiungono tempi dell’ordine dei nanosecondi per le operazioni elementari.
Page 4: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

44

• Si possono considerare diversi livelli di astrazione:

Circuiti elettronici (hardware) Architettura e linguaggio macchina Sistema operativo (software di sistema) Linguaggi di programmazione Programmi applicativi

Il calcolatore è basato su circuiti elettronici digitali, ovvero modellabili con l’algebra di Boole; i circuiti elettronici implementano le funzioni logiche AND, OR, NOT, permettono di memorizzare il valore di variabili booleane, di effettuare calcoli, etc.

Silicon GraphicsSilicon Graphics

La struttura del calcolatoreLa struttura del calcolatore

Page 5: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

55

• Tutti i calcolatori attuali si rifanno all’architettura di Von Neumann, costituita dalle quattro componenti:

CPU (Central Processing Unit)CPU (Central Processing Unit)

Memoria centraleMemoria centrale

Bus di sistemaBus di sistema

PeriferichePeriferiche

BUS di sistemaBUS di sistema

CPUCPU

tastieratastiera mousemouse memoria dimemoria dimassamassa monitormonitor

Memoria Memoria centralecentrale

PeriferichePeriferiche

La macchina di Von Neumann La macchina di Von Neumann 1 1

Page 6: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

66

La macchina di Von Neumann La macchina di Von Neumann 2 2

• Carratteristiche del modello di Von NeumannCarratteristiche del modello di Von Neumann

Proceduralità:Proceduralità: possibilità di eseguire differenti programmi memorizzati

Il modello è basato sul paradigma di programmazione procedurale: il programma indica la sequenza di istruzioni da eseguire per ottenere la soluzione ad una data classe di problemi

Sequenzialità:Sequenzialità: regola della selezione dell’istruzione da eseguire rigidamente fissata

Connessione tra le unità funzionali con singolo flusso di informazione tra memoria e processore: architettura a BUSarchitettura a BUS

Page 7: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

77

• L’architettura più consolidata per il calcolatore prevede quindi unità funzionali fra loro collegate attraverso un unico canale di comunicazione, il busbus

• Il bus è fisicamente realizzato mediante un insieme di connettori elettrici

MemoriaprincipaleCPU I/O I/OI/O

BUSIndirizziDatiControllo

Dispositivi di Input/Output

Architettura a BUSArchitettura a BUS

Page 8: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

88

• Il bus è utilizzato per trasferire dati fra le unità funzionali L’unità che inizia il trasferimento (in genere la

CPU) fornisce l’indirizzo, che individua univocamente il dato, sulle linee del bus indirizzibus indirizzi, e configura le linee del bus di controllobus di controllo, inviando un comando al dispositivo che contiene il dato (es. READ, alla memoria principale)

Il dato da trasferire è reso disponibile sul bus dati bus dati e viene ricopiato nel dispositivo destinatario

Il BUS Il BUS 1 1

Page 9: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

99

MemoriaMemoriaprincipaleprincipaleCPUCPU

READ1 MEM1

0008AB380008AB38

0008AB380008AB380008AB380008AB38Indirizzo a

32 bit (32 fili)

5F66B1025F66B102Dato a 32 bit (32 fili)

trasferito dalla memoria principale alla CPU

READ1 MEM1

MemoriaMemoriaprincipaleprincipaleCPUCPU

0008AB38

5F66B1025F66B102

5F66B102

5F66B1025F66B102

Il BUS Il BUS 2 2• EsempioEsempio

Un bus indirizzi composto da 32 connettori indirizza 4 GB di memoria

Per una CPU a 32 bit, anche il bus dati è composto da 32 connettori

Page 10: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

1010

l’orologio del sistemaorologio del sistema che fornisce al computer un battito regolare

• La CPU lavora a N GHz: segue un ritmo di N miliardi di impulsi al secondo (es., una CPU con un clock a 3 GHz è temporizzata da tre miliardi di impulsi al secondo)

Intel PentiumIntel Pentium

• La Central Processing UnitCentral Processing Unit è l’unità centrale di elaborazione: esegue le istruzioni dei programmi e ne regola il flusso, esegue i calcoli

• La CPU è un dispositivo sincronosincrono, cioè può cambiare stato solo quando riceve un impulso di clockclock,

La CPU La CPU 1 1

Page 11: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

1111

• La frequenza di clock determina la velocità di elaborazione del computer: più alta è la frequenza di clock, maggiore è la velocità di elaborazione

• La velocità e la potenza di un computer dipendono però anche dalla larghezza del bus, ovvero dal numero di bit (ampiezza del singolo dato) che il processore è in grado di ricevere e di elaborare simultaneamente Attualmente, i processori sono in grado di

elaborare dati rappresentati con 64 bit

La CPU La CPU 2 2

Page 12: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

1212

• La CPU è costituita da tre elementi fondamentali: Unità AritmeticoUnità AritmeticoLogica (ALU)Logica (ALU) RegistriRegistri Unità di Controllo (CU)Unità di Controllo (CU)

EUExecution Unit}

ALUALU CUCU

PCPC

IRIR

registriregistriContatore di programma

(Program CounterProgram Counter)

Registro Istruzione(Instruction RegisterInstruction Register)BUSBUS

BIUBus Interface Unit

La CPU La CPU 3 3

Page 13: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

1313

• A livello “macroscopico”, ad ogni impulso di clock, la CPU:

“legge” il suo stato interno (determinato dal contenuto dei registri di stato) e la sequenza di ingresso (determinata dal contenuto dei registri istruzione e dati)

produce un nuovo stato “dipendente” dallo stato in cui si trovava originariamente

• In pratica, la CPU realizza una complessa funzione logica, con decine di ingressi e di uscite

la corrispondente tabella di verità avrebbe un numero enorme di righe (miliardi di miliardi)

La CPU La CPU 4 4

Page 14: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

1414

• Lo stato della CPU è costituito da informazioni (memorizzate negli opportuni registri) su:

dati da elaborare (contenuti nei registri datiregistri dati)

istruzione da eseguire (nel registro istruzioniregistro istruzioni)

indirizzo in memoria della prossima istruzione da eseguire (nel program counterprogram counter)

eventuali anomalie o eventi verificatisi durante l’elaborazione (nei registri flagregistri flag)

La CPU La CPU 5 5

Page 15: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

1515

• Set di istruzioni di base: somma (da cui sottrazione)

scorrimento (shift)

operazioni logiche

operazioni di accesso alla memoria trasferimento di un dato da una locazione di memoria ad

un’altra trasferimento da memoria a un registro della CPU trasferimento da un registro della CPU a memoria

operazioni di confronto (sufficiente confronto con zero)• Le operazioni (eccetto quelle di accesso alla memoria) sono

eseguite all’interno della ALU e “coordinate” dall’unità di controllo

}(da cui moltiplicazione e divisione)

La CPU La CPU 6 6

Page 16: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

1616

• Il tipo di operazione selezionata, in un dato istante, dipende dallo stato di alcune linee di controllo provenienti dalla CU

• Le operazioni logiche (es. AND) vengono eseguite bit a bit fra i due operandi

• Esiste una unità specializzata per le operazioni in virgola mobile (FPUFPU)

• L’ALUALU (ArithmeticArithmeticLogic UnitLogic Unit) è un circuito in grado di eseguire operazioni aritmetiche e logiche su 2 operandi, rappresentati su n bit (es. 32/64 bit); oltre al risultato dell’operazione può produrre informazioni ulteriori su linee specifiche (il risultato è zero, si è verificato un overflow, etc.)

L’Unità AritmeticoL’Unità AritmeticoLogicaLogica

ALU ResultZero

Overflow

a

b

ALU operation

C arryOut

Page 17: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

1717

• I registri sono dispositivi di memorizzazione che consentono un accesso molto veloce ai dati che contengono; hanno dimensioni prefissate (es. 32/64 bit)

• Alcuni registri hanno funzioni specifiche (es. contatore di programma)

• Nella maggior parte delle architetture, le operazioni della ALU si possono effettuare solo fra dati presenti nei registri ed anche il risultato viene momentaneamente memorizzato in un registro

EIP Instruction pointer (PC)

EFLAGS Condition codes

Code segment pointerCS

Stack segment pointer (top of stack)SS

Data segment pointer 0DS

Data segment pointer 1ES

Data segment pointer 2FS

Data segment pointer 3GS

031

GPR 0EAX

GPR 3EBX

GPR 1ECX

GPR 2EDX

GPR 6ESI

GPR 7EDI

GPR 5EBP

GPR 4ESP

Name Use

Registri del Registri del PentiumPentium

I registriI registri

Page 18: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

1818

• Registro puntatore allo stack:Registro puntatore allo stack: SPSP (Stack Stack PointerPointer), lo stack è un insieme di celle di memoria che può essere acceduto in modalità LIFO (LastInFirstOut0); la posizione in cui si trova l’elemento inserito per ultimo è la testa dello stack, che viene puntata dal registro SP; lo stack è organizzato in modo da crescere verso indirizzi decrescenti: SP viene decrementato ad ogni nuova immissione (pushpush) ed incrementato ad ogni prelievo (poppop)

• Registri accumulatori:Registri accumulatori: sono integrati alla ALU, che vi può operare direttamente; mantengono risultati temporanei

• Registro di stato:Registro di stato: PSWPSW (Program Status WordProgram Status Word), contiene i flag di stato, bit impostati dall’HW della CPU dopo un’operazione, per indicare particolari condizioni circa l’esito dell’esecuzione (es. segno, risultato nullo, overflow, carry,…)

2100

SP2000

2000

Registri e loro funzioniRegistri e loro funzioni

Page 19: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

1919

• Esegue le istruzioni prelevandole dalla memoria nella fase di fetchfetch

• La prossima istruzione da eseguire è individuata dall’indirizzo presente nel registro contatore di programmaregistro contatore di programma (PC)

• L’istruzione in esecuzione è memorizzata nel registro istruzioneregistro istruzione (IR)

• L’istruzione è un codice binario che deve essere decodificatodecodificato dalla CU; specifica il tipo di operazione, gli eventuali operandi, etc.

• Normalmente le istruzioni sono eseguite in sequenza: dopo il fetch, il PC viene incrementatoPC viene incrementato, per fare riferimento all’istruzione successiva

CU

IR

PC

memoriaBUS

Istruzione 1Istruzione 2Istruzione 3

02AD77F2

02AD77F2

Segnali di controllo(ALU, Registri, etc.)

L’unità di controlloL’unità di controllo

Page 20: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

2020

• Il processore esegue le istruzioni di un programma una alla voltauna alla volta in sequenza: estrae le istruzioni dalla memoria, le interpreta e le esegue una dopo l’altra Un programma indica la sequenza di istruzioni da

eseguire per ottenere la soluzione ad un data classe di problemi

• Il processore esegue ogni istruzione mediante una sequenza ben definita di operazioni detta ciclo di ciclo di istruzioneistruzione o ciclo macchinaciclo macchina Estrazione di una istruzione: fase di fetchfase di fetch Esecuzione dell’istruzione: fase di executefase di execute

Come si eseguono i programmi Come si eseguono i programmi 11

Page 21: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

2121

• Fase di fetchFase di fetch L’unità di controllo preleva dalla memoria centrale

l’istruzione, utilizzando l’indirizzo conservato nel PC L’ istruzione prelevata viene memorizzata nel

registro IR• Fase di ExecuteFase di Execute

L’unità di controllo interpreta l’istruzione e determina le operazioni da eseguire

L’unità di controllo sovrintende all’esecuzione delle operazioni

Il PC viene incrementato per puntare all’istruzione successiva

Come si eseguono i programmi Come si eseguono i programmi 22

Page 22: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

2222

• Le memorie sono dispositivi per “lo stoccaggio” delle informazioni

• Ogni memoria è costituita da celle, a cui si accede tramite un indirizzo

• In ogni elaboratore vi sono tre tipi di memorie: Registri: Registri: contengono informazioni necessarie alla

elaborazione della singola istruzione Memoria centrale:Memoria centrale: contiene dati e istruzioni

attualmente elaborati dal processore Memorie di massa:Memorie di massa: contengono dati e programmi

che non sono oggetto di elaborazione immediata

Le memorie Le memorie 1 1

Page 23: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

2323

• I parametri fondamentali che definiscono una memoria sono: Dimensione della parolaDimensione della parola (locazione di memoria) Modalità di accessoModalità di accesso (diretto o sequenziale) Permanenza o volatilità dei datiPermanenza o volatilità dei dati CapacitàCapacità (numero di locazioni disponibili), espressa in KB,

MB, GB, etc. Tempo di accessoTempo di accesso, necessario per accedere ad una

locazione di memoria per un’operazione di lettura o scrittura, espresso in nanosec, millisec, sec

• In base agli ultimi due parametri, le memorie si collocano a diversi livelli di una gerarchia, che va da memorie più capaci ma più lente (memorie di massa) a memorie piccole e veloci (registri)

Le memorie Le memorie 2 2

Page 24: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

2424

Gerarchia di memorieGerarchia di memorie

Tbyte

Gbyte

Page 25: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

2525

• La memoria centrale o memoria principale, detta anche RAMRAM (Random Access MemoryRandom Access Memory, ovvero memoria ad accesso casuale, perché qualsiasi cella può essere letta/scritta in un tempo, mediamente, costante), è la memoria in linea con il processore, che contiene i dati e i programmi che sono attualmente utilizzati/in esecuzione

• Un programma, quando non è oggetto di elaborazione, è memorizzato su memoria di massa (dischi)

• Quando deve essere eseguito, viene caricato tutto o in parte, in memoria centrale (memoria virtuale)

La memoria centrale La memoria centrale 1 1

Page 26: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

2626

• Le caratteristiche fondamentali della memoria centrale sono: accesso diretto alle informazioniaccesso diretto alle informazioni velocità elevatavelocità elevata volatilitàvolatilità: quando il computer viene spento, i dati

e i programmi presenti in memoria vengono cancellati

• La tecnologia utilizzata per la memoria centrale è quella dei dispositivi a semiconduttori, che la fanno apparire come una matrice di bit Ogni bit è presente come stato (alto o basso) di

tensione

La memoria centrale La memoria centrale 2 2

Page 27: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

2727

• La memoria principale è un insieme di locazioni o celle

• L’unità di memorizzazione, la dimensione della singola cella, è il byte

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

La memoria centrale La memoria centrale 3 3

Page 28: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

2828

128 MB 27220 byte 137438953472 byte

227

00000xxxxxxxxxxxxxxxxxxxxxxxxxxx

27 bit indirizzo all’internodel blocco

07FFFFFF

0000000032 bit

128 MB

La memoria centrale La memoria centrale 4 4

• Esempio: Esempio: memoria con capacità di 4 GB

Page 29: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

2929

• Il registro indirizzi registro indirizzi contiene l’indirizzo della cella che deve essere acceduta; la sua dimensione deve essere tale da permettere che tutte le celle di memoria possano essere indirizzate

• Esempio: Esempio: un registro a 16 bit indirizza 65536 posizioni di memoria

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

• Il registro dati registro dati contiene l’informazione da scrivere/letta sulla/dalla cella indirizzata; la dimensione del registro è uguale a quella delle celle di memoria

BU

SB

US

Registro datiRegistro dati

Memoria centraleMemoria centrale

Registro indirizziRegistro indirizzi

Decodificatore indirizziDecodificatore indirizzi

Architettura della memoria Architettura della memoria centralecentrale

Page 30: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

3030

• La connessione tra memoria e processore rappresenta un limite degli elaboratori di Von Neumann Limite architetturale: il bus permette l’accesso ad una

sola informazione per volta (“collo di bottiglia”) Limite tecnologico: la velocità con cui il processore

ottiene le informazioni dalla memoria centrale (velocità di accesso della RAM) è inferiore alla velocità con cui è in grado di elaborarle

• SoluzioniSoluzioni Allargamento del bus dati, in modo da poter estrarre più

istruzioni e/o dati per volta Superamento del limite tecnologico mediante

introduzione di una memoria intermedia tra memoria introduzione di una memoria intermedia tra memoria centrale e processore che approssimi la velocità del centrale e processore che approssimi la velocità del processoreprocessore

Processore e RAMProcessore e RAM

Page 31: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

3131

• Piccola RAM molto veloce, interposta tra CPU e memoria principale, per migliorare le prestazioni del sistema

Quando viene indirizzata una parola, quella parola e alcune di quelle vicine vengono trasferite dalla lenta memoria centrale nella più piccola e veloce memoria cache, in modo che la parola successiva sia accessibile più velocemente (principio di località principio di località spaziospaziotemporale del softwaretemporale del software)

La memoria cacheLa memoria cache

Page 32: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

3232

• Una parte della memoria centrale è la ROMROM (Read Only MemoryRead Only Memory ), una memoria a sola lettura, destinata a contenere informazioni non variabili

• Caratteristiche delle memorie ROM: accesso casuale alle informazioniaccesso casuale alle informazioni velocità elevata velocità elevata (inferiore alle RAM)

• La ROM viene scritta in modo permanente in fase costruttiva: le celle della ROM possono essere successivamente lette, ma mai riscritte

• Viene usata per memorizzare programmi di sistema

La memoria ROMLa memoria ROM

Page 33: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

3333

• La ROM contiene il software e i dati necessari ad inizializzare il computer ed a far funzionare i dispositivi periferici

• Il nucleo del software della ROM è costituito dalle routine di avviamentoroutine di avviamento che comprendono il caricatore di bootcaricatore di bootstrapstrap ed il ROM BIOSROM BIOS

• Le routine di avviamento routine di avviamento realizzano l’inizializzazione del calcolatore: Ne effettuano un rapido controllo di affidabilità,

per accertare che tutte le componenti hardware siano perfettamente funzionanti

Caricano il sistema operativo dal disco (caricatore di bootstrap)

Il software della ROM Il software della ROM 1 1

Page 34: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

3434

Il software della ROM Il software della ROM 2 2

• Il caricatore di bootcaricatore di bootstrap strap ha la funzione di leggere un programma di lancio dal disco, detto bootstrapbootstrap, e di trasferire ad esso il controllo: il boostrap carica il nucleo del sistema operativo e lo manda in esecuzione

• Il ROM BIOS ROM BIOS Binary InputBinary InputOutput System Output System è la parte della ROM attiva quando il computer è al lavoro: il suo ruolo è quello di fornire un insieme di servizi di base richiesti per il funzionamento delle periferiche

Page 35: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

3535

• Le operazioni che si effettuano sulla memoria sono operazioni di letturalettura e scritturascrittura

• Entrambe presuppongono l’utilizzo di un indirizzo che identifica univocamente la cella interessata all’operazione

• L’operazione di scrittura è distruttivadistruttiva, cioè cancella l’informazione precedentemente contenuta nella cella

• L’operazione di lettura preserva il contenuto della cella indirizzata: all’esterno della memoria centrale viene trasferita copia dell’informazione

Operazioni sulla memoria Operazioni sulla memoria centralecentrale

Page 36: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

3636

Il disco fisso è costituito da uno o più piatti metallici ricoperti di materiale magnetico su entrambe le facce

Ciascuna superficie è associata ad una o più testine di lettura/scrittura che si muovono radialmente per leggere/ scrivere l’informazione organizzata in tracce concentricheDischi magneticiDischi magnetici

• Esistono diversi dispositivi di memoria secondaria: dischi magnetici (hard disk), dischi ottici (CD, DVD), dispositivi USB, memorie flash

• Memoria non volatile ad alta capacità

La memoria secondariaLa memoria secondaria

Page 37: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

3737

• I dischi magnetici dischi magnetici rappresentano il mezzo fondamentale per la memorizzazione di massa I dischi ruotano ad una velocità (costante) compresa tra i

60 e i 200 giri al secondo

I dischi magnetici I dischi magnetici 1 1

Page 38: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

3838

• L’informazione è disposta sul disco in traccetracce, ovvero in cerchi concentrici

• La densità dei bit decresce dalle tracce interne alle più esterne per mantenere costante la quantità di dati che passano sotto le testine nell’unità di tempo

• Le tracce sono divise in settorisettori• La capacità di memorizzazione dei dischi cresce

in conseguenza allo sviluppo tecnologico

Platter

Track

Platters

Sectors

Tracks

I dischi magnetici I dischi magnetici 2 2

Page 39: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

3939

• Il numero di bit contenuti in una traccia è dell’ordine delle centinaia di migliaia (512/4096 byte a settore)

• Centinaia di settori (512/1024 per traccia)• Decine di migliaia di cilindri (tracce concentriche

disposte sulle diverse facce dei diversi dischi)• Per leggere (o scrivere) sul disco, la testina si deve

posizionare sulla traccia che contiene il dato ed attendere che il dato passi sotto di essa Le operazioni di lettura/scrittura si basano sulla

proprietà del campo magnetico di indurre/essere indotto il/dal passaggio di corrente in una bobina

I dischi magnetici I dischi magnetici 3 3

Page 40: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

4040

• La magnetizzazione avviene infatti mediante la testina magneticatestina magnetica (una piccola bobina racchiusa in un involucro di metallo dotato di una minuscola fessura, il traferrotraferro)

• Facendo passare corrente nella bobina si induce un campo magnetico nel traferro (invertendo la corrente si inverte anche il campo)

• Quando si fa passare corrente attraverso la testina alternandone la direzione, le aree del disco al di sotto della testina si magnetizzano in una delle due direzioni: questo procedimento rappresenta la scrittura su disco scrittura su disco

I dischi magnetici I dischi magnetici 4 4

Page 41: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

4141

• II dati binari che l’unità scrive sul disco sono dati binari che l’unità scrive sul disco sono tradotti in un formato costituito da una serie di tradotti in un formato costituito da una serie di aree magnetizzate in un senso o nell'altroaree magnetizzate in un senso o nell'altro

• Lettura da discoLettura da disco: poiché le particelle magnetizzate sono circondate da un campo magnetico, quando il traferro passa sul disco le variazioni del campo inducono sulla testina una corrente che si manifesta con variazioni di voltaggio alle estremità della bobina; i circuiti di lettura decodificano le variazioni nell’andamento dell’intensità di corrente riconducendole a 0/1

I dischi magnetici I dischi magnetici 5 5

Page 42: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

4242

• Il tempo medio di accesso all’informazione memorizzata su disco è dato da

tseek è il tempo di ricercatempo di ricerca, necessario per posizionare la testina sulla traccia che contiene l’informazione; dipende dall’ampiezza dello spostamento

tlat è il tempo di latenzatempo di latenza, necessario perché l’informazione ricercata passi sotto la testina; dipende dalla velocità di rotazione dei dischi

ttr è il tempo di trasferimentotempo di trasferimento ; dipende dalla velocità di rotazione, dalla densità di registrazione e dalla quantità di informazione da trasferire

T tseek tlat ttr

Accesso al discoAccesso al disco

Page 43: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

4343

• Sui dischi ottici dischi ottici si utilizza la tecnologia laser per realizzare le operazioni di lettura/scrittura

• Densità dei bit uniforme Un’unica traccia elicoidale o…

…tracce più lontane dal centro del disco sono più lunghe e contengono un maggior numero di settori (fino al 40% in più rispetto alle tracce vicine al centro di rotazione)

I dischi ottici I dischi ottici 1 1

Page 44: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

4444

• Sui dischi di lettura/scrittura i dati possono essere modificati più e più volte (dischi a cambio di fasedischi a cambio di fase)

• I dischi WORMWORM, Write OnceWrite OnceRead ManyRead Many, si possono scrivere una sola volta

• La tecnologia originale per dischi WORM consiste nell’inserire una pellicola di alluminio tra due piatti di plastica o di vetro (o un pigmento polimerico)

• Per scrivere un bit, l’unità usa un raggio laser per praticare un piccolo foro nell’alluminio (o opacizzare il pigmento): l’informazione può venir distrutta ma non alterata

I dischi ottici I dischi ottici 2 2

Page 45: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

4545

Comportamento:Comportamento: Input (read once), output (write only), memoria (rilettura/riscrittura)

Partner:Partner: uomo o macchina

Velocità del flusso dei dati:Velocità del flusso dei dati: quantità di dati trasferiti nell’unità di tempo da o verso la CPU o la memoria centrale

• Insieme di dispositivi che consentono l’acquisizione di dati (inputinput), la loro archiviazione (storagestorage) e la loro presentazione verso il mondo esterno (outputoutput)

• Si possono classificare in base a tre diverse caratteristiche:

TastieraTastiera inputinputuomo uomo MouseMouse inputinput uomo uomo ReteRete input/outputinput/output macchina macchina Hard DiskHard Disk storagestoragemacchinamacchina

velo

cità

velo

cità

++

101044 KB/s KB/s

101022 KB/s KB/s

I dispositivi di InputI dispositivi di InputOutputOutput

Page 46: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

4646

Linguaggio macchina e Linguaggio macchina e assemblerassembler

Page 47: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

4747

• Quando il programma è in esecuzione, è memorizzato nella memoria principale; esso è rappresentato da una serie di numeri binari che codificano le istruzioni eseguibili dall’unità centrale

• Il programma non è quindi distinguibile dai dati osservando il contenuto della memoria; le istruzioni sono individuate dai valori assunti dal registro PC durante l’esecuzione del programma

• Ogni codice binario codifica il tipo di istruzione (OPCODE) ed eventuali parametri (es. registri, indirizzi in memoria)

• I primi calcolatori si programmavano direttamente in linguaggio macchina!

0000000010100001000000000001100000000000100011100001100000100001100011000110001000000000000000001000110011110010000000000000010010101100111100100000000000000000

PCPC

Il linguaggio macchinaIl linguaggio macchina

Page 48: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

4848

• L’insieme delle istruzioni eseguibili, e la relativa codifica, sono generalmente diverse per modelli diversi di processore

• Le istruzioni possono essere codificate con un numero variabile di bit (es. Pentium) o con un numero fisso (es. MIPS 32 bit)

• Le categorie di istruzioni normalmente disponibili sono:

Trasferimento dati:Trasferimento dati: spostano dati (byte, word) tra registri, memoria principale e dispositivi di ingresso/uscita (I/O)

AritmeticoAritmeticologiche:logiche: eseguono i calcoli nella ALU

Salti (condizionati e incondizionati):Salti (condizionati e incondizionati): prendono decisioni e alterano la normale esecuzione sequenziale delle istruzioni

Il set di istruzioni macchinaIl set di istruzioni macchina

Page 49: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

4949

0100000000010000leggi un valore in ingresso e ponilo nella cella numero 16 (variabile x)0100000000010001leggi un valore e ponilo nella cella numero 17 (variabile y)0100000000010010leggi un valore e ponilo nella cella numero 18 (variabile z)0100000000010011leggi un valore e ponilo nella cella numero 19 (variabile r)0000000000010000carica il registro A con il contenuto della cella 160001000000010001carica il registro B con il contenuto della cella 170110000000000000somma i contenuti dei dei registri A e B0010000000010100copia il contenuto del registro A nella cella 20 (risultato, variabile s)0000000000010010carica il registro A con il contenuto della cella 180001000000010011carica il registro B con il contenuto della cella 190110000000000000somma i contenuti dei registi A e B0001000000010100carica il registro B con il contenuto della cella 201000000000000000moltiplica i contenuti dei registri A e B0010000000010100copia il contenuto del registro A nella cella numero 200101000000010100scrivi in output il contenuto della cella numero 201101000000000000arresta l’esecuzione (HALT)……………………… spazio per la variabile x (cella 16)……………………… spazio per la variabile y (cella 17)……………………… spazio per la variabile z (cella 18)……………………… spazio per la variabile r (cella 19)……………………… spazio per la variabile s (cella 20)

Esempio di programmaEsempio di programmain linguaggio macchina in linguaggio macchina

Page 50: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

5050

• Per facilitare la programmazione è stato definito il linguaggio assemblyassembly

• L’assembly impiega una notazione simbolica che è in stretta relazione con i codici in linguaggio macchina; il programma scritto in assembly è convertito automaticamente in linguaggio macchina per mezzo del programma traduttore, l’assemblerassembler

LOAD R1, MEM1 CMP R1, R2 BREQ RISZERO STORE R1, MEM1RISZERO: LOAD R2, MEM2

AssemblerAssembler

1000100011011010110101010101010001001000100100000000000000000000110000000000000000000000000010001001100011011010110101010101010010001001010110101101001000001100

OPCODE(LOAD)

registro indirizzo di memoria

AssemblerAssembler

Page 51: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

5151

• Le istruzioni di trasferimento dati permettono di copiare il valore di un dato fra registri o fra un registro e la memoria

• Si fa riferimento ad un assemblyassembly generico

LOAD REG1, MEMLOAD REG1, [REG2]

STORE REG1, MEMSTORE REG1, [REG2]

MOVE REG1, REG2

REG1

MEM

REG1

REG2

memoriaregistro

registromemoria

registroregistro

Indirizzamento diretto

Indirizzamento indiretto

Trasferimento dei datiTrasferimento dei dati

Page 52: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

5252

• Permettono di eseguire operazioni aritmetiche o logiche su due operandi

ADD REG1, REG2

ALUADD

REG1REG2

OR REG1, REG2 0010 1100 1100 0101 1100 1111 0101 00001010 1110 0000 0000 0010 0001 1000 0001

1010 1110 1100 0101 1110 1111 1101 0001

REG1REG2

REG1

Operazioni aritmeticoOperazioni aritmeticologichelogiche

Page 53: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

5353

• Modificano il flusso di esecuzione del programma Il salto è condizionatocondizionato se viene effettuato solo

quando si verifica una certa condizione

CMP REG1, REG2 BREQ UGUALI LOAD REG1, MEM1UGUALI: STORE REG2, MEM1

Confronta il contenuto dei registri REG1 e REG2

BRanch EQual

Istruzioni di salto Istruzioni di salto 1 1

Page 54: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

5454

• L’istruzione CMPCMP confronta i due argomenti, assegnando valori particolari a bit di condizione che si trovano nel registro PSW (zero, segno)

• L’istruzione di salto condizionato può essere basata su diverse condizioni: BRNE BRNE (branch not equal), BRLE BRLE (branch less equal), etc.

• L’istruzione di salto incondizionato, BRANCHBRANCH, effettua sempre il salto

Istruzioni di salto Istruzioni di salto 2 2

Page 55: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

5555

• Il programma in assembler…

LOAD REG1, a

LOAD REG2, b

ADD REG1, REG2

LOAD REG3, c

LOAD REG4, d

ADD REG3, REG4

MULT REG1, REG3

STORE REG1, e

e(ab)(cd);

…corrisponde all’unica istruzione C:

Assembler e linguaggi di alto Assembler e linguaggi di alto livellolivello

Page 56: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

5656

Il sistema operativoIl sistema operativo

Page 57: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

5757

• Il software può essere diviso in due grandi classi:

i programmi di sistemaprogrammi di sistema, che gestiscono le funzionalità del sistema di calcolo

i programmi applicativiprogrammi applicativi, che risolvono i problemi degli utenti

• L’insieme dei programmi di sistemaprogrammi di sistema viene comunemente identificato con il nome di Sistema Sistema OperativoOperativo (SO)(SO)

• Definizione:Definizione: Un sistema operativo è un programma Un sistema operativo è un programma che controlla l’esecuzione dei programmi applicativi che controlla l’esecuzione dei programmi applicativi ed agisce come interfaccia fra le applicazioni e ed agisce come interfaccia fra le applicazioni e l’hardware del calcolatorel’hardware del calcolatore

Cos’è un sistema operativo Cos’è un sistema operativo 1 1

Page 58: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

5858

• Tutte le piattaforme hardware/software richiedono un sistema operativo

• Quando si accende un elaboratore, occorre attendere alcuni istanti per poter iniziare a lavorare: durante questa pausa il computer carica il SO

Cos’è un sistema operativo Cos’è un sistema operativo 2 2

Page 59: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

5959

• Gestione EFFICIENTE EFFICIENTE delle risorse del sistema di elaborazione

• Rendere AGEVOLEAGEVOLE l’interfaccia tra l’uomo e la macchina

Scopo del sistema operativoScopo del sistema operativo

Page 60: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

6060

• Per l’utente, la percezione del calcolatore dipende dall’interfaccia del SO SO progettato pensando alla facilità d’uso Qualche attenzione alle prestazioni Scarsa attenzione all’utilizzo delle risorse

• Dal punto di vista del sistema di calcolo… Il SO viene percepito come un gestore di risorse

(CPU, RAM, I/O) e come un programma di controllo Arbitra l’esecuzione dei programmi utente

• Non c’è uniformità nel definire cosa fa parte/non compete del/al SO

Percezione del sistema Percezione del sistema operativooperativo

Page 61: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

6161

• Si consideri un ristorante con un capocuoco (che dirige la cucina) ed i suoi aiutanti, camerieri e clienti:

I clienti scelgono un piatto dal menù

Un cameriere prende l’ordine e lo consegna al capocuoco

Il capocuoco riceve l’ordine e assegna uno o più aiutanti alla preparazione del piatto

Ogni aiutante si dedicherà alla preparazione di un piatto, il che potrà richiedere più attività diverse

Il capocuoco supervisiona la preparazione dei piatti e gestisce le risorse (limitate) disponibili

Esempio: il SO come gestore di risorse Esempio: il SO come gestore di risorse 1 1

Page 62: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

6262

• Il capoIl capocuoco è il sistema operativo!cuoco è il sistema operativo!

I clienti sono gli utenti

Le ricette associate ai piatti sono i programmi

Il menù ed il cameriere costituiscono l’interfaccia verso il sistema operativo (grafica e non)

Gli aiutanti sono i processi

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

Esempio: il SO come gestore di risorse Esempio: il SO come gestore di risorse 2 2

Page 63: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

6363

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

fornelli, etc.) Coordinamento efficiente degli aiutanti Licenziamento degli aiutanti che non si comportano

secondo le regole• Problemi del sistema operativo:

Esecuzione dei programmi utente Efficienza nell’uso delle risorse (processori, memoria,

dischi, etc.) Coordinamento dei processi Protezione nell’uso delle risorse e abort dei processi

che se appropriano indebitamente

Esempio: il SO come gestore di risorse Esempio: il SO come gestore di risorse 3 3

Page 64: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

6464

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

Il SO come macchina estesa Il SO come macchina estesa 1 1

Page 65: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

6565

• Il SO può essere inteso come uno strumento che virtualizzavirtualizza le caratteristiche dell’hardware sottostante, offrendo all’utente la visione di una macchina astrattamacchina astratta più potente e più semplice da utilizzare di quella fisicamente disponibile

• In questa visione, un SO… …nasconde a programmatori/utenti i dettagli

dell’hardware e fornisce un’interfaccia conveniente e facile da usare

…agisce come intermediario tra programmatore/utente e hardware

• Parole chiave Indipendenza dall’hardware Comodità d’uso Programmabilità

Il SO come macchina estesa Il SO come macchina estesa 2 2

Page 66: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

6666

• L’utente è in grado di utilizzare la macchina fisica senza conoscere i dettagli della sua struttura interna e del suo funzionamento

1.1. HardwareHardware — fornisce le risorse fondamentali di calcolo (CPU, memoria, device di I/O)

2.2. Sistema OperativoSistema Operativo — controlla e coordina l’utilizzo delle risorse hardware da parte dei programmi applicativi dell’utente

3.3. Programmi ApplicativiProgrammi Applicativi — definiscono le modalità di utilizzo delle risorse del sistema, per risolvere i problemi di calcolo degli utenti (compilatori, database, video game, programmi gestionali)

4.4. UtentiUtenti — persone, altri macchinari, altri elaboratori

Hardware

Sy

stems software

Applications software

Visione “a cipolla” del Visione “a cipolla” del sistema di calcolosistema di calcolo

Il SO come macchina estesa Il SO come macchina estesa 3 3

Page 67: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

6767

• I SO sono costituiti da un insieme di moduli, ciascuno dedicato a svolgere una determinata funzione

• I vari moduli del SO interagiscono tra loro secondo regole precise, al fine di realizzare le funzionalità di base della macchina

KERNELKERNEL

Gestore dei ProcessiGestore dei ProcessiGestore della Gestore della

Memoria Memoria CentraleCentrale

Gestore dell’I/OGestore dell’I/O Gestore del Gestore del File SystemFile System

Interfaccia utenteInterfaccia utente • L’insieme dei moduli per la gestione della CPU e della memoria centrale è il kernelkernel

Architettura del sistema Architettura del sistema operativooperativo

Page 68: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

6868

• Riassumendo: Il sistema operativo fornisce un ambiente per eseguire programmi in modo convenienteconveniente ed efficienteefficiente; funge infatti da…

Allocatore di risorse Allocatore di risorse — controlla, distribuisce ed alloca le risorse (in modo equo ed efficiente)

Programma di controllo Programma di controllo — controlla l’esecuzione dei programmi utente e le operazioni sui dispositivi di I/O

Esempio:Esempio: il filesystemfilesystemSi ha a che fare con file, directory, etc., e non ci si deve preoccupare di come i dati sono memorizzati sul disco

Ancora sul sistema operativoAncora sul sistema operativo

Page 69: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

6969

• Gestione dei processi

• Gestione della memoria principale

• Gestione della memoria di massa (file system)

• Realizzazione dell’interfaccia utente

• Protezione e sicurezza

Compiti del sistema operativoCompiti del sistema operativo

Page 70: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

7070

• Un processoprocesso è un programma in esecuzione Un processo utilizza le risorse fornite dal sistema di

elaborazione per assolvere ai propri compiti La terminazione di un processo prevede il recupero di

tutte le risorse riutilizzabili ad esso precedentemente allocate

• Normalmente, in un sistema vi sono molti processi, di alcuni utenti, e alcuni sistemi operativi, che vengono eseguiti in concorrenza su una o più CPU

• La concorrenza è ottenuta effettuando il multiplexingmultiplexing delle CPU fra i vari processi

La gestione dei processi La gestione dei processi 1 1

Page 71: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

7171

• Il sistema operativo è responsabile delle seguenti attività riguardanti la gestione dei processi: creazione e terminazione dei processi sospensione e riattivazione dei processi gestione dei deadlockdeadlock comunicazione tra processi sincronizzazione tra processi

• Il gestore dei processi “realizza” una macchina Il gestore dei processi “realizza” una macchina virtuale in cui ciascun programma opera come se virtuale in cui ciascun programma opera come se avesse a disposizione un’unità di elaborazione avesse a disposizione un’unità di elaborazione dedicatadedicata

La gestione dei processi La gestione dei processi 2 2

Page 72: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

7272

• Il gestore dei processigestore dei processi è il modulo che si occupa del controllo, della sincronizzazione, dell’interruzione e della riattivazione dei programmi in esecuzione cui viene assegnato un processore

• La gestione dei processi viene compiuta secondo modalità diverse, in funzione del tipo di utilizzo cui il sistema è rivolto

• Il programma che si occupa della distribuzione del tempo di CPU tra i vari processi attivi, decidendone l’avvicendamento, è chiamato schedulerscheduler

• Nel caso di sistemi multiprocessore, lo scheduler si occupa anche di gestire la cooperazione tra le diverse CPU presenti nel sistema (bilanciandone il carico)

La gestione dei processi La gestione dei processi 3 3

Page 73: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

7373

runningrunning readyready

waitwait

nascita

attesa evento (es. I/O)

evento

tempo scaduto

top nella coda di scheduling

termine

Ciclo di vita dei processiCiclo di vita dei processi

Page 74: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

7474

• Le politiche di scheduling sono raggruppabili in due grandi categorie:

Preemptive:Preemptive: l’uso della CPU da parte di un processo può essere interrotto in un qualsiasi momento, e la risorsa concessa ad altro processo

Non preemptive:Non preemptive: una volta che un processo ha ottenuto l’uso della CPU, è unico proprietario della risorsa finché non ne decide il rilascio

Politiche di schedulingPolitiche di scheduling

Page 75: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

7575

• I SO che gestiscono l’esecuzione di un solo programma per volta (un solo processo) sono detti monomonotasking tasking

• Non è possibile sospendere un processo per assegnare la CPU ad un altro

• Sono storicamente i primi SO (es. MSDOS)

tA

B

C

T

Tempo di utilizzo della CPUTempo di attesa di eventi esterni

Sistemi monoSistemi monotaskingtasking

Page 76: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

7676

• I SO che permettono l’esecuzione contemporanea di più programmi sono detti multimultitasking tasking o multimultiprogrammati programmati

• Un programma può essere interrotto e la CPU passata a un altro programma

Tmulti-tasking

tA

B

C

Tmono-tasking

Tempo di utilizzo della CPUTempo di attesa di eventi esterni

Sistemi multiSistemi multitaskingtasking

Page 77: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

7777

• Un’evoluzione dei sistemi multitasking sono i sistemi timetimesharingsharing

• Ogni processo viene eseguito ciclicamente per piccoli quanti di tempoquanti di tempo

• Se la velocità del processore è sufficientemente elevata si ha l’impressione di un’evoluzione parallela dei processi

• EsempioEsempio Ipotesi: 1 MIPS, 4 processi,

0.25 s/utente Conseguenze: 0.25 MIPS/utente,

TELA 4 TCPUC B

AD

0.00”

0.25”0.75”

0.50”

Sistemi timeSistemi timesharingsharing

Page 78: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

7878

tAA

BB

CC

DD

ProcessProcessoo

CPU burstCPU burst

AA 33

BB 22

CC 44

DD 33

TimeTimesharing: diagramma sharing: diagramma temporaletemporale

Page 79: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

7979

• La memoria principale… …è un “array” di byte indirizzabili singolarmente …è un deposito di dati facilmente accessibile e condiviso tra

la CPU ed i dispositivi di I/O• Il SO è responsabile delle seguenti attività riguardanti la

gestione della memoria principale: Tenere traccia di quali parti della memoria sono usate e da chi Decidere quali processi caricare quando diventa disponibile

spazio in memoria Allocare e deallocare lo spazio di memoria quando necessario

• Il gestore di memoria “realizza” una macchina virtuale in Il gestore di memoria “realizza” una macchina virtuale in cui ciascun programma opera come se avesse a cui ciascun programma opera come se avesse a disposizione una memoria dedicatadisposizione una memoria dedicata

La gestione della memoria principale La gestione della memoria principale 1 1

Page 80: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

8080

• L’organizzazione e la gestione della memoria centrale è uno degli aspetti più critici nel disegno di un SO

• Il gestore della memoriagestore della memoria è quel modulo del SO incaricato di assegnare la memoria ai task (per eseguire un task è necessario che il suo codice sia caricato in memoria)

• La complessità del gestore della memoria dipende dal tipo di SO

• Nei SO multitasking, più programmi possono essere caricati contemporaneamente in memoria

• Problema:Problema: come allocare lo spazio in maniera ottimale?

La gestione della memoria principale La gestione della memoria principale 2 2

Page 81: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

8181

Programma AProgramma A

Programma BProgramma B

Programma CProgramma C

Memoria

0000x

Programma DProgramma DPROBLEMA !!!!PROBLEMA !!!!

FRAMMENTAZIONEFRAMMENTAZIONE

Allocazione lineareAllocazione lineare

Page 82: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

8282

Programma DProgramma D

Programma AProgramma A

Programma AProgramma A

Programma AProgramma A

Programma BProgramma B

Programma BProgramma B

PaginazionePaginazione

Memoria

0000x

Programma EProgramma E

Programma FProgramma F

Programma FProgramma F

Page 83: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

8383

• Spesso la memoria non è sufficiente per contenere completamente tutto il codice dei processi

• Si può simularesimulare una memoria più grande tenendo nella memoria di sistema (RAM) solo le parti di codice e dati che servono in quel momento

• Si usa il concetto di memoria virtualememoria virtuale• I dati e le parti di codice relativi a programmi non in

esecuzione possono essere tolti dalla memoria centrale e “parcheggiati” su disco nella cosiddetta area di swaparea di swap

• I processori moderni sono dotati di meccanismi hardware per facilitare la gestione della memoria virtuale

La memoria virtuale La memoria virtuale 1 1

Page 84: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

8484

Programma DProgramma D

Memoria

0000xProgramma A-1Programma A-1

Programma B-1Programma B-1

Programma A-2Programma A-2

Programma A-3Programma A-3

Programma B-2Programma B-2

Swap

La memoria virtuale La memoria virtuale 2 2

Page 85: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

8585

Programma DProgramma D

Memoria

Programma A-2Programma A-2

Programma B-1Programma B-1

Programma A-1Programma A-1

Programma A-3Programma A-3

Programma B-2Programma B-2

Swap

La memoria virtuale La memoria virtuale 2 2

0000x

Page 86: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

8686

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

disk e dischi ottici• Il SO garantisce una visione logica uniforme del

processo di memorizzazione: Astrae dalle caratteristiche fisiche dei dispositivi per

definire un’unità di memorizzazione logica il filefile Ciascuna periferica viene controllata dal relativo

device driver, che nasconde all’utente le caratteristiche fisiche variabili dell’hardware: modalità e velocità di accesso, capacità, velocità di trasferimento

La gestione della memoria La gestione della memoria secondaria secondaria 1 1

Page 87: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

8787

• Il SO è responsabile delle seguenti attività riguardanti la gestione della memoria secondaria:

Allocazione dello spazio

Gestione dello spazio libero

Ordinamento efficiente delle richieste di accesso al disco (disk schedulingdisk scheduling)

La gestione della memoria La gestione della memoria secondaria secondaria 2 2

Page 88: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

8888

• Il file è l’astrazione informatica di un archivio di dati Il concetto di file è indipendente dal mezzo sul quale

viene memorizzato (che ha caratteristiche proprie e propria organizzazione fisica)

• Un file system è composto da un insieme di file• Il SO è responsabile delle seguenti attività

riguardanti la gestione del file system: Creazione e cancellazione di file Creazione e cancellazione di directory Manipolazione di file e directory Codifica del file system sulla memoria secondaria

La gestione del file system La gestione del file system 1 1

Page 89: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

8989

• Il gestore del file systemgestore del file system è il modulo del SO incaricato di gestire le informazioni memorizzate sui dispositivi di memoria di massa

• Il gestore del file system deve garantire la correttezza e la coerenza delle informazioni

• Nei sistemi multiutente, fornisce meccanismi di protezione per consentire agli utenti di proteggere i propri dati dall’accesso di altri utenti non autorizzati

• Le funzioni tipiche del gestore del file system sono: Fornire un meccanismo per l’identificazione dei file Fornire metodi opportuni di accesso ai dati Rendere trasparente la struttura fisica del supporto di

memorizzazione Implementare meccanismi di protezione dei dati

La gestione del file system La gestione del file system 2 2

Page 90: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

9090

• L’insieme gerarchico delle directory e dei file può essere rappresentato attraverso un grafo (un albero nei SO più datati) delle directory

• Quasi tutti i SO utilizzano un’organizzazione gerarchicagerarchica del file system

• L’elemento utilizzato per raggruppare più file insieme è la directorydirectory

DirectoryDirectory

FileFile

Grafo delle directoryGrafo delle directory

Organizzazione del file systemOrganizzazione del file system

Page 91: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

9191

• La gestione dell’I/O richiede: Un’interfaccia comune per la gestione dei device device

driverdriver Un insieme di driver per dispositivi hardware specifici Un sistema di gestione di buffer per il caching delle

informazioni• Il gestore dei dispositivi di I/Ogestore dei dispositivi di I/O è il modulo del SO

incaricato di assegnare i dispositivi ai task che ne fanno richiesta e di controllare i dispositivi stessi

• Da esso dipende la qualità e il tipo di periferiche riconosciute dal sistema

• Il gestore delle periferiche offre all’utente una Il gestore delle periferiche offre all’utente una versione astratta delle periferiche hardware; l’utente versione astratta delle periferiche hardware; l’utente ha a disposizione un insieme di procedure standard ha a disposizione un insieme di procedure standard di alto livello per leggere/scrivere da/su una di alto livello per leggere/scrivere da/su una periferica che “percepisce” come dedicataperiferica che “percepisce” come dedicata

La gestione dei dispositivi di I/OLa gestione dei dispositivi di I/O

Page 92: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

9292

• Il controllo dei dispositivi di I/O avviene attraverso speciali moduli software, detti device driverdevice driver

• I device driver sono spesso realizzati dai produttori dei dispositivi stessi, che ne conoscono le caratteristiche fisiche in maniera approfondita

• I device driver implementano le seguenti funzioni:

Rendono trasparenti le caratteristiche fisiche tipiche di ogni dispositivo

Gestiscono la comunicazione dei segnali verso i dispositivi

Gestiscono i conflitti, nel caso in cui due o più task vogliano accedere contemporaneamente allo stesso dispositivo

Device driverDevice driver

Page 93: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

9393

• Tutti i SO implementano meccanismi per facilitare l’utilizzo del sistema di calcolo da parte degli utenti

• L’insieme di tali meccanismi di accesso al computer prende il nome di interfaccia utenteinterfaccia utente

• Serve per…

…attivare un programma, terminare un programma, etc.

…interagire con le componenti del sistema operativo (gestore dei processi, file system, etc.)

L’interfaccia utente L’interfaccia utente 1 1

Page 94: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

9494

• Interfaccia testuale:Interfaccia testuale: Interprete dei comandi (shellshell) Esempio: MSMSDOS/UNIXDOS/UNIX

• Interfaccia graficaInterfaccia grafica (a finestre): L’output dei vari programmi viene visualizzato in maniera

grafica all’interno di finestre L’utilizzo di grafica rende più intuitivo l’uso del calcolatore Esempio: WINDOWS/LinuxWINDOWS/Linux

• Differenze: Cambia il “linguaggio” utilizzato, ma il concetto è lo

stesso Vi sono però differenze a livello di espressività

L’interfaccia utente L’interfaccia utente 2 2

Page 95: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

9595

• Realizza la metafora della scrivania desktopdesktop

Interazione semplice via mouse

Le iconeicone rappresentano file, directory, programmi, azioni, etc.

I diversi tasti del mouse, posizionato su oggetti differenti, provocano diversi tipi di azione: forniscono informazioni sull’oggetto in questione, eseguono funzioni tipiche dell’oggetto, aprono directory folderfolder, o cartellecartelle,, nel gergo GUI GUI (Graphical User InterfaceGraphical User Interface)

L’interfaccia graficaL’interfaccia grafica

Page 96: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

9696

• ProtezioneProtezione è il meccanismo usato per controllare l’accesso da parte di processi e/o utenti a risorse del sistema di calcolo

• SicurezzaSicurezza è il meccanismo di difesa implementato dal sistema per proteggersi da attacchi interni ed esterni Denialofservice, worm, virus, hacker

• In prima istanza, il sistema distingue gli utenti, per determinare chi può fare cosa L’identità utente (user IDuser ID) include nome dell’utente e

numero associato uno per ciascun utente L’user ID garantisce l’associazione corretta di file e

processi all’utente e ne regola la manipolazione L’identificativo di gruppo permette inoltre ad un

insieme di utenti di accedere correttamente ad un gruppo di risorse comuni (file e processi)

Protezione e sicurezza Protezione e sicurezza 1 1

Page 97: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

9797

• In Linux… Linux…

$ ls l

Protezione e sicurezza Protezione e sicurezza 2 2

Page 98: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

9898

• In commercio sono presenti una grande quantità di sistemi operativi diversi

• In passato, la tendenza delle case costruttrici di sistemi di elaborazione era di sviluppare sistemi operativi proprietari per le loro architetture

• La tendenza attuale è quella dello sviluppo di sistemi operativi portabiliportabili su piattaforme hardware diverse

Sistemi operativi commercialiSistemi operativi commerciali

Page 99: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

9999

• CPU Intel (da 80386), ma anche per DECAXP, MIPSR4000, etc.

• Multitask

• Monoutente/Multiutente

• NTFS (NT File System)

• Microkernel, thread

• Sistema a 32/64 bit

WindowsWindows

Page 100: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

100100

• Nato nel ‘91, grazie a Linus Torvalds, studente finlandese dell’Università di Helsinki

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

• Sviluppato su piattaforma Intel 80386, fu distribuito da subito su Internet (free e openfree e opensourcesource)

• Multitask• Multiutente• L'architettura del sistema è Unixlike: un kernel molto

“piccolo” che contiene solo funzioni fondamentali per la gestione delle risorse del computer (CPU, memoria, dischi, rete, I/O) ed una larga collezione di programmi di sistema che l’utente usa per richiedere servizi al SO

LinuxLinux

Page 101: Anno accademico 2010-2011 1 La struttura del calcolatore.

Anno accademico 2010-2011Anno accademico 2010-2011

101101

• Sistemi complessi che presentano miriadi di problemi e milioni di linee di codice (1001000 programmatori per anno)

• Interazioni complesse Universali (eseguiti su piattaforme diverse) Differenti classi di utenti hanno necessità diverse La performance è cruciale!

• Poco compresi: Il SO tipicamente “dura” più di chi lo ha programmato

ed è troppo grande per essere compreso da una singola persona

Mai completamente privi di errori (OS/360 rilasciato con 1000 bug); comportamenti difficili da prevedere; aggiustamenti spesso eseguiti per tentativi

Conclusioni: i SO oggiConclusioni: i SO oggi