modulo 3 - sistemi operativi-bis 3 - sistemi operativi-bis.pdf · itis bisignano – classe iv c...

19
ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 1

Upload: dangtuong

Post on 15-May-2019

282 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Modulo 3 - Sistemi Operativi-bis 3 - Sistemi Operativi-bis.pdf · ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 4 duare la riga di una tabella dei

ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 1

Page 2: Modulo 3 - Sistemi Operativi-bis 3 - Sistemi Operativi-bis.pdf · ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 4 duare la riga di una tabella dei

ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 2

SISTEMI OPERATIVI

Cap_1: Introduzione ai Sistemi Operativi

• L’hardware per poter essere utilizzato ha bisogno d

Page 3: Modulo 3 - Sistemi Operativi-bis 3 - Sistemi Operativi-bis.pdf · ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 4 duare la riga di una tabella dei

ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 3

Concetto Di Modello Concorrente

• Il modello concorrente riguarda i meccanismi che possono essere usati per regolare l’esecuzione contemporanea di più processi e per scambiare informazioni tra essi.

• Il modello concorrente regola la coesistenza di diversi processi, cioè l’esecuzione con-corrente. Per esecuzione concorrente si intende l’esecuzione di due azioni parallele, cioè tali che una delle due può iniziare prima che termini l’altra. Se il sistema è un multipro-cessore due azioni eseguite ciascuna su un processore possono essere effettivamente pa-rallele.

• I processi eseguiti in parallelismo reale o no hanno delle interazioni tra loro: 1. interferire se i processi sono indipendenti dagli altri e si condizionano per l’utilizzo delle

