SISTEMAS OPERATIVOS – SEMANA 10 Reubicación: permite el recalculo de
MEMORIA PRINCIPAL direcciones de memoria de un proceso
Memoria de la computadora donde se reubicado almacena temporalmente tanto los datos Protección: evita el acceso a posiciones de como los programas que CPU está procesando memoria sin el permiso expreso o va a procesar en un momento determinado. Compartición: permite a procesos diferentes Por su función debe ser inseparable del CPU acceder a la misma posición de memoria con quien se comunica a través del bus de Organización lógica: permite que los datos y de direcciones. El ancho del bus programas se escriban como módulos determina la capacidad que posee el compilables y ejecutables por separado microprocesador para el direccionamiento de Organización física: permite el intercambio de direcciones en memoria. datos en la MP Y MS Esta memoria es volátil, cuando se corta energía se borra la información. ASPECTOS GENERALES MP es el núcleo del subsistema de memoria Espacio de Direcciones de sistema informático, menor capacidad que Direcciones físicas: referencian alguna posición en la memoria secundaria pero una velocidad la memoria física. mayor. Direcciones lógicas: direcciones usadas por los Dentro de la RAM existe la memoria cache, procesos, el MMU las transforman el d. físicas que es más rápida que las demás, permite que Direcciones lineales: se obtienen a partir de el intercambio de información entre el CPU y direcciones lógicas tras haber aplicado la MP sea a mayor velocidad. transformación depende de su arquitectura MMU Funciones ADMINISTRADOR DE MEMORIA Convertir direcciones lógicas emitidas por Lleva un registro de las partes de la memoria procesos en direcciones físicas que se están usando y la que no Comprobar que la conversión se pueda Con el fin de asignar espacio de memoria a realizar (la dirección lógica podría no tener procesos que lo necesiten y liberándola una dirección física asociada) cuando estos terminen. Comprobar que el proceso que intenta Administra el intercambio entre la MP y el acceder a una cierta dirección de memoria disco en caso que la MP no pueda dar tiene permisos para ello capacidad a todos los procesos que requieran MMU de ella. Se inicializa para cada proceso del sistema Esto permite que cada proceso pueda usar el ASPECTOS GENERALES rango de completo de direcciones lógicas M. REAL VS M. VIRTUAL (memoria virtual) La memoria física es la memoria ram Traductor de Direcciones La memoria virtual es un espacio en el disco Unidad funcional que transforma direcciones duro, que simula tener mas RAM virtuales en direcciones reales Ej -> la memoria cache (dándole Intercambio almacenamiento a una pagina ya visitada es Proceso que intercambia el contenido de una zona guardada y al querer volver a la página de almacenamiento principal con el contenido de visitada el proceso es mucho más rápido) una zona de almacenamiento auxiliar Objetivos del Gestor de Memoria Reubicación SO multiplexa recurso entre procesos Hecho de cargar y ejecutar un programa en una Gestión de procesos: Reparto de Procesador posición arbitraria de memoria, reubicación Gestor de memoria: Reparto de Memoria dinámica y estática Objetivos Ofrece a cada proceso un espacio lógico REQUISITOS Proporciona protección entre procesos Organización Lógica Permite que los procesos comportan memoria La memoria de un sistema informático se Maximiza el grado de multiprogramación organiza como un espacio de direcciones lineales (secuencia de bits) Requisitos para Gestionar la MP La mayoría de programas se ejecutan en módulos: modificables y no modificables Módulos Cada módulo puede escribirse y compilarse Cuando el proceso se ha de subir nuevamente independientemente en memoria principal puede ser colocado en Distintos grados de protección cualquier partición libre Mecanismos para compartir módulos En este caso es necesario realizar una Reubicación por módulos reasignación de direcciones cada vez que se Organización Física ejecute el programa La memoria del computador se organiza en dos niveles: memoria principal y memoria CARGA DINÁMICA secundaria. En otros se añade el cache Todo el programa y los datos den estar en MP memoria física para la ejecución de este Acceso rápido, costo relativamente alto El tamaño de un proceso está limitado por su Volátil, no almacenamiento permanente memoria física MS Para conseguir una mejor utilización del Lenta y barata espacio de la memoria, podemos emplear la No es volátil, almacenamiento al largo plazo carga dinámica El sistema ha de gestionar el flujo de procesos Con la carga dinámica, una rutina no se carga entre ellas hasta que es llamada Overlaying: el proceso de transferir un bloque Ventajas de la carga dinámica de código de programa u otros datos a la Una rutina que no es utilizada nunca se carga memoria principal, reemplazando lo que ya Es útil cuando es necesario grandes está almacenado" cantidades de código para manejar cosas que En entornos multiproceso el programador no ocurren con poca frecuencia conoce cuanto espacio habrá disponible o En este caso, aun cuando el tamaño del donde estará ese espacio programa puede ser grande, la porción que se utiliza realmente puede ser más pequeña REUBICACIÓN – CONCEPTOS No requiere soporte especial por parte del SO Dirección lógica Referencia a una posición de memoria GESTIÓN DE MEMORIA independiente se debe traducir a dirección física Fragmentación Dirección relativa es la memoria que queda desperdiciada al usar los Se expresa como una posición relativa a algún métodos de gestión de memoria. punto conocido Fragmentación Interna Dirección física Provocada al no llenar la partición Posición absoluta o real en la memoria principal Generada por la diferencia entre el tamaño de la partición y el módulo de un proceso Direcciones Absolutas y Relativas Fragmentación Externa La mayoría de SO permite que los procesos de Por mala gestión de espacio libre entre usuarios residan en cualquier parte de la procesos. Espacios entre procesos memoria principal Provocado por el espacio muerto entre Las direcciones pueden representarse de procesos diferentes formas Las direcciones de un programa fuente son VINCULACIÓN DE DIRECCIONES normalmente simbólicas Asociación de direcciones El compilador se encarga de reasignar estas La vinculación de instrucciones y datos con direcciones a direcciones relativas (ej-> 14 direcciones de memoria puede hacerse en cualquier bytes) parte del recorrido El cargador se encargar de reasignar Tiempo de Compilación direcciones relativas a direcciones absolutas Si sabemos en momento de compilación donde va a (ej-> 74F1) residir el proceso en memoria puede hacerse uso de Reubicación estática código absoluto, cuando se quiera cambiar su Cuando un programa al ser bajado a memoria dirección se recompila el código. auxiliar al ser cargado nuevamente ocupa el mismo Tiempo de Carga lugar en memoria principal donde estaba al inicio, Si es que no conocemos en tiempo de compilación cuando el área este ocupada espera para poder donde va a residir el proceso en memoria el colocarse compilador genera código reubicable (direcciones Reubicación dinámica relativas) entonces se retarda la reasignación direcciones absolutas hasta el momento de carga, si Busca resolver el diferencial de velocidad deseamos cambiar su ubicación solamente volver a entre el CPU y la memoria cargarlo. Cuando ocurre una falla en el cache (no tiene Tiempo de Ejecución copia de la dirección solicitada) es necesario Si el proceso puede cambiar en tiempo de ejecución detener al CPU su ubicación en memoria, es necesario retardar su Principio de localidad de referencia asignación a direcciones absolutas hasta el Localidad Temporal momento de ejecución, requiere soporte de Es probable que un recurso que fue utilizado hardware recientemente vuelva a ser empleado en un futuro cercano SUPERPOSICIONES – OVERLAYS Localidad Espacial Técnica para que un proceso pueda ser mayor La probabilidad de que un recurso aun no requerido que la cantidad de memoria asignada a e, se sea accesado es mucho mayor si fue requerido usa superposiciones algún recurso cercano Consiste en mantener en memoria solo Localidad Secuencial aquellas instrucciones, estas se cargan en el Un recurso y muy peculiarmente la memoria tiende espacio que estaba ocupado por instrucciones a ser requerido de forma secuencial que ya no se necesitan Dos principios sobre memoria La técnica consiste en que el programador Menor cantidad, acceso más rápido divide lógicamente un programa muy grande Mayor cantidad, menor costo por byte en secciones que puedan almacenarse en las 1. Registros particiones de RAM 2. Cache 1 La técnica es eficaz pero no era eficiente 3. Cache 2 Resumiendo, con esta técnica se podían 4. Memoria Principal (DRAM) ejecutar programas más grandes que las 5. Memoria Secundaria (Discos Duros) particiones de Ram 6. Memorias Extraíbles
INTERCAMBIOS – SWAPPING ASIGNACIÓN DE MEMORIA CONTIGUA
Un proceso debe estar en memoria principal La memoria principal debe acomodar tanto el para ser ejecutado SO como a los diversos procesos de usuario Sin embargo, los procesos pueden ser Generalmente la memoria esta divida en 2 intercambiado temporalmente sacándolos de partes: una para el SO y otra para los procesos memoria y llevando a disco y volviéndolos a de usuario. El SO puede colocarse en la llevar a memoria para continuar su ejecución memoria alta o baja Al mecanismo de llevar un proceso de MP a El principal factor que afecta esta decisión es disco se le conoce como swap-out el vector de interrupciones, debido a que este Al inverso se le conoce como swap-in vector se sabe ubicar en la memoria baja es El mayor tiempo consumido en el swapping es más común colocar el SO en memoria alta el de trasferencia El SO es el responsable de asignar memoria El intercambio requiere de un almacén de principal a los procesos para que puedan ser respaldo ejecutados Un modelo de memoria con asignación JERARQUÍA DE MEMORIA continua todo el espacio lógico de un proceso La memoria secundaria trata de proveer una ha de estar ubicado de forma contigua en gran cantidad de capacidad de memoria principal es decir en direcciones almacenamiento (sacrificando velocidad) físicas contiguas Las caches no pueden almacenar un proceso Cuando un proceso finaliza libera la memoria en ejecución, pero aumentan notablemente la ocupada velocidad del sistema informático Mapa de proceso en zona contigua de Actualmente se usan dos niveles de cache memoria principal El de primer nivel esta integrada en el interior Hardware requerido: Registros valla (Registro up base limite) La de segundo nivel esta integrada en la palca base que contiene a la CPU PARTICIONES FIJAS El manejo de cache es casi transparente para Esquemas de asignación de memoria el SO Contiguas: particiones fijas y variables Intercambio swapping Consiste en arrastrar contenidos de la Paginación memoria a un lugar para reunir toda la Segmentación memoria libre en un bloque Segmentación Paginada Problemas La memoria esta divida de antemano en Requiere reubicación dinámica particiones Consume recurso del sistema Un proceso necesita ejecutarse -> se le asigna El sistema se detiene mientras se realiza uno de dichas particiones no se puede hacer con frecuencia Cada partición puede contener un solo Bloques de distintos tamaños están proceso distribuidos en la memoria, cuando llega un Pueden ser: proceso se le asigna un hueco lo Fijas (todas del mismo tamaño) suficientemente grande Fijas (tamaños diferentes) El SO debe tener información de La fragmentación ocurre porque los procesos Particiones asignadas no llenan por completo las particiones Particiones libres designadas o porque una partición se queda Asignación de partición dinámicas sin utilizar por ser demasiado pequeña para contener otro proceso ESTRATEGIAS DE GESTIÓN DE ESPACIOS No siempre son la mejor forma de manejar la Primer Ajuste RAM Consiste en asignar el primer hueco con Cada proceso emplea una partición de la capacidad suficiente memoria, pero por lo regular quedan espacios La búsqueda puede inicia al inicio o al final del sin ocupar dentro de la partición, estos conjunto de huecos o en donde termino la espacios se desperdician y limitan la última búsqueda productividad del equipo en general La búsqueda termina al encontrar un hueco lo Problemas en las particiones fijas suficientemente grande Uso de memoria principal ineficiente Mejor Ajuste Cualquier proceso, sin importar el tamaño Busca asignar el espacio mas pequeño de los ocupara una partición completa espacios con capacidad suficiente Fragmentación La búsqueda se debe realizar en toda la tabla Incapacidad del SO para asignar posiciones de a menos que la tabla esta ordenada por memoria principal no utilizadas tamaño Dos tipos: interna y externa Esta estrategia produce el menor desperdicio de memoria posible PARTICIONES VARIABLES Peor Ajuste Este hace particiones sobre el tamaño de los Asigna el hueco más grande. procesos La búsqueda se debe realizar en toda la tabla Llega un espacio cuando lo necesite. No hay a menos que la tabla esta ordenada por desperdicio pues la partición tiene el mismo tamaño tamaño del trabajo Esta estrategia produce los huecos de sobra La técnica de compactación traslada todas las más grandes áreas ocupadas a algún extremo de la memoria principal Se ha demostrado mediante simulacros que le Esto deja un gran vacío único de primer ajuste y el mejor ajuste son mejores almacenamiento libre en lugar de números que el peor ajuste en cuanto a minimizar el vacíos pequeños tiempo de almacenamiento Esta partición es mucho más optima debido a Ni el primer ajuste o el mejor ajuste es que los bloques no son de tamaño regular sino claramente mejor en términos de uso de de tamaño del proceso que lo solicita espacio, pero por lo general el primer ajuste Problemas en las particiones variables es más rápido Fragmentación externa Existe el espacio para satisfacer una petición, pero no es contiguo Compactación Técnica utilizada para reducir la fragmentación externa