You are on page 1of 18

GESTIONE DEI PROCESSI

PROCESSO: Informalmente, il termine processo viene usato per indicare un programma in esecuzione.
Esecuzione sequenziale del processo; istruzioni eseguite una dopo laltra

PROGRAMMA vs. PROCESSO:

PROGRAMMA: entit passiva che descrive le azioni da compiere
PROCESSO: entit attiva che rappresenta lesecuzione di tali azioni
DESCRITTORE PROCESSO: struttura dati che contiene le informazioni che caratterizzano il processo
Stato processo: pronto, esecuzione, bloccato
Registri: accumulatori, registri indice, puntatori a stack, registri generali
Informazioni di Scheduling: priorit dei messaggi, puntatori alle code dei processi, Scheduling
Informazioni gestione della memoria: registri limite, tavole delle pagine
Informazioni amministrative: tempo di CPU utilizzato, limiti di tempo di esecuzione etc.
Informazioni sui dispositivi di I/O: dispositivi di I/O assegnati
STATI PROCESSO:
IDLE: stato iniziale
READY: pronto per lesecuzione
RUNNING: in esecuzione
SWAPPED: immagine copiata su disco
WAITING: attesa di un evento per proseguire
TERMINATED: terminato
ZOMBIE: terminato ma ancora presente
ASSEGNAZIONE DELLA CPU AI PROCESSI
A ogni istante c un solo processo in esecuzione; pi processi possono essere pronti o in attesa.
Scheduler: componente del S.O. che effettua le scelte tra i processi per:
caricamento in memoria
assegnazione della CPU
LIVELLI DI SCHEDULING
Long term: quali processi caricare in memoria, assente nei sistemi in time-sharing
Medium term: modifica numero processi in memoria, eventualmente eseguendo swapping
Short term: a quale processo assegnare la CPU. Frequenza di intervento molto elevata. Svolge i seguenti
compiti:
scelta del processo (tra quelli pronti) a cui assegnare la CPU (scheduler)
effettua il cambio di contesto (context switching)
CONTEXT SWITCHING: P0 in esecuzione. P0 bloccato o pronto -> se ne salva lo stato nel descrittore di P0.
Carica lo stato di P1 dal descrittore di P1 (Processo Pronto). P1 in esecuzione.

TIPI DI SCHEDULING:
preemptive scheduling: a un processo in esecuzione pu essere sottratta la CPU anche se
logicamente potrebbe proseguire
nonpreemptive scheduling: un processo in esecuzione prosegue fino al rilascio volontario della
CPU (terminazione, richiesta di I/O, sospensione su un semaforo)
ALGORITMI DI SCHEDULING (SHORT TERM)
Realizzano un particolare criterio (una politica) di scelta tra i processi pronti mirato ad ottimizzare diversi
parametri come utilizzo della CPU, produttivit (througput), tempo di risposta (sistemi interattivi), non
privilegio (fairness). Nella scelta della politica incide anche la frequenza di intervento dello short term
scheduler
N.B. Politica: sceglie il processo da mettere in esecuzione Meccanismo: esegue il context switching
POLITICA FIRST COME FIRST SERVED (FCFS)
CPU assegnata ai processi in accordo allordine temporale di arrivo nel sistema
Coda dei processi pronti servita FIFO
Il processo mantiene la CPU fino al rilascio spontaneo (terminazione, blocco); no-preemption
Prestazioni basse in termini di tempo medio di attesa
Utilizzabile in sistemi batch
POLITICA SHORTEST JOB FIRST (SJF)
Tra tutti I processi nella coda dei pronti si sceglie quello di durata minore
Occorre conoscere le caratteristiche dei processi (carico stabile)
Fornisce la soluzione ottima in termini di tempo medio di attesa minimo
POLITICA ROUND ROBIN (RR)
La coda dei processi gestita FIFO, ma a ogni processo assegnata la CPU per un quanto di tempo (QT)
prefissato. Se un processo P0 non termina durante QT, la CPU viene assegnata a quello successivo (P1 ) e P0
viene inserito in fondo alla coda.
La scelta di QT deve essere sufficientemente grande rispetto al tempo di cambio del contesto
POLITICA CON PRIORITA
In ogni istante in esecuzione il processo pronto a priorit massima (algoritmi preemptive e non)
STATICA: Viene fissata al momento della creazione dei processi in base alle loro caratteristiche.
I/O->priorit pi elevata, Foreground(sistema, interattivi)->priorit alta, Background(batch)->priorit bassa
Problema Starvation: a un processo a bassa priorit non pu mai venir assegnata la CPU perch vi son
sempre processi a priorit pi elevata
DINAMICA: Pu essere modificata durante lesecuzione dei processi per penalizzare processi che
impiegano troppo la CPU, per evitare fenomeni di starvation, per favorire processi I/O bound. ES: Unix