risorse. 2. se i processi lavorano insieme si dice che cooperano (condivisione dei dati, sincronizza-

zione (in modo da stabilire delle relazioni di precedenza tra le azioni svolte dai processi diversi) comunicazione permette ai processi di scambiarsi informazioni mandandosi messaggi senza condividere dati.

Cap_2: La Macchina Estesa di Riferimento Modalità Operative

• I processori con architettura IA-32 (es.Pentium 4), per compatibilità con il processore 8086 permettono due modalità di funzionamento.

• Modalità reale: Il MP si avvia sempre in modalità reale, poi può passare in modalità pro-tetta. La modalità reale è in pratica l’ambiente di programmazione dell’8086 soltanto più veloce. In modalità reale le applicazioni possono usare solo 1 mb di memoria, in seg-menti di 64 kb e usano solo registri a 16 bit. Ogni programma può fare tutto.

• Modalità protetta: si utilizzano registri a 32 bit, facilita il multitasking ad ogni program-ma viene assegnato un livello di privilegio da cui dipendono le operazioni che può ese-guire. I livelli di privilegio sono 4, da 0 a 3.

• Il nucleo del S.O. viene eseguito a livello 3, a livello 1 e 2 ci sono i servizi di sistema. • Si possono usare 4 GB di memoria. • La gestione della memoria in modalità reale viene indirizzato 1MB di memoria

(220=1MB). I segmenti sono sempre di 64KB e sono individuati dai registri di segmento (CS, DS, ES, SS).

• Per individuare una locazione di memoria (1MB), servono indirizzi di 20 bit. • Gli indirizzi vengono rappresentati come indirizzo di segmento:offset • i registri per individuare un offset sono (IP,SI,DI,SP,BP), partendo da un indirizzo logi-

co nella forma ind. Seg.:offset a 16 bit (cioè i due valori sono a 16 bit) per avere l’indirizzo fisico a 20 bit per individuare una locazione di memoria, viene aggiunto uno zero esadecimale (0 4 binari) all’indirizzo esadecimale del segmento e si somma. Es. 3A7F:120C�indirizzo fisico 3A7F0+120C= 3B9FC.

La Gastione Della Memoria In Modalita’ Protetta

• Il bus indirizzi a 32 bit permette di indirizzare (232=4GB) 4 GB di memoria. • In modalità protetta gli indirizzi di programma hanno la forma selettore:offset e sono

chiamati indirizzi virtuali. • I registri di segmento sono sempre a 16 bit e vengono chiamati registri selettori, non

contengono l’indirizzo iniziale del segmento ma vengono usati come selettori per indivi-

Page 4: Modulo 3 - Sistemi Operativi-bis 3 - Sistemi Operativi-bis.pdf · ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 4 duare la riga di una tabella dei

ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 4

duare la riga di una tabella dei descrittori di segmento, che contiene l’indirizzo iniziale e la dimenzione del segmento.

Gestione Dell’interruzione

• L’esecuzione del programma può essere interrotta da meccanismi di interrupt e eccezio-ni.

• Le interruzioni possono essere generate dall’harware (esterne e asincrone) o dal software tramite l’istruzione INT (interne e sincrone). Le interruzioni generate dall’hardware pos-sono essere mascherate settando il flag IF.

• Interruzioni In Modalità Reali: • La gestione dell’interruzioni avviene come nel MP 8086 , l’8086 suddivide le interru-

zione e le eccezioni in tre classi: 1. Predefinite (non mascherabili, per gravi anomalie, reset, divisione per zero ecc. ecc.) 2. Hardware (generate da dispositivi esterni) 3. Software (richieste dal programma con l’istruzione INT)

• Interruzione In Modalita’ Protetta : • In modalità protetta le eccezioni dovute a errori da programma vengono classificate:

faults, traps o abourts. 1. Faults: sono eccezioni che possono essere corrette, cioè viene ripetuta

l’esecuzione dell’istruzione che ha generato l’eccezione; 2. Traps: sono eccezioni che permettono al programma di continuare l’esecuzione

dell’istruzione successiva a quella che ha generato l’eccezoione; 3. Aborts: sono eccezioni che segnalano situazioni gravi come errori hardware che

non permettono di riprendere l’esecuzione del programma. • Il processore associa un numero di identificazione a ogni eccezione o interrupt. • Da 0 a 31 sono relativi all’interruzione ( eccezioni) non mascherabili (NMI), da 32 a 255

sono interruzioni definite dall’utente e possono essere assegnate ai dispositivi esterni. Cap_10: Modalità di Lavoro Modalità Di Funzionamento Dei Sistemi Operativi

• I sistemi operativi in base alle modalità fi funzionamento si possono classificare: 1. single user o single task (uniprogrammazione).La gestione delle risorse è sempli-

ce perché possono essere assegnate a un solo processo; 2. multitasking o multiprogrammazione, permettono all’utente che sta lavorando di

aprire più applicazioni.. La gestione delle risorse è abbastanza complessa; il si-stema operativo deve controllare che ogni processo possa ottenere tutte le risorse di cui ha bisogno, senza creare problemi agli altri processi in esecuzione.

3. Multiuser o multiutenti, permettono a più utenti di usare lo stesso computer con-temporaneamente (es. computer centrale a cui sono collegati vari terminali (mo-nitor, tastiera).

Ogni utente inizia una sessione di lavoro collegandosi on il proprio account (nome e password), i sistemi multiutenti sono anche multitasking e la gestione delle risorse è analoga a quella dei multitasking. Il tempo di CPU viene diviso tra i vari utenti con la tecnica del time-sharing. 4. I sistemi real-time sono sistemi operativi usati per il controllo di processi indu-

striali, generalmente non interagiscono con l’utente ma con dispositivi che ten-

Page 5: Modulo 3 - Sistemi Operativi-bis 3 - Sistemi Operativi-bis.pdf · ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 4 duare la riga di una tabella dei

ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 5

gono sotto controllo i processi. In questo tipo di sistemi è importante il tempo di risposta.

5. Sistemi operativi di rete sono sistemi operativi che permettono lo scambio di in-formazioni tra computer.

Valutazione Delle Prestazioni Di Un Sistema Operativo

• Il processore viene usato in parte per eseguire programmi utente, in parte per eseguire at-tività di gestione del sistema operativo e a volte restare inutilizzato. Detto tempo utente, il tempo in cui il processore esegue programma utente, tempo di sistema il tempo dedi-cato ad attività di gestione e tempo totale il tempo in cui il sistema resta in funzione. Si può valutare l’efficienza del sistema in base a due parametri: 1. percentuale di attività del processore che può essere definita come: attività del processore (%) = (tempo utente + tempo di sistema) x 100 /tempo totale. Un valore alto indica che il sistema è molto utilizzato, però può anche indicare che i programmi non sono efficienti. 2. THROUGHPUT che permette di valutare quanto lavoro è stato eseguito nell’unità di

tempo. THROUGHPUT = n° processi eseguiti/tempo totale oppure THROUGHPUT= tempo utente/tempo totale. In condizioni ottimali il throughput è alto.

Cap_11: Modalità Di Elaborazione

• Elaborazione interattiva e batch: 1. interattiva quando si può interagire con il programma in esecuzione (es. words, pro-

grammi dove si devono digitare dati); 2. batch richiede che al momento della richiesta della esecuzione siano forniti al pro-

gramma tutti i dati necessari. • L’elaborazione interattiva costituisce il foreground del sistema e l’elaborazione batch il

background. • Il foreground del sistema rappresenta l’elaborazione in primo piano (es. finestra attiva

tiene occupato il prompt) . • L’elaborazione background avviene sullo sfondo (es. finestra non attiva, mantiene occu-

pato il prompt).

Cap_12: Gestione Dei Processi

• Un processo è un’attività controllata da un programma che si svolge su un processore. • Il programma è un’entità statica che descrive la sequenza di esecuzione delle istruzioni

Stati Di Un Processo • Durante la sua evoluzione il processo subisce varie transizioni di stato. Gli stati in cui si

possono trovare i processi sono: 1. disponibilità: quando è stata richiesta l’esecuzione del programma che si trova

sul disco; 2. pronto: quando il processo è stato caricato in memoria centrale e aspetta che gli

venga assegnato il processore;

Page 6: Modulo 3 - Sistemi Operativi-bis 3 - Sistemi Operativi-bis.pdf · ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 4 duare la riga di una tabella dei

ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 6

3. esecuzione: quando al processo viene assegnato il processore; è il solo stato in cui il processo avanza effettivamente;

4. attesa: quando il processo ha richiesto un servizio al sistema operativo (di solito una operazione di I/O) e ne aspetta il completamento;

5. terminazione: quando il processo termina l’esecuzione e può rilasciare le risorse usate.

DIAGRAMMA DEGLI STATI DI UN PROCESSO Immagine Di Un Processo

• Un processo in ogni momento è rappresentato dalla sua immagine che è costituita da: 1. l’immagine di memoria (gestita dal gestore di memoria) – l’immagine del proces-

so(contenuto del registro) – lo stato di avanzamento. 2. Per ogni processo viene mantenuto in memoria un descrittore contenente le informazio-

ni relative al processo: informazioni sulle aree di memoria, contenuto registri, stato pro-cesso, priorità, tempo di utilizzo del processore ecc. ecc.

Cap_15: Gestione Delle Risorse

• Per risorsa si intende qualsiasi cosa (hardware o software) necessaria al processo. • Alcune risorse vengono assegnate al processo per tutta la sua durata, in modo statico, al-

tre risorse vengono assegnate in modo dinamico al processo durante la sua evoluzione. • Per ogni classe di risorse vengono gestite delle tabelle con le informazioni sullo stato di

ciascuna risorsa (se è libera, occupata, processo assegnato) e vengono aggiornate a ogni rilascio o assegnazione di risorsa.

• Il nucleo si occupa della gestione del processore. La gestione delle altre risorse è effet-tuata dai gestori delle risorse (gestore della memoria,gestore delle periferiche e il gestore delle informazioni (o filesystem)).

Page 7: Modulo 3 - Sistemi Operativi-bis 3 - Sistemi Operativi-bis.pdf · ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 4 duare la riga di una tabella dei

ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 7

Politiche Di Assegnazione Delle Risorse

• In genere una risorsa può essere assegnata ad una solo processo per volta, in mutua e-sclusione. Il sistema operativo gestisce le richieste contemporaneamente di più processi della risorsa con una politica di assegnazione, che stabilisce un ordine tra i processi, in modo da garantire che tutti i processi in stato di attesa che la richiedono possono riuscire ottenerla in un tempo finito.

• Tipiche Politiche Di Assegnazione Sono: 1. In ordine di arrivo (FCFS-first come first served) che soddisfa le richieste

nell’ordine; viene realizzata con una coda FIFO e assicura un tempo di attesa prevedibile perché dipende dal numero delle richieste che precedono il processo in coda.

2. A priorità che soddisfa le richieste in base a un valore di priorità associato a ogni processo; per evitare il problema dell’attesa indefinita la priorità deve essere va-riata, aumentando la priorità delle richieste che sono in attesa da molto tempo.

Stallo

• La presenza di più programmi che competono per l’uso delle risorse può causare situa-zioni di stallo, cioè situazioni in cui non è possibile fare avanzare nessun processo. Lo stallo si verifica:

1. le risorse sono assegnate in mutua esclusione (non sono condivisibili), 2. c’è una attesa circolare di risorse, cioè una risorsa R2 richiesta dal processo P1 e occupa-

ta dal processo P2 che a sua volta richiede la risorsa R1 occupata dal processo P1; 3. le risorse non possono essere fatte rilasciare dai processi (risorse non preemptive) 4. Il sistema operativo può gestire le situazioni di stallo in due modi: 5. riconoscendo che si è verificato uno stallo e risolvendo il problema; 6. prevenendo il verificarsi delle condizioni di stallo.

• Riconoscimento dello stallo: il sistema operativo può usare metodi statici cioè effettua

delle stime dei tempi massimi accettabili di possesso o di attesa di una risorse se un pro-cesso supera questi tempi viene considerato in stallo .Per risolvere il problema un meto-do drastico consiste nell’interrompere tutti i processi in stallo, meglio se si interrompe un processo per volta finché non risolve la situazione.

• Prevenzione dello stallo: 1. strategia di allocazioni delle risorse:la tecnica di preallocazione delle risorse richiede che

le risorse necessarie al processo vengono assegnate tutte assieme e rilasciate una alla volta quando non servono(poco efficace),

Page 8: Modulo 3 - Sistemi Operativi-bis 3 - Sistemi Operativi-bis.pdf · ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 4 duare la riga di una tabella dei

ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 8

2. l’allocazione gerarchica delle risorse richiede che tra le risorse venga definito un ordine gerarchico e che un processo posa richiedere le risorse di cui ha bisogno solo rispettando l’ordine di priorità. Il miglior metodo è noto con il nome dell’algoritmo del BANCHIE-RE; per ogni processo deve essere noto il numero massimo di unità di ogni risorsa di cui il processo avrà bisogno. Il sistema operativo assegna a un processo le risorse richieste solo se ne restano abbastanza a disposizione per soddisfare le richieste di almeno un pro-cesso attivo.

Cap_16 : Schedulazione Del Processore

• Un processo in esecuzione può rilasciare il processore in seguito a una transizione di sta-to. Quando il processo viene rilasciato può essere assegnato a uno dei xrocessi in stato di pronto. La scelta del processo avviene in base ad un algoritmo chiamato”POLITICA DI SCHEDULAZIONE DEL PROCESSO” che è realizzata nel nucleo del S.O.

• Rilascio Del Processore. • In base al modo in cui viene rilasciato il processore si parla di gestione di tipo cooperati-

vo (non preemptive ) o preemptive. • Se la gestione è di tipo non preemptive, il compito di rilasciare il processore è lasciato ai

singoli processi. Nella gestione tipo preemptive il sistema operativo stabilisce dei limiti di tempo di utilizzazione del processore per ogni processo (quanto di tempo), al termine de quanto di tempo, il sistema operativo forza il processo a rilasciare il processore.

Politiche Di Schedulazione

• Una delle politiche di schedulazione più semplici per scegliere un processo a cui asse-gnare il processore è detta ROUND ROBIN.

• Con questa tecnica i processi pronti sono inseriti in una coda; quando un processo rila-scia il processore, se passa in attesa viene inserito in una lista di processi in attesa;se tor-na allo stato di pronto viene inserito in fondo alla coda dei pronti; lo schedulatore dei processi assegna il processore al primo processo della coda

Page 9: Modulo 3 - Sistemi Operativi-bis 3 - Sistemi Operativi-bis.pdf · ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 4 duare la riga di una tabella dei

ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 9

N.B. per l’inserimento della lista dei pronti si può tenere conto della percentuale di tempo del quan-to di tempo usato effettivamente dal processo; quanto minore è la percentuale di tempo usata dal processo prima di rilasciare il processore e più avanti viene inserito nella lista dei pronti. In genere per la schedulazione dei processi viene assegnata una priorità ai processi: E’ questa che ne determina l’ordine di esecuzione. Ad ogni processo viene associato un numero che rappresenta il livello di priorità del processo. I processi pronti vengono inseriti in diverse code corrispondenti ai livelli di priorità. Lo schedulato-re assegna il processore al primo processo della coda a priorità più alta.

Cap_17: Gestione Della Memoria

• Il gestore della memoria è un modulo del sistema operativo specializzato nella gestione della assegnazione e del rilascio della memoria ai processi.

• La dimensione della memoria limita sia il numero dei processi in memora che la velocità di avanzamento.

• Il gestore della memoria deve gestire la memoria in modo da: 1. non limitare la possibilità di creare altri processi ; 2. consentire l’avanzamento di tutti i processi; 3. ridurre il numero e la durata delle sospensioni per aspettare il caricamento di codici e

dati per poter avanzare. • L’assegnazione della memoria può impiegare tecniche diverse, ma il gestore della memoria,

in ogni caso deve tenere conto delle locazioni libere o occupate, stabilire quali locazioni as-segnare a ciascun programma, memorizzare il programma nelle locazioni assegnate e recu-perare le locazioni che si rendono libere alla fine del processo.

• La consistenza di aree di memorie assegnate a processi diversi impone meccanismi di prote-zione . La protezione di memoria deve garantire la separazione degli spazi di indirizzi dei processi.

• Deve comunque essere permesso condividere delle aree di codice o dati.

Page 10: Modulo 3 - Sistemi Operativi-bis 3 - Sistemi Operativi-bis.pdf · ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 4 duare la riga di una tabella dei

ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 10

Caricamento Statico Partizioni fisse: • Con il caricamento a partizione fissa lo spazio di memoria viene suddiviso in parti di dimen-

sioni diverse, dette partizioni. La suddivisione in partizione viene effettuata dall’amministratore del sistema al momento dell’avvio del sistema operativo. Ogni pro-gramma viene caricato in una partizione dove rimane per tutta l’esecuzione. Il numero di processi che possono essere presenti contemporaneamente in memoria dipende dal numero e dalle dimensioni delle partizioni. Per poter impostare correttamente questi fattori, bisogna che l’amministrazione, conosca le caratteristiche dei lavori (dimensione, ordine di esecuzio-ne, frequenza dei lavori grandi) che dovranno essere eseguiti. Perché se le partizioni sono molto grandi rispetto ai programmi viene sprecato lo spazio (frammentazione). Ci deve esse-re sempre una partizione più grande del processo più grande che si deve eseguire, altrimenti non potrà mai essere eseguito. E’ importante anche assegnare al processo la partizione più piccola possibile. Per la gestione delle partizioni serve una tabella dei descrittori di partizione che riporti (ori-gine, dimensione e stato) di ogni partizione. Per la protezione basta controllare che ogni ac-cesso alla memoria sia interno alla partizione del processo stesso (con i registri confini).

Partizioni variabili:

• Ogni programma viene caricato in una partizione che occupa fino al termine dell’esecuzione. La differenza rispetto al modello di partizione fisse è che le partizioni ven-gono create dal sistema operativo in base ai programmi che devono essere seguiti.

• All’inizio tutta la memoria disponibile è vista come un’unica partizione libera. Alla richiesta di esecuzione di un processo il sistema operativo le assegna una partizione di memoria di dimensione esatta.

• Ogni assegnazione determina una scomposizione di una partizione in una partizione libera e una occupata.

• Quando un processo termina l’esecuzione rilascia la partizione utilizzata che si ricompone con una partizione libera che la precede ola segue e quindi in memoria si creano delle aree libere tra miste ad aree occupate.

• La gestione a partizione variabili evita la frammentazione interna (partizione fissa), ma cau-sa una frammentazione esterna, cioè la creazione un po’ alla volta di partizioni piccole e quindi inutilizzabili.

• Questo fenomeno può essere risolto con l’operazione di compattamento della memoria, che consiste nel riposizionare tutte le partizioni occupate una dopo l’altra, in modo da avere un’unica area libera alla fine (rilocazione).

Page 11: Modulo 3 - Sistemi Operativi-bis 3 - Sistemi Operativi-bis.pdf · ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 4 duare la riga di una tabella dei

ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 11

• Il gestore della memoria mantiene le informazioni relative alle partizioni con un descrit-

tore di partizione, organizzato con una tabella con i descrittori delle partizioni libere, oppure con una tabella con i descrittori di tutte le partizioni sia libere che occupate.

• Il gestore della memoria sceglie la partizione da assegnare tra le partizioni libere di di-mensione più grande di quella del processo. La scelta viene fatta con la strategia FIRST-FIT o BEST-FIT:

1. FIRST-FIT: assegna al processo la prima partizione liberta che lo contiene. Que-sta tecnica utilizza al massimo gli indirizzi più bassi della memoria e favorisce la formazione di una grande area libera verso il fondo.

2. BEST-FIT: assegna al processo la partizione più piccola possibile che possa con-tenerlo, in modo che le partizioni più grandi non vengono suddivise inutilmente.

Paginazione

• La gestione della memoria a paginazione usa come unità di assegnazione il blocco di memoria La memoria viene considerata suddivisa in blocchi tutti della stessa dimensione (2k byte).

• Lo spazio logico (programma) viene suddiviso in pagine della stessa dimensione dei blocchi.

• Ogni pagina può essere memorizzata in un blocco qualsiasi; i blocchi possono essere an-che non contigui, ma per ogni pagina ci deve essere un blocco. La memoria viene gestita in modo efficiente perché possiamo avere una frammentazione solo su blocco occupato dall’ultima pagina del programma.

• Per sapere quali sono i blocchi disponibili il sistema operativo può utilizzare una tabella di descrittori dei blocchi con lo stato del blocco.

• Per sapere in quali blocchi sono memorizzate le pagine di un programma il sistema ope-rativo mantiene per ogni programma una tabella di mappa di pagina che contiene nume-ro di pagina e indirizzo del blocco assegnato.

Page 12: Modulo 3 - Sistemi Operativi-bis 3 - Sistemi Operativi-bis.pdf · ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 4 duare la riga di una tabella dei

ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 12

• Per trasformare un indirizzo logico nel corrispondente indirizzo fisico bisogna: 1. dividere l’indirizzo logico per la dimensione della pagina e calcolare il risultato e

il resto; il risultato fornisce il numero di pagina e il resto l’offsett dell’interno della pagina;

2. nella tabella di mappa di pagina individuare l’indirizzo del blocco in cui è memo-rizzata la pagina;

3. sommare all’indirizzo di inizio blocco l’offsett all’interno della pagina. OVERLAY

• Se il caricamento è statico e la dimensione dello spazio logico del programma è maggio-re della dimensione della memoria fisica (o della più grande partizione fissa) il pro-gramma può essere eseguito (un tempo frequente nei vecchi computer).

• L’unica soluzione è realizzare il programma con la tecnica overlay, con la quale il pro-gramma viene diviso dal programmatore con apposite istruzioni in entità (dette overlay), strutturate ad albero, dove la radice deve essere sempre presente in memoria centrale e dei figli che si possono alternare in una stessa area di memoria.

• Dal punto di vista del sistema operativo deve essere disponibile una tecnica di swapping per il caricamento e scaricamento degli overlay.

Caricamento Dinamico

Memoria virtuale: • Quando il caricamento è dinamico oltre allo spazio fisico deve essere assegnato al pro-

cesso anche uno spazio sul disco in una apposita area(area di swap).Nell’ area di swap viene caricata una copia del programma eseguibile, con codice e dati che viene poi ag-giornato durante l’ esecuzione.Il contenuto dell’ area di swap è diverso da quello del file che contiene il programma eseguibile; infatti il file non contiene i dati dinamici e non si modifica durante l’ esecuzione.

• La memoria virtuale è costituita dalla memoria reale e dall’ area di swap su disco. Paginazione dinamica:

• La tecnica della paginazione dinamica permette di eseguire il programma anche se non tutte le pagine sono caricate in memoria; le altre pagine rimangono nell’area di swap e vengono caricate all’occorrenza.

• Per la gestione, oltre alle informazioni sui blocchi liberi, occorre per ogni processo: 1. La tabella di mappa di pagina che contiene per ogni pagina un flag che indica se

la pagina è in memoria o su disco, e se in memoria l’indirizzo del blocco corri-spondente;

Page 13: Modulo 3 - Sistemi Operativi-bis 3 - Sistemi Operativi-bis.pdf · ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 4 duare la riga di una tabella dei

ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 13

2. La tabella di mappa su disco che contiene per ogni pagina l’indirizzo nell’area di swap.

• Le tabelle occupano spazio e, quindi, possono essere caricate dinamicamente e quindi devono risiedere nell’area di swap del processo.

• Per velocizzare l’accesso si usa una memoria associativa. • Le pagine caricate in memoria sono dette accessibili; quando il programma fa riferimen-

to a un istruzione di una pagina inaccessibile si verifica un interruzione(page fault o er-rore di pagina) e il sistema operativo provvede a caricare la pagina passando il processo in stato di attesa; viene attivato solo quando la pagina è stata caricata.

• Per caricare nuove pagine può essere necessario rendere inaccessibile altre pagine per li-berare blocchi.

• La liberazione dei blocchi avviene quando si deve caricare una pagina e non c’è un bloc-co disponibile,oppure quando il numero di blocchi disponibili scende sotto una soglia prefissata.

• La scelta delle pagine da rendere inaccessibili è fatta in base ad un algoritmo chiamato “algoritmo di sostituzione”, che deve cercare di minimizzare il page fault.

Algoritmi di sostituzione: • L’algoritmo di sostituzione ideale che rende minimo il numero di page fault,è quello che

permette di scegliere una pagina che non servirà più oppure quella che servirà per ulti-ma;questo algoritmo però è irrealizzabile perché non è nota la sequenza delle pagine e dipende anche dall’avanzamento degli altri processi.

• Il più semplice è l’algoritmo FIFO che rimuove la pagina che è presente in memoria da più tempo(nella tabella di mappa di pagina a ogni pagina deve essere associato un conta-tore del tempo di permanenza).

• L’algoritmo LRU(least recently used) che si basa sul principio della località globale(che afferma che ogni processo tende a concentrare i riferimenti in alcune aree, cioè c’è una probabilità maggiore di usare le pagine a cui c’è stato un accesso recente),possono essere scelte per essere rese inaccessibili(sostituite)le pagine a cui non si accede da molto tem-po.

• Una tecnica simile sceglie le pagine che vengono usate con meno frequenza(tecnica LFU- lest frequently used).

Cap_18: Gestione Delle Periferiche

• per quanto riguarda la gestione delle periferiche il sistema operativo si deve occupare di tre tipi di problemi

1. controllare l’esecuzione delle operazioni sui dispositivi; 2. assegnare i dispositivi ai processi che li richiedono con una opportuna politica di

schedulazione; 3. fornire un’interfaccia uniforme ai dispositivi.

• La gestione delle periferiche è , comunque, complessa, perché i disposi-tivi sono rispetto al processo molto più lenti e anche il loro comportamen-to è asincrono; inoltre sono meno affidabili e serve una gestione dei mal-funzionamenti e degli errori.

Esecuzione Delle Operazioni Sui Dispositivi • Le operazioni di I/O richieste da un processo, vengono eseguite da processi dedicati

mentre il processo è in attesa e il processore sta eseguendo un altro processo. Per fare in modo che un dispositivo possa ricevere o inviare dati mentre il processo è in attesa si usano dei buffer e per la sincronizzazione segnali di interruzione.

Page 14: Modulo 3 - Sistemi Operativi-bis 3 - Sistemi Operativi-bis.pdf · ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 4 duare la riga di una tabella dei

ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 14

• Per garantire la protezione, i programmi non possono eseguire direttamente le operazioni di I/O sulle periferiche, ma devono richiedere un servizio al sistema operativo (generan-do un segnale di interruzione), e, quindi, il sistema passa da stato utente a stato supervi-sore, e quindi il sistema operativo controlla l’esecuzione di tutte le operazioni.

• La trasmissione dei comandi ai dispositivi avviene attraverso le porte per i dispositivi a carattere (tastiera, stampante), mentre per i dispositivi a blocchi avviene attraverso il DMA (direct memory access) (permette il trasferimento di dati direttamente dalla me-moria a una periferica di tipo blocco (es. HD), o viceversa, senza il controllo diretto del processore ).

Schedulazione Dei Dispositivi • L’allocazione delle periferiche può avvenire in modo seriale (o dedicato) o in modo

condiviso. • Seriale: una periferica viene assegnata in modo dedicato a un processo per tutta la durata

del processo stesso, anche se viene utilizzata solo per piccoli intervalli di tempo (es: stampante).

• Condivisa: una periferica viene assegnata a più processi in modo dinamico per il tempo necessario ad effettuare un’operazione di I/O (es.HD).

• Schedulazione Degli Accessi Al Disco

• L’HD viene usato in modo condiviso dai processi e l’accesso è lento rispetto al proces-sore, quindi la politica di schedulazione degli accessi al disco incide pesantemente sulle prestazioni.

• I tempi di accesso al disco dipendono dal tempo di seek (tempo necessario alla testina per posizionarsi sulla traccia del disco dove si deve accedere), dal tempo di latenza (tempo necessario al settore richiesto per posizionarsi sotto la testina) e dal tempo di tra-sferimento .Le politiche di schedulazione cercano di minimizzare soprattutto il tempo di seek, e sono:

1. La FCFS (first come first served): in base alle richieste le testine si muovono ca-sualmente sulla superficie del disco;

2. La SSTF (shortest seek time first): serve per prima la richiesta che si riferisce alla traccia più vicina a quella su cui è posizionata la testina; privilegia le richieste lo-calizzate;

3. La SCAN (o politica dell’ascensore):evoluzione della SSTF, sceglie la richiesta con tempo minore di seek ma sempre nello stesso verso del movimento della te-stina (direzione) fino all’estremità e poi nell’altra direzione;

4. La C-SCAN (circular scan ) : una volta raggiunta l’estremità del disco torna all’inizio in modo circolare.

Astrazione Dei Dispositivi • Il sistema operativo utilizza un’interfaccia uniforme ai dispositivi, fornendom alle appli-

cazioni un metodo per gestire l’hardware senza doverne conoscere i dettagli. • Vengono usati dei programmi chiamati DRIVE, specifici per ogni periferica, che fanno

da intermediari tra le operazioni richieste dai programmi e l’invio di segnali elettrici dall’hardware. I DRIVE sono moduli separati dal sistema operativo in modo che posso-no essere modificati o che possono essere aggiunti dei nuovi per un nuovo hardware.

Dispositivi Virtuali • La gestione dei dispositivi VIRTUALI combina la gestione dei dispositivi fisici con

quella di altre risorse sia fisiche che astratte, per realizzare un’interfaccia orientata alle esigenze dei processi migliorando quindi le prestazioni.

• DISCHI VIRTUALI: per velocizzare gli accessi al disco si può usare un disco virtuale, cioè una risorsa astratta che combina il dispositivo fisico e un’area di memoria RAM u-

Page 15: Modulo 3 - Sistemi Operativi-bis 3 - Sistemi Operativi-bis.pdf · ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 4 duare la riga di una tabella dei

ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 15

sata come cache- Agli utenti si presenta come un normale disco, ma presenta tempi di accesso minori.

• SPOOL: per le periferiche che devono essere usate in modo dedicato(stampanti , nastri) può essere simulata l’allocazione condivisa utilizzando la tecnica di allocazioni a perife-riche virtuali. Con questa tecnica l’operazione di I/O non ha effetto realmente sulla peri-ferica ma agisce su un’area del disco che simula la periferica (file di spool). Il collega-mento tra periferica virtuale e periferica reali viene realizzato dal programma di spool (simultaneous peripheral operations on line) che si occupa del trasferimento da e verso la periferica di ogni file di spool posto in coda.

• Se più processi richiedono l’uso della stampante ad ognuno di essi viene associato un fi-le (file di spool) sul disco in cui vengono memorizzate le informazioni da stampare. Solo quando un processo è terminato il file di spool può essere mandato alla stampa e cancel-lato dal disco.se la stampante è occupata, il file di stampa viene posto in una coda di stampa.

Vantaggio Dello Spool Di Stampa.

1. utilizzo efficiente delle stampanti, che possono essere usate alla loro massima velocità; 2. eliminazione del ritardo per i procede, che possono sempre stampare usando un disposi-

tivo virtuale; 3. possibilità di ordinare le stampe pendenti.

File Speciali Di Dispositivi • I dispositivi sia a carattere che a blocchi, possono essere visti come file speciali. I dispositivi

sono divisi in dispositivi a caratteri e dispositivi a blocchi: 1. i dispositivi a caratteri lavorano a livello di singolo carattere; possono gestire caratte-

ri presi singolarmente e sono detti anche ad accesso sequenziale (es.stampante e ter-minali).

2. i dispositivi a blocchi a blocchi comunicano attraverso blocchi di dati di dimensioni predefinite e sono ad accesso casuale (es.HD, file system).

Page 16: Modulo 3 - Sistemi Operativi-bis 3 - Sistemi Operativi-bis.pdf · ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 4 duare la riga di una tabella dei

ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 16

Cap_19: FILE SYSTEM I File

• I file sono risorse astratte per conservare informazioni in modo permanente su memoria di massa, in genere il disco. Può contenere informazioni di vario tipo. 1. FILE di PROGRAMMA: che contengono programmi sorgenti, oggetto o eseguibili; 2. FILE DI DATI.:identificati dall’applicazione che li ha generati con una estensio-

ne(es.nome . doc per word); 3. FILE SPECIALI: come file di sistema o file usati come astrazione di dispositivi; 4. FILE DIRECTORY: che descrivono altri file.

• I file possono essere semplici sequenze di byte (file bytestream), oppure possono essere strutturati come sequenze di record di lunghezza fissa o variabile (file di record).

Il File System • I file sono gestiti dal sistema operativo con il file system per ridurre i problemi per i proces-

si e permettere di controllare la protezione e di gestire la condivisione. • Il file system è il modulo del sistema operativo che si occupa della gestione

dell’informazione; ha il compito di identificare e catalogare tutti i file presenti, gestire l’operazione sui file offrendo primitive e utilità, assegnare l’uso dei file ai processi che ne fanno richiesta e gestire l’allocazione delle aree su disco.

File System Fisico • Il supporto principale per la memorizzazione dei file è il disco. La memorizzazione sul

disco avviene per settori. A livello fisico i file vengono memorizzati come sequenze di blocchi; un blocco è una unità di informazione che può essere trasferita con un’unica o-perazione di lettura/scrittura e corrisponde a un settore o a un multiplo di settori.

• Il file system fisico si occupa della memorizzazione dei file usando diversi metodi di al-locazione dei blocchi, con blocchi contigui o no.

• Se si usano blocchi contigui la dimensione del file deve essere dichiarata in fase di crea-zione, perché sul disco deve esserci un’area libera della dimensione richiesta.

• Per questo si preferiscono in genere metodi di allocazione in cui si utilizzano blocchi non contigui.

• In ogni caso si verifica il problema della frammentazione interna ed esterna. File System Logico

• Il modello logico definisce la modalità di identificazione dei file, le operazioni possibili e l’organizzazione delle informazioni nei file. Le operazioni consentite sui file possono essere per esempio creazione di un file, cancellazione,, modifica ecc. Il file system deci-de le modalità con cui vengono effettuate le operazioni (es. se si cerca di creare un file che esiste già può far fllire l’operazione o sostituire il file con quello nuovo vuoto).

• Apertura dei file:i file sono risorse che i processi chiedono e rilasciano con le operazioni di apertura (specificando il modo lettura/scrittura) e chiusura.

• Sicurezza: il file system in genere offre meccanismi di protezione per stabilire chi può effettuare operazioni sui file e quali operazioni può effettuare.

• Condivisione: più processi possono avere sessioni contemporanee su uno stesso file. Il file system deve controllare l’esecuzione delle operazioni sui file condivisi in modo che vengano eseguite correttamente e non causano situazioni di inconsistenza dei dati.

Metodi Di Organizzazione E Di Accesso • Le operazioni (lettura, scrittura,inserimento ecc.) possibili sul file dipendono dal tipo di

organizzazione del file (struttura logica file byte stream o file di record e dal metodo di accesso:sequenziale o diretto).

Page 17: Modulo 3 - Sistemi Operativi-bis 3 - Sistemi Operativi-bis.pdf · ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 4 duare la riga di una tabella dei

ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 17

Cap_20: Uso Del File System

• Le cose da sapere per usare un file system sono: 1. il modo di fare riferimento ai file e directory; 2. i comandi per lavorare su file e directory; 3. le modalità di protezione dei file; 4. i modi per creare collegamenti e le possibilità di compressione.

Identificazione Dei File • I file sono identificati da un nome simbolico(di solito locale a una directory). In alcuni

casi i nomi sono costruiti secondo regole che inducono una classificazione per contenu-to, ma più comunemente per estensione.

• Un file può essere specificato con due modalità diverse: 1. attraverso il nome globale(pathname) formato dalla concatenazione della directory

radice, di tutte le sottodirectory che permettono di arrivare a quella contenente il file, e dal nome del file; i nomi globali sono unici.

2. attraverso il nome locale(relative pathname); il nome locale è quello che il file ha all’interno di una directory dichiarata corrente o in una sottodirectory dalla directory corrente e in questo caso viene usata la sequenza di nomi che collegano nell’albero la directory corrente con i file.

Comandi per lavorare su file e directory • Il file sys|em deve fornire comandi per lavorare sui file e directory. I comandi principali

permettono di: 1. creare e cancellare directory e file; 2. esaminare il contenuto di directory e file; 3. spostare o copiare directory e file.

Sicurezza • La gestione della sicurezza permette di proteggere i file indicando quali sono le modalità

di accesso consentite per ciascun utente. Il controllo sull’accesso viene effettuato da file system.

• Il modo più semplice di gestire la sicurezza consiste nell’associare ad ogni file una mo-dalità di accesso cioè quali sono le operazioni consentite sul file e può essere: a sola let-tura, a lettura/scrittura a sola esecuzione, ad accesso libero.

Collegamenti • I collegamenti ai file permettono di far comparire lo stesso file in directory diverse. Il

collegamento può essere realizzato in due modi: 1. facendo riferimento al path assoluto del file; 2. facendo riferimento al descrittore del file.

Compressione • Per risparmiare spazio sul disco si può effettuare la compressione dei dati. Il file system

offre dei metodi di compressione incorporati.

Page 18: Modulo 3 - Sistemi Operativi-bis 3 - Sistemi Operativi-bis.pdf · ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 4 duare la riga di una tabella dei

ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 18

Cap_21: File System Fisico Descrizione Del Sistema di Archiviazione

• Ogni dispositivo che permette la memorizzazione dei file contiene anche un descrittore del sistema di archiviazione. Il descrittore del sistema di archiviazione sul disco può con-tenere: 1. l’etichetta; 2. il valore della lunghezza massima dei file che si possono memorizzare; 3. informazioni sulla tabella dei descrittori dei file; 4. informazioni sulle tabelle usate per l’assegnazione dei blocchi ai file: inizio FAT e

lunghezza FAT. 5. l’indicazione del primo blocco utilizzato per i file e il numero di blocchi presenti ; 6. informazioni di identificazione del disco su cui si trova il sistema di archiviazione.

Allocazione Dello Spazio Su Disco • L’allocazione dello spazio su disco avviene per blocchi; in genere si usano metodi di al-

locazione in cui si utilizzano blocchi non contigui. • Le tecniche principali sono:

1. blocchi concatenati: i blocchi del file sono collegati tra loro in una lista concatenata, cioè in ogni blocco è presente un puntatore al blocco successivo, l’accesso ai blocchi può avvenire solo in modo sequenziale;

2. tabella di puntatori(o FAT): si usa una tabella formata da tanti elementi quanti sono i blocchi del disco; ogni elemento può contenere un puntatore al blocco successivo se il blocco appartiene a un file, o un’indicazione che il blocco è libero; il numero del primo blocco del file viene memorizzato nel descrittore del file e consente l’accesso al resto del file.

Tabella Dei Descrittori E Directory • Ogni file è descritto da un descrittore in una tabella: nome, tipo di organizzazione, lunghez-

za record, numero di record ecc.. • L’elenco dei file presenti sul disco è mantenuto nella directory.

Cap_22: Gestione Dei Dischi Corrispondenza tra file system e dispositivi

• I file system possono essere creati soltanto su dispositivi a blocchi. • Nei casi più semplici, come i floppy disk, il file system è associato interamente al dispositi-

vo: in tal caso sul dispositivo è presente un solo file system. • Oltre che da un dispositivo fisico, un file system può essere ospitato da un dispositivo virtu-

ale come una partizione; allora un disco può contenere più file system, in partizioni diverse. Manutenzione del Disco

• Per lavorare in modo efficiente conviene eseguire periodicamente delle operazioni di manu-tenzione del disco. Il sistema operativo di solito offre dei programmi di utilità per eseguire le operazioni di manutenzione:

1. Deframmentare il Disco per rendere più veloci gli accessi al disco. • Inizialmente per allocare i file su disco, vengono usati blocchi contigui; un pò alla

volta, continuando a cancellare e creare file, si verifica il problema della frammenta-zione, cioè i blocchi utilizzati da un file non sono adiacenti ma possono essere in po-sizioni distanti, ciò riduce l’efficienza del disco, perché i file frammentati richiedono più tempo per essere letti e scritti.

• Per migliorare le prestazioni bisogna deframmentare il disco. • La deframmentazione riscrive i file sul disco utilizzando per ogni file blocchi conti-

gui creando un’unica area libera che può essere utilizzata rapidamente. 2. Controllare il Disco in modo da individuare eventuali problemi.

Page 19: Modulo 3 - Sistemi Operativi-bis 3 - Sistemi Operativi-bis.pdf · ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 4 duare la riga di una tabella dei

ITIS BISIGNANO – CLASSE IV C – SISTEMI MODULO 3 – SISTEMI OPERATIVI Pagina 19

• Può capitare che si verifichino dei problemi nella memorizzazione dei file per la pre-senza di difetti sulla superficie del disco o per errori del file system.

• Le utilità di controllo del disco permettono di effettuare una scansione del disco e di individuare questo tipo di problemi e spesso risolverli.

• Dal punto di vista fisico possono essere rilevati dei blocchi difettosi. Se questi bloc-chi non sono utilizzati vengono rimossi dall’elenco dei blocchi liberi riducendo la capacità del disco, se, invece, i blocchi contengono dati, i dati vengono persi. L’unico rimedio consiste nell’effettuare periodicamente il backup del disco.

• Dal punto di vista logico possono essere rilevati errori nella struttura del file system. Questi errori spesso sono dovuti a una chiusura non corretta del sistema.

3. Backup per evitare la perdita di dati, anche in caso di problemi gravi. • Il backup consiste nella copia di informazioni su un altro supporto. • Si può eseguire il backup dell’intero sistema o di un set di cartelle o di file seleziona-

ti. Se si dovessero verificare dei problemi si possono ripristinare i dati dalla copia di backup.