Memoria

Páginas: 13 (3002 palabras) Publicado: 10 de abril de 2012
Paginación
• Es una forma de disminuir la fragmentación externa.
• Además, hasta ahora el swapping debía hacerse con los procesos completos. Con paginación, un proceso puede ser llevado parcialmente al disco. Regla del 90/10: Un proceso ocupa el 90% del tiempo accediendo a 10% de su memoria.
• Es usada por casi todas las arquitecturas de hardware y por los SO.
• Lasdirecciones lógicas no se disponen continuamente en la memoria física.
• Consiste en dividir la memoria física en secciones de memoria, llamadas marcos, y dividir la memoria lógica en secciones del mismo tamaño, llamadas páginas.
• El tamaño es fijo, y determinado por el hardware (4kb, 2Mb y 4Mb en i386)
• Cuando se crea un proceso, se le asigna el número de páginas y frames necesarios.• Las direcciones lógicas del proceso son un rango continuo de números, pero estas se mapean de forma (probablemente) discontinua en memoria física.
• Cualquier marco puede ser asignado a cualquier página.
• Se elimina la fragmentación externa. 
• Se acota la fragmentación interna (~1/2 página por proceso). Ejemplos extremos.
• Grafico de páginas y marcos: Asignaciones nocontinuas.
11.2 Hardware de Paginación
• Cómo hacemos para mapear un continuo de direcciones lógicas a la memoria física?
• Los procesos usan direcciones continuas de memoria: direcciones virtuales ó lógicas. Van de 0 al tamaño del proceso.
• Esta dirección virtual definirá una página y el offset en la página.
• El SO pedirá al hardware que asigne un marco a las páginas usadas.• Una tabla en la MMU asocia las páginas con los marcos.
• Gráfico de traducción dirección lógica -> Tabla -> dirección física. Sección de offset no traducida. Tamaño de la sección de offset, por qué? 2^N
• Es una forma (compleja) de relocación dinámica.
• Es transparente al proceso.
• El SO es responsable de mantener la Tabla de Páginas.
• Tamaño típicos de página: entre512 y 8192 bytes. (Definida por el hardware). Siempre 2^N. (Ejemplo)



11.3 Ejemplos de Paginación

•  Datos: RAM: 256bytes.  Tamaño página: 16bytes.Direccionamiento por byte.
o La dirección física tiene 8 bits (suficientes para mapear 256bytes planos).
o 16 marcos de 16 bytes. 
o 4 bits de offset para direcciones 16 bytes dentro de cada página
o 4bits para seleccionar la página: entre 16 páginas.
o 4+4 = 8 bits de dirección lógica.
o dado un proceso de 64bytes -> 4 páginas -> la tabla tiene 4 entradas.
o p: los '4' más  significativos. 'd' los menos.
o dada un dirección: 0x18 (24) -> 0x1 es la página, y 0x8 es el offset.
o dada un dirección: 0x2A (42) -> 0x2 es la página, y 0xA es eloffset.
• Datos: RAM: 512bytes.  Tamaño página: 16bytes.Direccionamiento por word (2 bytes).
o dirección física: 9 bytes.
o 32 marcos de 16 bytes.
o 5bits para seleccionar la página
o 3 bits para el offset. (porque son 16bytes = 8 words por página)
o 5+3 = 8 bits de dirección lógica.
o 'p': los 5 más significativos, 'n' los 3 menos.o dada una dirección: 0xD (13d 1101b)-> p=1b-> 1d , n=101b-> 5d

• Cada cambio de contexto es necesario guardar la Tabla de Página en el PCB y cargar la del nuevo proceso. La página puede estar guardada de dos formas: Registros o Memoria.  En el primer caso, es necesario guardar toda la tabla desde los registros a la memoria en el PCB para cambiar de proceso y restaurar los registrosdesde el PCB del nuevo proceso. En el segundo caso, basta con tener todas las tablas en memoria y guardar un puntero al comienzo de cada tabla en cada PCB.
• Dónde se guarda la tabla de páginas. Dos opciones:
1. registros
▪ mas rápidos
▪ si mucha RAM -> la tabla tendrá muchas entradas y no se puede ponerla en registos
▪ cada cambio de...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • La memoria
  • Memoria
  • Memoria
  • Memoria
  • Memoria
  • La Memoria
  • Memorias
  • Memorias

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS