Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

58
Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore

Transcript of Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Page 1: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Sistemi Informativi di Rete

AA 2000-01

(II)

L’architettura di un calcolatore

Page 2: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

L’architettura di un calcolatore

CPU

RAM ROM

MEMORIACENTRALE

HD TASTIERA MONITOR STAMPANTE

IN/OUT INPUT OUTPUT OUTPUT

BUS INDIRIZZI

BUS DATI

BUS DI CONTROLLO

INTERFACCE

UNITA’PERIFERICHE

- Architettura del calcolatore -HD

I/O

tastiera

Input Output Output

Monitor

Stampante

Page 3: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

La CPUContiene gli elementi circuitali che regolano il funzionamento

dell’elaboratore: – L’unità di controllo e’ responsabile della decodifica e dell’esecuzione

delle istruzioni. E' la parte che "dirige" l'esecuzione di tutte le altre parti.– L’orologio di sistema (clock) permette di sincronizzare le operazioni

temporizzando il funzionamento del computer.– L’unità aritmetico-logica (ALU) realizza le operazioni aritmetiche e

logiche eventualmente richieste per l’esecuzione dell’istruzione. E’ priva di facoltà di scelta.

– I registri sono piccole memorie velocemente accessibili, utilizzate per memorizzare risultati parziali o informazioni necessarie al controllo. L’insieme dei valori contenuti nell'insieme di tutti i registri in un dato istante della computazione viene chiamato contesto.

Page 4: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

I registri piu’ importanti

• L’accumulatore (uno o due) contengono gli operandi e i risultati delle operazioni della ALU

• Il registro dati E’ lungo come una parola di memoria ed è utilizzato, nella lettura e scrittura da essa o da e per le periferiche, come una sorta di “deposito” dell’informazione. A questo registro accede il bus dati.

• Il registro indirizzi Serve ad indirizzare la memoria. Ciascuna cella di memoria può essere indirizzata: capacità dell’elaboratore di selezionare una particolare cella di memoria. Chiamiamo parola ogni elemento di memoria indirizzabile. Il compilatore assegna ad ogni operando in memoria un indirizzo.

• Il registro di istruzione corrente Contiene, istante per istante, l’istruzione che risulta in esecuzione da parte dell’elaboratore. La dimensione del registro istruzione è (generalmente) quella del bus dati.

Page 5: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Formato delle istruzioni

Costituito da tre campi:

• il codice operativo (obbligatorio) specifica l’operazione da eseguire,

• l’operando (facoltativo) è diviso in indirizzi degli oggetti, cioè le variabili, da utilizzare

• la modalita' di indirizzamento (vedremo dopo)

• FORMATO ISTRUZIONE:

Cod. operativo Modo

di ind.Operandi

Page 6: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Il bus di sistema• Insieme di connettori (conduttori elettrici) che trasportano bit di

informazioni collegando fra di loro l’unità di elaborazione, la memoria e le varie interfaccie di ingresso/uscita.

• I trasferimenti sono gestiti dalla CPU (modalita’ master/slave) e si chiamano cicli del bus, che con la sua capacità ne determina la velocità.

• I trasferimenti sono di lettura (CPU = destinazione) o di scrittura

(la CPU = sorgente).

• I comandi per abilitare il bus:

– WM (=1 abilita un operazione di scrittura in memoria)

– RM (=1 abilita un’operazione di lettura da memoria)

– WO (=1 abilita un’operazione di scrittura su porta d’uscita)

– RI (=1 abilita un’operazione di lettura da porta d’ingresso)

Page 7: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Componenti del bus di sistema

• BUS DATI: trasferisce dati da master a slave e viceversa

• BUS INDIRIZZI: trasferisce indirizzi, ad esempio l’indirizzo di un dato dal registro indirizzi alla memoria, per accedere al dato stesso

• BUS DI CONTROLLO: – da master a slave: codice dell’istruzione da eseguire

(es. lettura da disco);

– da slave a master: info sul successo dell’operazione

Page 8: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Cicli di bus: esempi• Operazione di lettura da memoria:

– la CPU carica indirizzo della parola di memoria nel registro indirizzi e lo trasmette alla memoria via bus indirizzi

– la CPU invia il comando di RM sul bus di controllo

