TEMA 3. GESTIÃN DE MEMORIA - Universidad de AlmerÃa
TEMA 3. GESTIÃN DE MEMORIA - Universidad de AlmerÃa
TEMA 3. GESTIÃN DE MEMORIA - Universidad de AlmerÃa
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Diseño <strong>de</strong> Sistemas Operativos<br />
Tema <strong>3.</strong> Gestión <strong>de</strong> Memoria<br />
• De memoria principal a secundaria: por expulsión.<br />
Beneficios: (1) Aumenta el grado <strong>de</strong> multiprogramación; (2) Permite ejecución <strong>de</strong> programas que no quepan<br />
en memoria principal.<br />
<strong>3.</strong>2.1. Paginación.<br />
El espacio virtual <strong>de</strong> direcciones se divi<strong>de</strong> en unida<strong>de</strong>s llamadas páginas, todas <strong>de</strong>l mismo tamaño. La<br />
memoria principal se divi<strong>de</strong> en marcos <strong>de</strong> páginas (page frames) <strong>de</strong>l mismo tamaño que las páginas virtuales<br />
y son compartidas por los distintos procesos <strong>de</strong>l sistema (en cada marco <strong>de</strong> página se carga una página <strong>de</strong> un<br />
proceso).<br />
No todo el espacio virtual <strong>de</strong> direcciones está cargado en memoria central. Una copia completa se encuentra<br />
en disco y las páginas se traen a memoria central cuando se necesitan.<br />
• Tabla <strong>de</strong> páginas (TP) ⇒ Relaciona cada página con el marco que la contiene.<br />
• MMU usa TP para traducir direcciones lógicas a físicas.<br />
• Típicamente usa 2 TPs: TP usuario y TP sistema (sólo se permite usar estas direcciones en modo<br />
sistema).<br />
Transformación <strong>de</strong> la dirección virtual en dirección física: Los bits <strong>de</strong> mayor peso <strong>de</strong> la dirección se<br />
interpretan como el número <strong>de</strong> la página en la TP y los <strong>de</strong> menor peso como el número <strong>de</strong> palabra <strong>de</strong>ntro <strong>de</strong><br />
la página (<strong>de</strong>splazamiento).<br />
Contenido <strong>de</strong> cada entrada <strong>de</strong> la TP: (1) Número <strong>de</strong> marco asociado; (2) Información <strong>de</strong> protección (RWX),<br />
si operación no permitida ⇒ Excepción; (3) Bit <strong>de</strong> página válida/ inválida (utilizado en memoria virtual para<br />
indicar si página presente), si se acce<strong>de</strong> ⇒ Excepción; (4) Bit <strong>de</strong> página accedida (referenciada) ⇒ MMU lo<br />
activa cuando se acce<strong>de</strong> a esta página; (5) Bit <strong>de</strong> página modificada ⇒ MMU lo activa cuando se escribe en<br />
esta página; (6) Bit <strong>de</strong> <strong>de</strong>sactivación <strong>de</strong> caché ⇒ utilizado cuando la entrada correspon<strong>de</strong> con direcciones <strong>de</strong><br />
E/S.<br />
Tamaño <strong>de</strong> página (condicionado por diversos factores contrapuestos) ⇒ Potencia <strong>de</strong> 2 y múltiplo <strong>de</strong>l tamaño<br />
<strong>de</strong>l bloque <strong>de</strong> disco (compromiso entre 2K y 16K).<br />
Gestión <strong>de</strong> la TP por parte <strong>de</strong>l sistema operativo: (1) El sistema operativo mantiene una TP por cada proceso<br />
⇒ en el cambio <strong>de</strong> contexto notifica a MMU qué TP <strong>de</strong>be usar; (2) El sistema operativo mantiene una única<br />
TP para el propio sistema operativo ⇒ proceso en modo kernel acce<strong>de</strong> directamente a su mapa y al <strong>de</strong>l<br />
sistema operativo; (3) El sistema operativo mantiene tabla <strong>de</strong> marcos <strong>de</strong> páginas ⇒ estado <strong>de</strong> cada marco<br />
(libre o ocupado, ...); (4) El sistema operativo mantiene tabla <strong>de</strong> regiones <strong>de</strong> memoria por cada proceso.<br />
Implementación <strong>de</strong> las TPs que se mantiene normalmente en memoria principal ⇒ problemas: eficiencia y<br />
gasto <strong>de</strong> almacenamiento. (1) Eficiencia ⇒ Cada acceso lógico requiere dos accesos a memoria principal (a<br />
la tabla <strong>de</strong> páginas + al propio dato o instrucción) → solución: caché <strong>de</strong> traducciones (TLB, Translation<br />
Lookasi<strong>de</strong> Buffer); (2) Gasto <strong>de</strong> almacenamiento ⇒ Tablas muy gran<strong>de</strong>s → solución: tablas multinivel.<br />
TLB. Buffer caché con información sobre últimas páginas accedidas ⇒ caché <strong>de</strong> entradas <strong>de</strong> TP<br />
correspondientes a estos accesos. 2 alternativas: (1) Entradas en TLB no incluyen información sobre proceso<br />
⇒ invalidar TLB en cambios <strong>de</strong> contexto; (2) Entradas en TLB incluyen información sobre proceso ⇒<br />
registro <strong>de</strong> CPU <strong>de</strong>be mantener un i<strong>de</strong>ntificador <strong>de</strong> proceso actual. TLB gestionada por hardware: (1) MMU<br />
consulta TLB, si fallo, entonces utiliza la TP en memoria. TLB gestionada por software (ce<strong>de</strong>r al sistema<br />
operativo parte <strong>de</strong>l trabajo <strong>de</strong> traducción): (1) MMU no usa las TPs, sólo consulta TLB; (2) el sistema<br />
operativo mantiene TPs que son in<strong>de</strong>pendientes <strong>de</strong>l hardware, si fallo en TLB ⇒ activa el sistema operativo<br />
que se encarga <strong>de</strong>: buscar en TP la traducción y rellenar la TLB con la traducción; proporcionando<br />
flexibilidad en el diseño <strong>de</strong>l sistema operativo pero menor eficiencia.<br />
Departamento <strong>de</strong> Lenguajes y Computación. <strong>Universidad</strong> <strong>de</strong> Almería Página <strong>3.</strong>4