so - administración de memoria

21
Administración de Memoria Luis A. Eraso 1GB SDRAM. Wikimedia Commons

Upload: luis-eraso

Post on 20-Jul-2015

263 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: SO - Administración de Memoria

Administración de Memoria

Luis A. Eraso

1GB SDRAM. Wikimedia Commons

Page 2: SO - Administración de Memoria

Resumen del móduloObjetivo del módulo:

• Entender como los sistemas operativos crean abstracciones de la memoria y como las administran.

Contenido:

• Jerarquía de memoria

• El administrador de memoria

• Esquemas para la administración de la memoria• Sin abstracciones• Espacios de direcciones• Memoria Virtual• Algoritmos de remplazo de páginas• Cuestiones de implementación

Recursos:

• TANENBAUM, Andrew S. Sistemas operativos modernos. Pearson Educación, 2003. Capitulo 3. Administración de memoria.

• tutorialspoint.com. Operating System Tutorial. Cap. 9 Memory Management, Cap. 10 Virtual Memory. [En línea: 18-09-2014 http://www.tutorialspoint.com/operating_system/index.htm]

Evaluación:

• Examen 60%. Se realiza en la semana definida para parciales, 6-10 Octubre.

• Talleres 30%. Fecha de entrega máxima un día antes del parcial, entregas posteriores se califican sobre 4.

• Quiz 10%. Fecha: a mitad del corte, 25-30 Septiembre. Temas: los vistos hasta el día del quiz.

Page 3: SO - Administración de Memoria

Jerarquía de memoria

• Características ideales• Memoria privada• De tamaño y rapidez infinitos• No volátil• Económica

• Lo que se tiene• Memoria caché

• Pocos MB, rápida , volátil, costosa

• Memoria principal• 1~8GB, mediana velocidad, volátil,

mediano precio

• Almacenamiento en Disco • ~1TB, lento, no volátil, económico

• Almacenamiento removible• CDs, DVDs, Memorias USB-Flash

El trabajo del sistema operativo es abstraer esta jerarquía en un modelo útil y después administrarla

Esto seria lo ideal para cada programa en ejecución

Page 4: SO - Administración de Memoria

Administrador de memoria

• Administrador de memoria: parte del sistema operativo que administra (pate de) la jerarquía de memoria. • Su trabajo es administrar la memoria con eficiencia

• Llevar el registro de cuales partes de la memoria están en uso

• Asignar memoria a los procesos cuando la necesiten

• Desasignar la memoria cuando los procesos terminen

Page 5: SO - Administración de Memoria

Administrador de memoria

• Varios esquemas de administración de memoria• Muy simples muy sofisticados• Memoria caché: es administrada desde el hardware• Memoria principal: lo que corresponde a este capitulo• Memoria permanente: Próximo modulo

• Esquemas• Sin abstracción de memoria• Espacios de direcciones• Memoria virtual• Algoritmos de remplazo de páginas• Cuestiones de implementación

Page 6: SO - Administración de Memoria

Sin abstracción de memoria

• La abstracción mas simple de memoria es ninguna abstracción• Usada por:

• Los primeras computadores mainframe (1960)• Los primeras minicomputadores (antes 1970)• Las primeros computadores personales (antes de 1980)

• Cada programa veía simplemente la memoria física.• Ejemplo: Mover el contenido de la ubicación de memoria física 1000 al

REGISTRO1. Instrucción ejecutada por el programa:

MOV REGITRO1,1000

• Bajo estas condiciones en principio, no es posible tener dos programas ejecutándose en memoria al mismo tiempo.

• Si un programa escribe un valor en la ubicación 2000, se borra cualquier valor que el segundo programa haya tenido almacenado allí

• Ambos programas fallarían de inmediato

Cada dirección correspondía a una celda que contenía cierto numero de bits

Page 7: SO - Administración de Memoria

Sin abstracción de memoria• Opciones posibles de organización

a. El S.O. puede estar en la parate inferior de la RAMb. El S.O. puede estar en la ROMc. Controladores en ROM y S.O en RAM

• Los modelos a y c tienen la desventaja que un error en el programa de usuario puede borrar el sistema operativo

• En estos modelos solo se puede ejecutar un proceso a la vez• Se ejecuta un comando, el S.O. copia el programa del disco a memoria y lo ejecuta• Devuelve resultado y espera nuevo comando

Tanenbaum, 2009

Se utilizó en mainframes pero actualmente no

se emplea

Antiguas computadoras de bolsillo y sistemas integrados

Primeros computadores

personales. ROM: BIOS.

S.O.: MS-DOS

Page 8: SO - Administración de Memoria

Sin abstracción de memoria• Ejecución múltiple de programas sin abstracción

de memoria:• Con la adición de cierto hardware es posible ejecutar

varios programas concurrentemente.

• Lo que se necesita:• Memoria dividida en bloques, cada bloque con una llave de

acceso.

• Cada llave es guardada en registros espaciales de la CPU.

• Cada programa en ejecución guarda en su palabra de estado (PSW) la llave correspondiente a su sector.

• Mediante Hardware se controlaba cualquier intento de acceder a una dirección de memoria sin la llave correspondiente.

Page 9: SO - Administración de Memoria

Sin abstracción de memoriaEjemplo a. Programa 1 se ejecuta en memoria

• Un programa utiliza las direcciones de memoria desde la posición 0 a la posición 16380

Posición de memoria: 0Instrucción: Saltar a la posición 24

Posición de memoria: 24Instrucción: Instrucción MOV (Mover un registro a una dirección de memoria.Posición de memoria: 28Instrucción: Instrucción ADD (Suma)

Posición de memoria: 16380Instrucción: Fin de programa

Tanenbaum, 2009

Page 10: SO - Administración de Memoria

Sin abstracción de memoriaEjemplo b. Programa 2 se ejecuta en memoria

• Un programa utiliza las direcciones de memoria desde la posición 0 a la posición 16380

Posición de memoria: 0Instrucción: Saltar a la posición 28

Posición de memoria: 28Instrucción: Instrucción CMP

Posición de memoria: 16380Instrucción: Fin de programa

Tanenbaum, 2009

Page 11: SO - Administración de Memoria

Sin abstracción de memoriaEjemplo c. Los programas 1 y 2 se ejecuta en memoria al mismo tiempo:

Sin reubicación estática: ERRORLa posición 28 esta en el Programa 1

Sin reubicación estática:Posición de memoria: 16384Instrucción: Saltar a la posición 28

Reubicación estática: cuando se cargaba un programa en la dirección 16.384, se sumaba el valor constante 16.384 a todas las direcciones del programa durante el proceso de carga.

Con reubicación estática:Posición de memoria: 16384Instrucción: Saltar a la posición 28 + 16384 = 16412

Tanenbaum, 2009

Page 12: SO - Administración de Memoria

Sin abstracción de memoria• Problemas del modelo sin abstracción de memoria

• Los programas de usuario pueden dañar el SO con facilidad al acceder voluntaria o involuntariamente a direcciones de memoria incorrectas.

• Es difícil tener varios programas en ejecución a la vez. Se tiene un modelo que lo permite, pero es muy complejo.

• Para tener varios programas en ejecución se necesita• Protección

• Reubicación

Se puede concluir con base al modelo de ejecución de varios procesos sin abstracción de memoria

Page 13: SO - Administración de Memoria

ESQUEMA ADMON MEMORIA:Espacio de direccionesEspacio de direcciones

• Una abstracción de la memoria

• Es el conjunto de direcciones que puede utilizar un proceso para direccionar la memoria

• Cada proceso tiene su propio espacio de direcciones, independiente de los que pertenecen a otros procesos

Así como el concepto del proceso crea un tipo de CPU abstracta para ejecutar programas, elespacio de direcciones crea un tipo de memoria abstracta para que los programas vivan ahí

Page 14: SO - Administración de Memoria

Una abstracción de memoriaEspacio de direcciones• Ejemplos de espacio de direcciones en otros

contextos• Números de teléfono:

• Números del 0 000 000 al 9 999 999

• Puertos de E/S en un PC• Puertos del 0 al 16383

• Direcciones IP: • Direcciones de 0 a 2^23 -1

• Dominios en internet: Ejemplo dominio “.com” • Todas las direcciones que finalicen con “.com”

Page 15: SO - Administración de Memoria

Una abstracción de memoriaEspacio de direcciones

• Registros base y limite• Versión muy simple de la ubicación dinámica

• Consiste en asociar el espacio de direcciones de cada proceso sobre una parte distinta de la memoria física.

• Incluir en la CPU dos registros de hardware especiales• Registros base y limite

• Los programas se cargan en ubicaciones consecutivas de memoria en donde haya espacio y sin reubicación durante la carga

Page 16: SO - Administración de Memoria

Espacio de direcciones• Modelo de registros base y limite

Espacio de direcciones del

Proceso 1251.000 – 300.000

Espacio de direcciones del

Proceso 3420.000 – 650.000

Incluir en la CPU dos registros de hardware especiales

Proceso 2: Base = 300.000, Limite = 120.000

Los programas se cargan en ubicaciones consecutivas de

memoria en donde haya espacio y sin reubicación durante la carga

Fuente: http://www.tutorialspoint.com/operating_system/os_memory_management.htm

Page 17: SO - Administración de Memoria

1. Cuando se ejecuta un proceso:el registro base se carga con la dirección física donde empieza el programa en memoriael registro límite se carga con la longitud del programa

2. Para el programa 1:Registro base = 0Registro límite = 16384

Cada vez que un proceso hace

referencia a la memoria:

• Obtener una instrucción de memoria

• Leer o escribir una palabra de datos

Ejecución de una instrucción:

El hardware de la CPU suma el valor

base a la dirección generada por el

proceso antes de enviar la dirección al

bus de memoria

JMP 28 JMP 28+16384 JMP 16412

Tanenbaum, 2009

Page 18: SO - Administración de Memoria

Espacio de direcciones• La cantidad total de RAM que requieren todos los

procesos es a menudo mucho mayor de lo que puede acomodarse en memoria.

• En los S.O. se crean entre 40 y 60 procesos o más cada vez que se inicia la computadora.• Buscar actualizaciones (5 a 10 MB de memoria)• Comprobar el correo entrante• Conexiones de red entrantes• Programas de aplicaciones de usuario (50 a 200 MB)

• Esquemas para lidiar con este problema• Intercambio• Memoria virtual

Problema: La cantidad de memoria no es suficiente para contener todos los programas en ejecución.

Page 19: SO - Administración de Memoria

Intercambio

A esta en memoria

B se crea o intercambia desde disco

C se crea o intercambia desde disco

A se intercambia desde disco

Llega D Sale B

Entra A de nuevo en

una ubicación distinta

Tanenbaum, 2009

Page 20: SO - Administración de Memoria

Intercambio

Entra A de nuevo en

una ubicación distinta

Como A está ahora en una ubicación distinta las direcciones que contiene se deben reubicar• Mediante software cuando se intercambia • Mediante hardware durante la ejecución del programaSe pueden utilizar• Los registros base y límite

Tanenbaum, 2009

Page 21: SO - Administración de Memoria

Intercambio• ¿Qué cantidad de memoria se debe asignar a un

proceso cuando este se crea o se intercambia?

Asignación dinámicaa. Asignación de espacio para un segmento de datos en crecimiento.b. Asignación de espacio para una pila en crecimiento y un segmento de datos en crecimiento.

Tanenbaum, 2009

Asignación estáticaSe crea con un tamaño fijo que nunca cambia. El sistema operativo asigna exactamente lo necesario, ni más ni menos.