capitulo 9 administración del almacenamiento 23-01-2012

Post on 24-Jul-2015

1.123 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

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