12.10.2014 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!