Professional Documents
Culture Documents
Antecedentes
Un Programa para ser ejecutado debe de ser cargado en
la memoria como un proceso.
Carga Dinmica
Las rutinas no son cargadas hasta que son llamadas. Mejor utilizacin del espacio de memoria; las rutinas
que no se usan no son cargadas (se mantienen en disco en formato relocalizable).
Enlace Dinmico
El Enlace se pospone hasta el tiempo de ejecucin. Pequeas piezas de cdigo, stub (mdulos vacos), son
usados para localizar la apropiada biblioteca de rutinas residente en la memoria.
Superposiciones (Overlays)
Mantienen en memoria solo aquellas instrucciones y
datos que son necesarios en cualquier tiempo dado.
Intercambio (Swapping)
Un proceso puede ser intercambiado temporalmente
de la memoria-principal a algn almacenamiento de respaldo, posteriormente trada de regreso a la memoria para continuar con su ejecucin.
Proceso P2
Espacio de Usuario
Memoria principal
Almacenamiento auxiliar
Versiones modificadas de
Asignacin Contigua
Memoria-principal usualmente divida en dos particiones: El sistema operativo residente, mantenido en la parte baja de la memoria con un vector de interrupciones. Los procesos de usuario, colocados en la parte alta de la memoria.
El registro limite contiene el intervalo de direcciones lgicas. El registro de rehubicacin contiene el valor de la direccin fsica mas pequea.
Particin-Mltiple
Bloque de huecos de la memoria disponible ; huecos de varios tamaos son esparcidos por la memoria. Cuando un proceso llega, este es colocado en la memoria en un hueco lo suficientemente grande como para acomodarlo. El sistema-operativo mantiene informacin acerca de: a) particiones asignadas b) particiones libres (huecos)
SO proceso 5
SO proceso 5
SO proceso 5 proceso 9
Proceso 8
proceso 2
proceso 2
proceso 2
Particin-Mltiple (Cont.)
Almacenamiento Dinmico
Como satisfacer una solicitud de tamao n, a partir de una lista de huecos libres.
Primer-Ajuste: Localizar el primer hueco que es lo suficientemente grande. Mejor-Ajuste: Localizar el hueco mas pequeo que es lo suficientemente grande; deber buscar en la lista completa, a menos de que este ordenada por tamao. Produce el hueco sobrante mas pequeo. Peor-Ajuste: Localiza el hueco mas grande; deber buscar tambin en la lista completa. Produce el hueco sobrante mas grande.
Primer y mejor- ajuste son mejores que peor-ajuste en trminos de rapidez y utilizacin del almacenamiento
Fragmentacin
Fragmentacin Interna la memoria asignada puede
ser ligeramente mayor que la memoria solicitada; esta diferencia en tamao es interna a una particin, pero no esta siendo usada.
Compactacin
Fragmentacin Externa existe espacio total de memoria para
satisfacer una peticin, pero no es contigua. Se reduce la fragmentacin externa por medio de compactacin (recoleccin de basura o desfragmentacin) Se arrastran los contenidos de la memoria para colocar toda la memoria libre junta en un solo bloque. La compactacin es posible solo si la reubicacin es dinmica, y se realiza en el tiempo de ejecucin.
Problema de E/S Tarea de aldaba (bloqueo) en memoria mientras esta involucrada en la E/S. Ejecuta E/S solo en los buffers del Sistema Operativo.
Paginacin
El espacio de direcciones lgicas y fsicas de un proceso
puede ser no-contiguo.
Paginacin (Cont.)
Mantiene un registro de todos los marcos libres. Ejecutar un programa de n paginas, consiste en
encontrar n marcos libres y cargarlos, despus.
Ejemplo de paginacin
Nmero de marco
Direccin lgica
PTBR
Tabla de paginas
Registro Base
de Tabla de Paginas (PTBR) apunta a la tabla de paginas. indica el tamao de la tabla de paginas.
dato/instruccin requiere de dos accesos a memoria. Uno por la tabla de paginas y otro por el dato/instruccin. resuelto por medio del uso de un hardware especial de bsqueda rpida en cache llamado: registros asociativos o buffers de traduccin anticipada (TLBs)
Proteccin de Memoria
La proteccin de memoria se implementa por medio del
bit de proteccin asociado a cada marco.
Una direccin lgica (en una maquina de 32-bits con un tamao de pagina de 4K ) se divide en: Un numero de pagina de 20 bits. Una compensacin (offset) de pagina de 12 bits. Desde la tabla de paginas , el numero de pagina es a su vez dividido en: Un numero de pagina de 10-bits. Un offset de 10-bits. Por lo tanto, una direccin lgica es como sigue:
# de pagina pi 10 p2 10
offset d 12
Direccin lgica
pid: id-proceso
Direccin lgica
Direccin fsica
Memoria fsica
Bsqueda
Tabla de paginas
Paginas Compartidas
Cdigo Compartido en Sistemas de Tiempo
Compartido Una copia de cdigo reentrante ( read-only ) se comparte entre procesos (ejemplo, editores de texto, compiladores, sistema windows ). El cdigo compartido deber aparecer en la misma localizacin en el espacio de direcciones lgicas de todos los procesos.
Segmentacin
Esquema de Administracin de memoria que soporta la visin de la memoria por el usuario o el programador.
Un programa es una coleccin de segmentos. Un segmento es una unidad lgica como: programa principal, procedimiento, funcin, variables locales, variables globales, bloque comn, stack, tabla de smbolos, arreglos...
Fragmentacin externa
Arquitectura de la Segmentacin
La direccin lgica consiste en un par ordenado: <numero-segmento, offset>, Tabla de Segmentos mapas de direcciones fsicas de dos dimensiones; cada rengln tiene: base contiene la direccin fsica de inicio donde el segmento reside en la memoria. limite especifica la longitud del segmento.
Registro Base de la Tabla de Segmentos(STBR) apunta a las localizaciones en memoria de la tabla de segmentos. Registro de Longitud de la Tabla de Segmentos(STLR) indica el numero de segmentos usados por un programa ; el numero de segmento s es legal si s < STLR.
STBR
Reubicacin.
dinmica Por tabla de segmentos
Compartimiento.
Segmentos compartidos
Asignacin.
primer ajuste/mejor ajuste Fragmentacin externa
El sistema
MULTICS resolvi los problemas de fragmentacin externa y tiempos de bsqueda largos por medio de la paginacin de segmentos. en que cada rengln de la tabla de segmentos contiene no la direccin base del segmento, sino la direccin base de la tabla de paginas para este segmento.
Tabla de segmentos
Memoria
Soporte de Hardware: Registros ( base y limite ), Tablas de mapeo. Desempeo: Registros asociativos (cache) Fragmentacin: Unidades de asignacin de tamao fijo tienen fragmentacin interna. Unidades de asignacin de tamao variable tienen fragmentacin externa Relocalizacin: La compactacin fue la solucin al problema de la fragmentacin externa Intercambio (Swapping): Permite ejecutar ms procesos de los que caben en la memoria a la vez Compartimiento: Otra forma de aumentar el nivel de multiprogramacin, por medio de la paginacin y la segmentacin. Proteccin: Restricciones (solo lectura, solo ejecucin, lectura-escritura) necesarias cuando se comparte cdigo o datos