Gestión de memoria
-
Upload
vero-mateus -
Category
Documents
-
view
363 -
download
0
Transcript of Gestión de memoria
Gestión de MemoriaSistemas Operativos4AMECCI
Integrantes De Anónymous
Nicolás Edilberto Rozo Espinosa David Humberto Moreno Moreno Julián Felipe Parra Tunjano Néstor Yesid Beltrán Chiquiza Jorge Leonardo Mejía Rincón
Gestión De MemoriaSistema MonoProgramado
La memoria principal se divide en dos partes: una parte para el sistema operativo y otra parte para el programa que se ejecuta en ese instante.
Sistema Multiprogramado
La parte de “Usuario” de la memoria debe subdividirse aún más para hacer sitio a varios procesos.
Requisitos De La Gestión De Memoria
Reubicación. Protección. Compartición. Organización Lógica. Organización Física.
Reubicación La reubicación permite crear un espacio
lógico independiente para cada proceso y el Sistema Operativo. Direcciones lógicas: direcciones de memoria
generadas por el programa. Direcciones físicas: direcciones de memoria
principal asignadas.
Mientras que se está ejecutando el programa, puede que se descargue en el disco y que vuelva a la memoria principal, pero en una ubicación distinta a la anterior (reubicación).
ReubicaciónReubicación Estática
Implica generalmente que la reubicación es realizada antes o durante la carga del proceso en
memoria.
Reubicación Dinámica Implica que la correspondencia
entre el espacio de direcciones virtuales
y el espacio de direcciones físicas
se efectúa en tiempo de ejecución.
Protección El código de un proceso no puede hacer
referencia a posiciones de memoria de otros procesos sin permiso, con fines de lectura o escritura sin permiso.
Es imposible comprobar las direcciones absolutas de los programas, puesto que se desconoce la ubicación de un programa en la memoria principal.
Normalmente los procesos de usuario no pueden acceder al sistema operativo
Compartición
El sistema de gestión de memoria debe permitir accesos controlados a las áreas compartidas de la memoria, sin comprometer la protección básica.
Organización Lógica
La mayoría de los programas se organizan en módulos.
Los módulos pueden escribirse y compilarse independientemente.
Pueden otorgarse distintos grados de protección alguno de los cuales no son modificables y otros contienen datos modificables.
Compartir módulos.
Organización Física La memoria principal en algunos casos no
puede ser suficiente para los programas y sus datos.
La superposición permite que varios módulos sean asignados a la misma región de memoria.
El programador no conoce cuanto espacio será asignado o donde se encuentra este espacio.
Carga De Programas
Para poder crear un proceso activo se requiere cargar un programa en la memoria principal y crear una imagen del proceso
Fragmentación interna
Pueden reducirse, aunque no solventarse, ambos problemas, por medio del empleo de particiones de tamaños distintos.
Las particiones de 512K permiten alojar programas mas pequeños con menor desperdicio.
Fragmentación Externao La fragmentación externa se produce en
una memoria (RAM o disco duro) en el momento en que no es posible almacenar de forma contigua todos los bloques que componen un archivo.
o si se produce en un disco duro, tiende a provocar múltiples accesos a distintas zonas físicas de los platos que lo componen, con lo que aumenta el tiempo final de lectura de ese archivo.
Partición fija La memoria principal se divide en un conjunto
de particiones fijas durante la generación del sistema. Un proceso puede cargar en una partición de mayor tamaño o igual.
Ventajas Su implementación es
sencilla. No sobrecarga el
sistema.
Desventajas Emplea ineficientemente
la memoria debido a que hace una fragmentación
interna. El numero de procesos
activos es fijo.
Partición Dinámica
Ventajas No hay fragmentación
interna Uso mas eficiente de
la memoria principal
Desventajas Uso indebido del procesador , debido a
la necesidad de compartición para
contrarrestar la fragmentación
externa
Se Crean Dinámicamente, de forma que cada proceso se carga en una partición de exactamente el mismo tamaño que el proceso.
Algoritmo de ubicación En particiones del mismo tamaño, cuando
ahí alguna partición libre, puede cargarse un proceso en esa partición. Si todas las particiones están ocupadas con procesos que no están listos para ejecutarse, uno de estos se saca y da paso a un nuevo proceso, esta decisión de sacar procesos la hace el planificador.
En particiones de distinto tamaño se asigna cada proceso a la partición mas pequeña en la que quepa.
Algoritmo de Reemplazo
Este algoritmo tiene como finalidad retirar la página que vaya a ser referenciada más tarde. El problema de este método es que necesita conocimiento del futuro, por lo que es imposible su implementación. Es un algoritmo teórico. Se utiliza a los efectos comparativos con los algoritmos factibles de ser implementados para ver cuál se aproxima más a éste.
Algoritmo de ubicaciónPartición Fija
En particiones del mismo tamaño, cuando ahí alguna partición libre, puede cargarse un proceso en esa partición. Si todas las particiones están ocupadas con procesos que no están listos para ejecutarse, uno de estos se saca y da paso a un nuevo proceso, esta decisión de sacar procesos la hace el planificador.
En particiones de distinto tamaño se asigna cada proceso a la partición mas pequeña en la que quepa.
Algoritmo De Ubicación Con Particiones Dinámicas
El sistema operativo debe decidir qué bloque libre se tiene que asignar al proceso.
Algoritmo del mejor ajuste (best-fit): Elige el bloque de tamaño más próximo al
solicitado. Proporciona en general los peores resultados. Puesto que este algoritmo busca el hueco más
pequeño para el proceso, garantiza que el fragmento que se deja es lo más pequeño posible y, por lo tanto, se debe compactar más frecuentemente.
Algoritmo de Ubicación con Particiones Dinámicas
Algoritmo del primer ajuste (first-fit): Es más rápido. Puede tener varios procesos cargados en
el extremo inicial de la memoria que es necesario recorrer cuando se intente encontrar un bloque libre.
Algoritmo de Ubicación Con Particiones Dinámicas
Algoritmo del siguiente ajuste (next-fit): Lleva frecuentemente a la asignación de
un bloque de memoria de la última ubicación, donde se encuentra el bloque más grande.
El bloque de memoria más grande se divide en fragmentos pequeños.
Hará falta la compactación para obtener un bloque de memoria grande al final del espacio de memoria.
Registros Utilizados Durante La Ejecución
Registro base: Se carga con la dirección en la memoria
principal del proceso. Registro límite:
Indica la posición final del programa. Estos valores deben asignarse cuando
se carga el programa y cuando se carga el proceso.
Registros Utilizados Durante La Ejecución
Se añade el valor del registro base a la dirección relativa para obtener una dirección absoluta.
La dirección obtenida se compara con el valor del registro límite.
Si la dirección no está dentro de los límites, se generará una interrupción en el sistema operativo.
Paginación Simple
La memoria principal se divide en un conjunto de marcos de igual tamaño. Cada proceso se divide en una serie de paginas del mismo tamaño que los marcos . Un proceso se carga situando todas sus paginas en marcos libres pero no necesariamente contiguos.
Ventajas o No tiene fragmentación
externa.
Desventajas o Hay pequeñas
fragmentación externa.
Segmentación simple
Cada proceso se divide en una serie de segmentos. Un proceso se carga situando todos sus segmentos en particiones dinámicas que no tienen porque ser contiguas
Ventajas No tiene fragmentación
interna
Desventajas Necesita compactación
Gracias
Por Su
Atención