P. 1
memoria

memoria

|Views: 461|Likes:
Publicado porshabedekam

More info:

Published by: shabedekam on May 17, 2008
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

10/17/2010

pdf

text

original

U. T. N.

Facultad Regional Resistencia

Ingeniería en Sistemas de Información

CAPITULO 7 ADMINISTRACION DE MEMORIA
Vimos en capítulos anteriores cómo la cpu puede ser compartida por distintos procesos. Como resultado de ésto, podemos mejorar tanto la utilización de la cpu como la respuesta de la computadora a sus usuarios. Para lograr ésto, debemos mantener varios procesos en memoria; debemos compartir la memoria.

7.1 Preliminarias
Como podemos observar en la figura 7.1. la cpu y el sistema de E/S interactúa con la memoria. La memoria es un gran arreglo de palabras o bytes, cada una con su propia dirección. La cpu carga desde y almacena hacia la memoria.

CPU

MEMORIA

SISTEMA E/S

Fig. 7.1 Naturaleza central de la memoria en un Sistema Computacional. Un programa debe ser cargado a memoria para ser ejecutado. El procedimiento normal es cargar un programa en memoria, tal vez reubicando direcciones de programa o vinculando referencias externas a puntos de entrada a medida que sea necesario. La selección de un algoritmo particular depende de muchos factores, pero principalmente del diseño del hardware del sistema.

7.2 La Máquina Desnuda
Por lejos, el esquema de manejo de memoria más simple es la nada. El usuario tiene todo el control de la memoria.
0k

Usuario

32k

Fig. 7.2 La Máquina Desnuda Ventajas: El usuario controla la memoria de la manera deseada. Tiene máxima simplicidad y mínimo costo. No hay necesidad de hardware especial. No hay siquiera necesidad de un Sistema Operativo. Desventajas: No provee servicios. El usuario tiene todo el control, pero el S.O. no controla las interrupciones, sin monitor residente para procesar las llamadas al sistema o a los errores y sin espacio para procesar las tarjetas de control de trabajos.
Administración de Memoria - Capítulo 7 Página 1 Prof. Exp. Mario Rubén Iribas

U. T. N.Facultad Regional Resistencia

Ingeniería en Sistemas de Información

7.3. El Monitor Residente
El próximo esquema más simple es dividir a la memoria en dos secciones, una para el usuario y otra para el monitor residente del S.O.
0k Monitor Reg.Valla Usuario

32k

Fig. 7.3 El Monitor Residente El Supervisor puede ubicarse en las direcciones superiores o inferiores, la decisión pasa por dónde se ubican los vectores de interrupción y éstos normalmente se ubican en zonas de baja memoria. 7.3.1 Hardware de Protección Como el Monitor Residente se ejecuta en baja memoria y el programa del usuario en alta, debemos proteger el código del primero y los datos por cambios (accidentales o maliciosos) por el prog. de usuario. Puede proveerse protección por hardware y de distintas maneras. El más general es como se ve en la figura 7.4.
Direcc. de Protección

direcc. cpu

Direcc.>= Valla?

Verdadero memoria

Falso Trap, error de direcc.

Fig. 7.4 Hardware de protección de direcciones del monitor residente

Administración de Memoria - Capítulo 7

Página 2

Prof. Exp. Mario Rubén Iribas

U. T. N.Facultad Regional Resistencia

Ingeniería en Sistemas de Información

El problema de la selección de direcciones fijas en la valla es que se puede errar en mucho o poco para proteger el monitor. La correcta dirección de hoy, puede no ser la de mañana. Para corregir éste problema, se utiliza un registro valla. Puede ser cargado por el S.O. usando una instrucción privilegiada especial. Este también puede variar a medida que cambia el tamaño del supervisor. 7.3.2 Reubicación Otro problema a considerar es la carga de los programas de usuario. Aunque la memoria comienza en 00000, los programas de usuario se ubicarán por detrás de la dirección del reg. valla.
Prog. Fuente