– la memoria trasmette sul bus dati il contenuto della parola verso il registro dati

– la memoria segnala al processore sul bus di controllo che l’operazione e’ stata completata con successo: il dato si trova nel registro dati

• Operazione di scrittura in memoria:

– la CPU carica indirizzo della parola di memoria dove si vuole scrivere nel registro indirizzi e lo trasmette alla memoria via bus indirizzi

– la CPU carica nel registro dati la parola da scrivere in memoria

– la CPU invia il comando di WM sul bus di controllo

– la CPU trasmette sul bus dati il contenuto del registro dati verso l’indirizzo di memoria segnalato.

– la memoria segnala al processore sul bus di controllo che l’operazione e’ stata completata con successo: il dato si trova nella parola di memoria destinazione

Page 9: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

La memoria centrale• accoglie il “materiale di lavoro”, e cioe' dati e programmi

• di dimensioni ridotte (dell’ordine di Megabyte)

• tempi di accesso: dell’ordine delle decine di nanosecondi (circa 1 milione di volte piu’ veloce delle memorie di massa)

• prima di poter essere elaborata, l’informazione deve essere acquisita dalla memoria centrale e caricata in uno dei registri della CPU

• insieme ordinato di parole (celle) che contengono istruzioni e dati

• una parola = n elementi di memoria binari (8, 16, 32, 64 bit)

• la posizione di ogni parola è identificata da un indirizzo

• la capacità di indirizzamento in memoria è definita dalle dimensioni del bus indirizzi e del registro indirizzi

• ad accesso diretto (random)

Page 10: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Parti della memoria centrale

La memoria RAM : e’ realizzata mediante circuiti a transistori, è modificabile, cioè leggibile e scrivibile, ma è volatile e quindi deve essere continuamente alimentata per mantenere le informazioni. All’accensione il suo contenuto e’ una sequenza casuale di 0 e 1.

La memoria ROM: E’ solo leggibile: le informazioni sono di solito scritte in modo permanente dal costruttore. viene quindi caricata al momento della produzione del computer vi si accede ogni qualvolta questo viene acceso contiene il bootstrap, un programma contenente le prime istruzioni che

la CPU deve compiere

Page 11: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Le interfacce verso le periferiche

• Dispositivi elettromeccanici• Costituite da:

– porte di I/O: registri scrivibili e/o leggibili dalle periferiche: registro dati periferica, registro comandi periferica (RCP), registro stato periferica

– circuiti ausiliari

Page 12: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Le memorie di massa

• Informazione memorizzata su supporto magnetico (o ottico)

• Memoria permanente: le informazioni sono raggruppate in file gestiti dal sistema operativo

• Dischi rigidi: Tempi di accesso dell’ordine delle decine di millisecondi; floppy disk: dell’ordine delle centinaia di millisecondi

• Nastri: Per memorizzare informazioni “storiche” (back-up)

• CD-ROM: sola lettura

Page 13: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Struttura dei dischi rigidi-testine-superfici-tracce-cilindri-settori

Page 14: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Altri registri (1)

• Il contatore di programma (PC, Program Counter) Contiene sempre l’indirizzo della prossima istruzione del programma (SALTI!!!).

• Lo Stack Pointer (puntatore alla pila) Serve per gestire una porzione della memoria di lavoro, chiamata stack (pila: modalità LIFO (Last in First Out)) e per gestire le interruzioni ed eseguire le chiamate a sottoprogramma.

• Il registro interruzioni(RINT) Contiene informazioni relative allo stato di funzionamento delle periferiche e ad altre possibili cause di interruzione.

• L’accumulatore Serve per conservare il risultato di operazioni: in generale il suo contenuto passera' al registro dati e verra' caricato in memoria.

Page 15: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Altri registri (2)

• Il registro di stato riporta in alcuni suoi bit (FLAG) indicazioni relative al risultato delle operazioni svolte dalla ALU.

– il bit di carry (indica la presenza di un riporto);

– il bit zero (indica la presenza di un valore nullo);