ESEMPIO: UNIX
Pi livelli di priorit(alto->basso),Round Robin(processi equiprioritari)(QT=100msec), Priorit dinamica
Quando un processo esegue una system call, pu venire blocato (es. richiesta di uso del disco)
Al verificarsi dellevento atteso, il processo diventa pronto e viene inserito nel relativo livello di
priorit (priorit negativa -> priorit alta)
Favorisce i processi interattivi (attesa per un terminale), i processi che eseguono I/O
KERNEL
Il kernel il nucleo del Sistema Operativo e gestisce le interruzioni (sincrone e asincrone) oltre ad
effettuare le transizioni di stato dei processi
LA SINCRONIZZAZIONE DEI PROCESSI
In molte applicazioni e in molti sistemi, diversi processi interagiscono tra loro per portare avanti delle
operazioni complesse. Due sono le modalit di interazione:
Competizione: per luso di risorse comuni che non possono essere usate contemporaneamente da
pi processi (es. una stampante)
Cooperazione: nelleseguire unattivit comune mediante scambio di informazioni attraverso
risorse comuni (es. caso produttore e consumatore)
In caso di sbagliata gestione dellinterazione si ha:
Interferenza: errori nellaccesso a risorse comuni da parte di pi processi
N.B. La corretta gestione della concorrenza (competizione e cooperazione) richiede una corretta gestione
della sincronizzazione tra processi.
ESEMPIO DEL PRODUTTORE/CONSUMATORE
E composto da due processi, il produttore che genera un messaggio e lo trasferisce al consumatore che lo
preleva. Utilizza un buffer condiviso che ospita il messaggio che deve passare tra i 2 processi.
PROBLEMI:
COOPERAZIONE: si deve garantire che il produttore NON scriva sul buffer se questo pieno. Il consumatore
non deve leggere due volte lo stesso messaggio. Sequenza corretta: inserimento-prelievo-inserimento..
COMPETIZIONE: problema nellaccesso alla struttura dati condivisa dal buffer. Il produttore e il
consumatore NON devono accedere contemporaneamente ad esso. Mutua esclusione nellaccesso al buffer
LA SINCRONZIZZAZIONE DEI PROCESSI: I MODELLI DI PROCESSO
La soluzione ai problemi di interazione tra processi dipende dal modello di riferimento. Si ricordi che:
Modello ad ambiente locale: detto anche a scambio di messaggi, in quanto diversi processi
possono comunicare tra loro solo attraverso lo scambio di messaggi (es. pipe). Nessuna
condivisione di aree di memoria. Es. Unix
Modello ad ambiente globale: detto anche a memoria comune, in cui diversi processi possono
comunicare tra loro utilizzando una memoria di lavoro comune (cio delle variabili condivise). Es. i
thread in java. Bisogna fare per attenzione alle interferenze nellaccesso ad aree di memoria
comuni a pi thread.
SINCRONIZZAZIONE TRA PROCESSI: STRUMENTI
Gli strumenti a disposizione per risolvere correttamente i problemi di concorrenza, sia competizione che
collaborazione e quindi eliminare interferenza dipendono dal modello di processo:
AMBIENTE GLOBALE semafori e primitive di sincronizzazione, monitor;
AMBIENTE LOCALE Send(m)e Receive(m) (primitive di comunicazione, come read/write su pipe)

GESTIONE DELLA MEMORIA
Il primo strato del kernel trasforma la macchina hardware in modo che sia possibile ragionare in termini di
processori virtuali e quindi processi concorrenti
Il secondo strato gestisce la memoria (e fornisce astrazione di memoria virtuale)
Gestore della memoria: parte del S.O. che:
- Tiene traccia di quali parti della memoria sono occupate e quali sono libere
- Assegna la memoria ai processi quando al richiedono e la recupera quando non pi necessria;
- Gestisce i trasferimenti di dati e programmi tra memoria principale e memoria secondaria (swapping)
quando necessario
Esistono differenti schemi di gestione della memoria per sistemi multiprogrammati
GRADO DI MULTIPROGRAMMAZIONE
Sia n il numero di processi presenti contemporaneamente nella memoria centrale e sia p la frazione di
tempo che ciascuno di essi deve attendere per I/O.
La probabilit che tutti attendano per I/O (CPU libera) p
n
Lutilizzazione della CPU 1-p
n
con n grado di multiprogrammazione
La gestione della memoria fondamentale, per supportare la multiprogrammazione
INDIRIZZI LOGICI E FISICI
I riferimenti a indirizzi di memoria vengono effettuati, allinterno di un programma, per mezzo di nomi
simbolici
Affinch il programma possa essere eseguito, occorre stabilire una corrispondenza (binding=legame) tra
indirizzi simbolici (o logici) e indirizzi fisici (o locazioni di memoria centrale) tramite una mappa di
corrispondenza
SPAZIO LOGICO di un programma:insieme di indirizzi logici usati dal programma
SPAZIO FISICO di un programma: insieme degli indirizzi fisici usati dal programma
La trasformazione pu avvenire:
A tempo di compilazione (o assemblaggio): spazio indirizzi logicitraduzionespazio indirizzi
fisici(codice binario assoluto)
A tempo di caricamento: spazio indirizzi logicitraduzionespazio indirizzi relativi(codice binario
rilocabile)rilocazionespazio indirizzi fisici(codice binario assoluto)


Si ottiene una rilocazione statica. Il loader legge il programma da caricare da un supporto di massa
(nastro perforato, disco, etc..), somma alla parte di indirizzo di ogni istruzione una costante di base
e la ricopia nella memoria principale
Nel caso di trasformazione di indirizzi a tempo di compilazione, un programma per essere
allocato in aree diverse di memoria deve essere ricompilato
Nel caso di trasformazione di indirizzi a tempo di caricamento, il programma pu essere
spostato in aree diverse mediante un nuovo caricamento
La funzione di rilocamento quindi lenta, in quanto occorre che il programma sia esaminato
istruzione per istruzione.
Esclude la possibilit di uso del DMA per caricare il programma da disco




RILOCAZIONE DINAMICA

Il programma caricato in memoria in formato binario rilocabile, la rilocazione effettuata al momento
dellesecuzione di ciascuna istruzione, via hardware
La parte indirizzo dellistruzione viene sommata al contenuto di un registro base in cui viene caricato,
allinizio del programma, il suo indirizzo base (il contenuto del registro base deve perci essere slavato nel
descrittore di processo)
Il programma pu essere spostato da una zona di memoria allalta solo modificando il registro base.
Esiste una completa indipendenza tra lo spazio dei nomi e la memoria fisica durante lesecuzione.

SPAZIO DI PROGRAMMA E SPAZIO DATI

Procedura pura una procedura il cui codice non viene modificato durante lesecuzione, in cui cio
programma e dati si trovano in due zone di memoria distinte.
Occorrono due registri base per allocare in modo indipendente le due aree (base dellarea di programma,
base dellarea di dati)



PROCEDURE CONDIVISE (SHARED)

Possono essere eseguite simultaneamente da diversi
processi; in ciascuno di essi deve esistere unarea dati
associata alla procedura







MEMORY MANAGMENT UNIT

Gli indirizzi (generati usando registri base, registri
indici, etc.) si chiamano indirizzi virtuali e costituiscono
lo spazio degli indirizzi virtuali
Nei calcolatori senza memoria virtuale lindirizzo pu
essere inviato al bus della memoria e provoca la
lettura o scrittura di un byte allindirizzo fisico 1000
Con la memoria virtuale lindirizzo viene inviato dalla
CPU alla MMU che trasforma lindirizzo logico in uno
fisico


IMPAGINAZINE (PAGING)

Il paging una delle principali tecniche di gestione della memoria.
Memoria fisica suddivisa in blocchi chiamati pagine fisiche o frame
Spazio logico suddiviso in pagine logiche, della stessa ampiezza di quelle fisiche. La suddivisione
completamente trasparente al programmatore (non altera la linearit dello spazio logico. I bytes di una
pagina logica vengono emorizzati in posizioni contigue di memoria, non detto che vi sia contiguit tra le
varie pagine logiche).
Tipiche dimensioni delle pagine (fisiche e logiche) sono da 512 a 8 Kbytes. La pagina unit minima di
allocazione di memoria.
La tecnica di impaginazione favorisce una buona utilizzazione della memoria e consente di consente i
realizzare in modo semplice uno spazio logico dei nomi pi grande di quello fisico.

Indirizzo logico (virtuale) n bit
Ampiezza pagina logica 2
p
bit
Numero pagine logiche 2
v
bit

Indirizzo fisico m bit
Ampiezza pagina fisica 2
p
bit
Numero pagine fisiche 2
r
bit

Ovviamente ci sono pi pagine logiche che pagine fisiche: 2
v
> 2
r


Un indirizzo virtuale rappresentato tramite:
-Il numero di pagina logica
-Il numero della parola entro la pagina logica

Per una macchina con n bit per campo di indirizzo i v bit pi significativi sono considerati il numero della
pagina logica e i restanti p rappresentano il numero della parola entro la pagina.
La corrispondenza tra pagina logica e pagina fisica viene realizzata tramite una tavola detta TAVOLA DELLE
PAGINE, residente in memoria principale:
La tavola della pagine ha tante righe quante sono le pagine logiche
Ogni riga contiene lindirizzo fisico del frame che ospita la corrispondente pagina logica
Esiste una tavola delle pagine per ogni processo
E compito del
S.O. tenere
aggiornata la
corrispondenza
tra pagine
logiche e pagine
fisiche nella
tabella delle
pagine. Se la
pagina logica
non in
memoria
principale, viene
generata
uninterruzione
(mancanza di
pagina)


TAVOLA DELLE PAGINE: SCHEMA COMPLETO

RWX indicano i diritti di accesso alla pagina.
P indica la presenza della pagina in memoria.
M un bit che viene settato la prima volta che una
parola di tale pagina viene alterata da unoperazione
di scrittura da parte della CPU.
Quando si elimina una pagina (per sostituirla con una
nuova ), possibile riconoscere se la pagina stata
modificata o meno, e solo in caso affermativo
salvarla ricopiandola su memoria di massa.
Bit R sta ad indicare se la pagina stata referenziata.
Serve per gli algoritmi di rimpiazza mento (LRU).



TAVOLA PAGINE: PROBLEMI E SOLUZIONI

1. La Tavola delle pagine pu
essere molto grande (e c 1
tavola per ogni processo)

SOLUZIONE: TAVOLA A PIU LIVELLI

Indirizzo virtuale 32 bit

La tavola delle pagine a sua volta impaginata
P
1
Indice della tavola esterna
P
2
E loffset nella tavola interna

VANTAGGI:
Nella soluzione precedente, lo spazio virtuale
contiene pi di un milione di di pagine (2
20
) di 4
Kbytes ciascuna (2
12
)
Con un livello solo, avrei una sola tavola delle pagie
con 2
20
righe (per ogni processo)
Utilizzando due livelli si ha una tavola delle pagine
(top-level) esterna di 1 K e 2
10
tavola delle pagine
interne anchesse di 1 K (second-level)
Questo permette di tenere in memoria solo alcune di queste tavole (quella esterna e alcune interne)
Esistono sistemi di impaginazione a tre, quattro o pi livelli.
ESEMPIO:
Processo necessita di 12 Mbytes (4 Mb per il testo(bottom), 4 Mb per i dati(next),4 Mb per lo stack (top))

Lo spazio logico 4 Gigabyte (32 bit)
OBIETTIVO: tenere in memoria solo le pagine che
servono
Tavola esterna: 1024 entrate (10 bit di PT1).
Ciascuna entrata rappresenta 4 Mb (4 Gb/1024).
PT1 (estratto dalla MMU) considerato lindice
della tavola esterna
PT2 loffset nella tavola delle pagine di 2 livello.
Ogni pagina 4 Kb(4 Mb/10024)
2. La trasformazione tra indirizzi logici e fisici
deve essere veloce (perch avviene per ogni
riferimento in memoria)
Istruzione pu comportare uno, due o pi accessi alla memoria
Limpiego di sistemi di paging a pi livelli richiede due o per ottenere lindirizzo della pagina fisica e
uno per linformazione vera e propria


SOLUZIONE: USO DI MEMORIA ASSOCIATIVA
La memoria associativa costituita da un basso numero di
registri associativi (traslatino look-aside buffers -TLB)



Ciascun registro contiene sia il numero p di una pagina sia
lindirizzo p della pagina fisica associata
Il valore p
0
contenuto nellindirizzo virtuale viene
confrontato contemporaneamente col valore di p di tutti i
registri. Il valore p del solo ed ventuale registro che
contiene p
0
viene reso disponibile allesterno
Se p
0
non contenuto, viene visualizzata (software) la
tabella delle pagine; la coppia (p,p) trovata viene inserita in
un registro della memoria associativa (quello che contiene
linformazione non usata da pi tempo)
TAVOLA DELLE PAGINE: SCHEMA COMPLETO PAGE FAULT
Il page fault si verifica quando unistruzione
fa riferimento ad una pagina che non
presente in memoria
PAGE FAULT: GESTIONE
Trap del sistema operativo
Slavataggio del contesto di processo
Determinazione del tipo di interrupt
(page fault)
Controllo della legalit di riferimento alla
pagina su disco
Lettura da disco verso un frame libero
Attesa nella coda associata al
disco
Attesa nel tempo di ricerca e/o
latenza
Trasferimento della pagina
Durante lattesa, allocazione a un altro
processo
Interrupt da disco (completato)
Salvataggio dei registri di processo
interrotto
Analisi dellinterruzione
Correzione tabella pagine
Attesa che la CPU venga allocata al
processo
Ripristino del contesto di processo

