gestion de memoria
DESCRIPTION
Teoria general de sistemas operativos relacionada con al gestion de la memoria principal (RAM).TRANSCRIPT
Sistemas Operativos
M.Sc. Luis Eduardo Sepúlveda Rodríguez
¡ Identificar diversas formar utilizadas para la organización de la memoria física.
¡ Analizar técnicas para la gestión de memoria
Gestión de Memoria 2
¡ En las computadoras reales, la memoria está compuesta de semiconductores
¡ La memoria es accesible directamente por la unidad central de procesamiento (CPU).
Gestión de Memoria 3
¡ La memoria puede considerarse como un arreglo unidimensional, como si fuera una serie de casillas contiguas donde se almacena información.
¡ Cada casilla tiene asignado un número único o subíndice considerado como la dirección física de memoria), el cual sirve para identificarla
Gestión de Memoria 4
¡ Tanto la capacidad de almacenamiento de una casilla, como la cantidad de ellas en la memoria, son definidas directamente por el fabricante del hardware.
¡ La cantidad de casillas en memoria, está estrechamente relacionada con la capacidad de direccionamiento del hardware.
Gestión de Memoria 5
¡ La CPU lee constantemente instrucciones y datos de la memoria para poder ejecutar los programas e interactuar con los procesos
¡ Por lo anterior, la velocidad de la memoria influye directamente en el desempeño general del sistema operativo.
Gestión de Memoria 6
¡ Al referirse a la velocidad de la memoria, es importante tener en cuenta dos factores:
§ Tiempo de Acceso: Es el tiempo que transcurre entre el inicio y el fin de una operación de lectura o escritura sobre la memoria.
§ Tiempo de Ciclo de Memoria: Es el tiempo mínimo entre el inicio de dos accesos consecutivos a memoria. A veces coincide con el tiempo de acceso, pero otras veces es mayor.
Gestión de Memoria 7
La memoria principal es un recurso muy costoso e importante; por esta razón, y con el fin de optimizar su uso, ha sido objeto de muchos estudios relacionados con las siguientes preguntas:
§ ¿Se localizará a un sólo usuario, o a varios usuarios en la memoria principal al mismo tiempo?
§ Si hay varios usuarios al mismo tiempo, ¿le asignaremos la misma cantidad de memoria a cada uno, o le asignaremos particiones de tamaño diferente a cada uno?
§ ¿Se realizarán particiones de la memoria en forma dinámica o en forma estática?
§ ¿Requerimos que los procesos de usuario sean diseñados para ejecutarse en una partición específica, o pueden correr en cualquier partición en al que quepan?
§ ¿Se requiere que un proceso sea localizado en un sólo bloque contiguo en memoria principal, o puede ser dividido en varios bloques no contiguos?
Gestión de Memoria 8
¡ Es importante considerar que, todo programa debe encontrarse en memoria, de manera contigua antes de ser ejecutado.
¡ Luego que un programa termina su ejecución, la memoria que éste ocupa se libera.
¡ Existen básicamente dos tipos de programas desde el punto de vista de la memoria:
§ Programas re-‐localizables.
§ Programas no re-‐localizables.
Esta clasificación se refiere a si los programas una vez cargados en la memoria, se pueden cambiar o mover a otra posición de memoria, sin ver afectada su ejecución. En adelante, nos centraremos en los programas re-‐localizables.
Gestión de Memoria 9
¡ Por su naturaleza móvil, los programas re-‐localizables no pueden utilizar direccionamiento directo en la memoria para referirse a sus componentes.
¡ Los programas re-‐localizables deben utilizar direccionamiento relativo.
¡ Direccionamiento relativo
§ Consiste en referenciar todos los componentes de la aplicación a partir de un desplazamiento sobre una variable llamada cero relativo.
§ El cero relativo será una dirección física de la memoria, en la cual se encuentra actualmente la aplicación.
Gestión de Memoria 10
¡ En los años 50 y 60, la memoria principal estaba constituida por costosos núcleos magnéticos, lo cual hizo indispensable diseñar un sistema computacional con el mínimo tamaño requerido.
¡ Debían conservarse en memoria principal sólo el código y los datos estrictamente necesarios y lo demás en memoria secundaria (medios de almacenamiento persistente usados como extensión de la memoria principal – swap).
¡ La memoria secundaria tiene un menor costo por bit, pero con tiempos de acceso mayores que la memoria principal.
Gestión de Memoria 11
Gestión de Memoria 12
Disco Duro
R1
R2 RAM
Mayor costo por bit y velocidad de acceso. Menor capacidad
Menor costo por bit y velocidad de acceso. Mayor capacidad
Memoria Principal
Memoria Secundaria
Registros del CPU
¡ Durante la década de los 60 fue muy clara la necesidad de que la jerarquía de almacenamiento incluyera un nivel adicional, lo cual traería cambios sustanciales en el desempeño de los sistemas computacionales.
¡ Este nuevo nivel fue la memoria caché, que estaría entre la CPU y la memoria principal. La memoria caché es más costosa y de menos capacidad que la memoria principal.
Gestión de Memoria 13
Gestión de Memoria 14
Disco Duro
R1
R2 RAM
Mayor costo por bit y velocidad de acceso. Menor capacidad
Menor costo por bit y velocidad de acceso. Mayor capacidad
Caché
Memoria Principal
Memoria Secundaria
Registros del CPU
Memoria Caché
¡ En sistemas con monoprogramación, la memoria principal se divide en dos partes:
§ una parte para el sistema operativo § otra parte para el programa que se ejecuta en ese instante.
Gestión de Memoria 15
¡ En un sistema con multiprogramación, la parte de "usuario" de la memoria debe subdividirse aún más para incluir a varios procesos.
¡ La tarea de subdivisión la lleva a cabo dinámicamente el sistema operativo y se conoce como gestión de memoria.
¡ En un sistema con multiprogramación resulta vital una gestión efectiva de la memoria.
Gestión de Memoria 16
Monoprogramación Multiprogramación
Gestión de Memoria 17
Sistema Operativo
Programa en ejecución
Proceso único
(sección para el usuario)
Sistema Operativo
Programas en ejecución
Proceso 1 -‐ Proceso 2 Proceso 3 … Proceso n
(sección para el usuario)
Existen muchos mecanismos o alternativas para la administración de la memoria.
¡ La primera alternativa que se tiene, es no tener ningún mecanismo propio del sistema para la asignación de memoria § Ante la existencia de un entorno de trabajo, es el programador el dueño y señor de ella.
§ Utilizado en los sistema que tienen propósitos específicos en la industria, la investigación científica, etc.
Gestión de Memoria 18
¡ En los sistemas multitarea, las aplicaciones del usuario se encuentran en ejecución, al mismo tiempo que el sistema operativo
¡ Es necesario la existencia de algún mecanismo para que las aplicaciones del usuario no dañen al sistema operativo ya sea accidentalmente o no.
Gestión de Memoria 19
¡ Un mecanismo consiste en comparar si cada dirección de memoria se encuentra o no dentro de la zona asignada al usuario.
¡ En este mecanismo de protección, existen dos posibilidades, que el sistema operativo esté ubicado al inicio de la memoria, o al final de ella.
Gestión de Memoria 20
Gestión de Memoria 21
Gestión de Memoria 22
¡ Protección con registro base:
§ Es otro mecanismo de protección, con el sistema operativo al inicio de la memoria.
§ Consiste en sumar a la dirección solicitada el contenido de un registro base, el cual contiene el límite superior del sistema operativo.
Gestión de Memoria 23
Gestión de Memoria 24
¡ Para lograr atender a varios usuarios y varias tareas “simultáneas”, hay que garantizar entornos de trabajo protegidos de otros tareas que accidentalmente o no utilicen memoria ya asignada a una tarea determinada.
¡ Para poder garantizar esto, es necesario dividir la memoria en múltiples particiones, una para el sistema operativo y una para cada uno de los programas que se estén ejecutando en el sistema.
Gestión de Memoria 25
¡ Para garantizar la “privacidad” de todos los entornos de trabajo, se pueden utilizar los mismos mecanismos ya vistos, pero con unas ligeras modificaciones.
Gestión de Memoria 26
Gestión de Memoria 27
¡ SILBERSCHATZ A, GALVIN P, GAGNE G. Operating System Concepts. 8th Edition. 2009.
¡ STANLLINGS W. Sistemas Operativos, 2ed. PRENTICE HALL, Madrid, 2000.
Gestión de Memoria 28