Gestió de Memòria Virtual: Paginació, Segmentació i Polítiques
Clasificado en Informática
Escrito el en catalán con un tamaño de 5,99 KB
La gran majoria de sistemes utilitzen pàgines d'entre 1KB i 4 KB. Els dissenys actuals consideren capacitats de memòria física no molt grans, entre 4MB i 256MB. Increments en aquests valors poden representar canvis en el disseny de la memòria virtual. Alguns sistemes suporten múltiples longituds de pàgina: R4000 suporta 7 longituds (4KB a 16 MB) i Pentium suporta 2 longituds (4KB o 4MB).
Memòria Virtual Segmentada
Cada procés manté una taula de segments. Cada entrada de la taula conté un bit de modificació i un de presència. Si el segment és a memòria, conté l'adreça d'inici i la longitud. Per protecció a nivell de segments, poden usar-se altres bits de control.
La traducció d'adreces lògiques a físiques és semblant a la paginació. Cada entrada de la taula de segments conté l'adreça d'inici del segment i la seva longitud. Es pot modificar la longitud del segment de forma dinàmica. Si no pot ampliar-se, es pot traslladar a altres zones de memòria. El camp de longitud permet validar les adreces.
Presenta fragmentació externa. És més complicat transferir segments entre memòria principal i secundària que transferir pàgines. Interessa oferir protecció o compartició de segments, atès que són estructures visibles pel programador.
Paginació i Segmentació Combinades
Per aprofitar els avantatges dels dos sistemes, alguns processadors i sistemes operatius permeten paginar els segments. Per exemple, cada procés manté una taula de segments i diverses taules de pàgines (una per a cada segment).
L'adreça virtual consisteix en:
- Un nombre de segment: que indica l'entrada de la taula de segments d'on extreure l'adreça d'inici de la taula de pàgines corresponent.
- Un nombre de pàgina: per indicar l'entrada de la taula de pàgines d'on obtenir el corresponent nombre de marc de pàgina.
- Un desplaçament: per indicar la paraula dins el marc de pàgina.
El camp Base Segment és l'adreça física de la taula de pàgines del segment. Els bits de presència i modificació sols apareixen en la taula de pàgines. La informació de protecció i compartició apareix en les entrades de la taula de segments (per exemple: bit lectura/escriptura, bit usuari/nucli, ...).
Algorisme LRU
Substitueix les pàgines a les que fa més temps que no s'ha accedit. D'acord amb el principi de localitat, haurien de ser les menys utilitzades en un futur immediat. El seu rendiment és semblant a l'òptim.
Implementació de l'Algorisme LRU
Dins la taula de pàgines s'indica l'instant de referència a cada pàgina. Cada vegada que s'ha de substituir una pàgina, es consulta la taula i es selecciona aquella amb el valor de temps més petit. És un sistema que requereix hardware car i introdueix massa sobrecàrrega. Pocs computadors l'utilitzen.
Software del Sistema Operatiu i Polítiques
El tipus de software necessari depèn del tipus de memòria virtual que suporta el hardware: paginació, segmentació o ambdós. Els sistemes només segmentats són escassos. Normalment s'utilitzen segments paginats i, per tant, la gestió de memòria maneja pàgines. L'objectiu fonamental per assolir un bon rendiment consisteix en aconseguir una taxa de falles de pàgina baixa.
Política de Lectura (Fetch)
Determina la pàgina que s'ha de passar a memòria principal.
- Paginació per demanda: transfereix aquelles pàgines a les que s'ha fet una referència a alguna de les seves posicions. La taxa de falles de pàgina és alta a l'inici del procés, però hauria de minvar tal com més pàgines s'hagin carregat.
- Paginació prèvia: transfereix més pàgines de les necessàries (aprofita els mecanismes de disc). El principi de localitat suggereix que és més eficient carregar pàgines que resideixen contigües en el disc. L'eficiència no està completament demostrada, ja que sovint moltes de les pàgines extra carregades no s'utilitzen.
Política d'Ubicació (Placement)
Determina quines posicions de la memòria real ocupen els diferents fragments d'un procés.
- Per sistemes només segmentats: els algorismes ja explicats: first-fit, next-fit, ...
- Per sistemes paginats (i amb segmentació paginada), el hardware pren les decisions. No és important, ja que tots els marcs de pàgina són equivalents.
Política de Substitució (Replacement)
Determina quina de les pàgines s'ha de substituir de la memòria principal quan se'n carrega una de nova. Succeeix cada vegada que la memòria està plena, fet que es produeix sovint, ja que el SO intenta carregar en memòria tants processos com pugui per augmentar el nivell de multiprogramació.
Aspectes a considerar:
- El nombre de marcs de pàgina assignats a cada procés actiu (conjunt resident, gestió del conjunt resident).
- Si el conjunt de pàgines substituïbles és el format per les del propi procés que provoca la falla o per totes les no bloquejades. La majoria de les pàgines del nucli, els buffers d'E/S i les estructures de control solen guardar-se en pàgines bloquejades (bit de bloqueig).
- Del conjunt de pàgines candidates, quina és, finalment, substituïda (política de substitució).
Algorismes Bàsics de Substitució
La política òptima és aquella que substituirà la pàgina que hauria d'esperar més temps fins que es produeixi la següent referència a ella. Provoca el menor nombre de falles de pàgines. No és implementable (s'ha de conèixer el futur), però serveix d'estàndard per avaluar els altres algorismes:
- Usada fa més temps (LRU - Least recently used)
- Primera en entrar, primera en sortir (FIFO - First-in, First-out)
- Del Rellotge