Introducción
Antecedentes Un programa debe cargarse en memoria desde disco y colocarse dentro de un proceso para que se ejecute La memoria principal y los registros son los únicos dispositivos de almacenamiento a los que puede acceder la CPU directamente El acceso a registro es muy rápido; supone un ciclo de CPU (o menos) El acceso a memoria principal puede durar varios ciclos Las memorias caché se colocan entre la memoria principal y la CPU para acelerar el acceso a la información
Procesamiento de un Programa de Usuario
Vinculación de Direcciones
La vinculación de instrucciones y datos a direcciones de memoria puede realizarse en tres etapas diferentes Compilación: Si se conoce a priori la posición que va a ocupar un proceso en la memoria se puede generar código absoluto con referencias absolutas a memoria; si cambia la posición del proceso hay que recompilar el código Carga: Si no se conoce la posición del proceso en memoria en tiempo de compilación se debe generar código reubicable Ejecución: Si el proceso puede cambiar de posición durante su ejecución la vinculación se retrasa hasta el momento de ejecución. Necesita soporte hardware para el mapeo de direcciones (ej., registros base y límite)
Espacio de Direcciones Físicas y Lógicas El concepto de espacio de direcciones lógicas vinculado a un espacio de direcciones físicas separado es crucial para una buena gestión de memoria Dirección lógica – es la dirección que genera el proceso; también se conoce como dirección virtual Dirección física – dirección que percibe la unidad de memoria Las direcciones lógicas y físicas son iguales en los esquemas de vinculación en tiempo de compilación y de carga; pero difieren en el esquema de vinculación en tiempo de ejecución
Registros Base y Límite Un par de registros base y límite definen el espacio de direcciones lógicas
Unidad de Gestión de Memoria (MMU) La MMU (Memory-Management Unit) es un dispositivo hardware que transforma las direcciones virtuales en físicas Con la MMU el valor del registro de reubicación (registro base) es añadido a cada dirección generada por un proceso de usuario en el momento en que es enviada a la memoria El programa de usuario trabaja con direcciones lógicas; nunca ve las direcciones físicas reales
Reubicación Dinámica Mediante Registro
Intercambio Un proceso puede ser retirado temporalmente de la memoria a algún almacenado auxiliar; más tarde será incorporado de nuevo a la memoria para que continúe su ejecución Almacenamiento auxiliar – disco rápido con capacidad suficiente para albergar copias de imágenes de memoria para todos los usuarios; debe proporcionar acceso directo a estas imágenes de la memoria Roll out, roll in – variante del intercambio usada para algoritmos de planificación basados en prioridad; un proceso de baja prioridad es retirado de memoria para que otro con mayor prioridad pueda ser cargado y ejecutado La mayor parte del tiempo de intercambio es tiempo de transferencia; el tiempo de transferencia total es directamente proporcional a la cantidad de memoria intercambiada En muchos sistemas (ej. UNIX, Linux, y Windows) se pueden encontrar versiones modificadas del intercambio El SO mantiene una cola de listos para los procesos intercambiados que pueden ejecutarse
Página siguiente |