Publicado el 26 de Septiembre del 2018
931 visualizaciones desde el 26 de Septiembre del 2018
450,7 KB
34 paginas
Creado hace 7a (17/02/2017)
Introducción
Espacio de direccionamiento
El MMU
Espacio en memoria
Resolución de direcciones
Administración de memoria: Funciones y
operaciones
Gunnar Wolf
Gunnar Wolf
Administración de memoria: Funciones y operaciones
Introducción
Espacio de direccionamiento
El MMU
Espacio en memoria
Resolución de direcciones
Índice
1
Introducción
2 Espacio de direccionamiento
3 El MMU
4 Espacio en memoria
5 Resolución de direcciones
Gunnar Wolf
Administración de memoria: Funciones y operaciones
Introducción
Espacio de direccionamiento
El MMU
Espacio en memoria
Resolución de direcciones
El administrador de memoria
Es otra de las partes fundamentales de un sistema operativo
En toda computadora basada en von Neumann, la memoria es
el único almacenamiento a que tiene acceso directo el
procesador
Todo otro almacenamiento tiene que pasar a través de
controladores externos
Típicamente manejado a través de memoria mapeada o de
acceso directo
Todo proceso que ejecutemos debe estar en memoria
El administrador de memoria es el encargado de permitir que
varios procesos la compartan
Gunnar Wolf
Administración de memoria: Funciones y operaciones
Introducción
Espacio de direccionamiento
El MMU
Espacio en memoria
Resolución de direcciones
Notación: Sistemas binario, decimal, hexadecimal
¡Importante!
Para comprender bien este tema, así como el siguiente, es
importante tener un buen dominio de conceptos básicos de los
sistemas de numeración
Particularmente el binario, en segundo término el hexadecimal
Aspectos principales:
Potencias de 2
Representación numérica en los diferentes sistemas
Máscaras de bits
Hay tarea al respecto.
Gunnar Wolf
Administración de memoria: Funciones y operaciones
Introducción
Espacio de direccionamiento
El MMU
Espacio en memoria
Resolución de direcciones
La memoria caché
El manejo del caché es casi transparente para el sistema
operativo
Busca resolver el diferencial (creciente) de velocidad entre el
CPU y la memoria
La memoria de alta velocidad que maneja el caché es mucho
más cara
Comienza a entrar en juego la velocidad de los electrones sobre
pistas de cobre
Vimos ya que el OS tiene que saber al respecto: Afinidad de
procesos a CPU
Cuando se produce una falla de caché (no tiene copia de la
dirección solicitada), es necesario detener al CPU
Insertando una burbuja o NOOP → stall (detención)
Gunnar Wolf
Administración de memoria: Funciones y operaciones
Introducción
Espacio de direccionamiento
El MMU
Espacio en memoria
Resolución de direcciones
¿Por qué el caché?: Localidad de referencia
Se ha observado que prácticamente todos los procesos responden al
principio de localidad de referencia:
Localidad temporal Es probable que un recurso que fue empleado
recientemente vuelva a ser empleado en un futuro
cercano.
Localidad espacial La probabilidad de que un recurso aún no
requerido sea accesado es mucho mayor si fue
requerido algún recurso cercano.
Localidad secuencial Un recurso, y muy particularmente la
memoria, tiende a ser requerido de forma secuencial.
(Caso especial de Localidad espacial)
Gunnar Wolf
Administración de memoria: Funciones y operaciones
Introducción
Espacio de direccionamiento
El MMU
Espacio en memoria
Resolución de direcciones
Ilustrando la localidad de referencia
Figura: Patrones de acceso a memoria (Silberschatz, p.350)
Gunnar Wolf
Administración de memoria: Funciones y operaciones
Introducción
Espacio de direccionamiento
El MMU
Espacio en memoria
Resolución de direcciones
Índice
1
Introducción
2 Espacio de direccionamiento
3 El MMU
4 Espacio en memoria
5 Resolución de direcciones
Gunnar Wolf
Administración de memoria: Funciones y operaciones
Introducción
Espacio de direccionamiento
El MMU
Espacio en memoria
Resolución de direcciones
Abstracción de la memoria
La memoria se presenta ante el CPU como un arreglo
direccionable
Cada byte tiene una dirección única y consecutiva
En algunas arquitecturas, las solicitudes deben estar alineadas
(por ejemplo, a 64 bits), y no estarlo causa ua trampa o falta,
incurriendo en demoras
Sin embargo, las direcciones siguen siendo de cada byte
Para operar sobre bits específicos, tenemos que pedir el byte,
trabajar sobre de él y enviarlo de vuelta — Como una unidad.
Gunnar Wolf
Administración de memoria: Funciones y operaciones
Introducción
Espacio de direccionamiento
El MMU
Espacio en memoria
Resolución de direcciones
Espacio de direccionamiento: ¿Hasta dónde puedes contar?
Cada arquitectura de procesador tiene un espacio de
direccionamiento determinado
Siempre es una potencia de 2, y casi siempre en números
cerrados (8, 16, 32, 64)
Es el máximo de memoria que dicho procesador puede ver
Virtual Lo máximo que la arquitectura ofrece como una
dirección de memoria
Físico Lo máximo que un procesador específico puede
direccionar (limitado por su número de pines)
Gunnar Wolf
Administración de memoria: Funciones y operaciones
Introducción
Espacio de direccionamiento
El MMU
Espacio en memoria
Resolución de direcciones
Procesadores de 16 bits
Un procesador con espacio de direccionamiento de 16 bits
puede referirse directamente a hasta 216 (65,536) bytes.
Principales procesadores de este tipo: Intel 8080 y 8085, Zilog
Z80, MOS 6502 y 6510
Intel 8086/8088: Direcciona hasta 20 bits (1024KB)
Pero al ser una arquitectura real de 16 bits, requiere emplear
segmentación para alcanzar toda su memoria
Intel 80286: espacio de direccionamiento de 24 bits (16 MB)
Pero su mercado era el mismo que el del 8086/8088, y por
ciertas restricciones de su arquitectura, casi nunca se utilizó en
estos modos
Gunnar Wolf
Administración de memoria: Funciones y operaciones
Introducción
Espacio de direccionamiento
El MMU
Espacio en memoria
Resolución de direcciones
Procesadores de 32 bits
Hoy en día, los procesadores dominantes son de 32 o 64 bits
Un procesador de 32 bits puede direccionar hasta 4GB — 232
bytes (4,294,967,296 bytes)
Hoy ya está dentro del rango de lo alcanzable
Por medio de PAE (Extensión de Direcciones Físicas, Physical
Address Extension), puede extenderse hasta 252 (aunque
típicamente 236, 64GB)
PAE requiere un nivel adicional de indirección (lo veremos
cuando cubramos paginación), por lo que pierde un poco de
rendimiento, y cada proceso sigue viendo sólo hasta 4GB.
Gunnar Wolf
Administración de memoria: Funciones y operaciones
Introducción
Espacio de direccionamiento
El MMU
Espacio en memoria
Resolución de direcciones
Procesadores de 64 bits
Un procesador de 64 bits puede direccionar hasta 16 exabytes
— 264 bytes (18,446,744,073,709,551,616 bytes)
El hardware actual está limitado por un criterio económico a
entre 234 y 248 bits, 16GB y 256TB
El costo de más de 256TB RAM hace extremadamente
improbable que sea requerido en suficientes procesadores de
propósito general
En un sistema actual de escritorio, es muy poco probable
llegar a requerir incluso más de 16GB
Cada bit de direccionamiento necesario requiere un pin en el
CPU, por tanto, tiene un costo económico directo
Gunnar Wolf
Administración de memoria: Funciones y operaciones
Introducción
Espacio de direccionamiento
El MMU
Espacio en memoria
Resolución de direcciones
¿Más allá?
¿Qué tan lejos podemos llegar?
El número total de átomos en el universo está estimado en
cerca de 280
¿Cuánto espacio (físico) necesitamos para nuestra memoria?
Por más que avance la miniaturización
¿Cuánto ancho de banda podemos esperar tener?
¿Cómo podemos esperar llenar 64 bits de datos?
Gunnar Wolf
Administración de memoria: Funciones y operaciones
Introducción
Espacio de direccionamiento
El MMU
Espacio en memoria
Resolución de direcciones
Índice
1
Introducción
2 Espacio de direccionamiento
3 El MMU
4 Espacio en memoria
5 Resolución de direcciones
Gunnar Wolf
Administración de memoria: Funciones y operaciones
Introducción
Espacio de direccionamiento
El MMU
Espacio en memoria
Resolución de direcciones
¿Qué es / qué hace el MMU?
Casi todos los sistemas operativos modernos requieren de una
unidad de manejo de memoria (MMU)
Hardware, hoy es parte integral del CPU
Trabaja muy de cerca con el sistema operativo
Encargado de funciones de control de permisos, seguridad, y
traducción de direcciones
“Vigilando” todos los accesos a memoria que ejecuta el código
Existen sistemas operativos multitarea que pueden funcionar
sin MMU
Pagan como precio la confiabilidad del sistema
Gunnar Wolf
Administración de memoria: Funciones y operaciones
Introducción
Espacio de direccionamiento
El MMU
Espacio en memoria
Resolución de direcciones
¿Traducción de direcciones?
Es común que un sistema requiera más memoria de la que está
directamente disponible
Más memoria de la que existe
Más memoria de la que el hardware puede direccionar
Un proceso no tiene por qué conocer los detalles de la
asignación de memoria — Le damos una vista virtual
simplificada
¿Cuántos bloques de memoria me asignaron?
¿Cuál es la ubicación de cada uno de ellos?
¿Qué pasa si intento escribir (o leer) de donde tengo prohibido?
A lo largo de esta unidad iremos viendo las estrategias para
responder a esto.
Gunnar Wolf
Administración de memoria: Funciones y operaciones
Introducción
Espacio de direccionamiento
El MMU
Espacio en memoria
Resolución de direcciones
Permisos
El MMU verifica que un proceso no tenga acceso a datos de
otro
A menos que sea expresamente permitido (vía el sistema
operativo)
Hacer esta verificación desde el sistema operativo mismo
incurriría en costos demasiado grandes
Una verificación estática no puede ser suficientemente
exhaustiva
Direcciones construidas al vuelo
Modos indirectos de referencia a memoria
. . .
Gunnar Wolf
Administración de memoria: Funciones y operaciones
Introducción
Espacio de direccionamiento
El MMU
Espacio en memoria
Resolución de direcciones
Protección de acceso: Primera aproximación
La arquitectura nos ofrece dos registros de uso específico, y su
modificación requiere una operación privilegiada / modo supervisor:
Reg
Comentarios de: Administración de memoria: Funciones y operaciones (0)
No hay comentarios