PAGE FAULT: COSTO
Tempo necessario per eseguire istruzione: circa da 1 a 100 sec
Un disco con testina mobile pu avere un tempo di latenza di 8 msec, tempo di ricerca di 15 msec, tempo di
trasferimento 1 msec.
Indicando con p la probabilit (molto bassa) di page fault, si ha:
Tempo accesso effettivo =
(1-p) * 100(s) + p * 25(ms) = (1-p) * 100 + p * 25.000.000 = 100 + 24.999.900 * p
(tempo di accesso alla memoria di 100 s)
Se un accesso su mille provoca page fault il tempo di accesso effettivo 25 s (rallentamento di un fattore
pari a 250)

Se si vuole un rallentamento inferiore al 10% deve essere:
110 > 100 + 25.000.000 * p 10 > 25.000.000*p p > 0.0000004
cio un page fault ogni 25.000.000 accessi in memoria
RIMPIAZZAMENTO DELLE PAGINE
Sequenza si operazioni che il S.O. deve eseguire quando si verifica un page fault (interruzione):
Viene cercata la pagina in memoria di massa
Se esiste un a pagina fisica libera, la pagina viene immediatamente trasferita
Se non esistono pagine libere, il S.O. esegue un algoritmo che sceglie la pagina da rimpiazzare in
base a determinati criteri (politica di sostituzione)
La pagina cos individuata viene trasferita in memoria di massa (o semplicemente sovrascritta) e la
pagina cercata viene caricata in memoria
POLITICHE DI SOSTITUZIONE
Obiettivo fondamentale la sostituzione di quelle pagine la cui probabilit di essere utilizzate
nellimmediato futuro bassa. Gli algoritmi pi comuni sono:
a) Least Recently Used (LRU)
Viene rimpiazzata la pagina che stata usata meno recentemente. Occorre tener traccia della
sequenza degli accessi

Seleziona per lo scaricamento la pagina con la massima distanza allindietro nella stringa di
riferimento (che da pi tempo non viene usata)

La memorizzazione della stringa di riferimento pu essere troppo onerosa (chiama dal S.O. ogni
volta che un programma, nella sua esecuzione, passa da una pagina allaltra)

Approssimazione della RLU: A ciascuna pagina, sono associati, nella tabella delle pagine, alcuni bit:
-- bit P di pagina presente (= 1 se presente in memoria)
--bit R di uso (= 1 se viene referenziata)
--bit M di modifica (= 1 se viene modificata)
Quando una pagina viene caricata il suo bit d modifica 0

Periodicamente (ad esempio quando tutti i bit di uso sono = 1), i bit R vengono azzerati. Quindi si
decide di scartare la pagina che ha:
-- bit di uso = 0 (pagina non referenziata da parecchio tempo)
-- bit di modifica = 0 (non modificata dal suo ultimo caricamento, e quindi la si pu sovrascrivere,
senza perdere tempo per copia su disco)

b) Least Frequently Used (LFU)
Viene rimpiazzata la pagina che stata usata meno frequentemente durante un prefissato
intervallo precedente. Occorre mantenere un contatore di uso per ogni pagina.
c) First-In-First-Out (FIFO)
Viene rimpiazzata la pagina che residente da pi tempo. Occorre memorizzare la sequenza di
caricamento delle pagine.
PROPRIETA DI LOCALITA DEI PROGRAMMI
Un programma, giunto in una certa fase di esecuzione, utilizza solo un sottoinsieme limitato dellinsieme
complessivo delle sue pagine logiche, e tale sottoinsieme tende a variare lentamente
LOCALITA SPAZIALE Dopo che una locazione stata referenziata, molto probabile che vengano
referenziate locazioni di memoria a esse vicine (Es. scansione di array, esecuzione di codice sequenziale)
LOCALITA TEMPORALE Le locazioni di memoria recentemente usate sono quelle che probabilmente
verranno referenziate nellimmediato futuro (Es. istruioni di loop, sottoprogrammi, strutture dati stack..)
MODELLO WORKING SET
E basato sullipotesi di localit. Rappresenta linsieme di pagine sulle quali il processo lavora pi
frequentemente.
Il working set varia lentamente nel tempo, nel senso che alcune pagine non sono necessarie e possono
essere sostituite da altre pagine.
Se ogni processo ha caricato in memoria il proprio working set, si riduce fortemente il numero di page fault.
Questo impone che il caricamento in memoria di un processo comporti il caricamento del suo working set.
PROBLEMA: quante pagine fisiche associare a ciascun programma?
a) Modello locale
Se si verifica uninterruzione per mancanza di pagina, viene scelta come pagina da rimpiazzare una
tra quelle assegnate al processo.
SVANTAGGIO: non tutte le pagine hanno le stesse caratteristiche di localit

