1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria...

47
1 La struttura del La struttura del calcolatore calcolatore La struttura del calcolatore La struttura del calcolatore L’architettura a BUS L’architettura a BUS La CPU La CPU La memoria centrale La memoria centrale La memoria secondaria La memoria secondaria I dispositivi di I/O I dispositivi di I/O Linguaggio macchina e assembler Linguaggio macchina e assembler Il sistema operativo Il sistema operativo

Transcript of 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria...

Page 1: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

1

La struttura del calcolatoreLa struttura del calcolatore

La struttura del calcolatoreLa struttura del calcolatoreL’architettura a BUSL’architettura a BUSLa CPULa CPULa memoria centraleLa memoria centraleLa memoria secondariaLa memoria secondariaI dispositivi di I/OI dispositivi di I/O

Linguaggio macchina e assemblerLinguaggio macchina e assemblerIl sistema operativoIl sistema operativo

Page 2: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

2

Il mercato informatico nel 1964Il mercato informatico nel 1964

IBM S/360 Mod 40 IBM S/360 Mod 40 1.6 MHz 32KB1.6 MHz 32KB256KB256KB225.000$225.000$

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

IBM S/360 Mod 65IBM S/360 Mod 655.0 MHz 256KB5.0 MHz 256KB1MB1MB1.200.000$1.200.000$

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.

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.

monica
Page 3: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

3

La struttura del calcolatoreLa struttura del calcolatore

Page 4: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

4

Struttura del calcolatoreStruttura del calcolatore

Si possono considerare vari livelli di astrazione:

Circuiti elettronici (hardware)Architettura e linguaggio macchinaSistema operativo (software di sistema)Linguaggi di programmazioneProgrammi applicativi

Silicon GraphicsSilicon Graphics

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.

Page 5: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

5

Architettura a BUSArchitettura a BUS

L’architettura più consolidata per il calcolatore prevede unità funzionali fra loro collegate attraverso un unico canale di comunicazione, il busbusIl bus è fisicamente realizzato mediante un insieme di conduttori elettrici

MemoriaprincipaleCPU I/O I/OI/O

BUSIndirizziDatiControllo

Dispositivi di Input/Output

Page 6: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

6

Il BUSIl BUS

MemoriaprincipaleCPU

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 bus indirizziindirizzi, e configura le linee del bus controllobus controllo, inviando un comando al dispositivo che contiene il dato (es. READ)Il dato da trasferire è reso disponibile sul bus datibus dati e viene ricopiato nel dispositivo destinatario

READ=1 MEM=1

0008AB38

0008AB38 0008AB38Indirizzo a32 bit (32 fili)

READ=1 MEM=1

5F66B102Dato a 32 bit (32 fili)

trasferito dalla memoria principale alla CPU

MemoriaprincipaleCPU

0008AB38

5F66B102

5F66B102

5F66B102

Page 7: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

7

La CPU La CPU 1 1

La CPU è un dispositivo sincronosincrono, cioè può cambiare stato solo quando riceve un impulso di clock, l’orologio del sistemaorologio del sistema che fornisce al computer un battito regolare

Intel PentiumIntel Pentium

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

Page 8: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

8

La CPU La CPU 2 2

È costituita da tre elementi fondamentali:

Unità AritmeticoLogica (ALU) Registri Unità di Controllo (CU)

EUExecution Unit}

ALU CU

PC

IR

registriContatore di programma

(Program CounterProgram Counter)

Registro Istruzione(Instruction RegisterInstruction Register)BUS

BIUBus Interface Unit

Page 9: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

9

La CPU La CPU 3 3

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 della verità avrebbe un numero

enorme di righe (miliardi di miliardi)

Page 10: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

10

La CPU La CPU 4 4

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/eventi verificatisi durante l’elaborazione (nei registri flagregistri flag)

Page 11: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

11

La CPU La CPU 5 5

Set di istruzioni di base:somma (da cui sottrazione)scorrimento (shift)operazioni di accesso alla memoria

trasferimento di un dato da una locazione di memoria ad un’altratrasferimento da memoria a un registro della CPUtrasferimento 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)

Page 12: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

12

L’Unità AritmeticoL’Unità AritmeticoLogicaLogica

Il tipo di operazione selezionata, in un dato istante, dipende dallo stato di alcune linee di controllo provenienti dalla CULe operazioni logiche (es. AND) vengono eseguite bit a bit fra i due operandiEsiste una unità specializzata per le operazioni in virgola mobile (FPUFPU)

L’ALU (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.)

ALU ResultZero

Overflow

a

b

ALU operation

Page 13: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

13

I registriI registri

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 in due registriIl risultato di un’operazione effettuata dalla ALU viene normalmente 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 delPentium

Page 14: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

14

Registro puntatore allo stackRegistro puntatore allo stack (Stack Pointer): lo stack è un insieme di celle di memoria che può essere acceduto in modalità LIFO (LastInFirstOut); 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 e loro funzioni Registri e loro funzioni

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

Registro di statoRegistro di stato: contiene informazioni che globalmente determinano, in ogni istante, lo stato dell’unità centrale