Compil. o Assembler

Tiempo de Fig. Compilación

7.5 Procesamiento de pasos múltiples para un programa de usuario

Mód. Objeto

Linkage Editor

Carga de Mód.

Si la dirección de valla es conocida en tiempo de compilación, entonces código absoluto puede ser generado. Si cambia la valla, se debe recompilar. Tiempo de Una alternativa es utilizar código reubicable. Se posterga el binding hasta el tiempo de carga. Si cambia la valla, sólo habrá Carga que recargar el código. Un Sistema Operativo de la PDP-11 utilizaba el esquema de la figura 7.6
Tiempo de Ejecución (Run-Time) 0 Monitor

Cargador

in-core imágen de memoria

valla Usuario 65k

Fig. 7.6 Carga del usuario en memoria alta Un esquema más general era el utilizado en la CDC-6600 que era la de postergar el binding al tiempo de ejecución. Precisa un hard específico como se ve en la figura 7.7. La valla es igual al registro
Administración de Memoria - Capítulo 7 Página 3 Prof. Exp. Mario Rubén Iribas

U. T. N.Facultad Regional Resistencia

Ingeniería en Sistemas de Información

de reubicación. La dirección lógica va de cero a máximo. La dirección física va de R+0 a R+max, donde R=valla.
reg.base 1400

cpu

direc.lógica 0346

+

dir.física 1746

Memoria

Fig. 7.7 Reubicación dinámica utilizando un registro de relocalización.

7.4. SWAPPING
Aunque parezca que el monitor residente sea inherente solo a entornos monoprogramables, en los primeros sistemas de tiempo compartido como el CTSS y el Q-32, usaban con el monitor residente una porción de memoria disponible para el usuario. Al cambiar el proceso al otro usuario, la memoria del primero se grababa en una memoria soporte, y la memoria para el próximo usuario era leída. Este esquema se llama swapping. 7.4.1 Memoria Soporte
monitor valla 1 swap-out Esp. Usuario 2 Usr.1 Usr.2 swap-in

Figura 7.8

El swapping requiere de una memoria soporte. Normalmente se graba en un disco rápido. Debe ser lo suficientemente grande como para almacenar imágenes de las memorias de los programas de los usuarios. 7.4.2. Tiempo de SWAP. Se debe tener en claro que el tiempo para el cambio de contexto en un sistema con swapping debe ser particularmente alto. Para tener una idea, un programa con 20 k-palabras y la memoria soporte en un disco con un tiempo de latencia de 8 ms y una velocidad de transferencia de 250.000 palabras por segundo. Entonces, una transferencia de un programa de 20 k-palabras desde y hacia la memoria tomará:

Administración de Memoria - Capítulo 7

Página 4

Prof. Exp. Mario Rubén Iribas

U. T. N.Facultad Regional Resistencia

Ingeniería en Sistemas de Información

8 ms + ( 20k-palabras / 250.000 palabras/seg )

= 8 ms + (2/25) seg = 8 ms + (2000/25) ms = 88 ms.

Como debemos hacer un swap-out y un swap-in, el tiempo total de swapping demandará alrededor de 176 ms. Para una efectiva utilización de CPU, desearemos que el tiempo de ejecución para cada proceso, sea lo suficientemente largo con respecto al swap time. Así en un RR, por ejemplo, el quantum debe ser sustancialmente mayor que 0,176 segundos. Otro método para reducir el tiempo de cambio de contexto es intentar superponer el swapping con la ejecución de programas. En la Fig. 7.9 se observa.

monitor Espacio del monitor valla buffer 1 buffer 2 usuario ejecutando

Figura 7.9 Swapping Superpuesto Luego que el programa libera cpu, debemos mover el búffer 2 a la zona de usuario (prog. 2), antes que pueda ser ejecutado. El programa de la región del usuario debe moverse a uno de los buffers para ser swappeado, si esto no se puede realizar, sólo podremos ejecutar el programa en buffer 2 moviendo la valla como en fig. 7.10.
monitor buffer 1 valla buffer 2 usuario previo
Figura 7.10. Intento de Ejecutar un programa moviendo la valla