b) Modello globale
Gestire il rimpiazzamento in modo unificato scegliendo la pagina da rimpiazzare tra le pagine
fisiche di tutti i processi.
SVANTAGGIO: pu sfavorire dei processi (per esempio a bassa priorit) che rischiano di non aver
pi pagine presenti in memoria.
PREPAGING contrapposto a DEMANDPAGING che prevede che la pagina sia caricata solo quando
necessaria.
Se i processi si trovano a lavorare con un numero di pagine molto inferiore al working set, si pu
presentare un fenomeno di thrashing (collasso). Eccessivo numero di page fault con conseguente
overhead (lavoro del S.O. solo per caricare/scaricare le pagine).
RIMPIAZZAMENTO PAGINE IN UNIX SOLARIS
Il gestore della memoria di Solaris mantiene la lista dei frame liberi di memoria, con una soglia bassa (low
water mark) e una soglia alta (high water mark).
In caso di page fault il processo riceve un frame dalla lista.
Un processo di sistema (pageout o pagestealer) incaricato di liberare frames, e viene attivato ogni
qualvolta la lista dei frames raggiunge la soglia bassa:
1. Resetta i referece bit
2. Dopo un certo intervallo di tempo riesamina i reference bit e dealloca le pagine non riferite nel
frattempo, fino a raggiungere soglia alta
Pagine deallocate in modo diverso a seconda del fatto che siano state modificate o no.
Nel caso in cui il pageout non riesca a liberare sufficiente memoria, procede a forzare lo swapping di interi
processi. Per quale motivo si usano due soglie?
RIMPIAZZAMENTO PAGINE IN WINDOWS NT
Windows NT adotta uno schema di rimpiazzamento dele pagine del tipo demand paging con clustering.
In gestore della memoria di NT mantiene la lista dei frames liberi di memoria.
Per ogni processo viene definito un working set (WS) minimo e uno massimo. NT garantisce che ogni
processo abbia in memoria almeno il WS MINIMO di pagine.
In caso di page fault:
Se il WS<WS-MAX il gestore gli assegna un frame (se ce ne sono di liberi)
Se il WS=WS-MAX il gestore esegue un algoritmo locale FIFO di sostituzione pagine
Quando non vi sono pi frames liberi, il gestore esegue un automatic trimming, forzando la liberazione
delle pagine dai processi (in modo FIFO e fino al WS-MIN)
INPUT/OUTPUT GUIDATO DELLE INTERRUZIONI
Ogni processo che inizia unoperazione di I/O viene bloccato in attesa che il sistema operativo porti a
termine loperazione di I/O richiesta (gestione sincrona).
Al termine delloperazione di I/O (per esempio lettura di un blocco di file da disco) il controller del
dispositivo lancia una interruzione hardware al sistema operativo che pu quindi risvegliare il processo
bloccato (gestione asincrona).
I driver sono la parte del sistema operativo che gestiscono i dispositivi . Compito del driver di inviare i
comandi appropriati ai dispositivi (al controller) e gestire le interruzioni.
E la sola parte del sistema operativo che conosce i comandi dei controller, il numero dei registri, etc.

ARHITETTURA HARDWARE DI UN SISTEMA
DI CALCOLO

ARCHITETTURA HARDWARE DEL SOTTOSISTEMA
DI I/O

ARCHITETTURA SOFTWARE DEL SOTTOSISTEMA
DI I/O

GESTIONE DISPOSITIVI


Gli Hard Disk sono dispositivi
particolarmente importanti perch
offrono uno spazio di memoria di massa,
utilizzato il File System, ma anche per la
memoria virtuale

Il settore lunit minima di allocazione e di trasferimento (Ordine dei KB). Un settore identificato da:
Numero della faccia del disco
Numero della traccia (o cilindro)
Numero del settore dentro la traccia
Le prestazioni di un Hard Disk sono valutate in termini di tempo medio di trasferimento:
TF = TA + TT
TF: Tempo Medio di trasferimento
TA: Tempo medio di accesso (per posizionare
testina)
TT: Tempo medio di trasferimento dati (~ms)

TA = ST + RL
ST: Seek Time (tempo per spostare
longitudinalmente la testina del disco sulla traccia
richiesta) (~ms10ms)
RL: Rotational Time (tempo necessario per
ruotare il disco in modo da leggere il settore
richiesto) (~ms10ms)
Per ridurre i tempi di accesso ai dati si devono progettare strategie, politiche, per:
Allocazione dei file (in settori se possibile contigui)
Schedulare le richieste di accesso ai dischi (per minimizzare tempi spostamento testina)
ORGANIZZAZIONE LOGICA PER LA GESTIONE DEI DISPOSITIVI


GESTIONE DEGLI HARD DISK
In un sistema concorrente, molti
processi accedono al file system, che
si trova quindi a gestire molte
richieste che devono essere
schedulate (politcihe)
opportunamente per ridurre i tempi
di attesa dei processi.

Es. Ipotizziamo la testina sia sulla
traccia 20, e siano in coda le
richieste sul disco, sulle tracce 14,
40, 23, 47, 7. Ecco alcune possibili
politiche:


DISCHI RAID
Per migliorare ulteriormente le prestazioni,
si possono utilizzare in parallelo pi dischi
fissi. Questo pu permettere anche di
migliorare laffidabilit e la tolleranza ai
guasti (ridondanza dati).
Sistemi RAID (Redundant Array of
Indipendent Disks)

RAID 0 (striping)
Si crea un solo volume logico su tutti i dischi. I dati sono
allocati su dischi diversi, per parallelizzare operazioni di I/O
RAID 1 (mirroring)
Tutti i dati sono replicati su due dischi. Il sistema
scrive un dato sempre su due dischi.
Lettura pu essere parallelizzata sui due dischi.
Possibile mirroring anche aree sistema.
Tolleranza al guasto di un disco.
Elevato costo (utilizzo dischi del 50%).
RAID 5 (striping con parit)
Ogni sezione di parit contiene lor-esclusivo delle 4 sezioni corrispondenti
Nel caso di perdita di UNA delle sezioni dati, il sistema ricostruisce la perdita utilizzando la sezione di parit.
Minore costo rispetto a mirroring (Nellesmpio, costo del 20%).
ORGANIZZAZIONE DI UN FILE SYSTEM
Un file system permette la memorizzazione dei dati su memoria
secondaria.
Organizzazione di un File System su pi livelli, con diverse astrazioni:
ORGANIZZAZIONE DEL FILE SYSTEM UNIX
Ogni file rappresentato da una struttura dati (un
descrittore) chiamata i-node
Struttura di un i-node per i dispositivi



Struttura di un i-node per i file normali/direttori

RITROVARE I BLOCCHI FISICI DEL FILE (UNIX)
I primi dieci indirizzi diretti
Lundicesimo indirizzo indiretto: indirizzo area che contiene
gli indirizzi dei blocchi (con blocchi di 512 byte e ogni indirizzo
di 4 byte10 + 128 blocchi lunghezza file: 10*512 + 128*512
= 70656)
Il dodicesimo due livelli di indirettezza:
lunghezza massima file 10 + 128 + 128*128 blocchi
il tredicesimo tre livelli di indirettezza fino a GB: 10 + 128 +
128*128 + 128*128*128 blocchi
Si favoriscono file di media lunghezza. File di dimensioni teoricamente illimitate (~GB)








IL DIRETTORIO (UNIX)
Un direttorio un file con
una struttura del tipo:
Ad ogni file (o
direttorio)
contenuto nel
direttorio,
viene
associato li-
number che
lo identifica
univocamente
STRUTTURA FISICA DEL FILESISTEM (UNIX)
Il disco viene suddiviso in parti di
dimensione fissa composte di blocchi

nomefile un nome relativo, non assoluto
i-number collegato in modo univoco alli-node del file
ORGANIZZAZIONE DEL FILE
SYSTEM (UNIX)
TABELLE GLOBALI (UNIX)
Una sola tabella file attivi (i-
node attivi) con un numero di
entry pari al numero di file attivi
(aperti anche da pi processi)
Una sola tabella dei file aperti,
con una entry per ogni apertura
di file (possibili pi entry referenti
lo stesso file)
-- un puntatore al corrispondente i-node
-- un puntatore (I/O pointer) per le operazioni di lettura e scrittura sil file: punta al byte corrente del file a
partire dal quale verranno effettuate le operazioni
APERTURA DI UN FILE (UNIX)
Lapertura di un file (system call open()) provoca:
Lallocazione di un elemento (individuato da un file descriptor) nella prima posizione libera della
tabella dei file aperti del processo
Linserimento di un nuovo record nella tabella ei file aperti di sistema
La copia del suo i-node nella tabella dei file attivi (se il file non gi stato aperto da un altro
processo)
CONDIVISIONE DI FILE (UNIX)
Aperuture separate di uno stesso file portano a
condividere una sola entry della tabella degli i-node
attivi, ma si avranno distinte entry nella tabella dei file
aperti.





