capitulo 9 administración del almacenamiento 23-01-2012
Post on 24-Jul-2015
1.123 Views
Preview:
TRANSCRIPT
QUINTO NIVEL
“B”
Facultad de Ciencias Informáticas
Misión Visión
Formar profesionales eficientes en el campo de las Ciencias Informáticas, que con honestidad, equidad y
solidaridad, den respuesta a las necesidades de la
sociedad elevando su nivel de vida.
Ser una unidad con alto prestigio académico con
eficiencia, transparencia y calidad en la educación,
organizada en sus actividades, protagonista del proceso regional y nacional.
REFLEXIÓN
En ocasiones tendrás que ayudar a los
demás y otras veces recibirás ayuda. Pero
entiende y aplica bien la palabra ayuda, pues
es fácil crear vicios de tanto “ayudar” o caer
en ellos de tanto recibir “ayuda”.
Jonathan Oswaldo Urdánigo Vinces
PARTE 3
ADMINISTRACIÓN DEL ALMACENAMIENTO
ADMINISTRACIÓN DEL ALMACENAMIENTO
El propósito principal de un sistema de computo es ejecutar programas, estos juntos con los datos, deben estar en la memoria principal durante la ejecución.
Para mejorar la utilización de los
CPU como velocidad de respuestas a los
usuario , la computadora debe mantener varios procesos en la
memoria.
Debido a que la memoria principal resulta pequeña para acomodar todos los datos y programas de manera permanente el sistema de computo debe proporcionar un almacenamiento secundario.
Leidy marianela macías macías
CAPÍTULO 9
ADMINISTRACIÓN DE LA MEMORIA
9.1 ANTECEDENTES
ADMINISTRACIÓN DE LA MEMORIA
Los algoritmos de administración de memoria varían desde:
Un enfoque primitivo
A nivel de máquina
Hasta estrategias de paginación
Y segmentación
Cada enfoque tiene sus propias ventajas y desventajas.
La selección de un método de administración de la memoria para un
sistema específico depende de muchos factores.
Especialmente del diseño del hardware del sistema
MUCHOS ALGORITMOS REQUIEREN SOPORTE DEL HARDWARE
ADMINISTRACIÓN DE LA MEMORIA 9.1
ANTECEDENTES
La memoria es un componente central para la operación de un sistema de cómputo moderno, la cual consiste en un gran arreglo de palabras o bytes, cada uno con su
propia dirección. La CPU acude por instrucciones a la memoria de acuerdo con el valor del contador de programa. Estas instrucciones pueden originar, a su vez, carga y
almacenamiento de y hacia direcciones específicas de memoria
Entonces, podemos ignorar cómo un programa genera una dirección de memoria. Ya que sólo nos interesa la secuencia de direcciones de memoria
generadas por el programa que está en ejecución.
La unidad de memoria solo ve un flujo de direcciones de memoria; no sabe cómo se
generan ni lo que son.
Contador de instrucción, índice, indirección, direcciones literales
Instrucciones o Datos
CARLOS JAVIER SORNOZA VÁSQUEZ
9.1.1 VINCULACIÓN DE DIRECCIONES
Es un conjunto de procesos que están en el disco y esperando ser llevados a la memoria para su ejecución.
PROCESO PROCESO
PROCESO
PROCESO
Las direcciones pueden representarse de diferentes formas durante estos pasos, que por lo general son simbólicas ..
9.1.1 VINCULACIÓN DE DIRECCIONES
Procesamiento de pasos múltiples de un programa de usuario
Programa
fuente
Compilador o ensamblador
Módulo Objeto
Editor de enlace
Cargador
Módulo de
Carga
Imagen de memoria binaria
en memoria
Tiempo de compilación
Tiempo de carga
Tiempo de ejecución (tiempo de corrida)
Si se conoce al momento de la compilación en donde residirá el proceso en la memoria, entonces se puede generar un código absoluto.
Si no se conoce al momento de la compilación en donde residirá el proceso en la memoria, entonces el compilador debe generar un código relocalizable
Si el proceso puede moverse durante su ejecucion de un segmento de memoria a otro, entonces la vinculacion debe ser demorada hasta el momento de ejecución.
Otros módul
os objeto
Biblioteca del
sistema
Biblioteca del
sistema cargada
dinamicamente
9.1.1 VINCULACIÓN DE DIRECCIONES
KARINA JESSENIA HIDROVO AVELLÁN
9.1.2 ESPACIO DE DIRECCIONES LÓGICAS
CONTRA FÍSICAS
Los métodos de vinculación de
direcciones en el momento de la
compilación y en el de la carga dan por resultado un
ambiente en donde las
direcciones lógicas y físicas son las mismas.
El esquema de vinculación de
direcciones da por resultado un
ambiente en el que las
direcciones lógicas y físicas
difieren.
El conjunto de todas las direcciones lógicas generadas por un programa es un espacio de direcciones lógicas.
El conjunto de todas las direcciones físicas correspondientes a estas direcciones lógicas es el espacio de direcciones físicas.
Por lo tanto, en el esquema de vinculación de direcciones en el tiempo de ejecución, los espacios de direcciones lógicas y físicas difieren.
CPU
registro de relocalización
14000
+
dirección lógica
dirección física
346 14346
MMU
Relocalización dinámica empleando un registro de relocalización
memoria
Como podemos observar en la figura este método requiere un soporte de hardware. El registro base ahora se llama registro de relocalización, el valor en este registro se agrega a cada dirección generada por un proceso de usuario en el momento en que se envía a la memoria.
El mapeo en tiempo de ejecución de direcciones virtuales (direcciones lógicas) en direcciones físicas es realizado por la unidad de administración de memoria(memory-management-unit, MMU) que es un dispositivo de hardware. Realizaremos este mapeo con un esquema simple de MMU, que es una generalización del esquema de registros base.
Por ejemplo, si la base se encuentra en 14000, el intento por parte del usuario de direccionar la localidad 0 se relocaliza dinámicamente en la localidad 14000; un acceso a la localidad 346 se mapea en la localidad 14346.
El programa puede crear un apuntador a la localidad 346, almacenarlo en memoria, manipularlo, compararlo con otras direcciones (todo ello como el número 346). Sólo cuando este número se utiliza como una dirección de memoria se relocaliza con relación al registro base.
El programa de usuario nunca ve las direcciones físicas reales.
El programa de usuario maneja direcciones lógicas. El hardware de mapeo de memoria convierte las direcciones lógicas en direcciones físicas antes de ser utilizadas.
JEAN CARLOS MACÍAS ALCIVAR
9.1.3 CARGA DINÁMICA
9.1.3 CARGA DINÁMICA
El tamaño de un proceso está limitado por el tamaño de la memoria física. Para conseguir una mejor utilización del espacio de memoria, podemos emplear la carga dinámica.
Con la carga dinámica una rutina no se carga sino hasta que sea llamada.
Todas las rutinas se mantienen en el disco en un formato de carga re localizable.
El programa principal se carga en la memoria y se ejecuta.
9.1.3 CARGA DINÁMICA
JONATHAN ZAMORA
9.1.4 ENLACE DINÁMICO Y BIBLIOTECAS
COMPARTIDAS
Una biblioteca puede ser reemplazada por una nueva versión, y los programas que hacen referencia a la biblioteca usaran la nueva versión.
La información de la nueva versión se incluye tanto en el programa como en la biblioteca.
El stub es un pequeño código que indica como localizar la rutina de biblioteca apropiada en memoria.
El stub verifica si la rutina ya se encuentra en memoria.
El stub se sustituye así mismo con la dirección de la rutina y ejecuta la rutina.
El concepto de enlaces dinámicos es similar al de carga dinámica . En lugar de posponer la carga es el enlace el que se pospone.
Característica usada con bibliotecas del sistema.
El enlace dinámico incluye un stub en la imagen por cada referencia a la rutina
de la biblioteca.
9.1.4 ENLACE DINÁMICO Y BIBLIOTECAS COMPARTIDAS
JOSÉ GABRIEL MOREIRA VÉLEZ
9.1.5 SUPERPOSICIONES (OVERLAYS)
La idea de las superposiciones consiste en mantener en memoria solo aquellas
instrucciones y datos que se necesitan en un momento dado.
Cuando se necesitan otras instrucciones, éstas se cargan en el espacio que estaba ocupado
previamente por las instrucciones que ya no se
necesitan.
S
U
P
E
R
P
O
S
I
C
I
O
N
E
S
(
O
V
E
R
L
A
Y
S)
9.1.5
CÉSAR STALIN VILLAVICENCIO PALACIOS
YORDY EDWIN ALMEIDA LOOR
9.2 INTERCAMBIO (SWAPPING)
9.2 INTERCAMBIO (SWAPPING)
Un proceso necesita estar en memoria para
ser ejecutado. Sin embargo, un proceso puede intercambiarse temporalmente de la
memoria a un almacén de respaldo.
Sistema Operativo
Espacio de usuario
Proceso
Proceso
Intercambio hacia
afuera 1
Intercambio hacia
adentro 2
Intercambio de dos procesos utilizando un disco como almacén de respaldo.
Almacén de respaldo
Mientras tanto, el planificador de la CPU asignará una porción de tiempo a algún otro proceso en memoria.
9.2 INTERCAMBIO (SWAPPING)
Cuando termine el proceso de mayor prioridad , el proceso de menor prioridad puede ser intercambiado de regreso a la memoria y continuar. Esta variante del intercambio también se conoce como desenrollar, enrollar.
Si llega un proceso de mayor prioridad y quiere servicio, el administrador de la memoria puede intercambiar fuera de la memoria el proceso de menor prioridad de manera que pueda cargar u ejecutar el proceso de mayor prioridad
Una variante de esta política de intercambio se emplea para los algoritmos de planificación con base de prioridades.
9.2 INTERCAMBIO (SWAPPING)
• Debe quedar claro que el tiempo de conmutación de contexto en un sistema de intercambio es de tipo bastante elevado
• Para la utilización eficiente de la CPU queremos que el tiempo de ejecución para cada proceso sea largo con relación al tiempo de intercambio
• El tiempo de transferencia es directamente proporcional a la cantidad de memoria intercambiada
• Existen otras relaciones de intercambio
9.2 INTERCAMBIO (SWAPPING)
HENRY ANDRÉS MENDOZA
JAQUELINE MARIBEL INTRIAGO MACÍAS
9.3 ASIGNACIÓN DE MEMORIA CONTIGUA
Asignación de memoria contigua
CPU < +
REGISTRO LIMITE
REGISTRO DE RELOCALIZACION
MEMORIA
Dirección lógica
SI
NO
trampa (trap);error de direccionamiento
Dirección física
Con los registros de relocalización y limite, cada dirección lógica debe ser menor que el limite; la MMU mapea dinámicamente la dirección lógica agregando el valor del registro de relocalización y esta dirección mapeada se envía a la memoria
Cuando el planificador de la CPU selecciona un proceso para su ejecución, el despachador caga los registros de relocalización y limites con los valores correctos como
parte de la comunicación en contexto.
Asignación de memoria contigua
Uno de los métodos mas sencillos es dividir la memoria en particiones
de tamaño fijo. Cada partición puede contener un proceso. De
esta forma la multiprogramación queda limitado por el numero de
particiones
El sistema operativo contiene una tabla que indica que partes de la
memoria están libres y cuales ocupadas. Inicialmente toda la
memoria esta disponible para los procesos de usuario, que es
considerado como hueco que es un espacio grande de memoria
disponible.
Cuando llega un proceso y necesita memoria, buscamos un bloque lo suficientemente grande para este proceso, si encontramos alguno le asignamos tanta memoria como
necesite y el resto queda disponible para satisfacer solicitudes futuras
Existen varias soluciones a esto:
Las estrategias del primer ajuste, el mejor ajuste y el peor ajuste son las que se emplean comúnmente para seleccionar huecos libre del
conjunto de huecos disponibles.
Esto es un caso particular al del problema de asignación dinámica de almacenamiento que consiste en como satisfacer una solicitud de
tamaño n a partir de una lista de huecos libres.
Se hace una búsqueda en el conjunto de huecos para determinar cual es el mejor hueco para asignar.
9.3 ASIGNACIÓN DE MEMORIA CONTIGUA
Se ha demostrado que tanto el primer ajuste como el mejor ajuste son mejores que el peor ajuste con respecto a su reducción de tiempo y a su utilización de
almacenamiento.
Primer ajuste: asigna el primer hueco que sea suficientemente grande. La búsqueda puede comenzar ya sea al principio del conjunto de huecos o
donde termino la búsqueda previa de primer ajuste.
Mejor ajuste: asigna el hueco mas pequeño que sea suficientemente grande. Debemos hacer la búsqueda en toda la lista o puede que la lista ya
este ordenada por su tamaño.
Peor ajuste: asigna el hueco mas grande. Se hace la búsqueda de toda la lista.
9.3 ASIGNACIÓN DE MEMORIA CONTIGUA
Los algoritmos que se acaban de presentar de una fragmentación externa.
La fragmentación externa ocurre cuando existe suficiente espacio de memoria total para satisfacer una solicitud, pero no es contigua; el almacenamiento se fragmenta en un gran numero de huecos pequeños.
Este problema de fragmentación puede ser grave. En el peor de los casos podría tener un bloque de memoria libre entre cada procesos.
Una solución al problema de la fragmentación es la compactación. La meta es reorganizar los contenidos de la memoria para colocar junta toda la memoria libre en un bloque grande.
Otra solución es permitir que el espacio de direcciones lógicas de un proceso no sea contiguo para dejar que a un proceso se le asigne memoria física
siempre que esta este disponible
9.3 ASIGNACIÓN DE MEMORIA CONTIGUA
GEMA PATRICIA CALDERÓN PAREDES
JESÚS ALBERTO CEDEÑO NAVIA
MARÍA FERNANDA ARÉVALO PINCAY
9.4 PAGINACIÓN
9.4.1 MÉTODO BÁSICO
La memoria física se
descompone en:
Bloques de tamaño fijo
denominados marcos
La memoria lógica se
descompone en:
Bloques del mismo
tamaño denominados
paginas
Cuando se ejecuta un proceso sus paginas se cargan desde el almacén de respaldo en cualquier marco de memoria
disponible.
Su tamaño es definido
por el hardware.
9.4.1 MÉTODO BÁSICO
Cada dirección
generada por la CPU se
divide en dos partes:
Numero de pagina
(p)
Desplazamiento de
pagina (d)
Numero de Pagina Desplazamiento de Pagina
p d
m-n n
9.4.1 MÉTODO BÁSICO
0 1 2 3
a b c d
4 5 6 7
e f g h
8 9
10 11
i j k l
12 13 14 15
m n o p
0 1 2 3
5
6
1
2
0
4
i j k l
8
m n o p
12
16
20
a b c d
24
e f g h
28
Memoria lógica
Tabla de Paginas
Memoria física
EJEMPLO DE PAGINACIÓN PARA UNA MEMORIA DE 32
BYTES CON PAGINAS DE 4 BYTES.
9.4.1 MÉTODO BÁSICO
La Paginación es la forma de relocalización
dinámica
Cuando utilizamos un esquema de paginación, no
tenemos fragmentación
externa
Pero sin embargo podemos tener
cierta fragmentación
interna
Si los requerimientos de
memoria de un proceso no llegan a caer en limites
de pagina.
Ya que el ultimo marco asignado tal vez no este
completamente lleno.
9.4.1 MÉTODO BÁSICO
Por ejemplo, si las paginas son de 2048 bytes, un proceso de 72.766 bytes necesita 35 paginas mas 1086 bytes. Se le asignara
36 marcos, dando por resultado una fragmentación interna de 2048-1086-962
bytes
Si el tamaño del proceso es independiente del tamaño de la pagina, esperemos que la fragmentación interna sea un promedio de media pagina de proceso.
Existe un trabajo adicional involucrado en cada entrada de la
tabla de paginas, y este se reduce a
medida que aumenta el tamaño de las
paginas.
Actualmente, las paginas tienen típicamente un
tamaño de entre 2 y 8 KB.
9.4.1 MÉTODO BÁSICO
El sistema Operativo mantiene una copia de la
tabla de paginas para cada proceso.
Esta copia se utiliza para traducir las direcciones lógicas a direcciones
físicas
La copia también es utilizada por el
despachador de la CPU
Esta define la tabla de pagina del Hardware
cuando se va a asignar la CPU a un proceso
La paginación incrementa de esta forma el tiempo de comunicación de contexto
9.4.1 MÉTODO BÁSICO
Debido a que el sistema operativo
esta administrando la memoria física
debe estar consiente de :
Que marcos se asignan, cuales marcos serán
disponibles, cuantos marcos en total hay,
etc.
Esta información se mantiene
generalmente en una estructura de datos denominada tabla de marcos
Tiene una entrada por cada marco físico de pagina, indicando si el
ultimo esta libre o si esta asignado y , si
esta asignado, a qué pagina de qué proceso o procesos
9.4.1 MÉTODO BÁSICO
El sistema Operativo mantiene una copia de la
tabla de paginas para cada proceso.
Esta copia se utiliza para traducir las
direcciones lógicas a direcciones físicas
La copia también es utilizada por el
despachador de la CPU
Esta define la tabla de pagina del Hardware
cuando se va a asignar la CPU a un proceso
La paginación incrementa de esta forma el tiempo de comunicación de contexto
9.4.1 MÉTODO BÁSICO
JESSENIA CEVALLOS
9.4.2 ESTRUCTURA DE LA TABLA DE PÁGINAS
9.4.1.2 SOPORTE DE HARDWARE
Estructura de la tabla de páginas
Soporte de hardware Protección
Un apuntador de la tabla de paginas se almacena con los demás valores de registros en el boque de control de procesos
Soporte de hardware
La tabla se implementa como un conjunto de registros dedicados, estos deberán construirse con una lógica de muy alta velocidad para que la traducción de direcciones de pagina sea eficiente. El uso de los registros para la
tabla de paginas es satisfactorio si la tabla es razonablemente pequeña(256 entradas).
La PDP-11 de DEC
En el caso de estas maquinas el empleo de registros rápidos para implementar la tabla de paginas no es factible, dicha tabla se mantiene en la memoria principal y un registro base de tabla de paginas apunta a ella
CPU p d
Numero de pagina
Numero de marco
TLB
Dirección lógica
l d
----------------------------
f
----------------------------
Fallo de TLB P
F0000..0000
F1111…..1111
Memoria física
Acierto de TLB
Dirección física
Tabla de paginas
ANDRÉS ANTONIO DAZA ESPINALEZ
XAVIER FERNANDO CEDEÑO MOREIRA
9.4.2.2 PROTECCIÓN
9.4.2.2 PROTECCIÓN
La protección de la memoria en un ambiente de paginación se la realiza mediante de los bits de protección. Un bit puede definir que una página sea de lectura y escritura o solo de lectura.
Cada referencia a la memoria pasa por una tabla de páginas para encontrar el número de marco correcto, al mismo tiempo calcula la dirección física.
Los bits de protección pueden examinarse para verificar que no se esté escribiendo en una página de solo lectura, al intentar esto se genera una trampa de hardware q se comunica con el sistema operativo.
9.4.2.2 PROTECCIÓN
Se puede crear un hardware para proporcionar protección de solo lectura, de lectura y escritura, o bien se podría usar bits de protección por cada clase de acceso.
Generalmente se agrega un bit más a cada entrada de la tabla de páginas esto genera un bit de validez-invalidez
9.4.2.2 PROTECCIÓN
Cuando el valor de este bit se fija en «válido» , indica que la página es legal o valida
Si el valor del bit se fija en «invalido» indica que la página no se encuentra en el espacio de direcciones lógicas del proceso
Raras veces un proceso utiliza todo su rango de direcciones, de hecho muchos procesos utilizan solo pequeña fracción del espacio de direcciones que tienen disponible.
Algunos sistemas proporcionan hardware, bajo la forma de registro de longitud de tabla, para indicar el tamaño de dicha tabla de páginas. Este valor se compara contra cada dirección lógica para verificar que la dirección se encuentra en el rango valido para el proceso. Si no se pasa esta prueba, se ocasiona una trampa de error al sistema operativo.
9.4.2.2 PROTECCIÓN
DIEGO AVILEZ MACÍAS
9.4.3. PAGINACIÓN CON NIVELES
MÚLTIPLES
La arquitectura VAX soporta paginación con dos niveles. La VAX es una maquina de 32 bits
con un tamaño de pagina de 512 bytes. En el cual el espacio de direcciones lógicas de
un proceso se divide en cuatro secciones iguales, cada una de las cuales consta de 230
bytes. Cada sección representa una parte diferente
del espacio de direcciones lógicas de un proceso.
9.4.3. PAGINACIÓN CON NIVELES MÚLTIPLES
Los primeros 2 bits de orden alto de la dirección lógica designan la sesión apropiada. Los siguientes 21 bits presentan el numero de
pagina . Los 9 bits finales representan un deslizamiento
en la pagina deseada.
Al dividir la tabla de paginas de esta forma , el sistema operativo puede dejar
particiones no utilizadas hasta que otro proceso las necesite.
9.4.3. PAGINACIÓN CON NIVELES MÚLTIPLES
ES DECIR :
Que para un sistemas de 64 bits ya no es apropiado usar este modelo en dos niveles sino que debe implementar mas niveles haciendo mas trozos las tablas de pagina y así abarcar con la arquitectura que se maneja el sistema operativo.
9.4.3. PAGINACIÓN CON NIVELES MÚLTIPLES
Doris Elizabeth Solórzano Moreira
9.4.4 TABLA DE PÁGINAS INVERTIDA
TABLA DE PAGINA INVERTIDA
Una tabla de paginación tiene una entrada por cada pagina que el proceso
esta utilizando o una ranura por cada dirección virtual independiente de la
validez de esta ultima
Es
Sintaxis
Id-proceso , numero de pagina (hace a la referencia a la memoria, parte de
la dirección virtual )
Id-proceso , numero de pagina , se presenta en el subsistema de la memoria
9.4.4. TABLA DE PÁGINAS INVERTIDA
Para poder manipular la
memoria de hiperpaginas
coger los datos o rutas
de memoria para ahorra
espacios .
La cpu de paginación
ubica la dirección de la
memoria donde se
encuentra…
Pasa primeramente por la
dirección lógica, dirección
física y por ultimo por la
memoria física
9.4.4. TABLA DE PÁGINAS INVERTIDA
PEDRO ANDRES MUÑOZ CASTRO
9.4.5. PÁGINAS COMPARTIDAS
• Considerando un sistema que soporta 40 usuarios cada uno de los cuales
ejecuta un editor de texto.
• Si el editor de texto consta en 150k de código y 50k de espacio
para datos se necesitan 8000k para soportar a los 40 usuarios
• El código Reentrante es un código que no puede modificarse así mismo
• Por lo tanto dos o mas procesos pueden ejecutar el mismo código al mismo tiempo
• Cada proceso tiene su propia copia de registros y almacenamiento
de datos para mantener los datos para la ejecución del proceso.
• Solo se necesita mantener en memoria física una copia del editor.
9.4.5. PÁGINAS COMPARTIDAS
9.4.5. PÁGINAS COMPARTIDAS
MARCO MERCHÁN
9.5 SEGMENTACIÓN
9.5.1 MÉTODO BÁSICO
Un aspecto importante es la
administración de la memoria es la
paginación.
La memoria es vista como un conjunto de segmentos
de tamaño variable desordenadamente.
La segmentación es un esquema de
administración de memoria.
Un espacio de direcciones es un conjunto de
segmentos. Cada segmento tiene un
nombre y longitud
Subrutina pila
sqrt
Tabla de símbolos
Programa principal
Espacio de direcciones lógicas
RAFAEL ANDRÉ BASURTO ZAMBRANO
9.5.2 HARDWARE
9.5.2 HARDWARE
Los usuarios ahora pueden hacer referencia a los objetos en el programa mediante una dirección bidimensional.
La física real sigue siendo, por supuesto, una secuencia unidimensional de bytes.
Este mapeo es efectuado por una tabla de segmentos. Cada entrada de segmentos tiene una base de segmentos y un límite de segmento.
9.5.2 HARDWARE
• El número de segmentos se utiliza como un índice en la
tabla de segmentos.
Un número de segmentos
• El desplazamiento de la dirección lógica debe estar
entre 0 y el límite de segmento
Un desplazamiento en dicho segmento.
• El empleo de una tabla de segmentos se ilustra en una dirección lógica y consta de dos partes.
Segmento.
• De no ser así se genera una trampa al sistema operativo.
• Si el desplazamiento es legal se agrega a la base del segmento para producir la dirección en la memoria física de byte deseado.
Caso contario
9.5.2 HARDWARE
Ejemplo A) El sementó 2 tiene 400 bytes de longitud y comienza en la localidad 4300 con una referencia de bytes 53 el segmento 2 se mapea en la longitud 4300+53=4353
MARCOS ANTONIO MENÉNDEZ ZAMBRANO
9.5.3 PROTECCIÓN Y COMPARTIMIENTO
PROTECCIÓN Y COMPARTIMIENTO
Asociación de la protección con los segmentos
El hardware de mapeo impide un acceso ilegal a la memoria:
Escribir en un segmento de solo lectura.
Utilizar como dato un segmento de sólo ejecución.
Los segmentos representan una porción del programa definida semánticamente.
Algunos segmentos son instrucciones (Lectura-Ejecución).
Y otros segmentos son datos (Lectura-Escritura).
Al colocarse un arreglo en un propio segmento el hardware de administración de la memoria verificará que los índices sean legales y no estén fuera del límite del arreglo.
Así muchos errores podrán ser detectados a tiempo, para que no ocasionen un daño serio.
PROTECCIÓN Y COMPARTIMIENTO
Otra ventaja de la segmentación implica la compartición de código o datos.
Editor
Datos1
Editor
Datos2
Memoria Lógica Proceso P1
Memoria Lógica Proceso P2 Segmento 0
Segmento 1
Segmento 1
Segmento 0
Editor
Datos1
Datos2
43062
68348
72773
90003
98853
Límite Base
0 25286 43062
1 4425 68348
Límite Base
0 25286 43062
1 4425 68348
Tabla de Segmentos Proceso P1
Tabla de Segmentos Proceso P2
INGRID ALEJANDRA CEDEÑO BAILÓN
9.5.4 FRAGMENTACIÓN
FRAGMENTACIÓN
El planificador de largo plazo
debe encontrar y asignar
memoria a todos los
segmentos de un programa
de usuario.
Similar a paginación
Excepto que los segmentos
son de longitud variable
ESQUEMA DE PARTICIONES
La asignación de memoria es
un problema de asignación
dinámica de almacenamiento
La segmentación puede ocasionar una fragmentación externa si todos los
bloques de memoria libre son demasiados pequeños para acomodar a un segmento.
Esperar hasta que haya disponible más memoria
Hacer uso de la compactación para crear dicho hueco.
EL PROCESO DEBE:
Si el planificador de la CPU debe esperar por un proceso, debido a la
asignación de memoria
Recorrer la cola de la CPU buscando un proceso más pequeño y de
menor prioridad para su ejecución.
En un extremo podemos definir cada proceso fuera
un segmento Cada byte podría ser colocado en su propio segmento y reubicarse por separado
¿Qué tan serio es el problema de fragmentación externa para un esquema de
segmentación?
Se reduce al
esquema de
pariciones de
tamaño variable Elimina
completamente la
fragmentación
externa
KAROL ANDREA MANRIQUE VÉLIZ
JOSÉ DANIEL MENDOZA LOOR
9.6 SEGMENTACIÓN CON PAGINACIÓN
SEGMENTACIÓN CON PAGINACIÓN
Microprocesadores más utilizados:
MOTOROLA 68000
• Diseñada en espacios de
direcciones plano
INTEL 80x86
• Basado en la segmentación
PENTIUM
• Basado en la segmentación
INTEL 386
• Mezcla de paginación y segmentación
Número máximo de
segmentos: 16KB c/u 4GB
Tamaño de página: 4KB
SEGMENTACIÓN CON PAGINACIÓN
El espacio de direcciones lógicas de un proceso se
divide en dos particiones.
Intel 386
• Consta de 8K segmentos privados
• Tabla local de descriptores (TLD): ubicación base y longitud de segmento.
Primera partición
• Contiene de hasta 8K segmentos compartidos
• Tabla global de descriptores (TGD)
Segunda partición
La máquina tiene seis registros de
segmentos, seis registros de 8
bytes de microprograma para
contener los descriptores.
La dirección lógica es un par (selector, desplazamiento), en
donde el selector es un número de 16 bits.
s g p
13 1 2
SEGMENTACIÓN CON PAGINACIÓN
SEGMENTACION CON PAGINACION
LA DIRECCION FISICA EN EL 386 TIENE 32 BITS DE
LONGITUD Y SE FORMA ASI
REGISTRO DE SEGMENTO APUNTA A
LA ENTRADA APROPIADA EN LA LDT
O GDT
LA INFORMACION DE LA BASE Y LIMITE DEL SEGMENTO SE EMPLEA
PARA GENERAR UNA DIRECCION LINEAL.
CADA SEGMENTO SE PAGINA Y CADA PAGINA
ES DE 4 KBYTES
UNA TABLA DE PAGINAS PUEDE CONTENER HASTA 1 MILLON DE ENTRADAS
DEBIDO A ESTO CADA PROCESO PUEDE NECESITAR HASTA 4 MEGABYTES DE ESPACIO DE DIRECCIONES FISICAS
SEGMENTACION CON PAGINACION
LIMITE
NO VALIDA: GENERA UNA FALLA DE MEMORIA RESULTANDO EN UNA TRAMPA AL SISTEMA OPERATIVO
VALIDA: VALOR DE DESPLAZAMIENTO SE AGREGA AL VALOR DE LA BASE, QUE DA UNA DIRECCION LINEAL DE 32 BITS,
QUE SE TRADUCE A UNA FISICA
VERIFICA VALIDEZ DE LA DIRECCION
SEGMENTACION CON PAGINACION
P1 P2 D
10 10 12
NUMERO DE PAGINA DESPLAZAMIENTO DE PAGINA
LA SOLUCION DEL 386 PARA NO ASIGNAR LA TABLA DE PAGINAS CONTIGUAMENTE A LA MEMORIA PRINCIPAL ES: • USAR UN ESQUEMA DE PAGINACION CON DOS NIVELES
• UN NUMERO DE PAGINA QUE CONSTA DE 20 BITS • UN DESPLAZAMIENTO DE PAGINA QUE CONSTA DE 12 BITS.
DEBIDO A QUE PAGINAMOS LA TABLA DE PAGINAS, EL NUMERO DE PAGINAS SE DIVIDE A SU VEZ EN: • UN APUNTADOR DE DIRECTORIO DE PAGINAS DE 10 BITS • UN APUNTADOR DE TABLA DE PAGINAS DE 10 BITS
SEGMENTACION CON PAGINACION
JENNIFER YAHAIRA INTRIAGO HOLGUÍN
PARTE 3
ADMINISTRACIÓN DEL ALMACENAMIENTO
Ejecución de programas
Los programas deben estar
en la memoria principal
Almacenamiento
De gran capacidad
PARTE 3
ADMINISTRACIÓN DEL ALMACENAMIENTO
MARYURIE LÓPEZ NAVARRETE
CAPÍTULO 9
ADMINISTRACIÓN DE LA MEMORIA
9.1 ANTECEDENTES
Los algoritmos de administración de memoria varían desde
un enfoque primitivo, a nivel de maquina, hasta estrategias
de paginación y segmentación.
La selección de un método de administración de la memoria
para un sistema especifico depende de muchos factores,
especialmente de diseños de hardware del sistema.
La memoria es un componente central para la operación de un sistema
de computo moderno.
Consiste en un gran arreglo de palabras o bytes, cada uno con su
propia dirección.
La CPU acude por instrucciones a la memoria de acuerdo con el valor
del contador de programa.
ANA LAURA PONCE
9.1.1 VINCULACIÓN DE DIRECCIONES
Vinculación De Direcciones
El procedimiento normal consiste en seleccionar uno de los procesos de la cola de
entrada y cargarlo en la memoria. A medida que el proceso se ejecuta, accede a las
instrucciones y datos de la memoria. Con el tiempo, el proceso termina y su espacio
memoria se declara como disponible.
La mayoría de los sistema permiten que su proceso de usuario reside en cualquier
parte de la memoria física.
Aunque el espacio de direcciones de la computadora comienza en 00000, la primera
dirección del proceso de usuario no necesita ser 00000.
La vinculación de instrucciones y datos con direcciones de
memoria puede hacerse en cualquier paso durante el recorrido
Si se conoce al momento de la compilación en
donde residirá el proceso en la memoria
Tiempo de compilación
Si el proceso puede moverse durante su ejecución
de un segmento de memoria a otro
Tiempo de ejecución
Si no se conoce al momento de la compilación
en donde residirá el proceso en la memoria
Tiempo de carga
ESTEFANÍA DELGADO CHAVARRÍA
9.1.2 ESPACIO DE DIRECCIONES LÓGICAS
CONTRA FÍSICAS
LUIS MIGUEL GARCÍA
9.1.3 CARGA DINÁMICA
Para conseguir una mejor utilización del espacio de memoria podemos emplear la carga dinámica con la carga dinámica una rutina no se carga sino hasta que es llamada
Cuando una rutina necesita llamar a otra rutina , la rutina que hace el llamado verifica primeramente si la otra a sido cargada.
La ventaja de la carga dinámica es que la rutina no utilizada nunca se carga. Este método es útil cuando se necesitan grandes cantidades de código para manejar casos que ocurren con poca frecuencia como rutinas de error
La carga dinámica no requiere un soporte especial del sistema operativo .
DARWIN LEONARDO CHÁVEZ LUCAS
9.1.4 ENLACE DINÁMICO Y BIBLIOTECAS
COMPARTIDAS
El concepto de enlace dinámico es similar al de carga dinámica
En lugar de posponer la carga hasta el tiempo de ejecución, el enlace es el que se pospone. Esta se utiliza generalmente con bibliotecas del sistema como las bibliotecas de subrutinas de lenguaje.
Sin este servicio , todos los programas de un sistema necesitan tener una copia de su biblioteca de lenguaje o por lo menos las rutinas a la que hace referencia el programa. Este requerimiento desperdicia espacio en en disco así como memoria principal.
ENLACE DINÁMICO Y BÍBLIOTECAS COMPARTIDAS
Con el enlace dinámico se incluye
un STUB en la imagen por cada referencia a la rutina de biblioteca
Este STUB es una pequeña pieza de código que indica como localizar la
rutina de biblioteca apropiada residente
en memoria.
Cuando se ejecuta este STUB verifica si
la rutina necesaria ya se encuentra en
memoria.
Si la rutina no esta en memoria, el
programa la carga en la misma.
En cualquier caso el STUB se sustituye a si mismo con la dirección de la rutina, y ejecuta la rutina.
Se puede cargar en memoria más de una versión de una biblioteca, y cada
programa utiliza su información de versión para decidir cual copia utilizara.
Los cambios menores retienen el mismo numero de versión, en tanto los
cambios mayores incrementan el numero de la misma.
Así solo los programas que se compilan con la nueva versión de biblioteca se
ven afectados por los cambios incompatibles incorporados en ella, los otros
programas que se enlazaron antes de que se instalara la nueva biblioteca
continuaran usando la versión anterior.
Este sistema también se conoce como BIBLIOTECAS COMPARTIDAS. El enlace dinámico generalmente requiere ayuda del sistema operativo.
MARIO VINICIO NAULA GUZNAY
9.1.5 SUPERPOSICIONES (OVERLAYS)
Overlays
Mantener en memoria solo
aquellas instrucciones y
datos .
Ensamblador de dos pasos
Definimos:
Superposición A
Superposición B
Paso 1 70K
Paso 2 80K
Tabla de S. 20K
Rutinas C. 30K
Tabla de Símbolos
Rutinas Comunes
Manejador de Superposiciones
Superposiciones para un ensamblador de dos pasos
80K
20K
10K
30K
70K
Paso 2 Paso 1
Microcomp.
Cant. Lim.
Memoria física
Carecen de soporte de H.
La construcción de
Superposiciones implica
algoritmos de relocalización y
enlace.
No requieren soporte especial.
Pueden ser implementa
das por el usuario.
Sólo observa
más operaciones
top related