7.5 Particiones Fijas
Lo que se necesita es la posibilidad de proteger a la memoria antes y después de la ejecución del programa. Esto se logra mediante la utilización de dos registros:
0k monitor usuario 1 lim. inferior usuario 2 lim. superior usuario 3 128k usuario 4

Fig. 7.11 Dos registros límite definen el espacio de direcciones lógicas.

Administración de Memoria - Capítulo 7

Página 5

Prof. Exp. Mario Rubén Iribas

U. T. N.Facultad Regional Resistencia

Ingeniería en Sistemas de Información

7.7.1 Hardware de Protección Pueden ser definidos de dos maneras: * Registros límite: Por ejemplo 100040 el inferior y 174640 el superior. * Registros Base y Límite: La menor dirección física y el rango de direcciones lógicas
lim. inferior lim. superior

CPU

direcc.

>= no

si

< no

si

memoria

TRAP al Sist. Operativo error de direccionamiento (a)
límite Base

CPU

direcc.

< no

si

+

memoria

TRAP al Sist. Operativo error de direccionamiento (b)

Fig. 7.12 (a) Registros límite y (b) Registros Base/Límite 7.7.2. Planificación de trabajos. La provisión de dos registros límite de memoria permite a múltiples usuarios compartir a la memoria principal simultáneamente. Dos esquemas básicos de administración de memoria existen: MFT y MVT, versiones del Sistema Operativo IBM/360. En MFT, hay tamaños fijos de memoria: Ej.: Monitor residente 10k Trabajos muy pequeños 4k Trabajos promedio 6k Trabajos muy grandes 12k Cada región de memoria puede tener su propia cola de planificación.
monitor 2k 1k 2k Q2 5k 3k 4k Q6 2k 6k

7k 11k 8k Q12

12k

Figura 7.13 MFT con colas separadas para cada región.
Administración de Memoria - Capítulo 7 Página 6 Prof. Exp. Mario Rubén Iribas

U. T. N.Facultad Regional Resistencia

Ingeniería en Sistemas de Información

Otro método es cargar todos los jobs desde una sola cola.
monitor 2k 4k 1k 7k 7k 3k 2k 5k Q 6k

12k

Figura 7.14 MFT con cola unificada ¿Qué debe hacer el sistema si los jobs requieren aún más memoria? * Abortar el job. * Retornar el control al programa de usuario. * Swapp-Out del job hasta que una región más grande esté disponible. 7.7.3. Selección del tamaño de las regiones Dependerá de los trabajos existentes y del tipo de procesamiento. 7.7.4 Fragmentación de Memoria Un trabajo que necesita m palabras de memoria, puede correr en una región de n palabras, donde n>=m. Fragmentación interna es n-m. Externa es cuando hay una partición grande pero no lo suficiente. 7.6 Particiones variables. Para solucionar el problema de la determinación de los tamaños adecuados de regiones, se puede adoptar un esquema de particiones variables dinámicamente.
0 monitor 40k Job 1 2 3 4 5 Job Queue Memoria 60k 100k 30k 70k 50k Tiempo 10 5 20 8 15

216k

256k

Figura 7.15 Ejemplo de planificación MVT

Administración de Memoria - Capítulo 7

Página 7

Prof. Exp. Mario Rubén Iribas

U. T. N.Facultad Regional Resistencia
monitor job1 monitor job1 monitor job1 job4 job2 job3 (a) job3 (b) job3 (c) job3 (d) job4 monitor

Ingeniería en Sistemas de Información
monitor job5 job4

job3 (e)

Figura 7.16 Ejemplo de planificación de jobs para MVT. Esto es el típico problema de asignación de memoria dinámica. Existen soluciones a dicho problema: * First-Fit. * Best-Fit. * Worst-Fit. Otro problema con el que se encuentra MVT, es el del ejemplo de la figura 7.17.

