(caricamento statico)
Il metodo a paginazione usa come unità di assegnazione un blocco di memoria. La memoria viene considerata suddivisa in blocchi tutti della stessa dimensione (2k byte).
Lo spazio logico (strutturato secondo il modello contiguo) viene suddiviso in pagine della stessa dimensione dei blocchi; ogni pagina può essere memorizzata in un blocco qualsiasi; i blocchi possono anche non essere contigui (ma ci deve essere un blocco per ogni pagina). Questo metodo occupa in modo efficiente la memoria; può restare inutilizzata solo una parte del blocco occupato dall’ultima pagina del programma (frammentazione interna); lo spreco dipende quindi dalla dimensione dei blocchi e dei programmi.
Per sapere quali sono i blocchi disponibili il sistema operativo può utilizzare una lista dei blocchi liberi, una bitmap o 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 (tabella di mappa di pagina) che contiene numero di pagina e indirizzo del blocco assegnato.
Per trasformare un indirizzo logico nel corrispondente indirizzo fisico bisogna:
- dividere l’indirizzo logico per la dimensione della pagina e calcolare il risultato e il resto; il risultato della divisione fornisce il numero di pagina e il resto fornisce l’offset all’interno della pagina;
- individuare nella tabella di mappa di pagina l’indirizzo del blocco in cui è memorizzata la pagina;
- sommare all’indirizzo di inizio del blocco l’offset all’interno della pagina.
Ci possono essere dei meccanismi di protezione per pagina per specificare per esempio se una pagina è di sola lettura o può essere modificata.