ADMINISTRACIÓN DE LA MEMORIA

Slides:



Advertisements
Presentaciones similares
GESTION DE MEMORIA.
Advertisements

GESTION DE PROCESOS Procesos y tareas
Administración de memoria
Sistema Operativo.
Sistemas Operativos Gestión de Memoria.
SISTEMAS OPERATIVOS GESTION DE MEMORIA INTEGRANTES Lizeth Chandi
UNIX COMP 240.
Sistema operativo Componentes de un sistema operativo
III - Gestión de memoria
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
3.4.- Administración de Memoria Virtual.
Organización de la Memoria.
EQUIPO ·# 3 SISTEMAS OPERATIVOS
Algoritmos de Remplazamiento de Paginas
Sistemas Operativos Unidad II Procesos.
UNIDAD 2. ADMINISTRACION DE PROCESOS Y DEL PROCESADOR
Modelo de procesos de dos estados
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Detalles del sistema operativo
MEMORIA VIRTUAL PAGINACIÓN
Windows XP sp3.
Teoría de lenguajes y compiladores
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
Alejandro Ledezma Milanez Sonia Lizbeth Hernández Martinez Zaira Samara Chavez Hernandez Gilberto Saduj Castañeda Garcia.
Memoria Virtual Fallos de Página Algoritmos de Reemplazamiento
Teoría de Sistemas Operativos
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Tema 10: Gestión de Memoria
Administración de memoria
Semana 5 Subprogramas..
PAGINACIÓN Y SEGMENTACIÓN
El ordenador es un sistema programable formado por un conjunto de elementos hardware que necesitan instrucciones que le indiquen cómo utilizar los recursos.
Administración de la memoria
Sistema de archivos Sistemas operativos.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Asignación de Espacio No Contiguo
Soporte HW para Administración de Memoria Cecilia Hernández
Administración de Memoria
Antecedentes Memoria virtual – separación de la memoria lógica de la física Sólo parte del programa necesita estar en memoria en un momento dado para.
Capítulo 7 Gestión de memoria.
Administración de Memoria no contigua
Gestión de procesos Sistemas Operativos Edwin Morales
Tema VII Memoria Virtual.
Tema 6. Administración de memoria
Introducción a Procesos.  Contexto de ejecución: Conjunto de variables y parámetros, que tiene independencia de otro procesos.  Contexto de E/S ◦ Descriptores.
1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para.
COMPONENTES DEL SISTEMA OPERATIVO.
Memoria virtual.
Gestión de Memoria.
Sistemas Distribuidos
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
Punteros Recomendado: 1. Nivelación Funciones
Gestión de Memoria.
Unidad 2 – Gestión de Procesos
Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
INTERRUPCIONES – ABRAZO MORTAL
3.2.1 Administración de almacenamiento
Memoria Virtual Msc. Rina Arauz.
 PRESENTADO POR : ANDRES MAYORGA DANIELA PAEZ VEGA.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Memoria Virtual Concepto Paginado bajo demanda Performance del Paginado bajo.
Memoria Virtual Conceptos Paginación Bajo Demanda Creación de Procesos
Gestión de Memoria – Parte 2
Administración de Memoria Conceptos Swapping Asignación Continua Paginación Segmentación Segmentación con Paginación.
P ROCESO DE E NSAMBLADO Cámara Vázquez Berenice Rubí.
Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes.
1 Tema 10: Administración de la Memoria Sistemas Operativos (Tema 13 en apuntes prof. Rovayo)
G ESTIÓN DE LA MEMORIA Paginación y segmentación.
Sistemas de archivos. Sistemas de archivos 2 Objetivo del SdA  Ocultar al usuario los detalles relativos al almacenamiento de información en dispositivos.
Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
1/50 Ing. Gerardo Chávez Malpartida Administración de Memoria SISTEMAS OPERATIVOS.
Transcripción de la presentación:

ADMINISTRACIÓN DE LA MEMORIA Sistemas Operativos Héctor E. Medellín Anaya

Contenido Administración de la memoria sin intercambio ni paginación Memoria virtual Algoritmos de sustitución de páginas Aspectos de diseño para sistemas de paginación Panorama de administración de memoria en MINIX

Introducción La ley de Parkinson dice que "los programas se expanden con el fin de llenar la memoria disponible para contenerlos". La parte del sistema operativo que se encarga de la memoria se llama administrador de memoria. Su labor es llevar el control de qué partes de la memoria están en uso y cuáles no lo están, asignar memoria a los procesos cuando la necesiten y retirárselas cuando terminen, y administrar el intercambio entre la memoria central y el disco cuando la memoria central no baste para contener todos los procesos.