monitor job7 El próximo requerim. es de 18462 bytes job43 hueco de 18464 bytes.

Figura 7.17 La asignación está en algún múltiplo de bytes. 7.6.1. Planificación de trabajos Como vimos en MFT, MVT interactúa fuertemente con la planificación de jobs. Si comparamos los espacios en 7.16(a) y 7.16(c) hay espacio que sumado da lugar a ejecutar el job 5. Este problema de fragmentación puede ser severo.

Administración de Memoria - Capítulo 7

Página 8

Prof. Exp. Mario Rubén Iribas

U. T. N.Facultad Regional Resistencia

Ingeniería en Sistemas de Información

7.6.2. Compactación El mapa de memoria de 7.16(e), puede estar así:
monitor job5 monitor job5 job4 job4 job3

job3

66k

Figura 7.18 Compactación

Considerando el mapa de la figura 7.19, moviendo la memoria disponible hacia el fin, tendremos: mover jobs 3 y 4 con un total de 600k. En ésta situación, podemos simplemente mover job4 encima del 3, con 400k, o simplemente mover job3 debajo de job4, moviendo sólo 200k.
0k 300k 500k 600k 1000k 1200k 1500k 1900k 2100k asignación original movidos 600k movidos 400k movidos 200k monitor job1 job2 400k job3 300k job4 200k 900k 900k job4 job3 monitor job1 job2 job3 job4 monitor job1 job2 job4 job3 900k monitor job1 job2

Figura 7.19 Comparación de distintos tipos de compactación.

7.7 PAGINACION:
MVT sufre de fragmentación EXTERNA. Generalmente esto ocurre cuando no hay suficiente cantidad de memoria contigua disponible, sino dispersa por muchos bloques pequeños. Recuperar ese espacio como uno solo, es el objetivo de la compactación. El otro método es el del paginado, que asigna el espacio a los programas por donde quiera se encuentre lo suficiente necesario.

Administración de Memoria - Capítulo 7

Página 9

Prof. Exp. Mario Rubén Iribas

U. T. N.Facultad Regional Resistencia

Ingeniería en Sistemas de Información

7.7.1 Hardware: El hard se observa en la Figura 7.20
direcc. lógica cpu p d direcc. física f d memoria física p f

tabla de páginas

Figura 7.20 Hardware de Paginación

(p) Nro. de página y (d) Desplazamiento (p) es un índice dentro de la tabla de páginas. La tabla de páginas contiene la dirección base de cada página en la memoria física. Esta dirección base se combina con el desplazamiento para definir la dirección de memoria fisica que se envía a la unidad de memoria. El modelo de paginación en memoria se observa en FIGURA 7.21.
Nº de frame 0 pagina 0 pagina 1 pagina 2 pagina 3 mem. lógica 0 1 2 3 1 4 3 7 1 2 3 4 5 6 7 página 3 mem. física página 2 página 1 página 0

tabla de página

Fig. 7.21 Modelo de paginación de memoria física y lógica

Normalmente, el tamaño de página es una potencia de 2. En general, si el tamaño de página es P, entonces una dirección lógica U, produce un Nº de página p y un desplazamiento d mediante: p = U div P d = U mod P div. entera. mod. resto entero.

La selección de potencias de 2, hace la traducción particularmente fácil. Si una página es de 2n de tamaño, entonces los n-bits de orden inferior de una dirección lógica designan el desplazamiento (d) y el resto de los bits de orden superior, designan el Nº de página. Así, si el tamaño de página es una potencia de dos, podemos evitar la división. (Figura 7.22). Máquina Dirección Bits de página
Página 10

desplazam.
Prof. Exp. Mario Rubén Iribas

Administración de Memoria - Capítulo 7

U. T. N.Facultad Regional Resistencia

Ingeniería en Sistemas de Información

Atlas DEC-10 Sigma 7 Nova 3/D XDS-940 IBM/370

