2. Resumen del módulo
Objetivo del módulo:
•Entender como los sistemas operativos crean abstracciones de la memoriay 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.
•Quiz10%. Fecha: a mitad del corte, 25-30 Septiembre. Temas: los vistos hasta el día del quiz.
3. 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 abstraeresta jerarquía en un modelo útil y después administrarla
Esto seria lo ideal para cada programa en ejecución
4. 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
5. Administrador de memoria
•Varios esquemasde 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
6. 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
7. Sin abstracción de memoria
•Opciones posibles de organización
a.El S.O. puede estar en la parate inferior de la RAM
b.El S.O. puede estar en la ROM
c.Controladores en ROM y S.O en RAM
•Los modelos ay ctienen 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
8. 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.
9. Sin abstracción de memoria
Ejemplo a. Programa 1 se ejecuta en memoria
•Un programa utiliza las direcciones de memoria desde la posición 0a la posición 16380
Posición de memoria: 0
Instrucción: Saltar a la posición 24
Posición de memoria: 24
Instrucción: Instrucción MOV (Mover un registro a una dirección de memoria.
Posición de memoria: 28
Instrucción: Instrucción ADD (Suma)
Posición de memoria: 16380
Instrucción: Fin de programa
Tanenbaum, 2009
10. Sin abstracción de memoria
Ejemplo b. Programa 2 se ejecuta en memoria
•Un programa utiliza las direcciones de memoria desde la posición 0a la posición 16380
Posición de memoria: 0
Instrucción: Saltar a la posición 28
Posición de memoria: 28
Instrucción: Instrucción CMP
Posición de memoria: 16380
Instrucción: Fin de programa
Tanenbaum, 2009
11. Sin abstracción de memoria
Ejemplo c. Los programas 1 y 2 se ejecuta en memoria al mismo tiempo:
Sin reubicación estática: ERROR
La posición 28 esta en el Programa 1
Sin reubicación estática:
Posición de memoria: 16384
Instrucció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: 16384
Instrucción: Saltar a la posición
28 + 16384 = 16412
Tanenbaum, 2009
12. 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
13. ESQUEMA ADMON MEMORIA: Espacio de direcciones
Espacio de direcciones
•Una abstracción de la memoria
•Es el conjunto de direcciones que puede utilizar un proceso para direccionar la memoria
•Cada procesotiene 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, el
espacio de direcciones crea un tipo de memoria abstracta para que los programas vivan ahí
14. 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”
15. 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 hardwareespeciales
•Registrosbasey limite
•Los programas se cargan en ubicaciones consecutivas de memoria en donde haya espacio y sin reubicación durante la carga
16. Espacio de direcciones
•Modelo de registros base y limite
Espacio de direcciones del Proceso 1
251.000 –300.000
Espacio de direcciones del Proceso 3
420.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
17. 1. Cuando se ejecuta un proceso:
el registro base se carga con la dirección física donde empieza el programa en memoria
el registro límitese carga con la longitud del programa
2. Para el programa 1:
Registro base = 0
Registro 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
18. 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.
19. Intercambio
A esta en memoria
B se crea o intercambia desde disco
Cse 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
20. 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 programa
Se pueden utilizar
•Los registros base y límite
Tanenbaum, 2009
21. Intercambio
•¿Qué cantidad de memoria se debe asignar a un proceso cuando este se crea o se intercambia?
Asignación dinámica
a. 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ática
Se crea con un tamaño fijo que nunca cambia. El sistema operativo asigna exactamente lo necesario, ni más ni menos.