Sistemi Operativi

Allocazione dei Frame

In un sistema multiprogrammato, come distribuiamo i frame (pagine di memoria) disponibili fra i processi? Ci sono varie soluzioni detti algoritmi di allocazione:

In generale l’allocazione globale è di solito preferita per sistemi time sharing. Può succedere che avendo pochi frame, ogni processo ha un’alta probabilità di generare un page fault. Per gestire il page fault, una pagina viene tolta dalla MP, probabilmente ad un altro processo, il quale ha a sua volta un’alta probabilità di generare un page fault. Alla fine tutti i processi sono attivissimi a rubarsi pagine l'un l'altro, per fare page-fault subito dopo! Questo fenomeno si chiama THRASHING ed è assolutamente da evitare dimensionando opportunamente il numero di pagine per processo. Intuitivamente, il thrashing si verifica quando si tenta di aumentare troppo il grado di multiprogrammazione, in modo da sfruttare al massimo il tempo di CPU e incrementare il throughput del sistema. Oltre una certa soglia però, i processi passano più tempo a fare page fault che a portare avanti il loro lavoro, e il livello di utilizzazione della CPU, e quindi il throughput, crollano verticalmente!

In definitiva quindi, il thrashing è una sorta di “ingolfamento” del sistema: vogliamo sfruttarlo al meglio “iniettando” più e più processi nel sistema, col risultato che i processi si danneggiano a vicenda. Per risolvere questo problema si può per esempio misurare la frequenza di page-fault, per vedere se è “accettabile” rispetto alle prestazioni che vogliamo ottenere dal sistema. Se la frequenza osservata è troppo bassa, possiamo togliere ai processi qualche frame, e aumentare il grado di multiprogrammazione Se la frequenza osservata è troppo alta, diminuiamo il grado di multiprogrammazione e ridistribuiamo i frame liberati fra i processi non rimossi.






















































Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.