2100

SP2000

2000

Page 15: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

15

L’Unità di ControlloL’Unità di Controllo

Esegue le istruzioni prelevandole dalla memoria nella fase di fetchfetchLa 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.)

Page 16: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

16

La memoria centrale La memoria centrale 1 1

L’unità di memorizzazione è il byteCiascun 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)

128 MB = 27 220 byte = = 137438953472 byte

227

00000xxxxxxxxxxxxxxxxxxxxxxxxxxx27 bit indirizzo all’interno

del blocco

00000000

07FFFFFF

32 bit

128 MB

Page 17: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

17

Fino agli anni `70, le celle erano costituite da nuclei di ferrite attraversati da fili elettrici, che potevano magnetizzarli in un senso o nell’altro, con opportune intensità di corrente, realizzando le cifre 0 e 1

Attualmente, le memorie sono realizzate con tecnologia VLSIVLSI (Very Large Scale Integrated Very Large Scale Integrated CircuitCircuit), cioè mediante circuiti elettronici ad elevato grado di integrazione (più bit codificabili su chip di una data dimensione)

La memoria centrale La memoria centrale 2 2

Page 18: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

18

La memoria centrale La memoria centrale 3 3

La memoria centrale viene anche chiamata memoria ad accesso casualememoria ad accesso casuale o RAMRAM (Random Random Access MemoryAccess Memory): qualsiasi cella può essere letta/scritta in un tempo (mediamente) costante

Una parte della memoria centrale, la ROMROM (Read Read Only MemoryOnly Memory), viene scritta in modo permanente in fase costruttiva: le celle della ROM possono essere successivamente lette (ed in generale contengono informazioni fondamentali, specialmente per l’inizializzazione dell’elaboratore), ma mai riscritte

La memoria centrale RAM è volatileLa memoria centrale RAM è volatile

Page 19: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

19

Il software della ROM Il software della ROM 1 1

La ROM contiene il software e i dati necessari ad inizializzare il computer ed a far funzionare i dispositivi perifericiIl nucleo del software della ROM è costituito dalle routine di avviamentoroutine di avviamento che comprendono il caricatore di bootcaricatore di bootstrapstrap ed il ROM BIOSROM BIOSLe routine di avviamentoLe routine di avviamento realizzano l’inizializzazione del calcolatore:

Ne effettuano un rapido controllo di affidabilità, per accertare che tutte le componenti hardware siano perfettamente funzionantiCaricano il sistema operativo dal disco (caricatore di bootstrap)

Page 20: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

20

Il software della ROM Il software della ROM 2 2

Il caricatore di bootcaricatore di bootstrapstrap 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 21: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

21

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 22: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

22

Il registro indirizziregistro 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 indirizzateEsempioEsempio: un registro a 16 bit indirizza 65536 posizioni di memoriaIl decodificatore di indirizzidecodificatore di indirizzi è un dispositivo in grado di selezionare la cella il cui indirizzo corrisponde a quello contenuto nel registro indirizziIl registro datiregistro dati contiene l’informazione scritta/letta sulla/dalla cella indirizzata; la dimensione del registro è uguale a quella delle celle di memoria

Architettura della memoria Architettura della memoria centralecentrale

BU

SB

US

Registro datiRegistro dati

Memoria centraleMemoria centrale

Registro indirizziRegistro indirizzi

Decodificatore indirizziDecodificatore indirizzi

Page 23: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

23

La memoria secondariaLa memoria secondaria

Il disco fisso è costituito da uno o più piatti metallici ricoperti di materiale magnetico su entrambe le facceCiascuna superficie è associata ad una o più testine di lettura/scrittura che si muovono radialmente per leggere/ scrivere l’informazione organizzata in tracce concentriche

Dischi magneticiDischi magnetici

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

Page 24: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

24

I dischi magneticiI dischi magnetici

L’informazione è disposta sul disco in traccetracce, ovvero in cerchi concentriciLe tracce sono divise in settorisettori Il numero di bit contenuti in una traccia è dell’ordine delle centinaia di migliaia (512/4096 byte a settore)

Platter

Track

Platters

Sectors

Tracks

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

Page 25: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

25

Accesso al discoAccesso al disco

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 spostamentotlat è il tempo di latenzatempo di latenza, necessario perché l’informazione ricercata passi sotto la testina; dipende dalla velocità di rotazione dei dischittr è 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

Page 26: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

26

I dispositivi di InputI dispositivi di InputOutputOutput

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

PartnerPartner: uomo o macchina

Velocità del flusso dei datiVelocità 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 e la loro presentazione verso il mondo esterno (outputoutput )Si possono classificare in base a tre diverse caratteristiche:

TastieraTastiera input uomo Mouse Mouse input uomo Rete Rete input/output

macchina Hard DiskHard Disk storage macchina

velo

cità

velo

cità

++

101044 KB/s KB/s

101022 KB/s KB/s

Page 27: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

27

Linguaggio macchina Linguaggio macchina e assemblere assembler

Page 28: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

28

Il linguaggio macchinaIl linguaggio macchina

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 programmaOgni 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

PC

Page 29: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

29

Il set di istruzioni macchinaIl set di istruzioni macchina

L’insieme delle istruzioni eseguibili, e la relativa codifica, sono generalmente diverse per modelli diversi di processoreLe 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 datiTrasferimento dati: spostano dati (byte, word) tra registri, memoria principale e dispositivi di ingresso/uscita (I/O)

AritmeticoAritmeticologichelogiche: eseguono i calcoli nella ALU

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

Page 30: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

30

AssemblerAssembler

Per facilitare la programmazione è stato definito il linguaggio assemblyassemblyL’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

Assembler

1000100011011010110101010101010001001000100100000000000000000000110000000000000000000000000010001001100011011010110101010101010010001001010110101101001000001100

OPCODE(LOAD)

registro indirizzo di memoria

Page 31: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

31

Trasferimento dei datiTrasferimento dei dati

Le istruzioni di trasferimento dati permettono di copiare il valore di un dato fra registri o fra un registro e la memoriaSi 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

Page 32: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

32

Operazioni aritmeticoOperazioni aritmeticologichelogiche

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

Page 33: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

33

Istruzioni di saltoIstruzioni di salto

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

Confronta il contenuto dei registri REG1 e REG2

BRanch EQual

Page 34: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

34

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

Assembler e linguaggi di alto Assembler e linguaggi di alto livellolivello

e=(a+b)*(c+d);

Corrisponde all’unica istruzione C…

Page 35: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

35

Il sistema operativoIl sistema operativo

Page 36: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

36

Introduzione Introduzione 1 1

Il software può essere diviso in due grandi classi:i programmi di sistemaprogrammi di sistema, che gestiscono le funzionalità del sistema di calcoloi 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 OperativoSistema Operativo (SO)

DefinizioneDefinizioneUn sistema operativo è un programma che controlla controlla l’esecuzione di programmi applicativil’esecuzione di programmi applicativi ed agisce come interfaccia fra le applicazioni e l’hardwareinterfaccia fra le applicazioni e l’hardware del calcolatore

Page 37: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

37

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

Introduzione Introduzione 2 2

Page 38: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

38

Scopo del sistema operativoScopo del sistema operativo

Gestione EFFICIENTE delle risorse del sistema di elaborazione

Rendere AGEVOLE l’interfaccia tra l’uomo e la macchina

Page 39: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

39

Gestione dei processiGestione della memoria principaleGestione della memoria di massa (file system)Realizzazione dell’interfaccia utenteGestione dell’accesso simultaneo di più utenti alla stessa macchinaEsecuzione simultanea di più processi sulla stessa macchinaRilevamento e gestione degli erroriAccounting

Compiti del sistema operativoCompiti del sistema operativo

Page 40: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

40

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

Si consideri un ristorante con un capo–cuoco (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 capo–cuocoIl capo–cuoco riceve l’ordine e assegna uno o più aiutanti alla preparazione del piattoOgni aiutante si dedicherà alla preparazione di un piatto, il che potrà richiedere più attività diverseIl capo–cuoco supervisiona la preparazione dei piatti e gestisce le risorse (limitate) disponibili

Page 41: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

41

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

Il capo–cuoco è il sistema operativo!Il capo–cuoco è il sistema operativo!

I clienti sono gli utentiLe ricette associate ai piatti sono i programmiIl menù ed il cameriere costituiscono l’interfaccia verso il sistema operativo (grafica e non)Gli aiutanti sono i processiLa cucina è il computer; pentole, fornelli, etc. sono le componenti hardware

Page 42: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

42

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

Problemi del capo–cuoco:Esecuzione fedele delle ricetteAllocazione efficiente delle risorse esistenti (aiutanti, fornelli, etc.) Coordinamento efficiente degli aiutantiLicenziamento degli aiutanti che non si comportano secondo le regole

Problemi del sistema operativo:Efficienza nell’uso delle risorse (processori, memoria, dischi, etc.)Protezione nell’uso delle risorseCoordinamento dei processi

Page 43: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

43

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

Visione a strati delle componenti hardware/software che compongo un elaboratore

Page 44: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

44

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

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 disponibileIn 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 chiaveIndipendenza dall’hardwareComodità d’usoProgrammabilità

Page 45: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

45

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

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

Page 46: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

46

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

Architettura del sistema Architettura del sistema operativooperativo

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

Page 47: 1 La struttura del calcolatore Larchitettura a BUS La CPU La memoria centrale La memoria secondaria I dispositivi di I/O Linguaggio macchina e assembler.

47

Ancora sul sistema operativoAncora sul sistema operativo

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

EsempioEsempio: il filesystemfilesystem

Riassumendo: Il sistema operativo fornisce un ambiente per eseguire programmi in modo conveniente ed efficiente; funge infatti da…

Allocatore di risorseAllocatore di risorse — controlla, distribuisce ed alloca le risorse (in modo equo ed efficiente)Programma di controlloProgramma di controllo — controlla l’esecuzione dei programmi utente e le operazioni sui dispositivi di I/O