Appunti sui S. O

annuncio pubblicitario
ITIS BISIGNANO – CLASSE IV C – SISTEMI
MODULO 3 – SISTEMI OPERATIVI
Pagina 1
SISTEMI OPERATIVI
Cap_1: Introduzione ai Sistemi Operativi









L’hardware per poter essere utilizzato ha bisogno del software, o meglio del software di
base.
La combinazione di hardware e S.O. costituisce la cosiddetta MACCHINA ESTESA o
MACCHINA ASTRATTA. Il S.O. è formato dal nucleo (Kernel) per le funzioni
fondamentali e dei vari moduli per la gestione delle risorse.
I S.O. sono su CDROM e per poter essere utilizzati si devono installare su disco rigido
(HD).
Ogni vol.ta che si accende il computer il S.O. viene caricato nella RAM con l’operazione di
bootstrap.
L’utente interagisce con il S.O. per richiederne i servizi, attraverso una interfaccia o
SHELL.
La SHELL può essere:
1. a LINEA DI COMANDO e presenta una riga evidenziata da un prompt in cui si
digitano i comandi (DOS)
2. Grafica ( GUI- Graphics user interface) molto semplice da utilizzare, sullo schermo
comporre il DESKTOP, la scrivania o area di lavoro, elementi fondamentali sono il
sistema di puntamento (Mouse), icone, menù,barre degli strumenti, finestre.
(Window)
Definizione di S.O. : Il S.O. è un insieme di programmi che consentono all’utente, o alle
applicazioni da esso utilizzati, di accedere alle operazioni di base per utilizzare le risorse del
sistema di elaborazione.
I tipi principali di S.O. sono:
1. single user , single task (uniprogrammati) eseguono un programma alla volta (DOS)
2. Multitasking si possono avviare più applicazioni per un solo utente (window)
3. Multiuser Sono S.O. che permettono a più utenti di usare lo stesso computer (UNIXLINUX)
4. I servizi principali che vengono utilizzati sono i servizi relativi alla gestione dei file
su disco e all’esecuzione dei programmi.
Il programma costituisce la descrizione delle istruzioni da eseguire, mentre il processo è la
sequenza di azioni compiute durante l’esecuzione. Ogni processo, per l’esecuzione, richiede
alcune risorse del computer (hardware e software) e compito del S.O. gestire queste risorse
per non ostacolare l’esecuzione dei processi.
Meccanismi E Sistemi Di Protezione


Il processore in genere può operare in due stati: stato supervisore o Kernel e stato utente. Il
sistema è in stato supervisore quando viene eseguito il codice o una routine del S.O., è in
stato utente quando viene eseguito il codice del programma utente.
Quando il computer è usato da più utenti, per garantire la sicurezza è fondamentale che il
S.O. offre un sistema di protezione per identificare l’utente e per definire le operazioni che
ciascun utente può effettuare. Un utente chiamato amministratore di sistemi, gestisce il
computer e gli altri utenti.
ITIS BISIGNANO – CLASSE IV C – SISTEMI
MODULO 3 – SISTEMI OPERATIVI
Pagina 2
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
concorrente. 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
multiprocessore due azioni eseguite ciascuna su un processore possono essere
effettivamente parallele.
 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,