20 18 17 15 14 24

11 9 8 5 3 13 o 12

9 9 9 10 11 11 o 12

Fig. 7.22 Nº de direcciones de bits para varias computadoras con paginac. Para un ejemplo concreto, observemos la Figura 7.23. Usamos un tamaño de página de 4 palabras y una memoria física de 32 palabras (8 páginas).
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 a b c d e f g h i j k l m n o p 0

0 5 1 6 2 1 3 2

4

8

i j k l m n o p

12 Tabla de páginas 16

memoria lógica 20 a b c d 24 e f g h 28

memoria física

Figura 7.23 Ejemplo de paginación para una memoria de 32 palabras con páginas de 4 palabras

La direc. lógica 0 es página 0 y desplazamiento 0. Indexando en la tabla de páginas, encontramos que la página 0 está en la celda 5. Así la dirección lógica 0 se mapea a la dirección física 20 (= 5 x 4 + 0). La dirección lógica 4, mapea a la dirección lógica (6x4 + 0 =) 24. Es importante notar que la paginación en sí misma es un tipo de reubicación dinámica. Cada dirección lógica se mapea por el hardware de paginación a alguna dirección física. 7.7.2 Planificación de Trabajos: La memoria disponible se almacena como una lista de celdas de páginas no asignadas. Para que un trabajo que posee n páginas se pueda ejecutar, debe haber n celdas disponibles. Figura 7.24 Asignación de páginas libres antes y después.

Administración de Memoria - Capítulo 7

Página 11

Prof. Exp. Mario Rubén Iribas

U. T. N.Facultad Regional Resistencia
Lista de Frames libres 14 13 18 20 15

Ingeniería en Sistemas de Información

13 14 15 16 17 18 19 20

Nuevo Job pág. 0 pág. 1 pág. 2 pág. 3 (a) Lista de Frames Libres 15

13 pág.1 14 pág.0 15 16 17 Nueva T. P. del Job 0 14 1 13 2 18 3 20

Nuevo Job pág. 0 pág. 1 pág. 2 pág. 3 (b)

18 pág.2 19 20 pág.3

Fig. 7.24 Asignación de Frames (a) antes y (b) después

Con el esquema de paginación, no existe fragmentación externa. Sí podemos tener fragmentación interna. La última página, puede no estar completa. Puede ser recomendable usar tamaños de pághina pequeños. 7.7.3 Implementación de una tabla de páginas En el más simple de los casos, la T. de P. se implementa como un conjunto de registros dedicados. Las instrucciones para cargar o modificar la T.P. son por supuesto privilegiadas, así, solo el SO puede cambiar el mapa de la memoria. Para manejar grandes Nos. de página, se guarda la TP en memoria, y una Page Table Base Register (PTBR) se usa para apuntar a la tabla de página. Cambiar ésta Tabla, solo requiere cambiar éste registro, reduciendo el tiempo de cambio de contexto. Un problema con éste método es el tiempo requerido para acceder a la memoria del usuario. Si deseamos acceder a la ubicación i, primero indexamos la TP, usando un desplazamiento de PTBR por el Nº de página para i. Con éste esquema, se requieren 2 accesos a la memoria, una para la tabla de página y otro para la palabra. Así, la memoria es retrasada por un factor de 2. La solución estandard a éste problema es utilizar una especial, pequeña memoria de HARD llamada registros asociativos, o caché. Cada registro consiste de dos partes: una clave y un valor. Dicha clave se compara con todas cuando un registro asociativo se presenta con un ítem. El HARD es muy caro. El porcentaje de veces que un Nº de página se encuentra en los reg. asoc. (éxito), está relacionada fuertemente con la cantidad de reg. asoc. existentes. Con 8 o 16 reg. asoc., un éxito de 80% o 90% puede lograrse. 80 o 90% de las veces estará la página deseada en los reg. asoc. Si toma 50 ns buscar los reg. asoc., 750 ns acceder a memoria, entonces un acceso a memoria mapeada tomará 800 ns cuando el Nº de página esté en los reg. asoc. Si fallamos en encontrar el Nº de página (50 ns), entonces debemos primero acceder a la memoria por el Nº de celda/página (750 ns), y entonces acceder a la palabra deseada en memoria (750 ns), por un total de 1550 ns. Para hallar el EAT (Tiempo
Administración de Memoria - Capítulo 7 Página 12 Prof. Exp. Mario Rubén Iribas

U. T. N.Facultad Regional Resistencia

Ingeniería en Sistemas de Información

de acceso efectivo a memoria), debemos pesar cada caso por su probabilidad: EAT = = .80x800 + .20x1550 950 ns.

