anno accademico 2010-2011 1 la struttura del calcolatore
TRANSCRIPT
Anno accademico 2010-2011Anno accademico 2010-2011
11
La struttura del calcolatoreLa 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
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$
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Anno accademico 2010-2011Anno accademico 2010-2011
2424
Gerarchia di memorieGerarchia di memorie
Tbyte
Gbyte
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Anno accademico 2010-2011Anno accademico 2010-2011
4646
Linguaggio macchina e Linguaggio macchina e assemblerassembler
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
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
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
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
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
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
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
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
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
Anno accademico 2010-2011Anno accademico 2010-2011
5656
Il sistema operativoIl sistema operativo
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Anno accademico 2010-2011Anno accademico 2010-2011
9797
• In Linux… Linux…
$ ls l
Protezione e sicurezza Protezione e sicurezza 2 2
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
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
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
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