sincronizzazione (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à
protetta. 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
segmenti 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
programma viene assegnato un livello di privilegio da cui dipendono le operazioni che
può eseguire. 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
logico 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.
ITIS BISIGNANO – CLASSE IV C – SISTEMI
MODULO 3 – SISTEMI OPERATIVI
Pagina 3

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
individuare 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
eccezioni.
 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
possono essere mascherate settando il flag IF.
 Interruzioni In Modalità Reali:
 La gestione dell’interruzioni avviene come nel MP 8086 , l’8086 suddivide le
interruzione 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 è
semplice 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
sistema 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
contemporaneamente (es. computer centrale a cui sono collegati vari terminali
(monitor, 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.
ITIS BISIGNANO – CLASSE IV C – SISTEMI
MODULO 3 – SISTEMI OPERATIVI
Pagina 4
4. I sistemi real-time sono sistemi operativi usati per il controllo di processi
industriali, generalmente non interagiscono con l’utente ma con dispositivi che
tengono 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
informazioni tra computer.
Valutazione Delle Prestazioni Di Un Sistema Operativo

Il processore viene usato in parte per eseguire programmi utente, in parte per eseguire
attività 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
dedicato 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,
programmi dove si devono digitare dati);
2. batch richiede che al momento della richiesta della esecuzione siano forniti al
programma 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
occupato 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;
ITIS BISIGNANO – CLASSE IV C – SISTEMI
MODULO 3 – SISTEMI OPERATIVI
Pagina 5
2. pronto: quando il processo è stato caricato in memoria centrale e aspetta che gli
venga assegnato il processore;
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
processo(contenuto del registro) – lo stato di avanzamento.
2. Per ogni processo viene mantenuto in memoria un descrittore contenente le
informazioni relative al processo: informazioni sulle aree di memoria, contenuto registri,
stato processo, 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,
altre 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 è
effettuata dai gestori delle risorse (gestore della memoria,gestore delle periferiche e il
gestore delle informazioni (o filesystem)).
ITIS BISIGNANO – CLASSE IV C – SISTEMI
MODULO 3 – SISTEMI OPERATIVI
Pagina 6
Politiche Di Assegnazione Delle Risorse


In genere una risorsa può essere assegnata ad una solo processo per volta, in mutua
esclusione. 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
variata, 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
situazioni 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
occupata 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
processo supera questi tempi viene considerato in stallo .Per risolvere il problema un
metodo 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:
ITIS BISIGNANO – CLASSE IV C – SISTEMI
MODULO 3 – SISTEMI OPERATIVI
Pagina 7
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),
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
BANCHIERE; 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 processo attivo.
Cap_16 : Schedulazione Del Processore




Un processo in esecuzione può rilasciare il processore in seguito a una transizione di
stato. 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
cooperativo (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
assegnare il processore è detta ROUND ROBIN.
 Con questa tecnica i processi pronti sono inseriti in una coda; quando un processo
rilascia il processore, se passa in attesa viene inserito in una lista di processi in attesa;se
torna allo stato di pronto viene inserito in fondo alla coda dei pronti; lo schedulatore dei
processi assegna il processore al primo processo della coda
ITIS BISIGNANO – CLASSE IV C – SISTEMI
MODULO 3 – SISTEMI OPERATIVI
Pagina 8
N.B. per l’inserimento della lista dei pronti si può tenere conto della percentuale di tempo del
quanto 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
schedulatore 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
assegnare a ciascun programma, memorizzare il programma nelle locazioni assegnate e
recuperare le locazioni che si rendono libere alla fine del processo.
La consistenza di aree di memorie assegnate a processi diversi impone meccanismi di
protezione . La protezione di memoria deve garantire la separazione degli spazi di indirizzi
dei processi.
ITIS BISIGNANO – CLASSE IV C – SISTEMI
MODULO 3 – SISTEMI OPERATIVI
Pagina 9

Deve comunque essere permesso condividere delle aree di codice o dati.
Caricamento Statico
Partizioni fisse:
 Con il caricamento a partizione fissa lo spazio di memoria viene suddiviso in parti di
dimensioni diverse, dette partizioni. La suddivisione in partizione viene effettuata
dall’amministratore del sistema al momento dell’avvio del sistema operativo. Ogni
programma 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
esecuzione, 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
essere 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
(origine, dimensione e stato) di ogni partizione. Per la protezione basta controllare che ogni
accesso 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
vengono 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
causa una frammentazione esterna, cioè la creazione un po’ alla volta di partizioni piccole e
quindi inutilizzabili.
ITIS BISIGNANO – CLASSE IV C – SISTEMI
MODULO 3 – SISTEMI OPERATIVI
Pagina 10

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).


Il gestore della memoria mantiene le informazioni relative alle partizioni con un
descrittore 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
dimensione 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.
Questa 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
contenerlo, 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
anche 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
operativo mantiene per ogni programma una tabella di mappa di pagina che contiene
numero di pagina e indirizzo del blocco assegnato.
ITIS BISIGNANO – CLASSE IV C – SISTEMI
MODULO 3 – SISTEMI OPERATIVI
Pagina 11




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 è
memorizzata 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 è
maggiore della dimensione della memoria fisica (o della più grande partizione fissa) il
programma può essere eseguito (un tempo frequente nei vecchi computer).
L’unica soluzione è realizzare il programma con la tecnica overlay, con la quale il
programma 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
processo 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
aggiornato 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
corrispondente;
ITIS BISIGNANO – CLASSE IV C – SISTEMI
MODULO 3 – SISTEMI OPERATIVI
Pagina 12
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
riferimento a un istruzione di una pagina inaccessibile si verifica un interruzione(page
fault o errore 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
liberare blocchi.
 La liberazione dei blocchi avviene quando si deve caricare una pagina e non c’è un
blocco 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
ultima;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
contatore 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
tempo.
 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
dispositivi sono rispetto al processo molto più lenti e anche il loro
comportamento è asincrono; inoltre sono meno affidabili e serve una
gestione dei malfunzionamenti 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.
ITIS BISIGNANO – CLASSE IV C – SISTEMI
MODULO 3 – SISTEMI OPERATIVI
Pagina 13

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
(generando un segnale di interruzione), e, quindi, il sistema passa da stato utente a stato
supervisore, 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
memoria 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
processore, 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
trasferimento .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
casualmente 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
localizzate;
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
testina (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
applicazioni 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
possono 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
ITIS BISIGNANO – CLASSE IV C – SISTEMI
MODULO 3 – SISTEMI OPERATIVI
Pagina 14


usata 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
periferiche virtuali. Con questa tecnica l’operazione di I/O non ha effetto realmente sulla
periferica ma agisce su un’area del disco che simula la periferica (file di spool). Il
collegamento 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
file (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
cancellato 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
dispositivo 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
caratteri presi singolarmente e sono detti anche ad accesso sequenziale (es.stampante
e terminali).
2. i dispositivi a blocchi a blocchi comunicano attraverso blocchi di dati di dimensioni
predefinite e sono ad accesso casuale (es.HD, file system).
ITIS BISIGNANO – CLASSE IV C – SISTEMI
MODULO 3 – SISTEMI OPERATIVI
Pagina 15
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
estensione(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
processi 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
operazione 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
allocazione dei blocchi, con blocchi contigui o no.
 Se si usano blocchi contigui la dimensione del file deve essere dichiarata in fase di
creazione, 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
decide 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).
ITIS BISIGNANO – CLASSE IV C – SISTEMI
MODULO 3 – SISTEMI OPERATIVI
Pagina 16
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
contenuto, 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
modalità di accesso cioè quali sono le operazioni consentite sul file e può essere: a sola
lettura, 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.
ITIS BISIGNANO – CLASSE IV C – SISTEMI
MODULO 3 – SISTEMI OPERATIVI
Pagina 17
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ò
contenere:
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
allocazione 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,
lunghezza 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
dispositivo: 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
virtuale 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
manutenzione 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
frammentazione, cioè i blocchi utilizzati da un file non sono adiacenti ma possono
essere in posizioni 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
contigui creando un’unica area libera che può essere utilizzata rapidamente.
ITIS BISIGNANO – CLASSE IV C – SISTEMI
MODULO 3 – SISTEMI OPERATIVI
Pagina 18
2. Controllare il Disco in modo da individuare eventuali problemi.
 Può capitare che si verifichino dei problemi nella memorizzazione dei file per la
presenza 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
blocchi 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
selezionati. Se si dovessero verificare dei problemi si possono ripristinare i dati dalla
copia di backup.
ITIS BISIGNANO – CLASSE IV C – SISTEMI
MODULO 3 – SISTEMI OPERATIVI
Pagina 19
Scarica