En éste ejemplo, sufrimos un deterioro del 26.6% en el tiempo de acceso a la memoria, (de 750 a 950 ns). Para un éxito del 90%: EAT = .90x800 + .10x1550 = 875 ns solo 16.6% de slowdown. 7.7.4 Páginas Compartidas Otra ventaja de la paginación es compartir código común. Supongamos un editor de 30k de código, un sistema que soporta 40 usuarios y 5k de espacio para los datos. Esto hace un total de 1400k. Si el código es reentrante (no auto-modificable), se puede compartir.
Ed 1 Ed 2 Ed 3 Data1 Job1 3 4 6 1 TP p/ Job1 Ed 1 Ed 2 Ed 3 Data2 Ed 1 Ed 2 Ed 3 Data3 Job3 3 4 6 2 TP p/ Job3 Job2 3 4 6 7 TP p/ Job2 0 1 Data1 2 Data3 3 Ed 1 4 Ed 2 5 6 Ed 3 7 Data2 8 9 10

Fig. 7.25 Código Compartido en un entorno de paginación

Así solo se necesita 5k x 40 + 30k de prog. = 230k. 7.7.5 Protección La protección de memoria en un sistema paginable, se acompaña de bits de protección asociados con cada página. Normalmente residen estos bits en la TP. Un bit puede definir que una página sea R/W o Read Only. El intento de grabar una página que es R/O, produce una interrupción de HARD por violación de memoria protegida. Otro bit más es generalmente agregada a cada entrada en la tabla, el bit de válido/inválido. Una dirección de 24 bits, permite direcciones de 0 a 16.777.215 Por ejemplo la figura 7.26. Se demuestra una fragmentación interna.

Administración de Memoria - Capítulo 7

Página 13

Prof. Exp. Mario Rubén Iribas

U. T. N.Facultad Regional Resistencia

Ingeniería en Sistemas de Información
0

00000 pág. 0 pág. 1 pág. 2 pág. 3 pág. 4 10468 12287 pág. 5

Nº de bit válido Frame inválido 0 2 v 1 3 v 2 4 v 3 7 v 4 8 v 5 9 v 6 0 i 7 0 i

1 2 3 4 5 6 7 8 9 pág. 3 pág. 4 pág. 5 pág. 0 pág. 1 pág. 2

Tabla de páginas

Figura 5.26 Bits (v) Válido (i) Inválido en una Tabla de Páginas

7.7.6 Dos visiones de la Memoria Dos aspectos importantes en la paginación es separar claramente la visión que tiene el usuario de la memoria, con la real memoria física. La diferencia entre ambas es reconciliada por el DAT o el mapeo del HARD.

7.8 SEGMENTACION:
Hay un acuerdo general que el usuario del sistema no piensa de la memoria como un arreglo de palabras. En su lugar, éste prefiere ver a la memoria como una colección de segmentos de tamaño variable sin ordenamiento necesario entre ellos.

Subrut. Pila

Tabla de Símb. SQRT Prog. Ppal.

Espacio de Direcciones Lógico

Administración de Memoria - Capítulo 7

Página 14

Prof. Exp. Mario Rubén Iribas

U. T. N.Facultad Regional Resistencia

Ingeniería en Sistemas de Información