Direcciones físicas y lógicas Las direcciones lógicas o virtuales son las generadas por la CPU. Las direcciones físicas son las que ve la unidad de memoria.

Carga dinámica En la carga dinámica una rutina no es cargada hasta que es llamada. En enlace dinámico en lugar de posponer la carga hesta el tiempo de ejecusión, el enlace es el que se pospone.

Monoprogramación sin intercambio ni paginación La memoria se divide entre el sistema operativo y un solo proceso de usuario.

Multiprogramación y uso de la memoria Utilización de la unidad central de procesamiento como función del número de procesos que hay en la memoria.

Análisis de rendimiento

Particiones fijas

Intercambio: Multiprogramación con particiones variables

Asignación de espacio

Mapas de bits

Administración con listas enlazadas Primer ajuste: el administrador ratrea la lista hasta hallar una cavidad que sea lo suficientemente grande. Siguiente ajuste: igual que el primer ajuste pero empezando en donde se quedó la vez anterior. El que mejor ajusta: busca en toda la lista hasta encontrar la cavidad que ajusta mejor. El que peor ajusta: toma siempre la cavidad más grande disponible.

El sistema compañero

Memoria virtual

Paginación

Operación interna de la MMU

Algoritmos de sustitución de páginas Sustitución de páginas óptima Se sustituye aquella página que se vaya a referenciar dentro del tiempo más largo posible. Sustitución de página no usada recientemente Se mantiene dos bits R y M que indican si una página fue referenciada (R) y/o modificada (M). Se clasifican la páginas en cuatro categorías de acuerdo: Clase 0: no referido, no modificado Clase 1: no referido, modificado Clase 2: referido, no modificado Clase 3: referido, modificado Se retira una página elegida al azar de la clase no vacía con la numeración inferior.

Sustitución de páginas Sustitución de páginas donde la primera que entra es la primera que sale o FIFO Se usa una cola ordenada en donde las más antigua esta a la cabeza y la de atrás es la más reciente. Se pueden examinar los bits R y M para eliminar la página más antigua que no haya sido modificada y referenciada primero. El algoritmo continua buscando las más antiguas de clase 1,2 y 3. El FIFO de segunda oportunidad verifica el bit R, si es 1, pone la página en la cola con el bit R a cero y continua la búsqueda.

Anomalía de Belady

Sustitución de páginas usadas menos recientemente (LRU)

Simulación de la página usada menos recientemente en software Se puede simular LRU mediante un algoritmo llamado algoritmo no usado frecuentemente o NFU. En cada interrupción de reloj, el sistema operativo rastrea todas las páginas que están en a memoria. Para cada página, el bit R, se suma a un contador. Cuando ocurre una falla de página, se elige la página con el contador más pequeño para su sustitución. Se puede optar por el mecanismo de la figura siguiente, en esta, los bits se agregan después de desplazar el contador un bit a la derecha, a esto se le llama envejecimiento.

El algoritmo de envejecimiento simula LRU en software El algoritmo de envejecimiento simula LRU en software. Se muestran seis páginas para cinco pulsos de reloj. Los cinco pulsos de reloj se representan por los incisos de (a) a (e).

Sustitución de páginas Sustitución de páginas local contra global. (a) Configuración original. (b) Sustitución de páginas local. (c) Sustitución de páginas global.

Fallas de página Tasa de fallas de página como función del número de cuadros de página asignados.

Continuación Instrucción que puede causar una falla de página.

Nivel del A.M. en MINIX El administrador de la memoria se ejecuta fuera del kernel, en el espacio del usuario.

Esquema de la memoria La memoria se asigna mediante dos mecanismos, cuando un proceso se ramifica y mediante la llamada a exec.

Esquema de la memoria interna de un solo proceso

Manejo de mensajes Las llamadas siguientes están relacionadas con la asignación y desasignación de memoria: fork, exit, wait, brk, y exec. Las siguientes pueden afectar el contenido de la memoria: signal, kill, alarm y pause. Las cinco llamadas a get/set no tiene nada que ver con la administración de la memoria en absoluto.

Estructuras de datos y algoritmos que administran la memoria El administrador de la memoria tiene dos estructuras de datos principales: la tabla de procesos y la tabla de cavidades. La ranura k de la tabla de procesos se refiere al mismo proceso que la ranura k de la tabla del sistema de archivos y del kernel. Cuando se crea o se destruye un proceso, las tres partes actualizan sus tablas para reflejar la nueva situación, con el fin de mantenerlas sincronizadas. La tabla de procesos del administrador de memoria se llama mproc. El campo más importante es el arreglo mp_seg, el cual tiene tres captaciones, para los segmentos de texto, datos y pila, respectivamente. Cada captación es una estructura que contiene la dirección virtual, la dirección física y la longitud del segmento.

