administración de memoria introducción la parte del sistema operativo que se encarga del manejo de...
Post on 05-Mar-2015
15 Views
Preview:
TRANSCRIPT
Administración de memoria
• Introducción• La parte del sistema operativo que se encarga del
manejo de la memoria se denomina administrador de la memoria. Su labor consiste en llevar un registro de qué partes de la memoria se están utilizando y qué partes no, con el fin de asignar espacio a los procesos cuando estos hagan requerimientos, liberarlo cuando terminen, así como administrar el intercambio entre la memoria principal y el disco, en el caso en que esta no pueda albergar a todos los procesos. También facilita los mecanismos de protección para que un proceso no invada el espacio de otros procesos.
Administración de memoria
• Conceptos: La organización y la administración de la memoria
principal , memoria primaria o memoria real es uno de los factores más importantes que influyen en el diseño de los Sistemas Operativos.
• Históricamente la memoria ha sido un recurso caro, por lo que se desea optimizar su uso, aunque en la actualidad ha bajado de precio, los programa han aumentado su tamaño
• El problema de la escasez de memoria continúa.
•
Administración de memoria• Puntos claves de la administración de
memoria.• ¿Se debe permitir la multiprogramación?
• ¿Se deben asignar particiones fijas o variables?
• ¿Las particiones pueden crecer en forma dinámica?
• ¿Los programas podrán ser relocalizables?
• ¿La ejecución de trabajos se hará en bloques de memoria adyacentes o en cualquier lugar disponible?
Administración de memoria
• Monoprogramación.• El sistema más simple de
administración, consiste en tener sólo un programa cargado en la memoria a la vez.
• Este esquema deriva en la creación de un sistema operativo, permitiendo aislar las rutinas que manejan los dispositivos de I/O de los procesos de usuario
Administración de memoria
• Monoprogramación.• Bajo este esquema, la memoria real
es tomada para almacenar el programa que se esté ejecutando en un momento dado, con la visible
• desventaja de que se está limitado a la cantidad de RAM disponible.
Administración de memoria
• Monoprogramación.• La organización física bajo este esquema es muy
simple: El sistema operativo se ubica en las localidades superiores o inferiores de la memoria, seguido por algunos manejadores de dispositivos (`drivers').
• Esto deja un espacio contiguo de memoria disponible que es tomado por los programas del usuario, dejando generalmente la ubicación de la pila (`stack') al último, con el objetivo de que ésta pueda crecer hasta el máximo posible.
Administración de memoria
•Monoprogramación.
Administración de memoria
• Multiprogramación en memoria real.• Multiprogramación: consiste en poner en
la memoria física más de un proceso al mismo tiempo, de manera que si el que se está ejecutando en este momento entraba en un período de entrada/salida, se puede tomar otro proceso para que usara la unidad central de procesamiento.– De esta forma, la memoria física se divide en
secciones de tamaño suficiente para contener a varios programas
Administración de memoria
• Modelo de multiprogramación.• Desde un punto de vista
probabilístico, sea p la fracción de tiempo en que un proceso espera por I/O.
• La probabilidad de que n procesos esperen simultáneamente por I/O es: pn
• La utilización de CPU es por lo tanto: 1-pn
Administración de memoria
• Multiprogramación con particiones fijas.
• Es la manera más simple de administrar la memoria cuando estamos en sistemas multiprogramados es con particiones fijas.
• Consiste en dividir la memoria en en n partes de tamaño fijo. De esta forma es posible tener multiprogramación ya que a cada proceso se le asigna una partición.
Administración de memoria
• Desventajas.– Se hace una mala utilización de la memoria
debido a la poca flexibilidad del método.– Es complicado correr programas más grandes
que el tamaño de la partición.– Se presenta fragmentación interna. Este
fenómeno ocurre cuando un proceso no ocupa toda la memoria asignada y sin embargo el espacio libre no puede ser utilizado por ningún otro proceso.
Administración de memoria
• Ventajas.– Su administración es relativamente
simple, pues para guardar información del estado del recurso se debe tener un registro de cada zona (libre u ocupada).
– La protección entre procesos se puede realizar mediante el mecanismo de llaves de memoria o utilizando el registro base y la longitud de la zona.
Administración de memoria
•Multiprogramación con particiones variables.
• La memoria se divide en bloques de diferente tamaño de acuerdo a las necesidades del proceso.
Administración de memoria
• Ventajas– La gran ventaja de este método es su
flexibilidad, pues permite definir bloques del tamaño requerido, terminando así con la fragmentación interna y permitiendo hacer un mejor uso de la memoria y por ende del procesador.
Administración de memoria
• Desventajas.• Fragmentación externa.
– Como la memoria se dividió en bloques de tamaño diferente, puede ocurrir que el bloque más grande no pueda contener un programa dado, a pesar que la suma de los espacios libres sea mayor que el tamaño del programa.
– Cuando se libera una partición y ésta no se puede ocupar. Se originan huecos de memoria.
Administración de memoria
Estrategias para el llenado de los espacios de memoria:• Primer Ajuste (first fit): Se asigna el primer hueco que
sea mayor al tamaño deseado. • Mejor Ajuste (best fit): Se asigna el hueco cuyo tamaño
exceda en la menor cantidad al tamaño deseado. Requiere de una búsqueda exhaustiva.
• Peor Ajuste (worst fit): Se asigna el hueco cuyo tamaño exceda en la mayor cantidad al tamaño deseado. Requiere también de una búsqueda exhaustiva.
• El Siguiente Ajuste: Es igual que el “primer ajuste” con la diferencia que se deja un apuntador al lugar en donde se asignó el último hueco para realizar la siguiente búsqueda a partir de él.
• Ajuste Rápido: Se mantienen listas ligadas separadas de acuerdo a los tamaños de los huecos, para así buscarle a los procesos un hueco más rápido en la cola correspondiente.
Administración de memoria
Técnicas de Administración de Memoria
Administración de memoria
Memoria Virtual
Kernel
400Kb
200Kb
600Kb
Memoria Real
1000Kb
Problema:
Ejecutar un programaque necesita másmemoria que la que haydisponible.
Problema:
Ejecutar un programaque necesita másmemoria que la que haydisponible.
¿?
Administración de memoria
Memoria Virtual
Solución:
Hacer creer al programa queSe está ejecutando en un espaciode direcciones de tamañoapropiado.
Solución:
Hacer creer al programa queSe está ejecutando en un espaciode direcciones de tamañoapropiado.
Kernel
400Kb
200Kb
600Kb
Memoria Real
1000Kb¿?
400Kb+
Administración de memoria
Memoria Virtual
•Idea base: tamaño combinado del programa, los datos y la pila de ejecución puede exceder la cantidad de memoria real disponible para él.
•El sistema operativo mantiene aquellas partes del programa que se están utilizando en cada momentoen la memoria principal y el resto permaneceen el disco.
•Idea base: tamaño combinado del programa, los datos y la pila de ejecución puede exceder la cantidad de memoria real disponible para él.
•El sistema operativo mantiene aquellas partes del programa que se están utilizando en cada momentoen la memoria principal y el resto permaneceen el disco.
Administración de memoria
Memoria Virtual
Todo programa o proceso no utilizatodo su espacio de direcciones en todo momento
Todo programa o proceso no utilizatodo su espacio de direcciones en todo momento
Los programas tienden a usar mucho las instrucciones que están cercanas a la localidad de lainstrucción que se está ejecutando actualmente.
Los programas tienden a usar mucho las instrucciones que están cercanas a la localidad de lainstrucción que se está ejecutando actualmente.
Estadísticamente, se ha demostrado:
Administración de memoria
Memoria Virtual
Estructura del bus de memoria
Administración de memoria
Memoria Virtual
Unidad de Administración de Memoria (MMU)
Es un conjunto de chips, que asocianlas direcciones virtuales con las direccionesde memoria física.
Es un conjunto de chips, que asocianlas direcciones virtuales con las direccionesde memoria física.
La idea central de la memoria virtual es quedirección es diferente de localización física.
La idea central de la memoria virtual es quedirección es diferente de localización física.
Administración de memoria
Memoria Virtual
Resumiendo
Memoria Física
Memoria VirtualMMU
Administración de memoria
Memoria Virtual
Implementación
Memoria Virtual
Paginación Segmentación
Administración de memoria
Memoria VirtualImplementación: Paginación
•La memoria física es particionada en bloques de tamaño fijos llamados frames.•La memoria lógica es particionada en bloques del mismo tamaño llamados páginas.•Cada dirección generada por la CPU es dividida en 2 partes: numero de pagina (p) y offset en la página (d)•El número de página es usado como índice en una tabla de páginas.•La tabla de páginas contiene la dirección base de cada página en la memoria física.
•La memoria física es particionada en bloques de tamaño fijos llamados frames.•La memoria lógica es particionada en bloques del mismo tamaño llamados páginas.•Cada dirección generada por la CPU es dividida en 2 partes: numero de pagina (p) y offset en la página (d)•El número de página es usado como índice en una tabla de páginas.•La tabla de páginas contiene la dirección base de cada página en la memoria física.
Administración de memoria
Memoria Virtual
Implementación: Paginación
Memoria Física
Memoria Virtual
Páginas Frames
Administración de memoria
Memoria Virtual
Implementación: Paginación
Memoria FísicaMemoria Virtual
Páginas Frames
Espacio de Dir. Virtuales: 64kbTamaño de páginas : 4kb
Memoria Física :32kbTamaño de Frames : 4kb
16 páginas
8 frames
Dirección Virtualb d
# página Desplazamiento
Administración de memoria
Memoria Virtual
Implementación: Paginación
Dirección Virtualb d
Tabla de Direcciones Virtuales (TDV)
Estado de la Página : Memoria oDisco, Modificada, etc.
Nº del frame que le correspondeen memoria física
Administración de memoria
Memoria Virtual
Implementación: Paginación
Dirección Virtualb d
Tabla de Direcciones Virtuales (TDV)
El bit de caching. Si esté esta desactivado, cuando se produzca una operación de E/S, el sistema operativo busca la informaciónen el hardware y no una copia antigua en el caché.
Administración de memoria
Memoria Virtual
Implementación: Paginación
Dirección Virtualb d
b’
En la TDV, se busca cuáles el frame que correspondea la página b. En este casoes b’.
Administración de memoria
Memoria Virtual
Implementación: Paginación
Dirección Virtualb d
b’
+
A b’ se le agrega el Desplazamiento d y se Obtiene la dirección física.
b’ + d
Administración de memoria
Memoria Virtual
Implementación: Paginación
Fallos de página
Sucede cuando se está buscando una página cualquiera y ésta no está cargada en memoria problemas para el administrador de memoria. tiene que ir a buscar la página al disco y cargarla en memoria. Lo anterior si es que hay espacio Si no hay espacio, debe escoger una página y enviarla a disco. En la TDV debe actualizar el registro de ésta página indicando que ya no está en RAM. Y después cargar la página deseada desde el disco hacia la memoria principal.
Sucede cuando se está buscando una página cualquiera y ésta no está cargada en memoria problemas para el administrador de memoria. tiene que ir a buscar la página al disco y cargarla en memoria. Lo anterior si es que hay espacio Si no hay espacio, debe escoger una página y enviarla a disco. En la TDV debe actualizar el registro de ésta página indicando que ya no está en RAM. Y después cargar la página deseada desde el disco hacia la memoria principal.
Administración de memoria
Memoria Virtual
Implementación: Paginación
Fallos de página
Administración de memoria
Memoria Virtual
Implementación: Paginación
Fallos de página. Algoritmos de reemplazo.
FIFO: •Se escoge la página que haya entrado primero y esté cargada en RAM.•No es eficiente porque no aprovecha ninguna •característica de ningún sistema.•Es justa e imparcial.
La no usada recientemente:•Se escoge la página que no haya sido usada (referenciada) en el ciclo anterior.•Pretende aprovechar el hecho de la localidad en el conjunto de trabajo.
FIFO: •Se escoge la página que haya entrado primero y esté cargada en RAM.•No es eficiente porque no aprovecha ninguna •característica de ningún sistema.•Es justa e imparcial.
La no usada recientemente:•Se escoge la página que no haya sido usada (referenciada) en el ciclo anterior.•Pretende aprovechar el hecho de la localidad en el conjunto de trabajo.
Administración de memoria
Memoria Virtual
Implementación: Paginación
Fallos de página. Algoritmos de reemplazo.
La usada menos recientemente:•Escoge la página que se usó hace más tiempo•Nota: como ya tiene mucho sin usarse es muy probable que siga sin usarse en los próximos ciclos.
La no usada frecuentemente:•Escoge cualquier página que se use muy poco, menos veces que alguna otra.•Toma en cuenta la cantidad de referencias que tiene una página.
La usada menos recientemente:•Escoge la página que se usó hace más tiempo•Nota: como ya tiene mucho sin usarse es muy probable que siga sin usarse en los próximos ciclos.
La no usada frecuentemente:•Escoge cualquier página que se use muy poco, menos veces que alguna otra.•Toma en cuenta la cantidad de referencias que tiene una página.
Administración de memoria
Memoria Virtual
Implementación: Paginación
Fallos de página. Algoritmos de reemplazo.
La no usada frecuentemente:•Escoge cualquier página que se use muy poco, menos veces que alguna otra.•Toma en cuenta la cantidad de referencias que tiene una página.
La menos frecuentemente usada:•Busca en forma exhaustiva aquella página que se ha usado menos que todas las demás.
La no usada frecuentemente:•Escoge cualquier página que se use muy poco, menos veces que alguna otra.•Toma en cuenta la cantidad de referencias que tiene una página.
La menos frecuentemente usada:•Busca en forma exhaustiva aquella página que se ha usado menos que todas las demás.
Administración de memoria
Memoria Virtual
Implementación: Paginación
Fallos de página. Algoritmos de reemplazo.
En forma aleatoria:•Elige cualquier página sin aprovechar nada.•Es justa e imparcial, pero ineficiente.
En forma aleatoria:•Elige cualquier página sin aprovechar nada.•Es justa e imparcial, pero ineficiente.
Administración de la MemoriaMemoria Virtual
Segmentación
La segmentación es un esquema de administraciónde memoria que soporta la visión del usuario de lamemoria.
Código fuente
Stack Tabla de símbolos
Administración de la MemoriaMemoria Virtual
Segmentación
Cada segmento tiene un nombre (número) y unlargo.
La dirección virtual especifica el segmento y el offset delsegmento
Dirección Virtuals d
Administración de la MemoriaMemoria Virtual
Segmentación
Para mapear la direcciones bidimensionales en unadimensión (dirección física) se utiliza la tabla desegmentos.
Cada entrada en la tabla tiene una base y un límitedel segmento.
La base indica donde comienza el segmento en lamemoria física.
Administración de la MemoriaMemoria Virtual
SegmentaciónDirección Virtual
s d
base +
Dirección Física.
base + d
limite
< limite
Tabla de segmentos.
Administración de la MemoriaMemoria Virtual
Segmentación
Tabla deSímbolos
Segmento 0
Texto
Segmento 1
Stack
Segmento 2
Administración de la MemoriaMemoria Virtual
Segmentación
Ventajas
Los segmentos no tienen tamaño definido y estánasociados a un tipo de dato en particular.
Facilita el uso de código compartido entre variosProcesos.
Proporciona protección y facilita la utilización de los recursos compartidos.
Los segmentos no tienen tamaño definido y estánasociados a un tipo de dato en particular.
Facilita el uso de código compartido entre variosProcesos.
Proporciona protección y facilita la utilización de los recursos compartidos.
Administración de la MemoriaMemoria Virtual
Paginación / Segmentación
Se aprovechan los conceptos de la división lógica de los programas (segmentos) con el espacio de direcciones virtuales de las páginas.
Se aprovechan los conceptos de la división lógica de los programas (segmentos) con el espacio de direcciones virtuales de las páginas.
Un proceso esta repartido en la memoria real en pequeñas unidades (páginas), las que están unidas a través de segmentos.
Un proceso esta repartido en la memoria real en pequeñas unidades (páginas), las que están unidas a través de segmentos.
Administración de la MemoriaMemoria Virtual
Paginación / Segmentación
Se aprovechan los conceptos de la división lógica de los programas (segmentos) con el espacio de direcciones virtuales de las páginas.
Se aprovechan los conceptos de la división lógica de los programas (segmentos) con el espacio de direcciones virtuales de las páginas.
Un proceso esta repartido en la memoria real en pequeñas unidades (páginas), las que están unidas a través de segmentos.
Un proceso esta repartido en la memoria real en pequeñas unidades (páginas), las que están unidas a través de segmentos.
Administración de la MemoriaMemoria Virtual
Paginación / Segmentación
Dirección Virtual de memoria en Paginación y Segmentación
Dirección Virtual de memoria en Paginación y Segmentación
Dirección Virtuals d
Dirección := (s,d)Dirección := (s,d) 2D
Administración de la MemoriaMemoria Virtual
Paginación / Segmentación
Dirección Virtual de memoria en un Sistema combinado
Dirección Virtual de memoria en un Sistema combinado
Dirección Virtualp d
Dirección := (p, s, d)Dirección := (p, s, d)
s
3D
Administración de la MemoriaMemoria Virtual
Paginación / Segmentación
Dirección Virtual de memoria en un Sistema combinado
Dirección Virtual de memoria en un Sistema combinado
Dirección Virtualp d
Dirección := (s, p, d)Dirección := (s, p, d)
s
3D
Administración de la MemoriaMemoria Virtual
Paginación / Segmentación
.
.
Tabla de Proc
.
.
Tabla de SegmentosProceso N
.
.
Tabla de PáginasSegmento M
Frames en memoria real
Administración de la MemoriaMemoria Virtual
Paginación / Segmentación
Tipos de fallos
•Por Segmento
•Por Página
•Por Segmento
•Por Página
Cuando se hace referencia a una dirección y el segmento que la contiene no está en RAM
Administración de la MemoriaMemoria Virtual
Paginación / Segmentación
Tipos de fallos: por segmento
Cuando se hace referencia a una dirección y el segmento que la contiene no está en RAM, se provoca un fallo por falta de segmento y lo que se hace es traerlo del medio de almacenamiento secundario y crearle una tabla de páginas.
Administración de la MemoriaMemoria Virtual
Paginación / Segmentación
Tipos de fallos: por página
Una vez cargado el segmento se necesitalocalizar la página correspondiente, pero si ésta no existe en RAM, se provoca un fallo de página y se debe cargar del disco.
Finalmente se puede traer la dirección deseada por medio del desplazamiento de la dirección virtual.
Administración de la MemoriaSistemas de Archivos
Sistemas de Archivos
Administración de la MemoriaSistemas de Archivos
La mayoría de aplicaciones necesitan almacenar y recuperar información.
Un proceso puede almacenar una cantidad limitada de esta en su propio espacio de direcciones ==> muy pequeño
Algunas veces varios procesos necesitan accesar a la misma información simultáneamente.
La mayoría de aplicaciones necesitan almacenar y recuperar información.
Un proceso puede almacenar una cantidad limitada de esta en su propio espacio de direcciones ==> muy pequeño
Algunas veces varios procesos necesitan accesar a la misma información simultáneamente.
Administración de la MemoriaSistemas de Archivos
Solución:
Almacenar la información en medios externos, en unidades denominadas archivos.
La información almacenada en los archivos debe ser persistente, es decir, no debe depender de lacreación y terminación de un proceso
Solución:
Almacenar la información en medios externos, en unidades denominadas archivos.
La información almacenada en los archivos debe ser persistente, es decir, no debe depender de lacreación y terminación de un proceso
Administración de la MemoriaSistemas de Archivos
Los archivos son administrados por el sistema operativo. Su estructura, nombre, forma de acceso, uso, protección e implantación son responsabilidad de él.
La parte del sistema operativo que se encarga de esta labor se conoce con el nombre de sistema de archivos.
Los archivos son administrados por el sistema operativo. Su estructura, nombre, forma de acceso, uso, protección e implantación son responsabilidad de él.
La parte del sistema operativo que se encarga de esta labor se conoce con el nombre de sistema de archivos.
Archivos:
Administración de la MemoriaSistemas de Archivos
Establece el formato físico en el cual almacenará los datos en discos duros, cintas o discos flexibles.
Conceptos asociados:
•Pistas, sectores, cilindros•Tiempo de búsqueda.•IDE, SCSI, E-IDE
Establece el formato físico en el cual almacenará los datos en discos duros, cintas o discos flexibles.
Conceptos asociados:
•Pistas, sectores, cilindros•Tiempo de búsqueda.•IDE, SCSI, E-IDE
Sistema de Archivos:
Administración de la MemoriaSistemas de Archivos
Implantación del Sistema de Archivos
Implantación de Directorios
Administración del Espacio en Disco
Registro de bloques Libres
Implantación del Sistema de Archivos
Implantación de Directorios
Administración del Espacio en Disco
Registro de bloques Libres
Temas a tratar
top related