Figura 7.27 - Visión del Usuario de un programa. Se habla de funciones SQRT, Tabla de símbolos etc. y no de las direcciones que ocupan en memoria. Los elementos dentro de cada segmento están identificados por su desplazamiento desde el principio del mismo: la primer sentencia del programa, la 17a. entrada en la tabla de símbolos, la 5a. instrucción de la función sqrt y así sucesivamente. Un espacio de direcc. lógicas es una colección de segmentos. Cada segmento tiene un nombre y una longitud. El compilador le asigna un Nº para simplificar. 7.8.2 Hardware Se utiliza una Tabla de segmentos:
Tabla de segmentos s límite Base

CPU

(s,d) si memoria

<
no

+

TRAP,error de direcc.

Figura 7.28 Hardware de Segmentación

Como ejemplo, observemos la figura 7.29:

1400 Subrut. Pila Segm. 3 Segm. 0 Tabla de Símb. Segm. 4 SQRT Segm. 1 Prog. Ppal. Segm. 2 Segm.1 Memoria Física 0 1 2 3 4 límite 1000 400 400 1100 1000 base 1400 6300 4300 3200 4700 Segm.0 2400

3200 Segm.3 Segm.2 4300 4700

Tabla de segmentos

Segm.4 5700 6300 6700

Espacio de Direcciones Lógico

Figura 7.29 Ejemplo de Segmentación

Administración de Memoria - Capítulo 7

Página 15

Prof. Exp. Mario Rubén Iribas

U. T. N.Facultad Regional Resistencia

Ingeniería en Sistemas de Información

7.8.2 Implementación de Tablas de Segmentos Como en la tabla de páginas, se puede implementar con registros rápidos o en memoria. Una tabla almacenada en registros, puede ser rápidamente referenciada. La suma de la base y la comparación con el límite se puede realizar simultáneamente. La PDP-11/45 usa éste método. Tiene ocho registros de segmentos.
15 s Nº segm. 13/12 d desplazamiento 0

Fig.7.30 Direccionamiento de segmentos en la PDP-11/45 Tres bits para Nº de segmento (ocho) y 13 bits para offset del segmento (8k bytes). Puede usarse un registro base para la tabla de segmento (STBR) y un registro de longitud de la tabla de segmento (STLR) para almacenar en memoria, ya que los registros son limitados. Para una dirección lógica, (s,d), primero chequeamos que la dirección sea legal (s<STLR). Entonces le sumamos el Nº de segmento al STBR, (STBR + s) en memoria de la entrada de la tabla de segmento. Esta entrada es leída desde memoria y se procede como antes. Como en paginación, este mapeo requiere dos referencias a memoria por cada dirección lógica, degradándola en un factor de dos. Para esto se puede utilizar un conjunto de registros asociativos para almacenar las entradas a la tabla de segmentos más reciente. 7.8.4 Protección y Compartición

Editor Segmento 0 Datos 1 Segmento 1 Memoria Lógica (Usuario 1) 0 1

43062 límite 25286 4425 base 43062 68348 68348 72773 Datos 1 Editor

Tabla de segmentos (Usuario 1)

límite Editor Segmento 0 Datos 2 Segmento 1 Memoria Lógica (Usuario 2) 0 1 25286 8550

base 43062 90003

90003 Datos 2 98553

Tabla de segmentos (Usuario 2) Memoria Física

Figura 7.31 Compartición de segmentos en un esquema de memoria segmentada

Administración de Memoria - Capítulo 7

Página 16

Prof. Exp. Mario Rubén Iribas

U. T. N.Facultad Regional Resistencia

Ingeniería en Sistemas de Información

7.8.5 Fragmentación Como en MVT, la asignación de memoria es dinámica, probablemente solucionada con un algoritmo best-fit o first-fit.. La segmentación puede causar fragmentación externa.

Administración de Memoria - Capítulo 7

Página 17

Prof. Exp. Mario Rubén Iribas

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->