Asignación de memoria (a) Un proceso en la memoria. (b) Su representación en la memoria para un espacio I y D no separado. (c) Su representación en la memoria para un espacio separado para I y D.

Las llamadas al sistema fork, exit y wait La creación de un proceso se efectúa por fork, que se ejecuta como una serie de pasos, como se muestra 1. Verificar si la tabla de procesos está repleta. 2. Intentar asignar memoria al proceso hijo. 3. Copiar la imagen del proceso padre en la memoria del proceso hijo. 4. Hallar una ranura del proceso libre y copiar la ranura del proceso padre en él. 5. Meter el mapa de memoria del derivado en la tabla del proceso. 6. Elegir un pid para el proceso hijo. 7. Indicar al kernel y al sistema de archivo acerca del proceso hijo. 8. Informar del mapa de la memoria del proceso hijo al kernel. 9. Enviar mensajes de contestación al proceso padre y al proceso hijo.

Terminación de un proceso Un proceso termina por completo cuando ocurren dos eventos: (1) El proceso mismo ha salido (o ha sido eliminado por una señal) y (2) su proceso padre ha ejecutado una llamada al sistema wait para saber lo que sucedió. Un proceso que ha salido o ha sido eliminado, pero cuyo padre todavía no ha realizado una llamada a wait por él, entra en un tipo de animación suspendida, que algunas veces se conoce como estado zombie. Se evita que éste se programe y tiene desactivado su cronómetro de alarma (si estaba activado), pero no se elimina de la tabla de procesos. Su memoria no se libera, aunque pudiera haberse hecho. Cuando finalmente el proceso padre realiza una llamada a wait, se libera la ranura de la tabla de procesos y la memoria, y se informa al sistema de archivo y al kernel.

continuación (a) Situación en la que el proceso 12 está a punto de salir. (b) situación después de que ha salido.

La llamada al sistema exec Esta ejecuta su trabajo en una serie de pasos, como se muestra 1. Verificar las autorizaciones (¿es ejecutable el archivo?) 2. Leer los encabezados para obtener los tamaños del segmento y del total. 3. Capturar los segmentos y el medio del solicitante. 4. Liberar la memoria anterior y asignar la nueva. 5. Copiar la pila en al nueva imagen de la memoria. 6. Copiar los segmentos de texto y datos en la nueva imagen de la memoria. 7. Verificar y manejar los bits setuid, setgid. 8. Fijar la captación de la tabla de proceso. 9. Indicar al kernel que ahora el proceso es ejecutable

Ejemplo de llamada a exec Cuando un usuario teclea ls -l f.c g.c al shell, éste hace la llamada execve("/bin/ls", argv, envp);

continuación (a) Los arreglos que se pasan a execv. (b) La pila construida por execv. (c) La pila después de la recolocación hecha por el adm. de la memoria. (d) La pila como figura en main al inicio de la ejecución.

La llamada al sistema brk Los procedimientos de biblioteca brk y sbrk se utilizan para ajustar el límite superior del segmento de datos. El primero toma un tamaño absoluto y llama a brk. El segundo toma un incremento positivo o negativo al tamaño corriente, determina el tamaño del nuevo segmento de datos y después llama a brk. La variable brksize, siempre contiene el tamaño corriente tal que sbrk pueda obtenerlo. La variable se inicializa a un símbolo generado por el compilador que da el tamaño inicial del texto más datos (I y D no separados) o simplemente datos (I y D separados). El nombre y, de hecho, la existencia real de tal símbolo dependen del compilador.

Manejo de señales Las señales se pueden generar de dos formas: por medio de una llamada al sistema kill y por medio del kernel. Las señales originadas por el kernel que regularmente se implementan son SIGINT, SIGQUIT y SIGALRM. El administrador de la memoria procesa todas las señales de la misma forma. Para cada proceso que deba señalarse, se hacen varias verificaciones para ver si la señal es viable. Un proceso puede señalar a otro si tienen el mismo uid y si se iniciaron desde la misma terminal. Además, no pueden señalarse ni los zombies ni los procesos que hayan llamado explícitamente a signal para ignorar la señal.

Otras llamadas al sistema El administrador de la memoria también maneja algunas otras llamadas al sistema simple: getpid, getuid, getgid, setuid y setgid. Las tres primeras llamadas simplemente buscan y entregan la información solicitada. getuid produce el uid efectivo y el real. Dependiendo de si se llamó a getuid o a geteuid, uno o el otro se extrae del mensaje y se entrega al usuario. Lo mismo sucede con gid. Estas cinco llamadas son las más simples de minix.