PROTEZIONE
Protezione: Necessit di controllare laccesso di programmi, processi e utenti alle risorse di un sistema di
calcolo
Strumenti per la specifica dei controlli e la loro realizzazione (enforcement)
Caso di processo padre che apre un file
prima di creare un processo figlio:
padre e figlio condividono la entry nella
tabella dei file aperti, e anche la
corrispondente entry nella tabella degli
i-node attivi lo stesso I/O pointer
Obiettivo: Assicurare che ciascun componente di programma/processo attivo in un sistema usi le risorse del
sistema solo in modi consistenti con le politiche stabilite per il loro uso.
Sperazione tra politiche e meccanismi: Un sistema di protezione deve essere in grado di realizzare una
variet di politiche.
DOMINIO DI PROTEZIONE
Sistema di calcolo come insieme di processi e oggetti (o risorse) (hardware: CPU, segmenti di memoria,
stampanti, dischi,; software: file, programmi, semafori, .)
Ogni oggetto ha un unico nome e un insieme di operazioni con le quali pu essere manipolato (tipo di dato
astratto).
Un processo pu accedere solo a oggetti per cui autorizzato. In ogni istante, deve poter accedere solo a
quelle risorse strettamente necessarie per compiere la sua funzione (principio least privilege limita il
danno che un processo con errori pu creare nel sistema)
ES. Processo P chiama una procedura A.
A deve poter accedere alle sue variabili e parametri formali passati, e non a tutte le variabili del processo P.
Ogni processo opera allinterno di un dominio di protezione che specifica le risorse che il processo pu
usare.
Diritto di accesso specifica unoperazione su un ogetto.
Ogni dominio definisce un insieme di oggetti e i relativi tipi di operazioni permesse sugli oggetti.
Es. Domini disgiunti o diritti di accesso in comune


Il dominio un concetto astratto che pu essere realizzato in una variet di modi:
Un dominio per ogni utente. Linsieme degli oggetti che lutente pu accedere dipende dallidentit
dellutente. Il cambio di dominio legato allidentit dellutente (avviene quando cambia lutente).
Un dominio per ogni proceso. Ogni riga descrive gli oggetti e i diritti di accesso di un processo. Il
cambio di dominio corrisponde allinvio di un messaggio a un altro processo.
Un dominio per ogni procedura. Il
cambio del dominio corrisponde alla
chimata di procedura.
MATRICE DEGLI ACCESSI (MODELLO DI
PROTEZIONE)
Accessi (i,j) definisce linsieme dei diritti di
accesso che un processo che opera nel dominio i
pu esercitare sulloggetto j
Si pu realizzare come un insieme ordinato di
triple <dominio, oggetto, insieme dei diritti> (tavola globale)
Quando unoperazione M deve essere eseguita nel dominio D
i
su O
j
, si cerca la tripla <D
i
, O
j
, R
k
> con


Se esiste, loperazione pu essere eseguita; diversamente, si ha situazione di errore.
PORBLEMI: dimensioni troppo grandi
SOLUZIONI (meno generali ma pi efficienti e diffuse): access control list, capability
ACCES CONTROL LIST
Per ogni oggetto viene indicata la coppia ordinata <dominio, insieme dei diritti>
limitatamente ai domini con un insieme di diritti non vuoto
Quando deve essere eseguita unoperazione M su un oggetto O
j
nel dominio D
i
si cerca nella lista degli
accessi <D
i
, R
k
> con


Se non esiste, si cerca in una lista di default. Se non esiste, si ha una condizione di errore.
Per motivi di efficienza , si pu cercare prima nella lista di default e successivamente nella lista degli accessi
ES: FILE SYSTEM
lista degli accessi associata al file contiene: nome utente (dominio) e diritti di accesso
CAPABILITY LIST
Per ogni dominio viene indicato linsieme degli oggetti e dei relativi diritti di accesso (capability list)
D
1
: <O
1
, diritti>,<O
2
, diritti>,etc.
D
2
: <O
2
, diritti>,<O
5
, diritti>,etc.
etc.
Spesso un oggetto identificato dal suo nome fisico o dal suo indirizzo (capability). Il possesso della
capability corrisponde allautorizzazione a eseguire una certa operazione.
Quando un processo opera in un dominio, chiede di esercitare un diritto di accesso su un oggetto. Se ci
consentito, il processo entra in possesso di una capability per loggetto e pu eseguire unoperazione.
La lista delle capability non direttamente accessibile a un processo in esecuzione in quel dominio. E
protetta e gestita dal S.O.
Non pu migrare in qualsiasi spazio direttamente accessibile a un processo utente (non pu essere
manipolata) dai processi.

You might also like