– il bit di segno (riporta il segno del risultato dell'operazione aritmetica appena svolta);

– il bit di overflow (rileva la presenza o meno di un overflow)

– L’uso del registro di stato è connesso ai salti condizionati.

• I registri di lavoro

• Il registro indice utilizzato nel caso di modalità di indirizzamento a registro indice.

• I registri non referenziabili

Page 16: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Lo STACK

Lo Stack Pointer (puntatore alla pila) serve per gestire una porzione della memoria di lavoro, chiamata stack (pila: modalità LIFO (Last in First Out)) e per gestire le interruzioni ed eseguire le chiamate a sottoprogramma. Comtiene l’indirizzo della prima parola di memoria da leggere nello stack

Stack pointer=312312

312311

310

303

...Operazione di inserimento: -incremento SP -scrittura in parola indirizzata da SPOperazione di estrazione: -lettura da parola indirizzata da SP -decremento SP

Page 17: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Esempio di istruzioni in assembler Codice binario Codice operativo simbolico

0000 LOADA

0001 LOADB

0010 STOREA

0011 STOREB

0110 ADD

0111 DIF

1010 JMP

1011 JMPZ

1100 NOP

1101 HALT

0100 READ

0101 WRITE

Page 18: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Piccolo esempio di programma

assembler Cella di mem. Cod. Oper. Operando

0 READ 8

1 READ 9

2 LOADA 8

3 LOADB 9

4 MUL

5 STOREA 8

6 WRITE 8

7 HALT

8 (INT)

9 (INT)

Page 19: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Formato delle istruzioniCostituito da tre campi:

• il codice operativo (obbligatorio) specifica l’operazione da eseguire,

• l’operando (facoltativo) è diviso in indirizzi degli oggetti, cioè le variabili, da utilizzare

• la modalita' di indirizzamento (vedremo dopo)

• FORMATO ISTRUZIONE:

• Classi di istruzioni (tipi di Cod. operativi):– trasferimento dati da e a memoria– trasferimento dati da e a periferica– operazioni aritmetico-logiche– modifiche del flusso di esecuzione– altre istruzioni (ausiliarie)

Cod. operativo Modo

di ind.Operandi

Page 20: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Fasi del ciclo di CPU• Fetch:

– PC contiene indirizzo prossima istruzione

– acquisizione prossima istruzione da memoria

– incremento PC

• Decodifica: interpretazione codice operativo

• Esecuzione: attivazione esecuzione pertinente all’operazione. Es: operazioni AL su operandi, o operazione di salto (modifica PC)

• Temporizzazione scandita dal clock: ad ogni “tick” un passo elementare

Page 21: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

MODALITA’ DI INDIRIZZAMENTO (1)

• Indirizzamento diretto: Il Campo Operando contiene l’indirizzo dell’operando stesso: è necessario un solo accesso a memoria per accedere all’operando:

LOADA X richiesta di caricamento nell’accumulatore del contenuto della locazione di memoria

chiamata X

• Indirizzamento indiretto: Il Campo Operando contiene l’indirizzo di memoria di una parola che contiene l’indirizzo dell’operando: sono necessari due accessi a memoria per accedere all’operando:

LOADA @X richiesta di caricamento nell’accumulatore del contenuto dell’indirizzo contenuto nella locazione di memoria chiamata X

Page 22: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

MODALITA’ DI

INDIRIZZAMENTO (2) • Indirizzamento relativo a registro indice: Il Campo Operando

contiene un indirizzo di memoria che viene sommato al contenuto del registro indice (I) per ottenere l’indirizzo dell’operando: serve per implementare gli array

LOADA X(I) richiesta di caricamento nell’accumulatore del contenuto della locazione di memoria X+I

• Indirizzamento immediato: Il Campo Operando contiene il valore dell’operando (espresso in modo esplicito oppure simbolico).

LOADA #X richiesta di caricamento nell’accumulatore del valore X e non del valore contenuto nella locazione di memoria chiamata X.

Page 23: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Il Sistema Operativo• programma di grandi dimensioni e complessità

che permette all’utente di interagire col sistema• sviluppo di un S.O.: centinaia di anni-uomo• poca teoria, solo in alcune aree:

• perché prima sviluppo tecnologico, poi teorizzazione

• perché aspetti non di calcolo ma di ottimizzazione, gestione di interazione, gestione di malfunzionamenti etc.

• perché problema intrinsecamnete complesso e interdisciplinare

• complessità estrema: studio per livelli di macchine astratte per ragionare a diversi livelli di astrazione

Page 24: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Funzioni di un S.O.

• Relazione Macchina/Utente: – comandi espliciti, da tastiera – comandi interni, da programma

• Funzioni:– Gestione lavori– Supporto per la programmazione– Meccanismi di I/O– Gestione archivi (file)

Page 25: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Gestione lavori• Riconoscimento degli utenti: login, password,…

• Assegnazione risorse: periferiche, memoria di massa..

• Accounting (costo di esecuzione dei programmi)

• Attivazione sequenze di azioni: ad esempio» caricamento file XXX.C in memoria» caricamento compilatore c in memoria» attivazione compilazione e gestione file oggetto XXX.obj» ripetiz. questi passi per ogni sottoprogramma» attivazione linker e gestione file XXX.exe» attivazione loader » assegnazione risorse al programma (memoria e CPU)» terminazione lavoro e rilascio risorse

Page 26: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Supporto per la programmazione

Messa a disposizione di:• Editors: normali, WordProcessors, guidati dalla sintassi

• Debuggers: breakpoints, step-by-step, dump registri

• Librerie: funzioni matematiche, funzioni grafiche, etc.

• Programmi per la gestione di grandi progetti: cataloghi, versioni etc.

Page 27: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Meccanismi di I/O

Il S.O. permette di vedere le periferiche:• più numerose: maschera conflitti su periferiche

condivise

• più potenti: primitive di alto livello

• più affidabili: gestione malfunzionamenti

Page 28: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Gestione archivi (file)

• Accesso ai file in modo logico: meccanismo

nome /indirizzo

• Privatezza: gestione autorizzazioni

• Affidabilità: integrità dei files in caso di malfunzionamento

Page 29: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Il Modello a Buccia di Cipolla di un S. O.

HW

Nucleo (gestione dei processi)

Gestione della memoria centrale

Gestione periferiche

File system

Programmi di utilita’

Interprete comandi

Page 30: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

CLASSIFICAZIONE DEI SISTEMI OPERATIVI

• in base all’utente:

che tipo di servizi offre

• in base all’organizzazione interna:

come è progettato

Page 31: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

In base all’utenteSistemi dedicati: usati da un solo utente: nessuna gestione della concorrenza

Sistemi a lotti (o BATCH) : l’insieme dei lavori da eseguire viene organizzato in sequenza gestita da schede di controllo, ad esempio sul nastro. Operaz. di I/O fatte da file.

Sistemi interattivi: il supervisore gestisce l’interazione “quasi parallela” di uno o più utenti col sistema. Quando c’è più di un utente,cerca di eliminare i tempi di IDLE servendo più utenti contemporaneamente.

Sistemi in tempo reale eseguono le operazioni in un tempo piccolo rispetto alle costanti di tempo proprie all’applicazione.

Sistemi transazionali Collaborano strettamente con una base di dati. Una transazione è un’azione che, se iniziata, deve essere necessariamente portata a

termine.

Page 32: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

In base all’organizzazione internaSistemi uniprogrammati: in un certo istante può risiedere in memoria solo un

programma utente

Sistemi multiprogrammati: in un certo istante possono risiedere in memoria programmi utente diversi. Grado di multiprogrammazione: n. max di programmi utente che possono risiedere in memoria (...quasi-parallelismo)

Sistemi time-sharing : tecnica di assegnazione di una risorsa basata su quanti di tempo.

Sistemi interattivi: il supervisore gestisce l’interazione “quasi parallela” di uno o più utenti col sistema. Quando c’è più di un utente,cerca di eliminare i tempi di IDLE servendo più utenti contemporaneamente.

Sistemi per uso speciale: controllo di processi, gestione di grandi apparecchiature (buona gestione dei malfunzionamenti, programmi compilati su “macchina ospite”)

Page 33: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Il Nucleo o Supervisore

(La gestione dei processi)

Page 34: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

GESTIONE DEI PROCESSI• Il termine processo fa riferimento a un programma durante la sua

esecuzione;

• Un processo è un oggetto dinamico che evolve nel tempo, contrapposto a un programma che è un oggetto statico ed invariante nel tempo.

• Nel contesto dei sistemi operativi, l’unità di elaborazione che esegue i processi è detto processore.

• In un sistema a processi, uno solo dei processi può essere in esecuzione in un certo istante, cioè eseguito dal processore.

• Gli altri processi sono rispettivamente pronti oppure in attesa. I primi possono andare in esecuzione immediatamente, i secondi devono attendere il verificarsi di un evento esterno per passare in stato di pronto.

Page 35: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Stati di un processo

In esecuzione Pronto

In attesa

Attivo

Page 36: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Le interruzioni• Una interruzione e’ associata a un avvenimento che si produce nella

macchina stessa o al di fuori di essa.

• In seguito a una interruzione, il programma in corso viene sospeso e il controllo passa a un altro programma: la routine di gestione dell’interrupt:– Salvataggio del program counter nello stack– Assegnazione al PC dell’indirizzo della routine di gestione dell’interrupt– Esecuzione della routine di gestione dell’interrupt:

• salvataggio del contesto (nello stack)• riconoscimento del motivo dell’interruzione• gestione dell’interruzione• ripristino del contesto del programma interrotto• ritorno da interruzione

• Nei momenti critici le interruzioni vanno disabilitate!!!!

Page 37: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Le interruzioni• Ingresso/Uscita• Orologio• Malfunzionamento HW• Caduta di tensione (priorità elevatissima)• Errori SW (tentativo di accesso a posiz. di memoria

privilegiata, tentativo di div. per 0…)

• Trappole (dette anche SW interrupt: es. page fault...)

• Chiamate a supervisore (dette anche interruzioni interne o sincrone)

Page 38: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Schema di interpretazione di un’istruzione di un programma

• Leggere da memoria la prossima istruzione (FETCH)

• Comprendere il significato del codice operativo • Eseguire le operazioni elementari che producono

l’effetto desiderato• Determinare la prox istruzione da eseguire

In realtà subito prima del FETCH della prossima istruzione occorre controllare il flag di interrupt

Page 39: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Operazioni di input/output

Si dividono in due sottocasi: L’informazione da parte della unità di input (o di

output) del suo stato di pronto; La richiesta da parte del programma di dati di

input (o la segnalazione di voler rilasciare dei dati in output): interruzione interna o sincrona o anche chiamata a supervisore (SVC).

Page 40: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

RELAZIONI TRA PROCESSI• I processi devono essere sincronizzati, cioè le loro attività

devono essere coordinate. • Il coordinamento più semplice è quello sequenziale: un processo

termina invocando l’attivazione di un altro processo. • Sincronizzazioni più complesse:

– cooperazione = interazione desiderata e prevista– competizione = conflitto tra due programmi per l’assegnazione di una

stessa risorsa.

• Due modi per sincronizzarsi: la condivisione di variabili, in modo da creare un’area di memoria comune

da utilizzare a turno; lo scambio di messaggi attraverso la condivisione di un canale.

Page 41: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Chiamata a supervisore

Si verifica anche quando due programmi devono interagire tra loro.

In seguito ad un interruzione interna il processore passa dall’esecuzione di un processo utente all’esecuzione del nucleo (un processo di sistema operativo).

Page 42: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Priorità

• è necessario stabilire delle priorità tra i vari tipi di interruzioni in modo da evitare problemi nel caso due di esse si sovrapponessero;

• interruzioni ad alta priorità: es. i cali di tensione• interruzioni a bassa priorità: es. di I/O• le interruzioni a priorità più bassa vengono

disabilitate (mascherate) durante la gestione di quelle a priorità più alta.

Page 43: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

POLITICHE DI GESTIONE

DELL’UNITA’ DI ELABORAZIONE Un processo attivo può essere arrestato di

autorità dal nucleo per seguire ciascun programma utente entro un tempo approssimativamente proporzionale alla complessità del programma, senza creare ingiustizie.

Page 44: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Parametri per la valutazione della politica migliore

• attività della CPU: percentuale di tempo in cui è attiva rispetto al funzionamento del sistema. Suddivisa in :- tempo dedicato ai programmi utente (USER MODE);

- tempo utilizzato dal sistema operativo (SUPERVISOR MODE).

• livello di multi-programmazione

• tempo di TURNAROUND

• tempo di elaborazione

• tempo di risposta (tipico dei sistemi interattivi)

• produttività (THROUGHPUT)

Page 45: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Politiche di gestione della CPU

• Rotazione (o round-robin) dei processi: Il processore viene assegnato a un processo per un quanto di tempo; quando il quanto di tempo termina, il processo in esecuzione viene interrotto e ritorna fra i processi pronti, alla fine di una coda di processi pronti gestita dal nucleo, che assegna il

processore al primo processo in coda.

• Metodo First Come First Served: non tiene in considerazione i tempi di esecuzione dei programmi, ma solo l’ordine in cui i programmi sono

arrivati.

• Metodo delle priorità statiche: semplice schema a priorità che assegna priorità elevata ai programmi interattivi e priorità bassa ai lavori di batch. Ma non è sempre possibile conoscere anticipatamente i tempi di lavoro dei singoli

programmi.

• Altri metodi più complessi...

Page 46: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

La gestione della memoria centrale(memoria virtuale)

• Una parte della memoria è dedicata al sistema operativo (Supervisor mode), ed il resto ai processi utente (User mode).

• Problemi da risolvere:– definire delle tecniche per suddividere la memoria tra i vari processi

– assegnare una o più porzioni a ciascun processo, attuando la migliore politica di gestione nel tempo

– rilocare i programmi, cioè trasformare gli indirizzi logici, presenti nei programmi, in indirizzi fisici, corrispondenti alle locazioni di memoria ove i programmi sono stati caricati

• Principali meccanismi di suddivisione della memoria:– segmentazione

– paginazione

Page 47: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Rilocazione

Gli indirizzi di un programma eseguibile possono presentarsi in due modi:

in formato assoluto, cioè calcolati a partire da una specifica cella di memoria;

in formato rilocabile, cioè calcolati come se il programma dovesse essere caricato in memoria a partire dalla cella zero.

Page 48: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Segmentazione• I segmenti sono blocchi logici di codice di dimensioni diverse.

• Ad ogni programma vengono associati due segmenti: il CODE SEGMENT ed il DATA SEGMENT.

• Indirizzo di una istruzione o di un dato = indirizzo del segmento + indirizzo rilocabile

• La rilocazione puo’ essere statica (operata del loader) o dinamica (operata dal sistema di RTS coordinato col sistema operativo)

• Quando un processo viene mandato in esecuzione dal nucleo, il corrispondente programma deve risiedere in memoria; se il programma non è presente, si verifica una situazione detta di Segment Fault (SW interrupt, trappola) in cui il processo si deve sospendere in attesa che il programma sia caricato dal gestore della memoria (nel caso di rilocazione dinamica).

Page 49: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Paginazione• Una pagina è una zona contigua di memoria, di grandezza fissa pari a 2p

celle di memoria• In memoria utente sono contenute 2k pagine• L’indirizzo di una cella di memoria si indica come coppia

(n. di pagina, indirizzo nella pagina)• Le pagine vengono caricate e scaricate dalla memoria centrale secondo

l’occorrenza• Quando un processo è in esecuzione il corrispondente pezzo di

programma deve risiedere in memoria; se il programma non è presente, si verifica una situazione detta di Page Fault (SW interrupt, trappola) in cui il processo si deve sospendere in attesa che la pagina sia caricata dal gestore della memoria.

Page 50: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

La Memory Management Unit

• Conversione tra indirizzi logici e indirizzi fisici operata da un dispositivo HW chiamato MMU (Memory Management Unit).

• MMU dispone di una tabella delle pagine che le consente di conoscere la posizione e il relativo indirizzo di ogni pagina, che questa si trovi in memoria centrale o in memoria di massa.

• dopo aver riconosciuto un indirizzo ed essere andata a leggere la pagina corrispondente, MMU opera, a seconda delle circostanze, sostanzialmente in tre modi:- se l’istruzione non è corretta manda un messaggio di errore;- se l’istruzione è corretta e la pagina cercata è presente in memoria centrale, esegue le

relative istruzioni;- se l’istruzione è corretta, ma la pagina cercata non è presente in memoria centrale,

manda un messaggio di Page Fault e carica in memoria centrale la pagina.

Page 51: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Discussione• Per evitare troppi page fault, il sistema cerca di caricare un

opportuno numero di pagine per ciascun programma, che non sia né troppo elevato e neppure troppo piccolo;

• nello scegliere la pagina da scaricare per far posto ad una nuova richiesta, si sceglie una pagina che non sia stata utilizzata di recente.

• Lo svantaggio di questo tipo di organizzazione è una eccessiva frammentazione.

• I vantaggi della segmentazione consistono nella varietà di lunghezza dei segmenti, che ci permette di ottimizzare l’utilizzo dello spazio di memoria, ed una minore frammentazione rispetto alla paginazione.

Page 52: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Politiche di gestione della memoria centrale

Scelta delle pagine da scaricare: 2 principi:• località spaziale: favorire il mantenimento in memoria centrale di aree di

memoria vicine a quella che il processo sta già usando, perché gli accessi tendono a concentrarsi in zone vicine tra loro (es. arrays, codice etc.)

• località temporale: favorire il mantenimento in memoria centrale delle aree usate più di recente (Least Recently Used) perché si ritiene verranno usate di nuovo in futuro

• Per la paginazione si può decidere a priori di assegnare ad ogni programma un numero fisso di pagine oppure si decide volta per volta.

• Nel caso dei segmenti si usa il cosiddetto BEST FIT , ovvero si alloca a ciascun programma il più piccolo segmento libero di memoria che lo contiene.

Page 53: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

GESTORE DELLE PERIFERICHE VIRTUALI

• Si occupa di far credere all’utente di avere a disposizione delle periferiche più potenti, più affidabili e più numerose di quanto siano effettivamente, cioè permette all’utente di utilizzare dei comandi di alto livello.

• I comandi che si rivolgono alle periferiche sono primitive (comandi messi a disposizione dal sistema operativo) di alto livello.

• I meccanismi di gestione delle periferiche includono: driver fisici (hardware): attivati direttamente dal gestore delle interruzioni per

eseguire le operazioni di trasferimento e manipolazione dei dati; driver logici (software): forniscono la tradfuzione da primitive di alto livello a

comandi di basso livello per i driver fisici (servono come interfaccia tra il programma utente e il driver fisico);

spooling system: sottosistema usato dalle stampanti per gestire code di richieste di stampa e non tenere in memoria dati inutili;

file speciali: la gestione della periferica da parte dell’utente assomiglia a quella di un file.

Page 54: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Il FILE SYSTEM• Permette a un utente di creare un file, identificarlo con un nome

simbolico, collegare il suo nome con la sua posizione in un opportuno spazio nella memoria di massa e accedervi in lettura e scrittura.

• Maschera le caratteristiche fisiche dell’unità di memorizzazione• Realizza dei meccanismi di controllo per gestire la concorrenza

sui file. • Particolari informazioni inerenti il file sono contenute nei

descrittori, come ad esempio il nome, l’indirizzo del primo blocco (o settore), il metodo di accesso, il creatore, i diritti di accesso, la data di creazione e dell’ultima modifica.

Page 55: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Le directory

• I file vengono organizzati in strutture, dette directory, organizzate ad albero.

• Ciascuna directory ha un unico nodo radice (root).

• L’intero file system ha un proprio nodo radice al di sotto del quale si aprono varie directory che ospitano programmi di sistema e file di utente.

• L’accesso ai file, avvenendo attraverso il nome del file stesso, è possibile attraverso il path name, un nome completo che include l’intero cammino dalla radice al file.

Page 56: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

Operazioni sui file Operazioni di gestione

– open (filename, mode) Per aprire un file.

– close (filename) Per chiudere un file.

– remove(filename) Per cancellare un file.

– rename(filename,newname) Per cambiare nome ad un file.

• Operazioni di lettura e scrittura• read

• write

Page 57: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

I programmi di utilita’

• I programmi dell’ambiente di programma-zione

• Gli strumenti di produttività (editor, fogli elettronici,..)

• I sistemi di gestione di basi di dati

• I sistemi per l’interazione con la rete...

Page 58: Sistemi Informativi di Rete AA 2000-01 (II) L’architettura di un calcolatore.

L’INTERPRETE COMANDI

E’ lo strato superiore del sistema operativo, responsabile di ricevere ed interpretare comandi dell’utente. Tra le funzioni dell’interprete comandi, vi è anche l’inizializzazione del calcolatore, e cioè il passaggio del controllo al bootstrap (e poi, nei sistemi DOS, al Bios) al momento dell’accensione.