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
Mayor costo por bit y velocidad de acceso. Menor capacidad Memoria Secundaria Registros del CPU
Memoria Principal
R1 R2
RAM
Disco Duro
Menor costo por bit y velocidad de acceso. Mayor capacidad Gestión de Memoria
12
¡ 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
Mayor costo por bit y velocidad de acceso. Menor capacidad Memoria Secundaria Registros del CPU
Memoria Caché
Memoria Principal
R1 Caché R2
RAM
Disco Duro
Menor costo por bit y velocidad de acceso. Mayor capacidad Gestión de Memoria
14
¡ 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
Sistema Operativo
Sistema Operativo
Programa en ejecución Proceso único (sección para el usuario)
Programas en ejecución Proceso 1 -‐ Proceso 2 Proceso 3 … Proceso n (sección para el usuario)
Gestión de Memoria
17
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