Está en la página 1de 74

Sistemas Operativos I

Tema 3. Gestin de Memoria

Problemas Resueltos Tema 3. Gestin de Memoria


Gestin de memoria: Asignacin contigua
1. Se tiene un sistema de particiones mltiples con un soporte hardware basado en la tcnica de registros base y lmite. Dado un programa P que ocupa T palabras y se encuentra ubicado en memoria a partir de la posicin de memoria fsica C. a) Cul es el valor de cada registro para el programa P? b) Cul es el rango de las direcciones que emite P? c) Cul es el rango de direcciones reales en que se transforman las direcciones queemite P? Solucin a) El registro base y lmite se usa en esquemas basados en reubicacin en tiempo de ejecucin. El valor del registro base ser C y el valor del registro lmite ser T. b) El rango de direcciones de P es entre 0 y T-1. c) Las direcciones fsicas reales en las que se ha de transformar se encuentran en el rango entre C y C+T-1. 2. Analizar los esquemas de proteccin de particiones mltiples desde el punto de vista de la reubicacin. Solucin Con particiones mltiples de memoria, aparecen dos opciones que el tamao sea fijo, o que el tamao de la particin sea variable. En las de tamao fijo aparece el problema de la fragmentacin interna y en las de tamao variable aparece el problema de la fragmentacin externa. Los esquemas de proteccin que se utilizan para particiones variables son: registro cota inferior y registro cota superior o registro base y registro lmite. En el primero la traduccin de direcciones se realiza en tiempo de compilacin resultando direcciones absolutas de memoria y procesos no reubicables. En el esquema de registro base y lmite la traduccin de direcciones lgicas a fsicas se realiza en tiempo de ejecucin resultados por tanto procesos reubicables. 3. Sea un sistema gestionado con un mecanismo de particiones variables en el que la memoria fsica tiene 4200 palabras. En un instante la memoria est ocupada por 3 bloques de cdigo/datos de la forma: Direccin inicial 1000 2900 3400 longitud 1000 500 800

Sistemas Operativos I

Tema 3. Gestin de Memoria

La estrategia utilizada cuando se carga un nuevo bloque en memoria es la del mejor ajuste en primer lugar. Si falla, se crea un hueco mayor desplazando los bloques en memoria hacia la direccin 0. Esta accin siempre empieza con el bloque actualmente en la direccin de memoria ms baja, y prosigue nicamente hasta encontrar un hueco suficiente para el nuevo bloque. A partir de ese momento, hay que cargar tres bloques de 500, 1200 y 200 (en ese orden). Describir el contenido de la memoria una vez satisfechas las peticiones. Solucin La situacin inicial de la memoria seria la siguiente:
0000 0999 1000 1999 2000 2899 2900 3399 3400 4199

Bloque 2

A partir de este momento cargamos los nuevos bloques, comenzando por el bloque 4 de 500 palabras utilizando el mejor ajuste.

2000

0000

0999

1000

1999

2499

2900

3399

3400

Bloque 3
3400

Bloque 1

Bloque 2

Bloque 4

El siguiente bloque que se ha de ubicar en memoria es el bloque 5 con 1200 palabras. Hay espacio suficiente en memoria pero aparece el problema de la fragmentacin externa por tanto se hace necesario utilizar un algoritmo de compactacin.
0000 0999 1000 1499 1500

2899 2900

3399

Bloque 3
Bloque 3
4199

Bloque 1

Bloque 4

Bloque 2

Bloque 1

4199

Sistemas Operativos I

Tema 3. Gestin de Memoria

Despus de la compactacin han quedado libres 1400 palabras contiguas en un nico hueco, la suma de los tamaos de los bloques 5 y 6 son de 1400 por tanto no habra problema para la ubicacin.
0000 0999 1000 1499 1500 2900 3399 3400

2699

Bloque 5

Bloque 2

Bloque 1

Bloque 6

4. Sea un sistema donde se utiliza un esquema de asignacin con mltiples particiones de tamao fijo. Qu determinara el lmite del grado de multiprogramacin de dicho sistema? Solucin Es un esquema donde la memoria se encuentra dividida en varias particiones de tamao fijo, cada particin nicamente puede contener un proceso y el grado de multiprogramacin est limitado por el nmero de particiones. 5. Sea un sistema gestionado por particiones mltiples de tamao variable con compactacin. En un instante dado, se tiene la siguiente ocupacin de la memoria:
P1 180K libre 150 K

Bloque 4

libre 400 K

P2 100K

Se utiliza la tcnica del mejor ajuste. En la cola de trabajos tenemos en este orden: P4(120K), P5(200K) y P6(80K), los cuales deben ser atendidos en orden FIFO. Suponiendo que no finaliza ningn proceso y tras intentar cargar en memoria todos los procesos que estn en la cola. a) Indicad cuntas particiones quedan libres y de qu tamao son. b) Si en esta situacin se aplica compactacin, indicar qu proceso o procesos deberan moverse para que el nmero de Kbytes manejados fuese el menor posible y quede un nico hueco. c) Si los registros base de cada proceso son, respectivamente, B1, B2, B3, B4, B5 y B6, indicar cmo han cambiado los registros base correspondientes al proceso o procesos que se han movido debido a la compactacin. Solucin a) Quedan dos particiones de tamaos 120K y 30 K respectivamente.
P4 120 K

P1 180K

P5 200K

P6 80K

libre 120K

Bloque 3
libre 30K

P2 100K

4199

Sistemas Operativos I

Tema 3. Gestin de Memoria

b) Debera moverse el proceso P4 al hueco de 120K, con lo cual quedara un nico hueco de 150K. c) Todos los registros bases quedan igual que antes de la compactacin exceptiuando el del proceso P4 cuyo B4 contendr 460 K (se ha considerado que P1 se encuentra ubicado en las direcciones ms bajas de memoria). 6. Indique si las siguientes afirmaciones son verdaderas (V) o falsas (F) y justifiquelo. a) La gestin de memoria basada en particiones fijas utiliza el mtodo de compactacin para resolver el problema de fragmentacin externa. b) El mtodo de superposiciones ("overlays") se p uede utilizar en un sistema que no gestione memoria virtual. c) El espacio de direcciones fsicas depende del bs de direcciones del sistema. d) El espacio de direcciones lgicas est limitado por el tamao de la memoria fsica. e) La compactacin de un proceso sl o se puede realizar en un mtodo de reubicacin dinmica de la memoria. Solucin a) FALSA. No es posible, ya que las particiones de tamao fijo no presentan el problema de la fragmentacin externa. b) VERDADERA. Las superposiciones es un mtodo que se emplea cua ndo no existe memoria virtual para poder ejecutar procesos cuyo tamao es superior al de la memoria fsica. El programador deba definir donde comenzaban y acababan las superposiciones. c) VERDADERA. No se puede emitir una direccin de mayor nmero de bits que el permitido por el sistema. d) FALSO. Las direcciones lgicas son emitidas por la CPU y slo dependen del nmero de bits que esta sea capaz de emitir. El espacio de direcciones lgicas de un proceso depende del tamao del proceso. e) VERDADERO. Si los proceso no son reubicables, no se pueden utilizar algoritmos de compactacin, ya que la ejecucin de los mismos podra ser errnea, por estar accediendo a direcciones de memoria donde no se encuentran ubicadas sus instrucciones. 7. Suponga un sistema en el que no se dispone de MMU. Existe alguna tcnica que permita ejecutar en dicho sistema un programa cuyas necesidades de memoria superen la cantidad de memoria fsica total disponible?. Solucin S, utilizando superposiciones. Dividiendo el programa en diferentes f ragmentos que no deban estar todos ellos simultneamente en memoria se puede reducir significativamente la cantidad de memoria fsica que el programa necesitar.

Sistemas Operativos I

Tema 3. Gestin de Memoria

8. Qu tipo de algoritmos se utilizan para gestionar sistemas con asignacin contigua de memoria? Qu tipo de fragmentacin se puede producir en estos sistemas? Solucin Los algoritmos que se pueden utilizar para gestionar los sistemas con asignacin contigua de memoria son: el primer ajuste (first fit ), el mejor ajuste (best fit ), el peor ajuste (worst fit). Sin embargo, en particiones variables de tamao fijo, no tiene sentido el uso del algoritmo del peor ajuste, ya que la fragmentacin interna que se produce no puede ser aprovechada por otro proceso (slo un proceso por particin). En la asignacin contigua con particiones de tamao variable puede aparecer la fragmentacin externa, siendo necesario el uso de algoritmos de compactacin. Mientras que en las de tamao fijo aparece la fragmentacin interna. 9. Cite tres ventajas ofrecidas por las bibliotecas de enlace dinmico cuando se las compara con las bibliotecas enlazadas estticamente para formar un fichero ejecutable. Solucin Cuando se emplea enlace dinmico los ficheros ejecutables ocuparn menos espacio, ya que no contienen el cdigo de las bibliotecas. Los procesos pueden compartir memoria. Los programas no tendrn que ser recompilados ni reenlazados para tener acceso a las mejoras de implementacin efectuadas en las bibliotecas.

Gestin de memoria: paginacin y segmentacin


10. Suponga que un proceso emite una direccin lgica igual a 2453 y que se utiliza la tcnica de paginacin, con pginas de 1024 palabras. a) Indique el par de valores (nmero de pgina, desplazamiento) que corresponde a dicha direccin. b) Es posible que dicha direccin lgica se traduzca en la direccin fsica 9322?. Raznelo. Solucin a) pgina =2 y desplazamiento = 405. b) No porque el desplazamiento de la direccin lgica 9322 es 106 ((9322 mod 1024) = 106 ) y debera ser 405 para que fuese posible. 11. En un sistema de gest in de memoria por paginacin, es recomendable que el tamao de pgina sea potencia de 2?. Justifquese la respuesta. Solucin Si. Porque facilita la traduccin de una direccin lgica a un nmero de pginas y desplazamiento. Los bits de mayor peso se ded ican al nmero de pgina, y los de menor peso al desplazamiento dentro de la pgina. De esta manera se ahorra una operacin aritmtica de divisin, que tiene un coste mayor. Se puede aprovechar totalmente el espacio de direcciones.

Sistemas Operativos I

Tema 3. Gestin de Memoria

12. Considere los 4 sistem as con gestin de memoria mediante paginacin A, B, C y D siguientes:

Sistema Tamao de pgina (en palabras) Tamao de palabra (en bits)

A 512 16

B 512 32

C 1024 16

D 1024 32

Asumiendo que slo hay una tabla de pginas para todo el sistema y que la direccin lgica ocupa una palabra (de 16 o 32 bits, segn el caso), determine para cada sistema: a) El tamao de la tabla de pginas (nmero de entradas). b) El tamao de la memoria lgica (nmero de pginas). Solucin Sistema Tamao de pgina (en palabras) Tamao de palabra (en bits) Tamao de la tabla de pginas (en descriptores) Tamao de memoria virtual en pginas del sistema A 512 16 128 descriptores 128 pginas B 512 32 8M descriptores 8M pginas C 1024 16 64 descriptores 64 pginas D 1024 32 4M descriptores 4M pginas

13. Indique en cuales de los siguientes mecanismos de gestin de memoria puede producirse fragmentacin externa: particiones variables, paginacin, segmentacin paginacin por demanda, segmentacin por demanda. Solucin Los mecanismos que pueden producir fragmentacin externa son: particiones variables y segmentacin. En ambos casos pueden quedar en memoria huecos no contiguos cuya suma de tamaos sea suficiente para ubicar un nuevo proceso. 14. Sea un sistema de gestin de memoria basado en la tcnica de la paginacin. Sean tres procedimientos que ocupan 700, 200 y 500 palabras respectivamente. Determine cunta memoria se pierde por fragmentacin interna cuando estos procedimientos se cargan en memoria si el tamao de la pgina es de: 1200 palabras, 2500 palabras, 3600 palabras 4700 palabras. Solucin Tamao de pgina (en palabras) Tamao de procedimiento ( en palabras ) 1200 700 2500 700 3600 700 4700 700

Sistemas Operativos I

Tema 3. Gestin de Memoria

Fragmentacin interna (en palabras) Tamao de pgina (en palabras) Tamao de procedimiento ( en palabras ) Fragmentacin interna (en palabras) Tamao de pgina (en palabras) Tamao de procedimiento ( en palabras ) Fragmentacin interna (en palabras)

500

1800

2900

4000

1200 200 1000

2500 200 2300

3600 200 3400

4700 200 4500

1200 500 700

2500 500 2000

3600 500 3100

4700 500 4200

15. Explique la motivacin y las ventajas de la tcnica de compartir pginas. Solucin Cuando dos o ms procesos ejecutan un mismo programa, la tcnica de comparticin de pginas permite no tener que duplicar el cdigo en memoria con lo que se ahorra espacio en la misma. Piense en un sistema de tiempo compartido donde existen varios usuarios que se encuentran utilizando a la vez un mismo editor o compilador. 16. Los sistemas que usan tabla de pginas invertidas, pueden tener problemas para que los procesos compartan pginas. Indique porqu y como podra solucionarse. Solucin En los sistemas de pginas invertidas la tabla de marcos asocia a cada entrada una pgina de un determinado proceso. Sin embargo para poder compartir pginas, un mismo marco se ha de encontrar asociado al menos a dos pginas de diferentes procesos. Por lo tanto una entrada de la tabla de pginas invertidas debera poder asociarse a ms de una direccin lgica de distintos procesos. 17. Sea un sistema de gestin de memoria basado en la tcnica segmentacin paginada. Las direcciones lgicas tienen en total 28 bits, de los cuales 10 indican el nmero de pgina. Las pginas fsicas o marcos son de 1024 octetos, mientras que las direcciones fsicas son de 24 bits. Suponga que un segmento determinado contiene 4800 octetos. Cunta memoria se desperdicia en fragmentacin interna y externa por causa de dicho segmento?. Justifique la respuesta. NOTA: considere nicamente la memoria asignada al segmento, sin tener en cuenta las tablas de segmentos ni de pginas. Solucin Respuesta fragmentacin interna 320 octetos.

Sistemas Operativos I

Tema 3. Gestin de Memoria

En los sistemas de segmentacin paginada no hay fragmentacin externa, slo interna, ya que lo que se ubica en memoria son pginas del proceso que pertenecen a un segmento u otro, del mismo. La direccin lgica 4800 en este sistema pertenece al segmento 0, pgina 4, desplazamiento 704. 27 20 19 10 9 0 00000000 0000000100 1011000000 N de segmento N de pgina desplazamiento

Por tanto la fragmentacin interna vendr dada por 1024 704 = 320 octetos. 18. Compare la fragmentacin interna provocada por un sistema de memoria virtual con segmentacin paginada frente a uno que nicamente utiliza paginacin. Solucin (Consultar el material proporcionado para las clases de teora y la bibliografa). 19. Enuncie los diferentes esquemas de gestin de memoria vistos en clase detallando, para cada uno, el hardware que requieren y su problemtica de fragmentacin. Solucin (Consultar el material proporcionado para las clases de teora). 20. Razone las ventajas de utilizar la tcnica de compartir segmentos en la llamada al sistema exec() de Unix desde los puntos de vista de gestin de la memoria y de accesos a disco. Solucin Gestin de la memoria: Resulta sencillo compartir el segmento de cdigo con otros procesos que estn ejecutando el mismo programa que se ha especificado como argumento de exec(). Basta para ello, con tener en el PCB de cada proceso un atributo que indique el nombre del programa que est ejecutando. Los segmentos de datos y pila no deben compartirse (no hay que hacer nada especial para ello. El de datos inicializados hay que leerlo del fichero ejecutable). Accesos a disco: Podemos ahorrar algunos accesos si el programa ya est siendo ejecutado por otro proceso y el sistema guarda una copia de la cabecera del fichero ejecutable en memoria (para ese caso). Si el programa no est siendo ejecutado hay que efectuar, como mnimo, la lectura de la cabecera del ejecutable para obtener una descripcin de su mapa de memoria. Normalmente no hay que leer nada ms, pues en la actualidad se utilizan tcnicas de memoria virtual y los segmentos de cdigo, datos, pila y bibliotecas dinmicas se van asignando (y leyendo del disco) a medida que se necesitan. 21. Sea un sistema de memoria segmentado-paginado. Los espacios de direcciones lgicas son de 8Gbytes y el tamao de pgina es de 2Kbytes. Un espacio de direcciones puede tener hasta 256 segmentos y los descriptores de pgina tienen 4 bytes. Diga cual ser el tamao de la tabla de pginas de un segmento.

Sistemas Operativos I

Tema 3. Gestin de Memoria

Solucin La solucin es 64Kb. Ser necesario conocer el nmero mximo de pginas que puede tener un segmento y multiplicarlo por el tamao del descriptor de segmento. Para conocer el nmero mximo de pginas ser necesario conocer el nmero de bits destinado a la pgina en la direccin lgica. Los espacios de direcciones lgicas son de 8Gb Dir. lgicas de 33 bits. El nmero mximo de segmentos de un proceso 256 segmentos 8 bits de la direccin para el nmero de segmento. El tamao de pgina es de 2Kb 11 bits de la direccin para el desplazamiento dentro de la pgina. El nmero de bits para el n de pgina vendr dado por: 33 (8 + 11) = 33 19 = 14 Con lo que los campos y bits de la direccin lgica quedaran:
32 25 24 11 10 0

----segmento-----

-desplazamiento-

Se tienen un total de 14 bits para la pgina y se necesitarn 214 = 16384 descriptores de pginas por segmento. El tamao de la tabla de pginas = 16384 * 4 bytes = 65536 = 64 KB 22. Suponga que un proceso emite las direcciones lgicas (2,18004) (1, 2735) (5, 12219) utilizando un modelo de gestin de memoria basado en segmentacin paginada y que estas tres direcciones lgicas producen respectivamente las tres siguientes direcciones fsicas: 1108, 1327 y 1211. a) Cul es el nmero mximo de bits que se estn utilizando para el desplazamiento dentro de una pgina? b) Cul es el nmero mnimo de bits que se estn utilizando para indicar un nmero de pgina? c) Cul es el nmero mnimo de bits que se estn utilizando para indicar un nmero de marco? Solucin a) La solucin es 7 bits. Necesitamos conocer el tamao de la pgina. Para ello el enunciado nicamente nos indica la correspondencia entre direcciones lgicas y fsicas. Por lo tanto ser necesario ir probando diferentes tamaos de pginas hasta encontrar uno donde los desplazamientos de la direccin fsica y la direccin lgica coincidan. Los tamaos de pgina han de ser potencia de dos y adems ha de ser igual en todo el sistema. Comenzaremos probando por un tamao de pgina de 1024 e iremos calculando el resto de dividir las respectivas direcciones por dicho tamao. Si coinciden los desplazamientos ser necesario probar con un tamao mayor de pgina y si no coinciden probaremos con tamaos menores. Tamao

Sistemas Operativos I

Tema 3. Gestin de Memoria

Pg. 1024 512 direccin lgica 18004 596 84 fsica 1108 84 84 Para esta direccin es vlida un tamao de pgina de 512 o menor. Ahora ser necesario comprobarlo para el resto de direcciones. Tamao Pg. 512 128 direccin lgica 2735 175 47 fsica 1327 303 47 Para esta direccin es vlida un tamao de pgina de 128 o menor. Ahora ser necesario comprobarlo para la ultima direccin que nos proporciona el enunciado. Tamao Pg. 128 direccin lgica 12219 59 fsica 1211 59 El tamao mximo de pgina que puede estar utilizando este sistema es de 128 palabras, por tanto el nmero mximo de bits que se estn utilizando para el desplazamiento es de 7 bits. b) La solucin es 8 bits. Teniendo en cuenta el tamao de pgina calculado en el apartado anterior se puede calcular el nmero de pginas que como mnimo contienen los segmentos de las direcciones lgicas referenciadas. Tamao Pg. 128 direccin lgica (2,18004) 18004 / 128 = 140 n de pgina 18004 mod 128 = 84 desplazamiento lgica (1,2735) 2735 / 128 = 21 n de pgina 2735 mod 128 = 47 desplazamiento lgica (5,12219) 12219 / 128 = 95 n de pgina 12219 mod 128 = 59 desplazamiento Necesitamos un nmero de bits m para indicar las pginas de manera que 2m 140, con lo que m=8. c) La solucin es 4 bits. El tamao de pgina y de marco ha de ser el mismo por tanto dividiendo la direccin fsica ms alta por el tamao de pgina calculado en el apartado a) obtendremos el nmero de marcos que como mnimo hay en el sistema. Tamao marco 128 direccin Fsica 1108 1108/ 128 = 8 n de marco 1108 mod 128 = 84 desplazamiento

10

Sistemas Operativos I

Tema 3. Gestin de Memoria

1327 / 128 = 10 n de marco 1327 mod 128 = 47 desplazamiento Fsica 1211 1211 / 128 = 9 n de marco 1211 mod 128 = 59 desplazamiento Necesitamos un nmero de bits f para referenciar de manera que 2f 9, con lo que f=4. 23. A continuacin se presentan varias situaciones en las que uno o ms procesos generan varias direcciones lgicas. Indique las direcciones fsicas correspondientes segn cada esquema de gestin de memoria. Si no es posible indique ERROR. a) Considere un esquema de particiones variables. Las direcciones lgicas generadas son: (B,530), (A,0,130), (C,1056). Situacin de los procesos: Proceso A B Registro base Registro lmite 0 4020 1360 6300

Fsica

1327

C 1400 2600 b) Considere un esquema de paginacin, con un tamao de pgina de 256 palabras. Las direcciones lgicas generadas son 530, (0, 130), 1046. El contenido de la tabla de pginas es el siguiente: Tabla de pginas 0 4 1 5 2 3 3 6 c) Considere un esquema de segmentacin paginada con un t amao de pgina 128. Las direcciones lgicas generadas son 530, (0, 130), 1046. El contenido de la memoria fsica es el siguiente N de Marco (segmento, pgina) 0 (0, 3) 1 (1, 0) 2 (2, 0) 3 -4 (1, 2) 5 (0, 1) 6 (0, 2) 7 (1,3) Solucin a) Direc. lgica Direc. fsica

(B,530) 4020+530= 4550

(A,0,130) Error no vale este formato

(C, 1046) 1400+1046= 2246

11

Sistemas Operativos I

Tema 3. Gestin de Memoria

b) (0,130) 1046 ERROR no vale ERROR (*) este formato (*) Esta direccin corresponde a la pgina 4 del proceso y segn la tabla de pginas del enunciado esa pgina no existe. c) Direc. lgica Direc. fsica 530 ERROR, no vale este formato (0,130) 5*128+2= 642 1046 ERROR, no vale este formato Direc. lgica Direc. fsica 530 3*256+18= 786

24. Suponga que un proceso emite una direccin lgica (5, 18004) utilizando un modelo de gestin de memoria basado en segmentacin paginada, con pginas de 4096 bytes. a) Indique qu direcciones fsicas de entre las siguientes corresponden a dicha direccin lgica: 1620, 4004, 8004, 9812, 23720. b) Razone si sera mejor o peor utilizar un tamao de pgina de 4000 bytes. c) Indique qu direcciones de entre las siguientes: 0, 18004, 5000, 8192, 23000. Podran ser vlidas como direcciones fsicas base del segmento 5 referenciado en la direccin lgica (5, 18004). Solucin La direccin (5, 18004) corresponde a una direccin lgica del segmento 5, pgina 4 y desplazamiento 1620. a) Respuesta 1620, 9812. Para que en este sistema una direccin fsica dada, pueda corresponderse con una lgica los desplazamiento de ambas han de coincidir. Los desplazamientos corresponden al resto obtenido como resultado de dividir la direccin por el tamao de pgina (direccin mod 4096 = desplazamiento). Direcciones fsicas 8004 9812 3908 1620 Direccin Direccin No vlida vlida

Desplazamiento

1620 1620 Direccin vlida

4004 4004 Direccin No vlida

23720 3240 Direccin No vlida

b) Peor, ya que se requerira hardware adicional en la unidad de gestin de memoria para descomponer la direccin lgica en sus diferentes partes. c) Respuesta las direcciones fsicas base de segmento podran ser 0 y 8192. Nos encontramos en un sistema de segmentacin paginada, es decir, siempre se mapean pginas en memoria. Esto implica que los segmentos siempre se comienzan a ubicar en direcciones mltiplo del tamao de pgina. De las mencionadas en el enunciado las nicas que son mltiplo de 4096 son la 0 y la 8192.

12

Sistemas Operativos I

Tema 3. Gestin de Memoria

25. En un sistema con una memoria fsica de 64K bytes, se accede a la direccin fsica 27214 como respuesta a una direccin lgica emitida por el proceso P1 cuyo tamao es de 15535 bytes. Deducir la(s) direccin(es) lgica emitida(s) por el proceso en cuestin para que haya ocurrido dicho acceso en los siguientes casos: a) Suponiendo un modelo de gestin de memoria paginada con pginas de 4K bytes. b) Suponiendo un modelo de gestin de memoria segmentado con segmentos de 16K bytes. Asuma que los segmentos comienzan siempre en una direccin mltiplo de 16 K bytes y que P1 est contenido en un nico segmento. c) Suponiendo un modelo de gestin de memoria segmentada paginada con pginas de 4K bytes y segmentos de 16K bytes. Asuma que P1 est contenido en un nico segmento. Solucin a) Respuesta: 2638, 6734, 10830 y 14926. Seran todas aquellas direcciones lgicas que no excedan el tamao del proceso y cuyo desplazamiento sea el mismo que en el de la direccin fsica. Direccin fsica 27214 27214 mod 4096 = 2638 desplazamiento 2638 Direcciones lgicas posibles: Pgina 0 desplazamiento 2638 Pgina 1 desplazamiento 2638 Pgina 2 desplazamiento 2638 Pgina 3 desplazamiento 2638 0*4096 + 2638 = 2638 1*4096 + 2638 = 6734 2*4096 + 2638 = 10830 3*4096 + 2638 = 14926

b) Respuesta: (0,10830) Como las direcciones base de segmentos tienen que ser mltiplo de 16Kbytes, tendramos como posibilidades que el segmento se ubique a partir de la direccin 0, 16384 (16K) 32768 (32K). Para que se haya accedido a la direccin fsica 27214 la direccin base del segmento debe ser 16384. Teniendo en cuenta que: base de segmento + desplazamiento = direccin fsica desplazamiento = direccin fsica base de segmento desplazamiento = 27214 16384 =10830 La direccin lgica que se ha emito es: (0,10830). c) Respuesta: (0,2638), (0, 6734), (0,10830), (0, 14926). Se trata de un sistema segmentado paginado por tanto lo que se ubica en memoria son pginas, pudiendo haberse emitido una direccin lgica perteneciente a cualquier pgina del proceso P1 con un desplazamiento igual al de la direccin fsica que se accede. Los clculos son los mismos que los presentados en la solucin del apartado a) de este problema. Por tanto las posibles direcciones lgicas son: (0,2638), (0, 6734), (0,10830), (0, 14926). 26. Supongamos un sistema de gestin de memoria con segmentacin paginada, con pginas de 1Kb. Un proceso emite las siguientes direcciones lgicas: (1, 2487) y (1, 635). A continuacin se muestra la tabla de pginas del segmento 1. Cules sern las direcciones fsicas correspondientes?. Segmento-1: Tabla de pginas
13

Sistemas Operativos I

Tema 3. Gestin de Memoria

0 1 2

3 7 8

Solucin Respuesta: direccin lgica (1, 2487) direccin fsica 8631, direccin lgica (1,635) direccin fsica 3707. Direccin lgica Campos de la direccin lgica Direccin fsica (*) Segmento =1 (1, 2487) Pgina = 2 = 2487 div 1024 8631= 8*1024 + 439 Desplazamiento = 439 = 2487 mod 1024 Segmento =1 (1,635) Pgina = 0 = 635 div 1024 3707= 3*1024 + 635 Desplazamiento = 635 = 635 mod 1024 (*) Para calcular las direcciones fsicas se ha de consultar los descriptores de pginas 2 y 0 de la tabla de pginas, cuyo contenido representa el marco donde se encuentra ubicada, dicha pgina. 27. En un esquema de segmentacin paginada con pginas de 1Kb, Es posible que la direccin lgica (2, 1333) se pudiera traducir a la direccin fsica 3654?. Y a la direccin fsica 2357?. Raznelo. Solucin Respuesta: No es posible 3654, si es posible 2357. Para que las direcciones fsicas 3654 y 2357 sean accedidas como respuesta a la emisin de la direccin lgica (3, 1333) en este sistema, los desplazamiento dentro del marco y de la pgina han de coincidir. Direccin lgica Campos de la direccin lgica Direccin fsica (*) 3654 marco =3 =3654 div 1024 desplaz.= 582= 3654 mod 1024 2357 marco =2=2357 div 1024 desplaz.=309 = 2357 mod 1024 (*) Para que las direcciones fsicas sean vlidas sus desplazamiento deben ser de 309, es decir exactamente igual al de la lgica.

(2, 1333)

Segmento =2 Pgina = 1 = 1333 div 1024 desplaz. = 309 = 1333 mod 1024

14

Sistemas Operativos I

Tema 3. Gestin de Memoria

28. Se tiene un sistema de memoria con paginacin a dos niveles que permite agrupar las pginas en directorios de pginas. Cada directorio de pginas puede contener hasta 256 pginas. Los espacios de direcciones lgicas de este sistema son de 4Gbytes y el tamao de pgina es de 4Kbytes. El espacio de direcciones fsicas que puede tener hasta 1Gb. Describa la estructura de las direcciones lgicas y de las direcciones fsicas de este sistema de memoria virtual. Solucin El espacio de direcciones fsicas es de 1Gbyte = 2 30 byte Se trata de un sistema con tcnica de paginacin, cuyo tamao de pgina es de 4Kbytes= 212 bytes. Por tanto la direccin fsica 30 bits vendr dada por: Direccin fsica 29 12 11 0 Marco Desplazamiento El espacio de direcciones lgicas es de 4Gbyte = 2 32 byte Se trata de un sistema con tcnica de paginacin a dos niveles, cuyo tamao de pgina es de 4Kbytes= 212 bytes. Las pginas se encuentran agrupadas de 256 en 256 en directorios. Por tanto la direccin lgica de 32 bits vendr dada por los siguientes campos: Direccin lgica 31 20 19 12 Directorio de pgina pgina

11 0 desplazamiento

29. Un proceso genera las siguientes direcciones lgicas: 612, 38 y (3,62). Indica las direcciones fsicas correspondientes segn cada esquema de gestin de memoria. Si no es posible indicar ERROR. a) Particiones Variables con Registro Base=150 y Registro Lmite=220. b) Paginacin, con un tamao de pgina de 128 palabras. La tabla de pginas del proceso es la siguiente: Tabla de pginas 0 1 1 4 2 2 3 5 c) Segmentacin. La tabla de segmentos del proceso es la siguiente: Base Lmite 0 200 20 1 50 10 2 105 49 3 320 70 Solucin Direccin Lgica 612 Direccin Lgica 38 Direccin Lgica (3, 62)

15

Sistemas Operativos I

Tema 3. Gestin de Memoria

a) Direccin fsica b) Direccin fsica (paginacin) c) Direccin fsica (segmentacin)

ERROR, excede el lmite. ERROR, excede el n de pginas del proceso. ERROR de formato de direccin

Base + 38 = 188 1*128 +38 =166

ERROR de formato de direccin ERROR de formato de direccin

ERROR de formato 320+62= 382 de direccin

Para el apartado b) es necesario conocer la pgina y desplazamiento de cada una de las direcciones fsicas y en funcin de la pgina que obtengamos consultar la tabla de pginas. Direccin 612: Pgina = 612 div 128 = 4; Desplazamiento = 612 mod 128=102; Direccin 38: Pgina = 38 div 128 = 0; Desplazamiento = 38 mod 128=38; 30. Suponga que un proceso emite la direccin lgica (2,18004) utilizando un modelo de gestin de memoria basado en segmentacin y el espacio de memoria fsica es de 64K bytes. a) A qu direcciones fsicas de las siguientes (11084, 33270 y 22112) , sera posible traducir dicha direccin lgica ? b) Cual sera el resultado de traducir la direccin lgica (0,65536) en dicho sistema ? Justificar la respuesta. Solucin a) Respuesta 33270 y 22112. Sera con aquellas direcciones fsicas superiores a 18004, para que fuese posible un desplazamiento de ese tamao. Por tanto sera 33270, con un contenido del registro base de segmento de 15266 (registro base segmento = 33270-18004=15266). Y la direccin 22112, con un contenido del registro base de segmento de 4108 (registro base segmento = 22112-18004=4108). b) Respuesta: dara error. La direccin lgica (0, 65536) se debe corresponder con una direccin fsica que tenga un desplazamiento de 65536. El tamao de la memoria fsica es de 64K bytes = 65536 bytes, por tanto la direccin ms alta de memoria es la 65535 y no puede haber un desplazamiento superior a ese tamao. 31. En el caso de utilizar un modelo de memoria basado en particiones fijas (tamao de las particiones 4K, 12K, 16K, 32K bytes respectivamente y ubicadas en orden de direcciones crecientes) a qu direcciones fsicas de las siguientes (9701, 26085, 32768) se puede corresponder la direccin lgica 9701? Solucin Respuesta: la direccin lgica 9701 se puede corresponder con la fsica 26085. Las particiones fijas se encontraran ubicadas en memoria de la siguiente manera:

16

Sistemas Operativos I

Tema 3. Gestin de Memoria

Memoria Principal
0 4095 4096 16383 16384 22527 22528 65535

Particin de 4K Particin de 12K Particin de 16K Particin de 32K

Si se ha referenciado la direccin lgica 9701, en un modelo de particiones fijas, esto implica que el proceso slo ha podido ser ubicado en una particin cuyo tamao sea superior a 9701 bytes. Las posibilidades seran: 1) Que estuviese ubicado en la particin 2, con lo que la direccin fsica vendra dada por 4096+9071= 13167. 2) Que estuviese ubicado en la particin 3, con lo que la direccin fsica vendra da por 16384+9071= 26085. Esta coincide con una de las opciones del enuciado. 3) Que estuviese ubicado en la particin 4, con lo que la direccin fsica vendra da por 22528+9071= 31599.

32. De entre todos los esquemas de gestin de memoria estudiados (tanto con asignacin contigua como con asignacin dispersa), indique cules cumplen cada una de las siguientes caractersticas: a) Posibilidad de compartir memoria. b) Presentan fragmentacin externa. Solucin a) Los esquemas de gestin de memoria que permiten compartir la misma por varios procesos son: segmentacin, paginacin y segmentacin paginada. b) Fragmentacin externa presentan los esquemas de particiones de tamao variable y segmentacin.

33. En un PC con un Intel Pentium (pginas de 4 Kbytes), tres procesos P1, P2 y P3 han emitido algunas direcciones lgicas que la MMU ha traducido en sus direcciones fsicas asociadas. Asuma que los tres procesos estn en memoria y que no se utiliza memoria virtual ni intercambio. Indique qu tipo (o tipos) de gestin de memoria pueden utilizarse en ese sistema para que se haya podido dar esa traduccin, cuando los tres procesos emitan la misma direccin lgica. Elija entre: segmentacin, paginacin, segmentacin paginada e imposible (la traduccin no puede llevarse a cabo suponiendo que los tres procesos estn a la vez en memoria). a) Direccin lgica: (0, 5120) 40960 b) Direccin lgica: (0, 17080) 33464 Direcciones fsicas: P1: 6000, P2: 18000, P3: Direcciones fsicas: P1: 4792, P2: 17080, P3:

Solucin Por el formato de la direccin lgica nicamente pueden ser segmentacin o segmentacin paginada. a) Respuesta: segmentacin.

17

Sistemas Operativos I

Tema 3. Gestin de Memoria

Todas las direcciones fsicas de los procesos P1, P2 y P3 son superiores a 5120, por tanto se podra estar utilizando la tcnica de segmentacin, teniendo en cuenta que para cada proceso tiene el segmento ubicado a partir de una direccin fsica determinada. En el caso de utilizar un modelo de segmentacin paginada, los desplazamientos de la pgina y de los marcos deberan coincidir para que fuese posible la traduccin de direcciones. En este caso no coinciden por lo tanto no es posible esta tcnica.
Direc. fsica P1 Direccin lgica (0,5120) Segmentacin Segmento=0 Desplaz. 5120 Segmentacin Paginada Segmento=0 Pgina= 5120/4096=1 Desplaz.= 5120mod 4096= 1024 6000 Base segmento= 6000-5120=860 Marco= 6000/4096= 1 Desplaz.= 6000mod 4096= 1904 Direc. fsica P2 18000 Base segmento= 1800-5120=12880 Marco= 18000/4096= 4 Desplaz.= 18000mod4096= 1616 Direc. fsica P3 40960 Base segmento= 40960-5120= 35840 Marco= 40960/4096= 10 Desplaz.= 40960mod 4096= 0

b ) Respuesta: Se gmentacin paginada. No es posible que se haya utilizado un modelos de segmentacin, ya que las direcciones fsicas de los procesos no son superiores a el desplazamiento de la direccin lgica 17080. En un modelo de segmentacin paginada, los desplazamientos de la pgina y de los marcos deben coincidir como ocurre en este caso.
Direc. fsica P1 Direccin lgica (0,17080) Segmentacin Paginada Segmento=0 Pgina= 17080/4096=4 Desplaz.= 17080mod 4096= 696 4792 Marco= 4792/4096= 1 Desplaz.= 4792mod 4096= 696 Direc. fsica P2 17080 Marco= 17080/4096= 4 Desplaz.= 17080mod4096= 696 Direc. fsica P3 33464 Marco= 33464/4096= 8 Desplaz.= 33464mod 4096= 696

34. Se tiene un sistema de memoria con paginacin a dos niveles en el que las pginas se agrupan en direct orios de pginas, cada uno de los cuales contiene 256 pginas. Los espacios de direcciones lgicas son de 4Gbytes y el tamao de pgina es de 4Kbytes. El espacio de direcciones fsicas que puede tener hasta 1Gb. Este sistema est soportado por una MMU en el que los descriptores de pgina contienen un bit de validez, tres bits para proteccin y dos bits para implementar un algoritmo de aproximacin al LRU (adems de la informacin para la traduccin de direcciones). Se tiene un determinado proceso con el siguiente espacio de direcciones lgicas disperso con las siguientes regiones (las direcciones son en hexadecimal): 00000000 10088000 : Cdigo y datos del programa 40000000 52000000 : Biblioteca dinmica

18

Sistemas Operativos I

Tema 3. Gestin de Memoria

BF000000 C0000000 : Pila Cual ser el tamao de la tabla de pginas de dicho proceso, y cual sera el tamao mximo que podra llegar a tener?. Solucin Respuesta: El tamao de la tabla de pginas de este proceso ser aproximadamente de 420,4 Kbytes, mientras que el tamao mximo permitido en este sistema es de 3Mbytes. El espacio de direcciones fsicas es de 1Gbyte = 2 30 byte. Se trata de un sistema con tcnica de paginacin, cuyo tamao de pgina es de 4Kbytes= 212 bytes. Por tanto la direccin fsica 30 bits vendr dada por: Direccin fsica 12 11 Desplazamiento

29 Marco

El espacio de direcciones lgicas es de 4Gbyte = 2 32 byte. Se trata de un sistema con tcnica de paginacin a dos niveles, cuyo tamao de pgina es de 4Kbytes= 212 bytes. Las pginas se encuentran agrupadas de 256 en 256 en directorios. Por tanto la direccin lgica de 32 bits vendr dada por los siguientes campos: Direccin lgica 31 20 19 12 Directorio de pgina pgina

11 0 desplazamiento

Para calcular el tamao de la tabla de pginas necesitaremos conocer el nmero de pginas que ocupa el proceso y el tamao de sus descriptores de pginas. Descriptor de pgina = 24 bits = 3 bytes -----------18 bits---------- --------------------6 bits----------------- Nmero de Marco 1bit val.+3 bits proteccin+2 bits LRU Nmero de pginas que ocupa el proceso: Region cdigo: 0x10088000 / 4Kbytes = 0x10088 pginas = 65672 pags Regin biblioteca dinmica: (52000-40000)= 0x12000 pags = 73728 pags Region pila: (C0000BF000)= 0x1000 pags = 4096 pags Total descriptores = 0x69198 = 65672+73728+4096=143.496 descriptores Tamao descriptor = 18 + 1 + 3 + 2 = 24 bits = 3 bytes Tamao tabla de pginas para el proceso =:143.496 x 3 = 430.488 bytes = 420.4 Kb aproximadamente. El tamao mximo de la tabla de pginas que podr tener un proceso en este sistema, vendr delimitado por el espacio mximo de direccionamiento lgico. Por tanto tendremos que : Tamao mximo del proceso = 4 Gb = 22 230 = 232 / 212 pags = 1 Mpags Tamao mximo de la tabla de pginas = 1M x 3 bytes = 3 Mb

19

Sistemas Operativos I

Tema 3. Gestin de Memoria

35. Describa cul es la forma de detectar una direccin no vlida en los siguientes mtodos de gestin de memoria. a) Paginacin. b) Segmentacin. c) Segmentacin paginada. Solucin a) En paginacin la forma de detectar una direccin no vlida es mediante la comprobacin en su tabla de pginas de la no existencia de la pgina a la que pertenece dicha direccin, para el proceso que la ha emitido. b) En segmentacin la forma de detectar una direccin no vlida es mediante la comprobacin de que el desplazamiento de la direccin lgica emitida ha de ser menor que el tamao del segmento correspondiente, el cual se encuentra almacenado en su tabla de segmentos. c) En segmentacin paginada la forma de detectar una direccin no vlida es la misma que se realiza en segmentacin (apartado b).

Gestin de memoria: Memoria Virtual.


36. Existe alguna incompatibilidad entre los algoritmos de asignacin (reparto) de marcos entre procesos (asigancin equitativa, proporcional, prioritaria) y el mbito de reemplazo de pginas (local o global)?. Justifque la respuesta. Solucin El algoritmo de asignacin de marcos establece la poltica de reparto de la memoria fsica a los procesos. Es decir, el nmero de marcos que debe tener asignado cada proceso. Si el algoritmo de reemplazo utilizado es global, el nmero de marcos asignado a cada proceso se puede modificar dinmicamente, por lo que el algoritmo de asignacin podra no respetarse, o bien slo tendra sentido inicialmente. Por el contrario, si el mbito del algoritmo de reemplazo es local (slo afecta a los marcos asignados al proceso), no hay ninguna incompatibilidad, ya que en todo momento se respeta la asignac in de memoria. 37. Sea un sistema de gestin de memoria virtual con paginacin por demanda, con un tamao de memoria principal de 5000 palabras y un tamao de pgina de 1000 palabras. En un momento determinado se tienen 3 procesos P1, P2 y P3 en el sistema que generan la siguiente secuencia de direcciones lgicas (se han representado pares compuestos por proceso y la direccin lgica): (P1,1023) (P2,0224) (P1,0783) (P3,3848) (P3,1089) (P3,0098) (P2,2345) (P1,0787) (P1,1654) (P3,2899) (P3,3008) (P3,1111). Realice un diagrama de la situacin de cada pgina en memoria fsica en los siguientes casos: a) Utilizando un algoritmo de reemplazo global segn la poltica ptima. b) Utilizando un algoritmo de reemplazo local segn la poltica ptima. Solucin La memoria fsica estar formada por 5 marcos que inicialmente supondremos vacos.

20

Sistemas Operativos I

Tema 3. Gestin de Memoria

El algoritmo ptimo elige como pgina a reemplazar aquella que tardar ms tiempo en ser referenciada. Mientras no se encuentren ocupados los marcos de memoria no ser necesario reemplazar, por tanto, si indicamos con t el instante de tiempo, tendremos que las 5 primeras a pginas ocuparan los 5 marcos. t=0 (P1,1023) P1, Pg. 1 P1, Pg. 1 ----t=1 (P2,0224) P2, Pg. 0 P1, Pg. 1 P2, Pg. 0 ---t=3 (P1,0783) P1, Pg. 0 P1, Pg. 1 P2, Pg. 0 P1, Pg. 0 --t=4 (P3,3848) P3, Pg. 3 P1, Pg. 1 P2, Pg. 0 P1, Pg. 0 P3, Pg. 3 -t=5 (P3,1089) P3, Pg. 1 P1, Pg. 1 P2, Pg. 0 (*a) P1, Pg. 0 P3, Pg. 3 P3, Pg. 1 (*b)

Dir. N marco 0 1 2 3 4

A partir de este instante ser necesario hacer reemplazos y seleccionar victima. Los * representan las victimas seleccionadas en el prximo instante de tiempo. As (*a) es para la solucin del apartado a) y (*b) para la solucin del apartado b). a) Algoritmo de reemplazo global. t=6 t=7 t=8 t=9 (P3,0098) (P2,2345) (P1,0788) (P1,1654) P3, Pg. 0 P2, Pg. 2 P1, Pg. 0 P1, Pg. 1 P1, Pg. 1 P1, Pg. 1 P1, Pg. 1 P1, Pg. 1* P3, Pg. 0 * P2, Pg. 2 P2, Pg. 2 P2, Pg. 2 P1, Pg. 0 P1, Pg. 0 P1, Pg. 0 P1, Pg. 0 P3, Pg. 3 P3, Pg. 3 P3, Pg. 3 P3, Pg. 3 P3, Pg. 1 P3, Pg. 1 P3, Pg. 1 P3, Pg. 1

t=10 (P3,2899) P3, Pg. 2 P3, Pg. 2 P2, Pg. 2 P1, Pg. 0 P3, Pg. 3 P3, Pg. 1

t=11 (P3,3008) P3, Pg. 3 P3, Pg. 2 P2, Pg. 2 P1, Pg. 0 P3, Pg. 3 P3, Pg. 1

t=12 (P3,1111) P3, Pg. 1 P3, Pg. 2 P2, Pg. 2 P1, Pg. 0 P3, Pg. 3 P3, Pg. 1

Los * representan las victimas seleccionadas en el prximo instante de tiempo. En los instantes t=8, t=9,t=11 y t=12 no es necesario elegir victima ya que la pgina referenciada se encuentra en memoria. b) Algoritmo de reemplazo local. Se selecciona la victima entre marcos ocupados por el mismo proceso. t=6 t=7 t=8 t=9 t=10 t=11 t=12 (P3,0098) (P2,2345) (P1,0788) (P1,1654) (P3,2899) (P3,3008) (P3,1111) P3, Pg. 0 P2, Pg. 2 P1, Pg. 0 P1, Pg. 1 P3, Pg. 2 P3, Pg. 3 P3, Pg. 1 P1, Pg. 1 P1, Pg. 1 P1, Pg. 1 P1, Pg. 1 P1, Pg. 1 P3, Pg. 2 P3, Pg. 2 P2, Pg. 0 * P2, Pg. 2 P2, Pg. 2 P2, Pg. 2 P2, Pg. 2 P2, Pg. 2 P2, Pg. 2 P1, Pg. 0 P1, Pg. 0 P1, Pg. 0 P1, Pg. 0 P1, Pg. 0 P1, Pg. 0 P1, Pg. 0 P3, Pg. 3 P3, Pg. 3 P3, Pg. 3 P3, Pg. 3 P3, Pg. 3 P3, Pg. 3 P3, Pg. 3 P3, Pg. 0 P3, Pg. 1 P3, Pg. 1 P3, Pg. 1* P3, Pg. 2 P3, Pg. 2* P3, Pg. 1

21

Sistemas Operativos I

Tema 3. Gestin de Memoria

38. Un determinado sistema operativo gestiona la memoria virtual mediante paginacin por demanda. La direccin lgica tiene 24 bits, de los cuales 14 indican el nmero de pgina. La memoria fsica tiene 5 marcos. El algoritmo de reemplazo de pginas es el LRU LOCAL, y se ha implementado mediante un contador asociado a cada pgina que indica el instante de tiempo en que se referenci la pgina por ltima vez. Las tablas de pginas en el instante 16 son: Tabla de pginas proceso A Marco Bit de Contador validez 1 v 10 2 v 15 i 6 i 5 Tabla de pginas proceso B Marco Bit de Contador validez 0 v 7 i 2 i 3 3 v 4 4 v 11

0 1 2 3

0 1 2 3 4

Indique las direcciones fsicas generadas para la siguiente secuencia de direcciones lgicas: (A, 2900) (B, 1200) (A, 1850) (A, 3072) (B, 527) (B, 2987) (A, 27) (A, 2000) (B, 4800) (B, 1500). Solucin Para poder traducir las direcciones lgicas a fsicas hay que conocer el marco donde se ha ubicado la pgina correspondiente. En este caso el tamao de pgina es de 1024 palabras, ya que la direccin lgica es de 24 bits de los cuales 14 son para indicar la pgina quedan 10 bits para el desplazamiento dentro de la pgina. Consultando la tabla de pginas podemos componer el estado inicial de la memoria. Por comodidad al lado de cada marco se representar el contado LRU. Por lo tanto en la memoria principal tendremos: N Inicial Cont. marco t=15 LRU 0 B,0 7 1 A,0 10 2 A,1 15 3 B,3 4 4 B,4 11 B,0 t=20 B,0 A,3 A,1 B,1 B,4 Cont. B,2 LRU t=21 20 B,0 19 A,3 18 A,1 17 B,1 11 B,2 A,2 t=16 B,0 A,2 A,1 B,3 B,4 Cont. LRU 7 16 15 4 11 B,1 t=17 B,0 A,2 A,1 B,1 B,4 Cont. LRU 7 16 15 17 11 A,1 t=18 B,0 A,2 A,1 B,1 B,4 Cont. LRU 7 16 18 17 11 A,3 t=19 B,0 A,3 A,1 B,1 B,4 Cont. LRU 7 19 18 17 11

0 1 2 3 4

Cont. A,0 Cont. A,1 Cont. B,4 Cont. B,1 Cont. LRU t=22 LRU t=23 LRU t=24 LRU t=25 LRU 20 B,0 20 B,0 20 B,0 20 B,1 25 19 A,3 19 A,1 23 A,1 23 A,1 23 18 A,0 22 A,0 22 A,0 22 A,0 22 17 B,1 17 B,1 17 B,4 24 B,4 24 21 B,2 21 B,2 21 B,2 21 B,2 21

22

Sistemas Operativos I

Tema 3. Gestin de Memoria

Direccin Lgica = U (A, 2900) (B,1200) (A,1850) (A, 3072) (B,527) (B,2987) (A,27) (A,2000) (B,4800) (B,1500)

Pgina = U div 1024 2 1 1 3 0 2 0 1 4 1

Desplazamiento= U mod 1024 852 176 826 0 527 939 27 976 704 476

Direccin fsica= Marco * 1024 + Desplazamiento 1*1024+852=1876 3*1024+176=3248 2*1024+826=2874 1*1024+0=1024 0*1024+527=527 4*1024+939=5035 2*1024+27=2075 1*1024+976=2000 3*1024+704=3776 0*1024+476=476

39. Un sistema de memoria virtual con paginacin por demanda, tiene un tamao de pgina de 512 palabras, una memoria virtual de 16 pginas numeradas del 0 al 15 una memoria fsica de 4 marcos (frames) numerados de 0 a 3. El contenido actual de la memoria es: N marco 0 Pg. 4 del proceso P 1 Pg. 9 del proceso P 2 Pg. 5 del proceso P 3 Pg. 1 del proceso P a) Mostrar el contenido de la tabla de pginas . b) Suponiendo un algoritmo de reemplazo de pginas con estrategia ptima, mostrar el contenido de la tabla de pginas, tras generar cada una de las siguientes direcciones lgicas: 1112, 1645, 2049, 622, 2776 . c) Direcciones fsicas equivalentes a las lgicas 1628, 851, 2700 y 2432. d) Qu pasa cuando se referencia la direccin lgica 1330?. e) Si la pgina cargada en el marco 3 es un procedimiento que otro proceso Q quiere compartir, dnde debe aparecer en la tabla de pginas de Q? Solucin a) Mirando el contenido de la memoria principal y teniendo en cuenta que la tabla de pginas para el proceso tendr un descriptor por cada pgina obtenemos que: Tabla de pginas Marco Bit de validez 0 3 1 0 0 0 1 2 1 0 0 Tabla de pginas Marco Bit de validez 0 1 1 0 0 0 0 0 0

0 1 2 3 4 5 6 7

8 9 10 11 12 13 14 15

23

Sistemas Operativos I

Tema 3. Gestin de Memoria

b) En primer lugar ser necesario conocer a que pgina pertenece cada una de las direcciones lgicas, para ello realizaremos la operacin: Pgina = direccin_lgica div tamao_pgina= direccin_lgica div 512 Desplazamiento = direccin_lgica mod tamao_pgina Direccin lgica 1112 1645 2049 622 2776 Pgina 2 3 4 1 5 desplazamiento 88 109 1 110 216 A continuacin representaremos la memoria tras estas referencias, aplicando el algoritmo ptimo para reemplazo de pginas. Referencia Referencia Referencia Referencia Referencia inicial Pg. 2 * Pg. 3 * Pg. 4 Pg. 1 Pg. 5 0 Pg. 4 Pg. 4 Pg. 4 Pg. 4 Pg. 4 Pg. 4 1 Pg. 9 Pg. 2 Pg. 3 Pg. 3 Pg. 3 Pg. 3 2 Pg. 5 Pg. 5 Pg. 5 Pg. 5 Pg. 5 Pg. 5 3 Pg. 1 Pg. 1 Pg. 1 Pg. 1 Pg. 1 Pg. 1 El * indica que hay fallo de pgina, por lo tanto hay que seleccionar una victima. Se elige como victima aquella que se tarda ms tiempo en volver a referenciar o que ya no se vuelve a referenciar. Cuando se hace referencia a la pgina 2, se elige como victima la pgina 9, que ya no se va a volver a referenciar. Cuando se referencia a la pgina 3 se elige como victima a la 2 que ya no se vuelve a referenciar. En este instante el contenido de la tabla de pginas ser el siguiente: Tabla de pginas Marco Bit de validez 0 3 1 0 1 1 0 1 2 1 0 0 Tabla de pginas Marco Bit de validez 0 1 0 0 0 0 0 0 0 marco

0 1 2 3 4 5 6 7

8 9 10 11 12 13 14 15

c) La traduccin de direcciones se realiza consultando la tabla de pginas: Pgina Desplazamiento Dir. Fsica Marco*512 + desplazamiento 1628 3 92 1*512 + 92 = 604 851 1 339 3*512+339= 1875 2700 5 140 2*512+140= 1164 2432 4 384 0*512+384= 384 d) Si a continuacin se referencia la direccin lgica 1330 tendremos un fallo de pgina, ya que esta direccin lgica pertenece a la pgina 2, cuyo bit de validez en la tabla de pginas est a invalido.
24

Dir. lgica

Sistemas Operativos I

Tema 3. Gestin de Memoria

e) Depende del tipo de direccionamiento que se este empleando en el cdigo de la pgina a compartir. Si se trata de direccionamiento relativo, esta procedimiento podra estar ubicado en cualquier pgina del proceso Q, y por tanto el descriptor correspondiente debera contener el marco 3. Si se trata de de direccionamiento absoluto, debera aparecer en la misma entrada donde aparece para el proceso P, ya que en caso contrario el cdigo presente en ella podra no funcionar bien (Si hay una instruccin de salto que no es relativa al valor del contador de programa, y la posicin destino de ese salto se encuentra en la misma pgina, se est obligando a que ese marco est asociado siempre a la misma pgina para todos los procesos que lo utilicen). Por tanto, ha de aparecer asociado a la pgina 1 del proceso Q. 40. En un determinado sistema con memoria virtual con paginacin por demanda, una direccin lgica consta de 16 bits, 10 de offset (desplazamiento) y 6 para el nmero de pgina. Se dispone de 4 marcos. Dada la siguiente secuencia de direcciones lgicas: 512 1102 2147 3245 5115 5200 4090 4207 1070 6200

7168 8200 7200 8300 9300 7410 8525 9700 5300 4387 1007 Se pide: a) Dar la secuencia de referencias a pginas. b) Contar el nmero de fallos de pgina suponiendo los algoritmos de reemplazo FIFO, LRU y PTIMO. Solucin Tamao de pgina es de 1024 bytes = 2 10 a) La secuencia de referencia de pginas representa la secuencia de pginas que han sido accedidas durante cierto periodo de tiempo. Pgina = direccin_lgica div 1024 Secuencia de referencia pginas = 0, 1, 2, 3, 4, 5, 3, 4, 1, 6, 7, 8, 7, 8, 9, 7, 8, 9, 5, 4, 0. b) Se supone inicialmente la memoria vaca, con lo que habr 4 fallos de pgina hasta llenarla. Algoritmo de reemplazo FIFO. Se elige como victima la pgina que mas tiempo lleva en memoria. marco Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. 0,1,2,3 4 5 3 4 1 6 7 8 0 Pg.0 Pg.4 Pg.4 Pg.4 Pg.4 Pg.4 Pg.4 Pg.7 Pg.7 1 Pg.1 Pg.1 Pg.5 Pg.5 Pg.5 Pg.5 Pg.5 Pg.5 Pg.8 2 Pg.2 Pg.2 Pg.2 Pg.2 Pg.2 Pg.1 Pg.1 Pg.1 Pg.1 3 Pg.3 Pg.3 Pg.3 Pg.3 Pg.3 Pg.3 Pg.6 Pg.6 Pg.6 marco 0 1 2 3 Pg. 7 Pg.7 Pg.8 Pg.1 Pg.6 Pg. 8 Pg.7 Pg.8 Pg.1 Pg.6 Pg. 9 Pg.7 Pg.8 Pg.9 Pg.6 Pg. 7 Pg.7 Pg.8 Pg.9 Pg.6 Pg. 8 Pg.7 Pg.8 Pg.9 Pg.6 Pg. 9 Pg.7 Pg.8 Pg.9 Pg.6 Pg. 5 Pg.7 Pg.8 Pg.9 Pg.5 Pg. 4 Pg.4 Pg.8 Pg.9 Pg.5 Pg. 0 Pg.7 Pg.0 Pg.9 Pg.5

25

Sistemas Operativos I

Tema 3. Gestin de Memoria

Los fallos de pgina se han resaltado en negrita. Total de fallos de pgina = 14. Algoritmo de reemplazo LRU. Se selecciona como victima la pgina de memoria que hace ms tiempo que no se ha referenciado. marco Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. 0,1,2,3 4 5 3 4 1 6 7 8 0 Pg.0 Pg.4 Pg.4 Pg.4 Pg.4 Pg.4 Pg.4 Pg.4 Pg.8 1 Pg.1 Pg.1 Pg.5 Pg.5 Pg.5 Pg.5 Pg.6 Pg.6 Pg.6 2 Pg.2 Pg.2 Pg.2 Pg.2 Pg.2 Pg.1 Pg.1 Pg.1 Pg.1 3 Pg.3 Pg.3 Pg.3 Pg.3 Pg.3 Pg.3 Pg.3 Pg.7 Pg.7 Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. 7 8 9 7 8 9 5 4 0 0 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8 Pg.0 1 Pg.6 Pg.6 Pg.6 Pg.6 Pg.6 Pg.6 Pg.5 Pg.5 Pg.5 2 Pg.1 Pg.1 Pg.9 Pg.9 Pg.9 Pg.9 Pg.9 Pg.9 Pg.9 3 Pg.7 Pg.7 Pg.7 Pg.7 Pg.7 Pg.7 Pg.7 Pg.4 Pg.4 Los fallos de pgina se han resaltado en negrita. Total de fallos de pgina = 14. Algoritmo de reemplazo PTIMO. Se selecciona como victima aquella pgina de memoria que ms tiempo se va a tardar en referenciar o que nunca se va a referenciar. marco Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. 0,1,2,3 4 5 3 4 1 6 7 8 0 Pg.0 Pg.0 Pg.5 Pg.5 Pg.5 Pg.5 Pg.5 Pg.5 Pg.5 1 Pg.1 Pg.1 Pg.1 Pg.1 Pg.1 Pg.1 Pg.6 Pg.6 Pg.8 2 Pg.2 Pg.4 Pg.4 Pg.4 Pg.4 Pg.4 Pg.4 Pg.4 Pg.4 3 Pg.3 Pg.3 Pg.3 Pg.3 Pg.3 Pg.3 Pg.3 Pg.7 Pg.7 Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. 7 8 9 7 8 9 5 4 0 0 Pg.5 Pg.5 Pg.5 Pg.5 Pg.5 Pg.5 Pg.5 Pg.5 Pg.0 1 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8 Pg.8 2 Pg.4 Pg.4 Pg.9 Pg.9 Pg.9 Pg.9 Pg.9 Pg.9 Pg.9 3 Pg.7 Pg.7 Pg.7 Pg.7 Pg.7 Pg.7 Pg.7 Pg.4 Pg.7 Los fallos de pgina se han resaltado en negrita. Total de fallos de pgina = 12. 41. Supongamos un sistema de gestin de memoria virtual basado en segmentacin paginada, con un tamao de pgina de 1000 palabras y una memoria principal de 3000 palabras. Las tablas de segmentos y las de p gina asociadas a cada segmento estn ubicadas en registros (no ocupan espacio en memoria principal). Cada proceso consta de un espacio de direcciones lgicas dividido en 3 segmentos, uno para los datos (seg 0), otro para el cdigo (seg 1) y el ltimo para la pila (seg 2). En el sistema tenemos actualmente un solo proceso de las siguientes dimensiones (en palabras): marco marco

26

Sistemas Operativos I

Tema 3. Gestin de Memoria

segmento 0 1 2

longitud 1300 2100 1000

Suponiendo que ha sido generada la siguiente secuencia de direcciones lgicas durante la ejecucin del proceso en cuestin: (0, 0300) (0, 1200) (1, 0058) (0, 1112) (1, 1048) (2, 0354) (0, 1035) (0, 0036) (1, 2050) (1, 0128) Calcular la correspondiente secuencia de direcciones fsicas que se generar si se utiliza un algoritmo de reemplazo de pginas LRU. Solucin Tamao de pgina de 1000 palabras (0, 0300) (0, 1200) (1, 0058) (0,1112) (1, 1048) (2, 0354) (0, 1035) Seg. 0 0 1 0 1 2 0 Pag. 0 1 0 1 1 0 1 Desp. 300 200 58 112 48 354 35 (0, 0036) (1, 2050 (1, 0128) Seg. 0 1 1 Pag. 0 2 0 Desp. 36 50 128 Supongamos que la memoria principal se encuentra inicialmente vaca, con lo que insertaremos en ella 3 pginas. Los fallos de pgina se han resaltado en negrita Seg, pag Seg,pag Seg,pag Seg,pag Seg,pag Seg,pag Seg,pag Seg,pag marco (0,0), 0,1 1,1 2,0 0,1 0,0 1,2 1,0 (0,1) (1,0) 0 (0,0) (0,0) (1,1) (1,1) (1,1) (0,0) (0,0) (0,0) 1 (0,1) (0,1) (0,1) (0,1) (0,1) (0,1) (0,1) (1,0) 2 (1,0) (1,0) (1,0) (2,0) (2,0) (2,0) (1,2) (1,2) 42. En un sistema paginado con 4 marcos en memoria, se hacen las siguientes r eferencias a pginas: {c, a, d, b, e, b, a, b, c, d}. Suponiendo que tenemos inicialmente en memoria las pginas {a, b, c, d} (en ese orden), analcese el contenido en memoria para cada una de las siguientes polticas de reemplazo: a) PTIMO. b) FIFO. c) LRU. Solucin Las referencias a pgina son: {c, a, d, b, e, b, a, b, c, d}. a) Algoritmo de reemplazo ptimo.

27

Sistemas Operativos I

Tema 3. Gestin de Memoria

marco inicial Ref. c Ref. a Ref. d Ref. b Ref. e Ref. a Ref. b Ref. c Ref. d 0 a a a a a a a a a d 1 b b b b b b b b b b 2 c c c c c c c c c c 3 d d d d d e e e e e Los fallos de pgina se han resaltado en negrita b) Algoritmo de reemplazo FIFO. marco inicial Ref. c Ref. a Ref. d Ref. b Ref. e Ref. a Ref. b Ref. c Ref. d 0 a a a a a e e e e d 1 b b b b b b a a a a 2 c c c c c c c b b b 3 d d d d d d d d c c Los fallos de pgina se han resaltado en negrita c) Algoritmo de reemplazo LRU. marco inicial Ref. c Ref. a Ref. d Ref. b Ref. e Ref. a Ref. b Ref. c Ref. d 0 a a a a a a a a a a 1 b b b b b b b b b b 2 c c c c c e e e e d 3 d d d d d d d d c c Los fallos de pgina se han resaltado en negrita 43. Sea un sistema de memoria virtual por paginacin por demanda, en el que: Una direccin lgica consta de 12 bits, de los cuales 3 son para el nmero de pgina. Una direccin fsica contiene 11 bits. Existen dos procesos (A y B), y toda la memoria fsica se reparte entre estos dos procesos por igual. Se utiliza un algoritmo de reemplazo local de pginas LRU. Dar, para la siguiente secuencia de direcciones lgicas, el correspondiente mapa de memoria: (A, 1035) (B, 312) (A, 530) (B, 780) (A, 600) (A, 2000) (B, 1400) (B, 927) (A, 1030) (A, 1720) Nota: el par (a,x) indica (proceso, dir. lgica en decimal) Solucin Direccin lgica de 12 bits = 3 bits nmero de pg. + 9 bits de desplazamiento. Tamao de pgina de 512 palabras. La direccin fsica es de 11 bits = 2 bits nmero de marco + 9 bits de desplazamiento. Los marcos se reparten por igual 2 marcos para el proceso A y 2 marcos para el proceso B.

28

Sistemas Operativos I

Tema 3. Gestin de Memoria

A, 1035 B, 312 marco A, pg. 2 B, pg. 0 0 A,2 A,2 1 B,0 2 3 B, 927 A,1030 B, pg. 1 A, pg. 1 A,3 A,3 B,2 B,2 A,1 A,1 B,1 B,1

A, 530 A, pg. 1 A,2 B,0 A,1

B,780 B, pg. 1 A,2 B,0 A,1 B,1

A, 600 A, pg. 1 A,2 B,0 A,1 B,1

A, 2000 A, pg. 3 A,3 B,0 A,1 B,1

B, 1400 B, pg.2 A,3 B,2 A,1 B,1

marco 0 1 2 3

A, 1720 A, pg. 3 A,3 B,2 A,1 B,1

Los fallos de pgina se han resaltado en negrita 44. Un sistema de gestin de memoria por segmentacin paginada posee las siguientes caractersticas: Una direccin lgica se compone de 12 bits. Una direccin fsica se compone de 10 bits. El mximo nnmero de segmentos en un programa es 4 (segmentos 0 a 3). Hay 4 marcos en memoria. Se pide: a) Cul es el mximo nmero posible de pginas en un segmento? b) Rellena las tablas de segmentos para los procesos A y B: PROCESO A PROCESO B TABLA DE SEGMENTOS TABLA DE SEGMENTOS Seg 0 0 tamao Base tabla pginas Seg 0 0 tamao Base tabla pginas
419 420 300

Seg 1
829 Seg 2 1019

Seg 1
1299

c) Suponiendo el formato (proceso, segmento, desplazamiento dentro del segmento), se genera la siguiente secuencia de referencias a memoria: (A, 1, 27) (B, 2, 48) (A, 0, 411) (B, 2, 132) (B, 1, 400) (A, 1,428) (B, 0, 25) (B, 2, 177) (A, 1, 186) (B, 1, 280). La memoria est inicialmente vaca, y la poltica de reemplazo es FIFO con mbito local. Determine a partir de la situacin final cul es la direccin fsica correspondiente a cada una de las siguientes direcciones lgicas: (A, 0, 350) (B, 2, 112) (A, 1, 422) (B, 0, 277) (A, 1, 604). NOTAS: si la direccin es errnea, escriba ERROR. si est en disco, escriba DISCO. suponga que la memoria se llena de menor a mayor nmero de marco.

29

Sistemas Operativos I

Tema 3. Gestin de Memoria

Solucin a) La respuesta es 4 pginas. La direccin fsica est formada por 10 bits = 2 bits nmero marco + 8 bits desplazamiento. La direccin lgica est formada por 12 bits = 2 para el segmento + 2 bits para el nmero de pgina + 8 bits para el desplazamiento de pgina. Con dos bits para el nmero de pgina, el nmero mximo de pginas de un segmento es 4. b) El tamao de pgina es de 256 palabras. Suponiendo una nica tabla de pginas para cada proceso, la tabla de segmentos quedar: PROCESO A DE SEGMENTOS Base tabla pginas Base + 0 Base + 2 PROCESO B TABLA DE SEGMENTOS tamao Base tabla pginas 300 Base + 0 530 Base + 2 190 Base + 5

Seg 0

0 419 420

TABLA tamao 420 880

Seg 0 Seg 1

0 300

Seg 1
1299

829

Seg 2

1019

c) El algoritmo de reemplazo es FIFO local. A, 1, 27 B, 2, 48 marco A, 1, pg. 0 B, 2, pg. 0 0 A, 1, pg. 0 A, 1, pg. 0 1 B, 2, pg. 0 2 3 A, 0, 411 A, 0, pg. 1 A, 1, pg. 0 B, 2, pg. 0 A, 0, pg. 1 B, 2, 132 B, 2, pg. 0 A, 1, pg. 0 B, 2, pg. 0 A, 0, pg. 1 B, 1, 400 B, 1, pg. 1 A, 1, pg. 0 B, 2, pg. 0 A, 0, pg. 1 B, 1, pg. 1 B, 1, 428 B, 1, pg. 1 A, 1, pg. 0 B, 2, pg. 0 A, 0, pg. 1 B, 1, pg. 1

B, 0, 25 B, 2, 177 A, 1, 186 B, 1, 280 marco B, 0, pg. 0 B, 2, pg. 0 A, 1, pg. 0 B, 1, pg. 1 0 A, 1, pg. 0 A, 1, pg. 0 A, 1, pg. 0 A, 1, pg. 0 1 B, 0, pg. 0 B, 0, pg. 0 B, 0, pg. 0 B, 1, pg. 1 2 A, 0, pg. 1 A, 0, pg. 1 A, 0, pg. 1 A, 0, pg. 1 3 B, 1, pg. 1 B, 2, pg. 0 B, 2, pg. 0 B, 2, pg. 0 Los fallos de pgina se han resaltado en negrita La traduccin de las direcciones lgicas a fsicas ser la siguiente: Direccin A, 0, 350 B, 2, 112 A, 1, 422 B, 0, 277 lgica pg.1,des. 94 pg.0,des. 112 pg.1,des. 166 pg.1,des. 21 Direccin 2*256+94= 3*256+112= DISCO DISCO fsica 606 880

A, 1, 604 pg.2,des. 92 DISCO

45. Sea un sistema con memoria virtual por segmentacin paginada, con algoritmo de reemplazo ptimo local. La memoria principal est organizada en 4 marcos de 512 palabras cada uno. En un instante Ti nicamente tenemos a los procesos A y B en el sistema, y el S.O. mantiene la siguiente informacin:

30

Sistemas Operativos I

Tema 3. Gestin de Memoria

Proceso A Tabla segmentos Tabla de pginas tamao btp 0 DISCO 710 0 1 DISCO 200 2 2 0 1040 3 3 DISCO 4 3 5 DISCO

Proceso B Tabla segmentos Tabla de pginas tamao btp 0 1 100 0 1 DISCO 600 1 2 2 250 3 3 DISCO

NOTA.- btp (base de la tabla de pginas) representa el desplazamiento en la tabla de pginas (una tabla de pginas para todos los segmentos) de un mismo proceso. a) Con esta situacin, qu porcentaje de memoria se desperdicia debido a la fragmentacin externa?; y debido a la interna?. b) A partir de ese instante, contina la ejecucin concurrente de ambos procesos, y se generan las siguientes direcciones lgicas: (A, 0, 100) (A, 1, 25) (B, 2, 200) (A, 2, 1035) (B, 0, 10) (A, 0, 450) (B,1, 580). Considere el instante T j, que es el que ocurre tras generar las direcciones lgicas anteriores. Calcule, para cada una de las siguientes direcciones lgicas, la direccin fsica equivalente, considerando la situacin del instante T j: (A, 2, 1030) (B, 0, 400) (A, 0, 700) (B, 2, 100) (A, 0, 300) (B, 0, 92) NOTA.- Si es una direccin errnea, conteste ERROR, y si es correcta pero la direccin equivalente no est en memoria fsica, escriba DISCO. Solucin a) En segmentacin paginada slo hay fragmentacin interna. El tamao de pgina es de 512 palabras, por tanto la segmentacin interna vendr dada por la diferencia entre el tamao de pgina y el nmero de palabras ocupadas. marco 0 1 2 3 Contenido de memoria Proceso A, seg 1, pg. 0 Proceso B, seg 0, pg. 0 Proceso B, seg 1, pg. 1 Proceso A, seg 2, pg. 0 Fragmentacin interna 512-200=312 palabras 412 palabras 1024-600= 424 palabras 0 palabras

El tamao total de memoria fsica es de 512 + 4= 2 K palabras. La fragmentacin interna que hay en la memoria es de 312+424=736 palabras. El porcentaje de fragmentacin interna vendr dado por 736/2048 *100= 35,93 %. b) El algoritmo de reemplazo es OPTIMO LOCAL. Contenido de memoria A, 1, pg. 0 B, 1, pg. 0 B, 1, pg. 1 A, 2, pg. 0 A, 0, 100 (pg. 0) A, 1, pg. 0 B, 1, pg. 0 B, 1, pg. 1 A, 0, pg. 0 A, 1, 25 (pg. 0) A, 1, pg. 0 B, 1, pg. 0 B, 1, pg. 1 A, 0, pg. 0 B, 2, 200 (pg. 0) A, 1, pg. 0 B, 2, pg. 0 B, 1, pg. 1 A, 0, pg. 0 A, 2, 1035 (pg. 2) A, 2, pg. 2 B, 2, pg. 0 B, 1, pg. 1 A, 0, pg. 0

marco 0 1 2 3

31

Sistemas Operativos I

Tema 3. Gestin de Memoria

B, 0, 10 A, 0, 450 B, 1, 580 marco (pg. 0) (pg. 0) (pg. 1) 0 A, 2, pg. 2 A, 2, pg. 2 A, 2, pg. 2 1 B, 0, pg. 0 B, 0, pg. 0 B, 0, pg. 0 2 B, 1, pg. 1 B, 1, pg. 1 B, 1, pg. 1 3 A, 0, pg. 0 A, 0, pg. 0 A, 0, pg. 0 Los fallos de pgina se han resaltado en negrita. En esta situacin de la memoria la traduccin de direcciones lgicas a fsicas quedar: Direccin A, 2, 1030 lgica pg.2,des. 6 Direccin 512*0+6=6 fsica B, 0, 400 pg.0,des. 400 512*1+400=912 A, 0, 700 pg.1,des. 188 DISCO B, 0, 92 pg.0,des. 92 512*1+92= 604 B, 2, 100 pg.0,des. 100 DISCO

Direccin A, 0, 300 lgica pg.0,des. 300 Direccin 512*3+300= fsica 1836

46. Dado un sistema con memoria virtual con paginacin por demanda y el siguiente fragmento de cdigo, con su correspondiente traduccin a ensamblador:
FOR i := 1TO 10 DO FOR j := 1 TO 10 DO C[i, j] := C[i, j] + A[i, j] + B[i, j];

En ensamblador
INICIO: BUCLE_i: Inicializar R0 a 11 Decrementar R0 una unidad Salto si cero a FIN_BUCLE_i Inicializar R1 a 11 BUCLE_j: Decrementar R1 una unidad Salto si cero a FIN_BUCLE_j Cargar R3 con A[R0, R1] Cargar R4 con C[R0, R1] Cargar R5 con B[R0, R1] R3 <- R3 + R5 R4 <- R4 + R3 Grabar en C[R0, R1] el contenido de R4 Salto a BUCLE_j FIN_BUCLE_j: Salto a BUCLE_i FIN_BUCLE_i: ...

Donde cada instruccin ocupa una palabra y R0 ... R5 son registros del procesador. Suponiendo que la paginacin del programa ha quedado como: MATRIZ C pgina 0 MATRIZ A pgina 1 MATRIZ B pgina 2 Cdigo y variables pgina 3

32

Sistemas Operativos I

Tema 3. Gestin de Memoria

a) Qu secuencia forman las pginas referenciadas a cada iteracin del BUCLE_j? b) Suponiendo que cuando se vaya a ejecutar este fragmento de cdigo (desde INICIO hasta FIN_BUCLE_i), la tabla de pginas contiene la siguiente informacin: Tabla de pginas 0 1 v 1 i 2 2 v 3 0 v y que se tienen nicamente 3 marcos en memoria, cuntos fallos de pgina provocara esta suma de matrices cuando se utiliza una poltica de reemplazo de pginas PTIMO GLOBAL?. Calclese el valor de la tasa de fallos de pgina (p). Solucin a) En primer lugar necesitaremos conocer cul es la secuencia de direcciones emitida en cada iteracin del BUCLE_j. Por cada instruccin hay que acceder a la pgina del cdigo, que es la 3 (para poder leer la instruccin y llevarla al procesador). Cuando la instruccin accede a algn registro no hay que llevar a cabo ningn acceso adicional a memoria, ya que los registros se encuentran en el procesador. Sin embargo, cuando se acceda a una matriz habr que leer la pgina correspondiente (la 0 para la matriz C, la 1 para la A y la 2 para la B). Por tanto, la secuencia de accesos a pginas que se efecta es la siguiente: Instruccin Pginas Decrementar R1 una unidad 3 Salto si cero a FIN_BUCLE_j 3 Cargar R3 con A[R0, R1] 3,1 Cargar R4 con C[R0, R1] 3,0 Cargar R5 con B[R0, R1] 3,2 R3 <- R3 + R5 3 R4 <- R4 + R3 3 Grabar en C[R0, R1] el contenido de R4 3,0 Salto a BUCLE_j 3 Con ello, la secuencia ha sido 3, 3, 3, 1, 3, 0, 3, 2, 3, 3, 3, 0, 3. Es decir, un total de 13 accesos. Esto da origen a la siguiente serie de referencias: 3, 1, 3, 0, 3, 2, 3, 0, 3. b)Las instrucciones que estn incluidas en el BUCLE_i, pero no el BUCLE_j, son instrucciones que no acceden a ninguna de las matrices. Por tanto, nicamente necesitan un acceso a la pgina 3 de cdigo, cada una de ellas. Por tanto la serie de referencias es la misma que la del apartado anterior. Los fallos de pgina que se dan en cada iteracin del BUCLE_j siguiendo el algoritmo de reemplazo PTIMO GLOBAL vendr dado por: marco inicio Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. 3 1 3 0 3 2 3 0 3 0 3 3 3 3 3 3 3 3 3 3 1 0 0 0 0 0 0 0 0 0 0 2 2 2 1 1 1 1 2 2 2 2

33

Sistemas Operativos I

Tema 3. Gestin de Memoria

Los fallos de pgina se han resaltado en negrita Solo hay dos fallos de pgina en cada iteracin del BUCLE_i. El contenido de la memoria al final de cada iteracin es el mismo que el del inicio, por tanto como el bucle se realiza10 veces, esto implica que el nmero de fallos de pgina en cada ejecucin del cdigo ser de 20. La tasa de fallos viene dada por: fallos de pgina p= nmero total de referencias Necesitaremos conocer por tanto el nmero total de referencias que se han de realizar para ejecutar este cdigo. Cuantas Veces Instruccin Pginas pginas ejecuta total Inicialiar R0 a 11 3 1 1 1 Decrementar R0 en una unidad 3 1 11 11 Salto si cero a FIN_BUCLE_i 3 1 11 11 Inicializar R1 a 11 3 1 10 10 Decrementar R1 una unidad 3 1 110 110 Salto si cero a FIN_BUCLE_j 3 1 110 110 Cargar R3 con A[R0, R1] 3,1 2 100 200 Cargar R4 con C[R0, R1] 3,0 2 100 200 Cargar R5 con B[R0, R1] 3,2 2 100 200 R3 <- R3 + R5 3 1 100 100 R4 <- R4 + R3 3 1 100 100 Grabar en C[R0, R1] el contenido de R4 3,0 2 100 200 Salto a BUCLE_j 3 1 100 100 Salto a BUCLE_i 3 1 10 10 Total 1363 Obsrvese que las dos primeras instrucciones de cada bucle (tanto del interno como del externo) se ejecutan una vez ms que el resto. Esto es debido a que, para comprobar la finalizacin del bucle, se necesita efectuar de nuevo la operacin de decremento del registro y la de comprobacin. Esto hace que las instrucciones Decrementar R0 una unidad y Salto si cero a FIN_BUCLE_i se ejecuten 11 veces, mientras que Decrementar R1 una unidad y Salto si cero a FIN_BUCLE_j deban ejecutarse 110 (ya que iteran 11 veces cada vez que se ejecuta el BUCLE_j, pero al estar encerrado dentro del BUCLE_i, se repite su ejecucin 10 veces). Por tanto, la tasa de fallos de pgina para este cdigo vend r dada por: fallos de pgina 20 p= = = 0.014735 = 1.46% nmero total de referencias 1363 47. Sea un sistema de memoria virtual con segmentacin paginada y Algoritmo de Reemplazo LRU Global. El tamao de pgina es de 512 palabras y en memoria fsica hay en total 3 tramas, inicialmente vacas. Suponiendo que hay dos procesos en el sistema (A y B) con las siguientes tablas de segmentos (especificando nicamente la longitud de cada uno):

34

Sistemas Operativos I

Tema 3. Gestin de Memoria

PROCESO A TABLA DE SEGMENTOS tamao 0 160 1 200 2 1000

PROCESO B TABLA DE SEGMENTOS tamao 0 300 1 640

Se generan las siguientes direcciones lgicas: (B,0,209) (A,0,27) (A,1,171) (B,0,180) (A,1,25) (A,2,638) (A,2,815) (B,0,200) (A,0,155) (B,0,193) (B,1,608) (A,2,715). Supngase que las tramas se asignan de menor a mayor (primero la 0). Calcular las direcciones fsicas a que dan lugar ,y el nmero de fallos de pgina provocados. Solucin El algoritmo de reemplazo es el LRU GLOBAL y el tamao de pgina de 512 palabras. marco B, 0, 209 (pg. 0) 0 B, 0, 0 1 2 marco A, 0, 27 (pg. 0) B, 0, 0 A, 0, 0 A, 1, 171 (pg. 0) B, 0, 0 A, 0, 0 A, 1, 0 B, 0, 180 (pg. 0) B, 0, 0 A, 0, 0 A, 1, 0 A, 1, 25 (pg. 0) B, 0, 0 A, 0, 0 A, 1, 0 A, 2, 638 A, 2, 815 (pg. 1) (pg. 1) B, 0, 0 B, 0, 0 A, 2, 1 A, 2, 1 A, 1, 0 A, 1, 0

B, 0, 200 A, 0, 155 B, 0, 193 B, 1, 608 A, 2, 715 (pg. 0) (pg. 0) (pg. 0) (pg. 1) (pg. 1) 0 B, 0, 0 B, 0, 0 B, 0, 0 B, 0, 0 B, 0, 0 1 A, 2, 1 A, 2, 1 A, 2, 1 B, 1, 1 B, 1, 1 2 A, 1, 0 A, 0, 0 A, 0, 0 A, 0, 0 A, 2, 1 El numero total de fallos de pgina son 7 y han sido resaltados en negrita. Direccin Lgica B, 0, 209 A, 0, 27 A,1,171 B,0,180 Direccin fsica 209 539 1195 180 Direccin Lgica A,1,25 A,2,638 A,2,815 B,0,200 Direccin fsica 1049 638 815 200 Direccin Lgica A,0,155 B,0,193 B,1,608 A,2,715 Direccin fsica 1179 193 608 1227

48. Un determinado sistema operativo gestiona la memoria virtual mediante segmentacin paginada. Una direccin lgica tiene 24 bits, de los cuales 5 indican el nmero de segmento. Una direccin fsica tiene 12 bits, y el tamao de la trama es de 1024 octetos. Suponga que hay 2 procesos en el sistema, con las siguientes tabla de segmentos: Proceso A Proceso B Tabla de segmentos Tabla de segmentos tamao tamao 0 100 0 950 1 2100 1 4120 2 1120 2 512 3 3450

35

Sistemas Operativos I

Tema 3. Gestin de Memoria

Las tablas de segmentos y pginas no consumen memoria fsica. Inicialmente la memoria est vaca. Indique las direcciones fsicas generadas, si se utiliza un algoritmo de reemplazo de pginas LRU GLOBAL, para la siguiente secuencia de direcciones lgicas: (A, 3, 2100) (A, 2, 1100) (B, 0, 800) (B, 2, 300) (A, 0, 50) (B, 0, 300) (A, 2, 1024) (A, 1, 2000) (B, 1, 3120) (A, 2, 1050) (B, 0, 800) (A, 1, 2100). Solucin Cada direccin fsica tiene 12 bits, de ellos 10 se emplean para desplazamiento dentro de la trama (log2 1024 = 10), y el resto 2 para especificar el nmero de trama. La memoria principal estar formada por: 22 = 4 tramas. Las direcciones lgicas que especifica el enunciado estn en el formato de proceso, segmento y desplazamiento dentro del segmento. Para que una direccin lgica sea correcta ha de ser menor que el tamao del segmento al que pertenece. Como se trata de segmentacin paginada es necesario identificar la pgina del segmento a la que corresponde cada direccin lgica para ubicarla en memoria. Considerando la memoria principal inicialmente vaca y aplicando el algoritmo LRU GLOBAL se obtiene la siguiente ocupacin de memoria para las referencias anteriores: marco B, 3, 2100 A, 2, 1100 (pg. 2) (pg. 1) 0 B,3,2 B,3,2 1 A,2,1 2 3 B, 0, 800 (pg. 0) B,3,2 A,2,1 B,0,0 B, 2, 300 (pg. 0) B,3,2 A,2,1 B,0,0 B,2,0 A, 0, 50 (pg. 0) A,0,0 A,2,1 B,0,0 B,2,0 B, 0, 300 (pg. 0 ) A,0,0 A,2,1 B,0,0 B,2,0

marco A, 2, 1024 A, 1, 2000 (pg. 1) (pg. 1) 0 A,0,0 A,0,0 1 A,2,1 A,2,1 2 B,0,0 B,0,0 3 B,2,0 A,1,1

B, 0, 3120 (pg. 3) B,0,3 A,2,1 B,0,0 A,1,1

A, 2, 1050 (pg. 1) B,0,3 A,2,1 B,0,0 A,1,1

B, 0, 800 (pg. 0) B,0,3 A,2,1 B,0,0 A,1,1

El numero total de fallos de pgina son 7 y han sido resaltados en negrita. De estos fallos de pginas slo 3 han sido con reemplazo. Para traducir direcciones lgicas a fsicas se emplea la siguiente expresin: direccin _ fsica = marco 1024 + desplazamiento _ de _ pgina Direccin lgica Direccin lgica Pr, seg, Pr, seg, pg, Direccin Pr, seg, Pr, seg, pg, Direccin desp_seg. desp_pag Fsica desp_seg. desp_pg Fsica (A, 3, 2100) (A, 3, 2, 52) 52 (A, 2, 1024) (A, 2, 1, 0) 1024 (A, 2, 1100) (A, 2, 1, 76) 1100 (A, 1, 2000) (A, 1, 1, 976) 4048 (B, 0, 800) (B, 0, 0, 800) 2848 (B, 1, 3120) (B, 1, 3, 48) 48 (B, 2, 300) (B, 2, 0, 300) 3372 (A, 2, 1050) (A, 2, 1, 26) 1050 (A, 0, 50) (A, 0, 0, 50) 50 (B, 0, 800) (B, 0, 0, 800) 2848 (B, 0, 300) (B, 0, 0, 300) 2348 (A, 1, 2100) ERROR ERROR

36

Sistemas Operativos I

Tema 3. Gestin de Memoria

49. Sea un sistema de memoria virtual con paginacin por demanda, con algoritmo de reemplazo LRU local y con las siguientes caractersticas: Tamao de Pgina: 1024 palabras. Nmero de tramas en memoria: 5. Asignacin de tramas: proporcional al tamao del proceso (medido en pginas). El tamao de las tablas de pginas est ajustado al tamao de cada proceso. Suponiendo dos procesos (A y B) en el sistema, donde las tablas de pginas contiene inicialmente (siendo v=vlido, i=no vlido): Proceso A Proceso B Tabla de Pginas Tabla de Pginas marco Bit validez marco Bit validez 0 i 0 i 1 4 v 1 0 v 2 i 2 i 3 4 5 6 7 3 v i i i i 3 4 2 i v

Siendo, hasta este momento, las ltimas referencias a pginas: (B,1), (A,3). Se generan las siguientes direcciones lgicas: (B,2109) (A,207) (A,4444) (B,2222) (A,2345) (B,3471) (A,88) (B,2000) (A,1055) (B,1093) (B,5008) (A,7815) a) Aplicar el algoritmo de reemplazo, mostrando el contenido de memoria en una tabla. b) Calcular las direcciones fsicas a que dan lugar esas mismas direcciones lgicas cuando se atienden, y el nmero de fallos de pgina provocados. Solucin a) EL proceso A tiene 8 pginas y el proceso B 5 pginas, por tanto la asignacin de tramas proporcional al tamao del proceso quedar: nm _ pg _ A 8 N _ tramas _ A = * nm _ tramas = 5 = 3,07 nm _ pg _ A + nm _ pg _ B 8+5 nm _ pg _ B 5 N _ tramas _ B = * nm _ tramas = 5 = 1,92 nm _ pg _ A + nm _ pg _ B 8+5 Por tanto de las 5 tramas que tiene la memoria principal 3 se asignan al proceso A y 2 al proceso B. Teniendo en cuenta las tablas de pginas, podemos saber que pginas hay en memoria y en que marcos a partir de ese momento se aplica para las referencias propuestas un algoritmo de reemplazo LRU local obtenindose:

37

Sistemas Operativos I

Tema 3. Gestin de Memoria

marco 0 1 2 3 4

Inicial B,1 B,4 A,3 A,1

B ,2109 (pg. 2) B,1 B,2 A,3 A,1

A,207 (pg. 0) B,1 A,0 B,2 A,3 A,1

A,4444 (pg. 4) B,1 A,0 B,2 A,3 A,4

B,2222 (pg 2) B,1 A,0 B,2 A,3 A,4

A,2345 (pg. 2) B,1 A,0 B,2 A,2 A,4

B,3471 (pg. 3) B,3 A,0 B,2 A,2 A,4

A,88 B,2000 A,1055 B,1093 B,5008 A,7815 (pg. 0) (pg. 1) (pg. 1) (pg. 1) (pg. 4) (pg. 7) 0 B,3 B,3 B,3 B,3 B,4 B,4 1 A,0 A,0 A,0 A,0 A,0 A,0 2 B,2 B,1 B,1 B,1 B,1 B,1 3 A,2 A,2 A,2 A,2 A,2 A,7 4 A,4 A,4 A,1 A,1 A,1 A,1 El numero total de fallos de pgina son 9 y han sido resaltados en negrita. De estos fallos de pginas slo 7 han sido con reemplazo. Las direcciones fsicas resultantes se calculan en la tabla siguiente: Direccin lgica B ,2109 A,207 A,4444 (pg., despla) (2, 61) (0,207) (4, 348) Direccin DISCO 1024+207= DISCO fsica 1231

marco

B,2222 (2,174) DISCO

A,2345 (2,297) DISCO

B,3471 (3,399) DISCO

Direccin lgica A,88 B,2000 A,1055 B,1093 B,5008 A,7815 (pg., despla) (0,88) (1,976) (1,31) (1,69) (4,912) (7,647) Direccin 1024+88= 2048+976= 4096+31= 2048+69= 0+912= 3072+647= fsica 1112 3024 4127 2117 912 3719 50. Sea un sistema de memoria virtual por segmentacin paginada. La memoria est organizada en 5 marcos de 512 palabras cada uno. En este momento nicamente se tienen 2 procesos: A y B. La situacin inicial de los marcos es: Memoria N marco (X,S,P) 0 1 A,2,0 2 B,1,0 3 B,3,1 4 A,1,1 correspondiendo (X,S,P) al proceso X, segmento S, pgina P (dentro del segmento). a) Represente las tablas de segmentos y pginas correspondientes a esta situacin inicial, sabiendo que:

38

Sistemas Operativos I

Tema 3. Gestin de Memoria

A est formado por 3 segmentos de tamaos 800, 600 y 500. B est formado por 4 segmentos de tamaos 450, 600, 100 y 2000. b) Si se utiliza un algoritmo de reemplazo PTIMO global, y a partir de la situacin inicial se generan las siguientes direcciones lgicas: (B,3,1257) (A,0,12) (A,0,789) (B,3,789) (A,1,514) (A,2,3) (B,0,415) (B,3,1100). Represente el mapa de ocupacin de la memoria e indique el nmero de fallos de pgina producido. Solucin a) Tabla de pginas y de segmentos. Proceso A Tabla de segmentos tamao base 0 800 0 1 600 2 2 500 4 marco 0 1 2 3 4 Proceso B Tabla de segmentos tamao base 450 0 600 1 100 3 2000 4 marco 0 1 2 3 4 5 6 7 2 Tabla de pginas Bit de validez i v i i i v i i Tabla de pginas Bit de validez i i i v v

4 1

0 1 2 3

b)Utilizando el algoritmo de reemplazo ptimo global se obtiene: marco Inicial B ,3,1257 A,0,12 A,0,789 B,3,789 (pg. 2) (pg. 0) (pg. 1) (pg 1) 0 B,3,2 B,3,2 B,3,2 B,3,2 1 A,2,0 A,2,0 A,2,0 A,2,0 A,2,0 2 B,1,0 B,1,0 A,0,0 A,0,1 A,0,1 3 B,3,1 B,3,1 B,3,1 B,3,1 B,3,1 4 A,1,1 A,1,1 A,1,1 A,1,1 A,1,1 marco 0 1 2 3 4 A,2,3 (pg. 0) B,3,2 A,2,0 A,0,1 B,3,1 A,1,1 B,0,415 (pg. 0) B,3,2 B,0,0 A,0,1 B,3,1 A,1,1 B,3,1100 (pg. 2) B,3,2 B,0,0 A,0,1 B,3,1 A,1,1

A,1,514 (pg. 1) B,3,2 A,2,0 A,0,1 B,3,1 A,1,1

39

Sistemas Operativos I

Tema 3. Gestin de Memoria

El numero total de fallos de pgina son 4 y han sido resaltados en negrita. De estos fallos de pginas slo 3 han sido con reemplazo. 51. Sea un sistema de memoria virtual por paginacin por demanda. Las direcciones lgicas tienen 11 bits, de los cuales 2 se interpretan internamente como nmero de pgina. La memoria est organizada en 3 marcos. En este momento nicamente tenemos 2 procesos: A y B. La situacin inicial de las pginas es: Proceso A Proceso B Tabla de pginas Tabla de pginas marco marco 0 0 0 2 1 1 1 i 2 i 2 i 3 i 3 i a) Si se obtuviera de la situacin inicial cada una de las siguientes direcciones fsicas (sin relacin de orden entre s) 845, 623, 1024, 1603, calcule las direcciones lgicas de las que proceden. b) Si se utiliza un algoritmo de reemplazo LRU global, y a partir de la situacin inicial se generan las siguientes direcciones lgicas: (A, 632), (A, 1130), (B, 555), (B, 28), (A, 1333), (B, 446), (A, 501), (A, 1422), (B, 111), (A, 999), (A, 1222), (A, 888) realice el mapa de ocupacin de la memoria e indique el nmero de fallos de pgina producido. Nota importante: Las ltimas referencias a pginas antes de la situacin inicial han sido: B0, A1, A0 (en este orden). Solucin a) La direccin lgica es de 11 bits de los cuales 2 bits son para el nmero de pgina y 9 bits para el desplazamiento dentro de la pgina, por tanto el tamao de pgina es de 512 palabras. Las direcciones lgicas a las que corresponden las direcciones fsicas del enunciado sern: Direccin Fsica 845 623 1024 1603 Clculo 512+333 512+111 1024+0 1536+67 Marco 1 1 2 Error Pgina A,1 A,1 B,0 Error Direccin Lgica A,845 A,623 B,0 Error

El tamao de la memoria fsica es 1536, por tanto la direccin fsica 1603 excede el tamao de la memoria y es por tanto imposible acceder ha dicha posicin. b) Partiendo de la situacin inicial reflejada en las tablas de pginas y utilizando un algoritmo de reemplazo LRU global, para las referencias del enunciado se obtiene la siguiente ocupacin de memoria:

40

Sistemas Operativos I

Tema 3. Gestin de Memoria

marco 0 1 2

Inicial A,0 A,1 B, 0

A,632 (pg. 1) A,0 A,1 B, 0

A,1130 (pg. 2) A,0 A,1 A,2 B,111 (pg. 0) A,0 B,0 A,2

B,555 (pg. 1) B,1, A,1 A,2 A,999 (pg. 1) A,1 B,0 A,2

B,28 (pg 0) B,1, B,0 A,2 B,28 (pg 0) A,1 B,0 A,2

A,1333 (pg. 2) B,1, B,0 A,2 A,1222 (pg. 2) A,1 B,0 A,2

B,446 (pg. 0) B,1, B,0 A,2 A,888 (pg. 1) A,1 B,0 A,2

A,501 (pg. 0) A,0 B,0 A,2

marco A,1422 (pg. 2) 0 A,0 1 B,0 2 A,2

El numero total de fallos de pgina son 5 y han sido resaltados en negrita. 52. Sea un sistema con doble nivel de paginacin donde las direcciones lgicas tienen 15 bits, el tamao de pgina es de 1Kbyte y cada tabla de primer nivel puede contener cuatro descriptores de tablas de segundo nivel. Las tablas del pr imer y segundo nivel las gestiona el sistema operativo y por tanto no esta en el rea de memoria destinada a los procesos. Se tiene 4 marcos ubicados en las direcciones ms baja de la memoria fsica asignable a los procesos, dichos marcos se encuentran inicialmente vacos, los marcos libres se asignan en orden creciente. Suponga que se emite la siguiente secuencia de direcciones lgicas: 7168, 26624, 16508, 5120, 7168, 26624, 12288, 7168, 26624, 16508, 5120, 12288. Esta secuencia se repite indefinidamente. Diga qu pgina ocupar cada marco de la memoria fsica despus de la primera repeticin de la secuencia suponiendo que el algoritmo de reemplazo de pginas es el OPTIMO y utilizando la siguiente notacin:(i,j): identifica la pgina cuyo descriptor de primer nivel es el i, y cuyo descriptor de segundo nivel es el j. Solucin Las direcciones lgica son de 15 bits. El tamao de pginas es de 1Kbyte=210 bytes 10 bits para el desplazamiento dentro de la pginas. Las tablas de pginas del primer nivel contiene n 4 descriptores 2 bits para utilizarlo de ndice en las tablas de primer nivel. Por tanto la direccin lgica la podemos considerar formada por los siguientes campos: Direccin lgica 1er nivel paginacin 2 nivel paginacin desplazamiento 2 bits 3 bits 10 bits Por tanto, dada una direccin lgica en decimal el valor de los bits correspondientes al primer nivel de paginacin vendr dado por el cociente de la siguiente divisin entera: direccin _ lgica direccin _ lgica primer _ nivel = = 8 1024 8192

41

Sistemas Operativos I

Tema 3. Gestin de Memoria

Por tanto, dada una direccin lgica en decimal el valor de los bits correspondientes al segundo nivel de paginacin vendr dado por el cociente de la siguiente divisin entera: ( direccin _ lgica mod 8192 ) segundo _ nivel = 1024 donde mod representa el resto de la divisin entera. Direccin lgica ndice descriptor 1er nivel ndice descriptor 2 nivel (i,j) 7168 0 7 (0,7) 26624 3 2 (3,2) 16508 2 0 (2,0) 5120 0 5 (0,5) 12288 1 4 (1,4)

Como inicialmente la memoria se encuentra vaca, las cuatro primeras referencias a pginas distintas sern las que ocupen los marcos. A partir de ese momento se emplea un algoritmo de reemplazo ptimo: 7168, 26624, 16508, 5120 0 1 2 3

7168 (0,7)

26624 (3,2)

12288 (1,4)

7168 (0,7)

26624 (3,2)

16508 (2,0)

5120 (0,5)

12288 (1,4)

(0,7) (0,7) (0,7) (0,7) (0,7) (0,7) (0,7) (0,7) (0,7) (3,2) (3,2) (3,2) (3,2) (3,2) (3,2) (3,2) (3,2) (3,2) (2,0) (2,0) (2,0) (2,0) (2,0) (2,0) (2,0) (0,5) (0,5) (0,5) (0,5) (0,5) (1,4) (1,4) (1,4) (1,4) (1,4) (1,4) El numero total de fallos de pgina son 6, de los cuales dos son con reemplazo de pgina. Los fallos de pgina se encuentran resaltados en negrita en la tabla anterior.

53. Se tiene un sistema con memoria virtual que utiliza la tcnica de la segmentacin paginada por demanda. En este sistema se ejecuta un proceso A con tres segmentos T (cdigo), D (datos) y S (pila). Los segmentos de datos y de pila pueden crecer. Las longitudes de estos segmentos se especifican en la tabla 1. La memoria fsica consta de 4 marcos de 512 bytes cuyo contenido en un instantet es el de la tabla 2, donde la nomenclatura Ti indica la pgina lgica i del segmento T (ej: D0 es la pgina 0 del segmento D). Tabla-1 segmento longitud T 2500 D 1500 S 300 Tabla-2 Segmento,pgina T2 D0 T1 S0

marco 0 1 2 3

Si en ese instante t se produjese la referencia a memoria que se especifica en los siguientes casos, diga si se producira fallo de pgina y, en caso afirmativo, el tipo de fallo (violacin de proteccin,

42

Sistemas Operativos I

Tema 3. Gestin de Memoria

direccin fuera de rango, pgina en disco, ...) y el manejo o tratamiento que recibira por parte del sistema operativo. a) Acceso a la direccin (D,1000) para escribir en una variable. b) Acceso a la direccin (T, 3510) para ejecutar una instruccin. c) Acceso a la direccin (D, 1510) para crear una variable dinmica. d) Acceso a la direccin (T,950) para ejecutar una instruccin. Solucin Referencia y Tipo de fallo (D,1000) Fallo de pgina. (T,3510) Direccin fuera de rango. (D,1510) Fallo de pgina. Manejo La pgina D1 debe cargarse en memoria reemplazando a una de las cuatro cargadas. La direccin no est dentro del tamao del segmento. El sistema abortar el proceso. Aunque la direccin est fuera del rango actual del segmento D, el sistema permite que crezca dicho segmento. La pgina D2 ser asignada al proceso (puede que no se necesite cargarla desde disco si todava no ha sido utilizada y pertenece al rea de datos sin valores iniciales), reemplazando a una de las ya cargadas. Es una direccin de la pgina T1, ya presente en memoria. Por tanto, se atender la solicitud de dicha direccin

(T,950): Sin fallo.

54. Suponga que en un sistema de memoria virtual se desea realizar una implementacin de los siguientes algoritmos: LRU (Last Recently Used) SEGUNDA OPORTUNIDAD LFU (Least Frequently Used) Diga, para cada uno de ellos, qu registros hardware sera estrictamente necesario que la MMU actualizase cada vez que se referencia una pgina, para poder realizar una implementacin de dichos algoritmos. Los posibles registros hardware son: Bit de modificacin, Bit de referencia, Bit de validez, Contador d el nmero de veces que una pgina ha sido referenciada, Tiempo de la ltima referencia a una pgina, Registro de desplazamiento en el que el bit de referencia se introduce como bit de mayor peso. Solucin LRU (least recently used): Se elige como victima aquel que hace ms tiempo que se ha referenciado, por tanto sera necesario actualizar el registro del Tiempo de la ltima referencia a pgina. El registro de desplazamiento para el bit de referencia no sera siempre utilizable porque para implementar exactamente este algoritmo debera disponer de un nmero muy grande de bits y el desplazamiento debera realizarse tras cada acceso, no peridicamente como se explic en clase. SEGUNDA OPORTUNIDAD: Este algoritmo slo necesitara actualizar el del Bit de referencia.

43

Sistemas Operativos I

Tema 3. Gestin de Memoria

LFU (least frequently used ): Se elige como victima aquel que se ha referenciado menos veces por tanto es necesario llevar la contabilidad del nmero de referencias que se han realizado a una pgina, el registro que se necesita para ello es del Contador de referencias. 55. Dado un sistema de gestin de memoria basado en mltiples niveles de paginacin, se trata de determinar el nmero de niveles necesarios para que la tabla de primer nivel pueda caber en una TLB de 256 bytes. Se supone que la direccin lgica tiene un formato de 32 bits, el tamao de pgina es de 1024 bytes, el tamao de los descriptores de cualquiera de las tablas de pginas es de 8 bytes y que cada tabla de nivel superior al primero ocupa el tamao de una pgina. Solucin La direccin lgica es de 32 bits y el tamao de pgina es de 1024 bytes, por tanto tendremos una estructuracin de la direccin lgica como sigue: 22 bits 10 bits Niveles de paginacin Desplazamiento de pgina Hay que calcular cuantos niveles de paginacin se necesitan. El primer nivel de paginacin ha de caber en la TLB, el tamao de la TLB es de 256 bytes y el descriptor de pgina es de 8 bytes, por tanto tendremos:
256 2 5 Nmero _ descriptores _ TLB = = 3 = 2 = 32 descriptores en TLB 8
8

Por tanto de los bits de la direccin lgica dedicados a niveles de paginacin los 5 de mayor peso ser para el primer nivel: 5 bits 17 bits 10 bits Primer nivel Otros niveles de paginacin Desplazamiento de pgina Las pginas son de 1024 bytes, por tanto el nmero de descriptores que puede contener una pgina vendr dado por:

1024 2 7 Nmero _ descriptores _ pgina = = 3 = 2 = 128 descriptores en una pgina 8 2 Con lo que la composicin final de la direccin lgica ser:
10 bits 5 bits 7 bits 7 bits 3 bits 10 bits Primer nivel Segundo nivel Tercer nivel Cuarto nivel Desplazamiento de pgina Se necesitan por tanto 4 niveles de paginacin distribuidos como se aprecia en la tabla anterior. 56. Se tiene un sistema de gestin de memoria segmentado paginado con pginas cuya longitud es 1Kb. Este sistema dispone de una tabla de descriptores de pgina donde cada descriptor guarda, entre otros, la siguientes datos: RO LIST-SEG etc. N Marco 22 bits

10

44

Sistemas Operativos I

Tema 3. Gestin de Memoria

RO: bit de proteccin frente escrituras. (1: slo lectura, 0:lectura / escritura). LIST-SEG: Lista de segmentos que comparten la pgina. N Marco: Nmero de marco.

En este sistema cuando se pr oduce un fallo de pgina no se aplica el algoritmo de reemplazo ya que un proceso del sistema ("demonio'') se encarga de mantener una lista de marcos libres quitndoselos, cuando sea preciso, a los procesos ubicados en memoria. La lista de marcos libres que gestiona el demonio es: 15, 23, 40, 75, 90, 110, 125, 140, 142, 156, 200, 215 ... Sobre el sistema anterior existe definida una operacin de copia de segmentos copiar(Id: Identificador_De_Segmento) return Identificador_De_Segmento Esta operacin toma como parmetro el identificador del segmento a copiar y devuelve el identificador de un nuevo segmento que es copia del anterior. La copia de segmentos se realiza utilizando la tcnica de copy-on-write (copiar al escribir) consistente en lo siguiente: Cuando se invoca s2 := copiar(s1) el sistema operativo crea un segmento s2 que comparte todas sus pginas con las del segmento s1. Slo en el instante en que se intente realizar una operacin de modificacin de un segmento, se producir un fallo de proteccin y el sistema operativo realizar una copia privada de la pgina que se desea modificar para el segmento en el que va a producirse la modificacin. El sistema operativo debe fijar los bits de proteccin de una pgina de tipo "copy-on-write'' para que los intentos de escritura provoquen un fallo de proteccin. La rutina de tratamiento de fallo de proteccin debe ocuparse de realizar la copia de la pgina. En el sistema de gestin de memoria descrito existe un segmento de 3500 bytes de longitud, que se representar como segmento A. Los descriptores de segmento en este sistema son una lista de referencias a una tabla de pginas global. De acuerdo con sto, el descriptor del segmento A y el estado de la tabla de pginas en el instante que se considera son: Seg. A 0 1 2 3 Tabla de pginas RO Lista-seg etc. N marco 0 0 A ... 10 1 0 A ... 11 2 0 A ... 12 3 0 A ... 13 4 -

Se Pide: El estado de los descriptores de segmento implicados y de la tabla de descriptores de despus de cada una de las siguientes operaciones: 1.- B := Copiar(A) 2.- Escribir en la direccin (A , 365) 3.- Escribir en la direccin (B , 1100) 4.- C := Copiar(B) 5.- Escribir en la direccin (B , 3000) 6.- Escribir en la direccin (C , 3000)

45

Sistemas Operativos I

Tema 3. Gestin de Memoria

7.- Escribir en la direccin (A , 3000)

Solucin 1.- B := Copiar(A) Seg.A SegB Seg. C 0 0 1 1 2 2 3 3

0 1 2 3 4 5
6

RO 1 1 1 1

seg AB AB AB AB

marco 10 11 12 13

RO 7 8 9 1 0 1 1 13 2

seg

marco

2.- Escribir en la direccin (A , 365) Seg.A Seg. B Seg. C RO 0 4 0 0 1 1 1 1 2 2 2 1 3 3 3 1 4 0


5 6

seg B BB A AB AB A

marco 10 11 12 13 15

RO seg
7 8 9 10 11 12 13

marco

3.- Escribir en la direccin (B , 1100) Seg. Seg. Seg. R ListaA B C O seg 0 4 0 0 B 1 0 1 5 B A 2 2 2 1 AB 3 1 3 3 AB 4 0 A 5 0 B


6

N marco 10 11 12 13 15 23

R O
7 8 9 10 11 12 13

Listaseg

N marco

4.- C := Copiar(B) Seg. Seg. Seg. A B C 4 0 0 1 5 5 2 2 2 3 3 3

0 1 2 3 4 5 6

R O 1 0 1 1 0 1

Listaseg BC B A ABC ABC A BC

N marco 10 11 12 13 15 23

R O
7 8 9 10 11 12 13

Listaseg

N marco

46

Sistemas Operativos I

Tema 3. Gestin de Memoria

Seg. A 4 1 2 3

5.- Escribir en la direccin (B , 3000) Seg. Seg. R ListaB C O seg 0 0 0 1 BC 1 0 5 5 B A 2 1 6 2 AC 3 3 3 1 ABC 4 0 A 5 1 BC 6 0 B

N marco 10 11 12 13 15 23 40

R O
7 8 9 10 11 12 13

Listaseg

N marco

6.- Escribir en la direccin (C , 3000) Seg. Seg. Seg. R ListaA B C O seg 0 1 4 0 0 BC 1 1 5 5 0 B A 2 0 2 6 7 A 3 1 3 3 3 ABC 4 0 A 5 1 BC 6 0 B 7.- Escribir en la direccin (A , 3000) Seg. A 4 1 2 3 Seg. B 0 5 6 3 Seg. C 0 5 7 3 R O 1 0 0 1 0 1 0 Listaseg BC B A A ABC A BC B

N marco 10 11 12 13 15 23 40

7 8 9 10 11 12 13

R O 0

Listaseg C

N marco 75

0 1 2 3 4 5 6

N marco 10 11 12 13 15 23 40

7 8 9 10 11 12 13

R O 0

Listaseg C

N marco 75

57. Sea un sistema con Memoria Virtual que utiliza paginacin multinivel con dos niveles de paginacin. El tamao de la direccin fsica es de 13 bits , el tamao de marco es de 1024 bytes y el nmero mximo de entradas de las tablas de pginas de ambos niveles es de 4 descriptores de pgina en cada nivel. a) Indique cada uno de los campos de la direccin lgica y fsica de este sistema, as como el nmero de bits de dichos campos. b) En la actualidad en dicho sistema se estn ejecutando dos procesos P1 y P2, y el contenido de la memoria principal es el que se muestra a continuacin:

47

Sistemas Operativos I

Tema 3. Gestin de Memoria

Memoria Principal Nm. marco Contenido (proceso,pgina) 0 (P1, 4) 1 (P2, 8) 2 (P1, 7) 3 (P2, 10) 4 (P2, 11) 5 (P1, 5) 6 (P1, 6) 7 Tabla pg. B1)Teniendo en cuenta el contenido de la memoria y el de la tabla de pginas del primer nivel del proceso P1, indique el contenido de las tablas de pginas del 2 nivel para el proceso P1. Indique tambin el descriptor de pgina de primer nivel que sera necesario utilizar con el fin de acceder a las pginas que estn ubicadas en memoria. Cada descriptor de pginas ocupa dos bytes Proceso P1 Tabla de pginas 1er nivel 8000 8008 8016 8024 B2)Teniendo en cuenta el contenido de la memoria y el de la tabla de pginas del primer nivel del proceso P2, indique el contenido de las tablas de pginas del 2 nivel para el proceso P2. Indique tambin el descriptor de pgina de primer nivel que sera necesario utilizar con el fin de acceder a las pginas que estn ubicadas en memoria. Cada descriptor de pginas ocupa dos bytes. Proceso P2 Tabla de pginas 1er nivel 8032 8040 8048 8056 c) Ambos procesos utilizan los mismos datos de entrada, sobre los que nicamente acceden para lectura. Dichos datos corresponden a los contenidos de las pginas 7 para ambos procesos P1 y P2. Indique como se habran de modificar los contenidos de las tablas de pginas del apartado anterior para que sea posible la comparticin de los datos de entrada. d) En dicho sistema, utilizando la tcnica de paginacin por demanda con un algoritmo de reemplazo FIFO se produce hiperpaginacin para una secuencia de solicitudes dada de un conjunto de procesos. Para eliminar la hiperpaginacin se decidi incrementar la memoria principal de dicho sistema y por tanto el nmero de marcos, finalmente se comprob que con

48

Sistemas Operativos I

Tema 3. Gestin de Memoria

dicho incremento no se solucionaba el problema de hiperpaginacin. Razone si es posible o no que ocurriera lo anteriormente descrito y porque. Solucin a) Direccin Lgica Bit 13 1er nivel 2 bits Direccin Fsica Bit 12 Marco 3 bits Bit 0 Desplazamiento 10 bits

2 nivel 2 bits

Bit 0 Desplaz. Pgina 10 bits

b1)

Valor del descriptor de pgina 8008 Proceso P1 Tabla de pginas 1er nivel 8000 8008 8016 8024 b2) Proceso P2 Tabla de pginas 1er nivel 8032 8040 8048 8056 Proceso P2 Tablas de pginas 2 nivel marco Bit validez 0 1 2 3 0 1 2 3 c) 1 3 4 1 1 1 Proceso P1 Tablas de pginas 2 nivel marco Bit validez 0 1 2 3 0 5 6 2 1 1 1 1 Valor del descriptor pgina 8048

Valor del descriptor de pgina 8040

49

Sistemas Operativos I

Tema 3. Gestin de Memoria

Proceso P1 Tabla de pginas 1er nivel 8000 8008 8016 8024

Proceso P1 Tablas de pginas 2 nivel marco Bit validez 0 1 2 3 0 5 6 2 1 1 1 1

Valor del descriptor de pgina 8008

Proceso P2 Tabla de pginas 1er nivel 8032 8040 8048 8056

Proceso P2 Tablas de pginas 2 nivel marco Bit validez 0 1 2 3 1 3 4 1 1 1

Valor del descriptor de pgina 8048

Valor del descriptor 8040

0 1 2 3

d) Porque presenta la anomala de Belady o no se ha incrementado suficientemente la memoria. 58. A continuacin se describe un modelo de memoria basado en la tcnica de segmentacin. En dicho modelo (ver figura), la imagen interna de un proceso est compuesta por cuatro segmentos (cdigo, datos, espacio intermedio y pila). Este modelo, similar al que utiliza el sistema operativo Minix, se caracteriza porque los cuatro segmentos residen siempre de forma contigua en memoria, utiliz ndose el segmento de espacio intermedio para prever las ampliaciones de los segmentos de datos y/o pila. Por ejemplo si un proceso tiene 4K de Cdigo, 2K de Datos y 1 de Pila y en la cabecera del ejecutable (a.out) se ha marcado un tamao total del proceso de 40 K, el Espacio intermedio dispondr de 33K. Pila Espacio Intermedio Datos Cdigo Se definen los siguientes comandos: CHMEM: que permite reajustar el espacio dedicado a pila y espacio intermedio de un fichero ejecutable. Un ejemplo de llamada: chmem 10240 a.out cambiara el
50

1K 33K 2K 4K

Sistemas Operativos I

Tema 3. Gestin de Memoria

tamao total del proceso de 40K a 16K (10240 bytes + tamao cdigo y datos), de los que el bloque de 1K ms alto pertenecera a la pila. BRK: que permite ampliar el segmento de datos segn el tamao que se especifique en la llamada. Esta ampliacin la realiza a costa de reducir el segmento de espacio intermedio. Un ejemplo: brk(2048) aumentara en 2K el tamao del segmento de datos y reducira en 2K el segmento de espacio intermedio. En caso de no existir el suficiente espacio intermedio la llamada se abortara y devolvera un mensaje de error.

Otros comandos relacionados con el manejo de procesos son: FORK (que realiza un duplicado del proceso que lo invoca p.e. a.out y lo pone en ejecucin, a.out), E XEC (que ubica el ejecutable invocado en memoria y lo pone en ejecucin) y EXIT (que finaliza la ejecucin del proceso y libera su memoria). Se supone que la memoria est disponible a partir de la direccin 204800 y que la asignacin de memoria sigue una poltica del primer hueco disponible y se realiza en orden de direcciones ascendente. Se consideran los siguientes ejecutables disponibles: a.outcon 2K de cdigo, 1K de datos y 1K de pila. El espacio total del proceso es de 9K. b.outcon 2K de cdigo, 2K de datos y 1K de pila. El espacio total del proceso es de 12K. c.outcon 1K de cdigo, 3K de datos y 1K de pila. El espacio total del proceso es de 15K. Se pide completar para la siguiente la tabla Proceso Segmento Tamao Dir. base

Para cada operacin de la siguiente secuencia: a) Se realiza la operacin exec b.out. b) Se realiza la operacin exec c.out. c) El proceso b.out realiza una operacin brk(512). d) Se realiza una operacin chmem 8192 c.out. e) El proceso b.out realiza como ltima instruccin de su cdigo una operacin exit. f) Se realiza la operacin exec c.out. Solucin a) Se realiza la operacin exec b.out. Proceso Segmento b.out cdigo b.out datos b.out intermedio b.out pila

Tamao 2 Kb 2 Kb 7 Kb 1 Kb

Dir. base 204800 206848 208896 216064

51

Sistemas Operativos I

Tema 3. Gestin de Memoria

b) Se realiza la operacin exec c.out. Proceso Segmento b.out cdigo b.out datos b.out intermedio b.out pila c.out cdigo c.out datos c.out intermedio c.out pila

Tamao 2 Kb 2 Kb 7 Kb 1 Kb 1 Kb 3 Kb 10 Kb 1Kb

Dir. base 204800 206848 208896 216064 217088 218112 221184 231424

c) El proceso b.out realiza una operacin brk(512). Proceso Segmento Tamao b.out cdigo 2 Kb b.out datos 2,5 Kb b.out intermedio 6,5 Kb b.out pila 1 Kb c.out cdigo 1 Kb c.out datos 3 Kb c.out intermedio 10 Kb c.out pila 1Kb d) Se realiza una operacin chmem 8192 c.out. Proceso Segmento Tamao b.out cdigo 2 Kb b.out datos 2,5 Kb b.out intermedio 6,5 Kb b.out pila 1 Kb c.out cdigo 1 Kb c.out datos 3 Kb c.out intermedio 10 Kb c.out pila 1Kb

Dir. Base 204800 206848 209408 216064 217088 218112 221184 231424

Dir. Base 204800 206848 209408 216064 217088 218112 221184 231424

e) El proceso b.out realiza como ltima instruccin de su cdigo una operacin exit. Proceso Segmento Tamao Dir. base c.out cdigo 1 Kb 217088 c.out datos 3 Kb 218112 c.out intermedio 10 Kb 221184 c.out pila 1Kb 231424

f) Se realiza la operacin exec c.out.

52

Sistemas Operativos I

Tema 3. Gestin de Memoria

Proceso c.out-2 c.out-2 c.out-2 c.out-2 c.out c.out c.out c.out

Segmento cdigo datos intermedio pila cdigo datos intermedio pila

Tamao 1 Kb 3 Kb 7 Kb 1Kb 1 Kb 3 Kb 10 Kb 1Kb

Dir. base 204800 205824 208896 216064 217088 218112 221184 231424

59. En la versin 1.0 del sistema operativo OS/2 se utiliz la tcnica de la segmentacin por demanda (sin paginacin), dado que el procesador destino de este operativo fue el Intel 80286, el cual fue diseado para soportar esta tcnica de gestin de memoria. De esta forma, un proceso puede ejecutarse sin necesidad de que todos sus segmen tos estn presentes en memoria, cargndose estos bajo demanda cuando sea necesario. En la versin 1.0, para la gestin de la segmentacin por demanda, se utilizan los siguientes criterios: Los procesos en OS/2 disponen de tres segmentos (cdigo, datos y pila). El segmento de cdigo de un proceso debe estar siempre presente en memoria central. Bsqueda de hueco: utiliza la tcnica del mejor ajuste. Compactacin: cuando se aplica, se genera un nico hueco en memoria a partir de la direccin fsica 0, desplazando todos los segmentos hacia direcciones altas. Seleccin de segmento vctima: se elige el segmento al cual hace ms tiempo que no se accede (LRU GLOBAL). Algoritmo de fallo de pgina es el que se expone a continuacin:
hueco_encontrado:= falso mientras no hueco_encontrado si existe un hueco en memoria suficientemente grande entonces hueco_encontrado := cierto H := MEJOR_AJUSTE si_no si el sumatorio de los huecos en memoria es lo suficientemente grande entonces compactar hueco_encontrado:= cierto H := HUECO_EN_INICIO_MEMORIA si_no desalojar de memoria un segmento completo segn LRU GLOBAL fin_si fin_si fin_mientras retorna H

En un determinado instante, la situacin del sistema es la siguiente

53

Sistemas Operativos I

Tema 3. Gestin de Memoria

Existen cuatro procesos en el sistema, siendo los tamaos de sus segmentos: proceso cdigo datos pila A 57500 14000 13000 B 3100 2400 6900 C 3300 3300 4300 D 6400 9800 19000 La memoria central instalada es de 128.000 bytes y ocupacin actual es: Posicin inicial proceso segmento 0 A cdigo 57500 B cdigo 60600 C cdigo 63900 D cdigo 70300 A datos 84300 C datos 87600 A pila 100600 B pila Asuma que las ltimas direcciones generadas han sido (B,pila,398) (A,pila,1274) (C,datos,2091) (A,datos,97). Se pide : a) Completen las tablas de segmentos para que reflejen la situacin descrita anteriormente indicando el bit de validez.. b) Tras producirse la siguiente secuencia de direcciones lgicas, describa el estado de la memoria central : (A, cdigo, 1020) (B, pila, 300) (A, cdigo , 37200) (C, cdigo, 200) (D, pila, 500) (A, pila, 32) c) Suponga que ahora se crea al proceso E, de tal forma que sea una rplica exacta del proceso A. La creacin obliga al sistema a ubicar en memoria nicamente el segmento de cdigo de este proceso. Describa cmo queda el estado de la memoria central . Solucin a) Consultando el contenido de la memoria principal y las caractersticas de cada proceso se rellenan las tablas de segmento para cada proceso. proceso A Proceso B Proceso C Proceso D Dir. Bit Dir Bit Dir. Bit Dir. Bit Base validez .base validez base validez base validez cdigo 0 V 57.500 V 60.600 V 63.900 V datos 70.300 V -I 84.300 V -I 100.600 V pila 87.600 V -I -I b) Todas las referencias son a segmentos que ya se encuentran en memoria excepto la referencia al segmento de pila del proceso D, que es necesario ubicarlo en memoria. Como hay hueco para ubicar el segmento de pila del proceso D, el contenido de la memoria queda de la siguiente manera:

54

Sistemas Operativos I

Tema 3. Gestin de Memoria

posicin inicial 0 57500 60600 63900 70300 84300 87600 100600

proceso A B C D A C A B

segmento cdigo cdigo cdigo cdigo datos datos pila pila

posicin inicial 107.500

proceso D

segmento pila

c) El segmento de cdigo del nuevo proceso no cabe en memoria, por lo tanto hay que buscarle un hueco y aplicar el algoritmo de fallo de pgina. Finalmente el contenido de la memoria que como sigue: posicin proceso segmento posicin proceso segmento inicial inicial 0 A cdigo 57500 B cdigo C cdigo 60600 D cdigo 63900 70300 E cdigo 60. Justifique por qu se puede emplear un algoritmo LRU para gestionar la cach de bloques del sistema operativo, pero no hay apenas ningn sistema que emplee ese mismo algoritmo para reemplazar pginas en la gestin de la memoria virtual (se utilizan aproximaciones en este segundo caso, pero no el algoritmo tal cual es). Solucin En la cach de bloques es muy fcil anotarse cundo ha sido accedido un bloque (que es la informacin que necesita el algoritmo LRU), pues para ello hay que efectuar una llamada al sistema y poco se notar si el sistema operativo se anota esta informacin en alguna estructura de datos (por ejemplo, en una cola ordenada de bloques que se va modificando a medida que se realizan los accesos, ubicando el bloque accedido al final de la cola y tomando como vctima aquel bloque que est en la cabeza). En el caso del reemplazo de pginas resulta extremadamente caro anotar por cada acceso a memoria la ocurrencia de tal acceso. Ninguna MMU se permite el lujo de guardar tal informacin en un contador, cola o alguna estructura similar. Como mximo proporcionan un bit de referencia con el que se puede saber si cada pgina ha sido accedida o no, pero se desconoce cuntos accesos ha sufrido y en qu momento. Con este bit de referencia se pueden implementar aproximaciones al LRU, pero no el algoritmo exacto. 61. En un sistema de gestin de memoria virtual s e decide utilizar paginacin y un algoritmo de reemplazo LOCAL basado en una aproximacin al LRU, denominada SEGUNDA OPORTUNIDAD. En el sistema se ejecutan actualmente 3 procesos A, B y C. Cada acceso se

55

Sistemas Operativos I

Tema 3. Gestin de Memoria

codifica de forma que el primer smbolo representa e l proceso que lo realiza y el segundo la pgina accedida (se supone que todas las pginas accedidas estn dentro del espacio lgico del proceso). La secuencia de accesos a analizar es la siguiente: A1, A1, B0, C3, A0, A1, B0, B1, A3, B3, C0, C1, C1, A1, C0, A0, B0, A2, A2, A1, C0, C1, B1, C2, A3, C3, A4, C3, A2, B0, B0, C2, C3, A0, C2, C0, A4, C0, A1, A0. Se pide: a) Determinar el contenido de la tabla de pginas asignada a cada proceso, una vez que la memoria se ha llenado por primera vez. La memoria consta de 8 marcos que se asignan en orden de direcciones crecientes (desde el marco 0 al 7) e inicialmente estn vacos. Cada descriptor de pgina consta de dos campos: primero el nmero de marco asignado a la pgina y segundo el bit de referencia asociado. Si la pgina no est en memoria, ello se indica con un guin (-) en el nmero de marco correspondiente a dicha pgina. b) Determinar el contenido de los descriptores de pgina, cada vez que se produzca un fallo de pgina (indicar qu pgina falla y a qu proceso p ertenece). El contenido de dichos descriptores debe reflejar el estado posterior al fallo y su actualizacin se limitar a los descriptores de pgina del proceso que ha producido el fallo de pgina. c) A qu algoritmo de reemplazo equivale el de SEGUNDA OPORTUNIDAD, si todos los bits de referencia de la tabla de pginas estn puestos a 1 en el momento previo al fallo de pgina. Solucin a) Dada la secuencia de referencias propuesta en el enunciado la memoria se llenara con las 8 primeras referencia a pginas distintas. Esto es: A1, A1, B0, C3, A0, A1, B0, B1, A3, B3, C0,.... En las tablas de pginas todas estas pginas aparecern con el bit de referencia a 1. Memoria 0 A1 1 B0 2 C3 3 A0 4 B1 5 A3 6 B3 7 C0 Tabla Pag. A marco Bit ref. 3 1 0 1 5 1 Tabla Pag. B marco Bit ref. 1 1 4 1 6 1 Tabla Pag. C marco Bit ref. 7 1 2 1 -

Pg. 0 1 2 3 4 5 6

b) El primer fallo de pgina ocurre al referenciar por primera vez C1, en la siguiente tabla se ha sombreado en gris las referencias ya realizadas. A1 A1 B0 C3 A0 A1 B0 B1 A3 B3 C0 C1 C1 A1 C0 A0 B0 A2 A2 A1 C0 C1 B1 C2 A3 C3 A4 C3 A2 B0 B0 C2 C3 A0 C2 C0 A4 C0 A1 A0. El algoritmo de fallo de reemplazo es el de SEGUNDA OPORTUNIDAD LOCAL, por lo tanto slo afectar a los marcos de memoria que contienen pginas del proceso C. El

56

Sistemas Operativos I

Tema 3. Gestin de Memoria

orden FIFO en que la pginas del proceso C se ubicaron en memoria es C3, C0. Por tanto se comienza dando una segunda oportunidad a la pgina 3 y a continuacin a la 0. Se pone en primer lugar el bit de referencia de la pgina 3 a 0 y a continuacin el de la 0, eligindose como victima la pgina 3. Memoria 0 A1 1 B0 2 C1 3 A0 4 B1 5 A3 6 B3 7 C0 Tabla Pag. A Pg. marco Bit ref. 0 3 1 1 0 1 2 3 5 1 4 5 6 Tabla Pag. B marco Bit ref. 1 1 4 1 6 1 Tabla Pag. C marco Bit ref. 7 0 2 1 0 -

Con lo que el orden FIFO de las pginas para el proceso C queda C0,C1. A A1 A0 A3 Orden FIFO B B0 B1 B3 C C0 C1 Se continua con las referencias mientras no haya fallo de pgina actualizando los bits de referencia correspondientes. A1 A1 B0 C3 A0 A1 B0 B1 A3 B3 C0 C1 C1 A1 C0 A0 B0 A2 A2 A1 C0 C1 B1 C2 A3 C3 A4 C3 A2 B0 B0 C2 C3 A0 C2 C0 A4 C0 A1 A0. Memoria 0 A1 1 B0 2 C1 3 A0 4 B1 5 A3 6 B3 7 C0 Tabla Pag. A marco Bit ref. 3 1 0 1 5 1 Tabla Pag. B marco Bit ref. 1 1 4 1 6 1 Tabla Pag. C marco Bit ref. 7 1 2 1 0 -

Pg. 0 1 2 3 4 5 6

Fallo de pgina al referenciar A2. El orden FIFO en que la pginas del proceso A se ubicaron en memoria es A1, A0, A3. Se comienza dando una segunda oportunidad a la pgina A1. Se pone por tanto en primer lugar el bit de referencia de la pgina A1 a 0, continuando con el de A0, y A3 y eligindose como victima la pgina 1.

57

Sistemas Operativos I

Tema 3. Gestin de Memoria

Memoria 0 A2 1 B0 2 C1 3 A0 4 B1 5 A3 6 B3 7 C0

Pg. 0 1 2 3 4 5 6

Tabla Pag. A marco Bit ref. 3 0 0 0 1 5 0 -

Tabla Pag. B marco Bit ref. 1 1 4 1 6 1 -

Tabla Pag. C marco Bit ref. 7 1 2 1 0 -

Con lo que el orden FIFO de las pginas para el proceso A queda A0,A3,A2. A A0 A3 A2 Orden FIFO B B0 B1 B3 C C0 C1 Se continua con las referencias mientras no haya fallo de pgina actualizando los bits de referencia correspondientes. A1 A1 B0 C3 A0 A1 B0 B1 A3 B3 C0 C1 C1 A1 C0 A0 B0 A2 A2 A1 C0 C1 B1 C2 A3 C3 A4 C3 A2 B0 B0 C2 C3 A0 C2 C0 A4 C0 A1 A0. Fallo de pgina al referenciar A1. El orden FIFO en que la pginas del proceso A se ubicaron en memoria es A0, A3, A2. Se comienza mirando el bit de referencia de la pgina A0, este bit est a 0 y por tanto la pgina A0 se elige como victima. Memoria Tabla Pag. A Tabla Pag. B Tabla Pag. C 0 A2 Pg. marco Bit ref. marco Bit ref. marco Bit ref. 1 B0 0 0 1 1 7 1 2 C1 1 3 1 4 1 2 1 3 A1 2 0 1 4 B1 3 5 0 6 1 0 5 A3 4 6 B3 5 7 C0 6 Con lo que el orden FIFO de las pginas para el proceso A queda A3,A2, A1. A A3 A2 A1 Orden FIFO B B0 B1 B3 C C0 C1 Se continua con las referencias mientras no haya fallo de pgina actualizando los bits de referencia correspondientes. A1 A1 B0 C3 A0 A1 B0 B1 A3 B3 C0 C1 C1 A1 C0 A0 B0 A2 A2 A1 C0 C1 B1 C2 A3 C3 A4 C3 A2 B0 B0 C2 C3 A0 C2 C0 A4 C0 A1 A0.

58

Sistemas Operativos I

Tema 3. Gestin de Memoria

Fallo de pgina al referenciar C2. El orden FIFO en que la pginas del proceso C se ubicaron en memoria es C0, C1. Se comienza mirando el bit de referencia de la pgina C0, este bit est a 1, y por tanto se le da una segunda oportunidad y se pone su bit de referencia a 0, igualmente se hace para la pgina C1, se elige como victima, la pgina C0. Memoria Tabla Pag. A Tabla Pag. B Tabla Pag. C 0 A2 Pg. marco Bit ref. marco Bit ref. marco Bit ref. 1 B0 0 0 1 1 0 2 C1 1 3 1 4 1 2 0 3 A1 2 0 1 7 1 4 B1 3 5 0 6 1 0 5 A3 4 6 B3 5 7 C2 6 Con lo que el orden FIFO de las pginas para el proceso C queda C1,C2. A A3 A2 A1 Orden FIFO B B0 B1 B3 C C1 C2 Se continua con las referencias mientras no haya fallo de pgina actualizando los bits de referencia correspondientes. A1 A1 B0 C3 A0 A1 B0 B1 A3 B3 C0 C1 C1 A1 C0 A0 B0 A2 A2 A1 C0 C1 B1 C2 A3 C3 A4 C3 A2 B0 B0 C2 C3 A0 C2 C0 A4 C0 A1 A0. Memoria 0 A2 1 B0 2 C1 3 A1 4 B1 5 A3 6 B3 7 C2 Tabla Pag. A marco Bit ref. 0 3 1 0 1 5 1 Tabla Pag. B marco Bit ref. 1 1 4 1 6 1 Tabla Pag. C marco Bit ref. 0 2 0 7 1 0 -

Pg. 0 1 2 3 4 5 6

Fallo de pgina al referenciar C3. El orden FIFO en que la pginas del proceso C se ubicaron en memoria es C1, C2. Se comienza mirando el bit de referencia de la pgina C1, este bit est a 0. Se elige como victima, la pgina C1.

59

Sistemas Operativos I

Tema 3. Gestin de Memoria

Memoria 0 A2 1 B0 2 C3 3 A1 4 B1 5 A3 6 B3 7 C2

Pg. 0 1 2 3 4 5 6

Tabla Pag. A marco Bit ref. 0 3 1 0 1 5 1 -

Tabla Pag. B marco Bit ref. 1 1 4 1 6 1 -

Tabla Pag. C marco Bit ref. 0 0 7 1 2 1 -

Con lo que el orden FIFO de las pginas para el proceso C queda C2,C3. A A3 A2 A1 Orden FIFO B B0 B1 B3 C C2 C3 Se continua con las referencias mientras no haya fallo de pgina actualizando los bits de referencia correspondientes. A1 A1 B0 C3 A0 A1 B0 B1 A3 B3 C0 C1 C1 A1 C0 A0 B0 A2 A2 A1 C0 C1 B1 C2 A3 C3 A4 C3 A2 B0 B0 C2 C3 A0 C2 C0 A4 C0 A1 A0. Fallo de pgina al referenciar A4. El orden FIFO en que la pginas del proceso A se ubicaron en memoria es A3,A2, A1. Se comienza mirando el bit de referencia de la pgina A3, este bit est a 1 y por tanto se le da una segunda oportunidad y se pone su bit de referencia a 0, igualmente se hace para la pgina A2, y A1. Se elige como victima, la pgina A3. Memoria 0 A2 1 B0 2 C3 3 A1 4 B1 5 A4 6 B3 7 C2 Tabla Pag. A Pg. marco Bit ref. 0 0 1 3 0 2 0 0 3 0 4 5 1 5 6 Tabla Pag. B marco Bit ref. 1 1 4 1 6 1 Tabla Pag. C marco Bit ref. 0 0 7 0 2 1 -

Con lo que el orden FIFO de las pginas para el proceso A queda A2,A1,A4. A A2 A1 A4 Orden FIFO B B0 B1 B3 C C2 C3 -

Se continua con las referencias mientras no haya fallo de pgina actualizando los bits de referencia correspondientes.

60

Sistemas Operativos I

Tema 3. Gestin de Memoria

A1 C0 A2

A1 A0 B0

B0 B0 B0

C3 A2 C2

A0 A2 C3

A1 A1 A0

B0 C0 C2

B1 C1 C0

A3 B1 A4

B3 C2 C0

C0 A3 A1

C1 C3 A0.

C1 A4

A1 C3

Memoria 0 A2 1 B0 2 C3 3 A1 4 B1 5 A4 6 B3 7 C2

Tabla Pag. A Pg. marco Bit ref. 0 0 1 3 0 2 0 1 3 0 4 5 1 5 6 -

Tabla Pag. B marco Bit ref. 1 1 4 1 6 1 -

Tabla Pag. C marco Bit ref. 0 0 7 1 2 1 -

Fallo de pgina al referenciar A0. El orden FIFO en que la pginas del proceso A se ubicaron en memoria es A2, A1, A4. Se comienza mirando el bit de referencia de la pgina A2, este bit est a 1 y por tanto se le da una segunda oportunidad y se pone su bit de referencia a 0, se mira el bit de referencia de la pgina A1, este bit est a 0. Se elige como victima, la pgina A1. Memoria 0 A2 1 B0 2 C3 3 A0 4 B1 5 A4 6 B3 7 C2 Tabla Pag. A marco Bit ref. 3 1 0 0 0 0 5 1 Tabla Pag. B marco Bit ref. 1 1 4 1 6 1 Tabla Pag. C marco Bit ref. 0 0 7 1 2 1 -

Pg. 0 1 2 3 4 5 6

Con lo que el orden FIFO de las pginas para el proceso A queda A1,A4,A0. A A2 A4 A0 Orden FIFO B B0 B1 B3 C C2 C3 Se continua con las referencias mientras no haya fallo de pgina actualizando los bits de referencia correspondientes. A1 A1 B0 C3 A0 A1 B0 B1 A3 B3 C0 C1 C1 A1 C0 A0 B0 A2 A2 A1 C0 C1 B1 C2 A3 C3 A4 C3 A2 B0 B0 C2 C3 A0 C2 C0 A4 C0 A1 A0. Fallo de pgina al referenciar C0. El orden FIFO en que la pginas del proceso C se ubicaron en memoria es C2,C3. Se comienza mirando el bit de referencia de la pgina C2, este bit est a 1 y por tanto se le da una segunda oportunidad y se pone su bit de referencia a 0, igualmente con el bit de referencia de la pgina C3. Se elige como victima, la pgina C2.

61

Sistemas Operativos I

Tema 3. Gestin de Memoria

Memoria 0 A2 1 B0 2 C3 3 A0 4 B1 5 A4 6 B3 7 C0

Pg. 0 1 2 3 4 5 6

Tabla Pag. A marco Bit ref. 3 1 0 0 0 0 5 1 -

Tabla Pag. B marco Bit ref. 1 1 4 1 6 1 -

Tabla Pag. C marco Bit ref. 7 1 0 0 2 0 -

Con lo que el orden FIFO de las pginas para el proceso C queda C3,C0. A B C A2 B0 C3 A4 B1 C0 A0 B3 -

Orden FIFO

Se continua con las referencias mientras no haya fallo de pgina actualizando los bits de referencia correspondientes. A1 A1 B0 C3 A0 A1 B0 B1 A3 B3 C0 C1 C1 A1 C0 A0 B0 A2 A2 A1 C0 C1 B1 C2 A3 C3 A4 C3 A2 B0 B0 C2 C3 A0 C2 C0 A4 C0 A1 A0. Fallo de pgina al referenciar A1. El orden FIFO en que la pginas del proceso A se ubicaron en memoria es A2, A4, A0. Se comienza mirando el bit de referencia de la pgina A2, este bit est a 0. Se elige como victima, la pgina A2. Memoria 0 A1 1 B0 2 C3 3 A0 4 B1 5 A4 6 B3 7 C0 Tabla Pag. A marco Bit ref. 3 1 0 1 0 0 5 1 Tabla Pag. B marco Bit ref. 1 1 4 1 6 1 Tabla Pag. C marco Bit ref. 7 1 0 0 2 0 -

Pg. 0 1 2 3 4 5 6

Con lo que el orden FIFO de las pginas para el proceso A queda A4, A0, A1. A A4 A0 A1 Orden FIFO B B0 B1 B3 C C3 C0 Se continua con la ultima referencia a A0 y como no haya fallo de pgina y su bit de referencia se encuentra a 1, las ultimas tablas representan el estado de la memoria. c) Al algoritmo FIFO.

62

Sistemas Operativos I

Tema 3. Gestin de Memoria

62. Explique brevemente cual es el principal inconveniente que puede presentar la segmentacin por demanda. Solucin El algoritmo de fallo de segmento es ms complicado que el de fallo de pgina: Puede que no baste con seleccionar un solo segmento vctima (el espacio requerido por el segmento que provoc el fallo puede ser mayor que el liberado por el segmento vctima). Tambin puede necesitarse compactacin tras haber extrado de la memoria mltiples segmentos vctimas. Al igual que ocurre con la paginacin por demanda, otro inconveniente es el thrashing (hipersegmentacin): Si no hay suficiente memoria fsica para el conjunto de procesos actualmente en funcionamiento, puede que se pierda ms tiempo gestionando fallos de segmento que ejecutando procesos.

Gestin de Memoria: Hiperpaginacin y rea activa.


-Tanto en los enunciados como en las soluciones de los problemas de este apartado se emplean un conjunto de siglas que pasamos a definir: TAA = Tamao de rea activa.

63. Proporcione una definicin precisa de la hiperpaginacin o thrashing. Solucin Si consideramos que un programa est compuesto por diferentes localidades que se pueden solapar, la hiperpaginacin se puede definir formalmente de la siguiente manera: hiperpaginacin = ( tamaos_ de _ localidad ) > (tamao _ de _ memoria _ total) donde se considera: Localidad: como el conjunto de pginas que un proceso utiliza conjuntamente. Principio de localidad de referencia: un proceso va pasando de una localidad a otra de una forma lenta y progresiva. 64. En un sistema de gestin de memoria virtual se decide utilizar un modelo de rea activa para controlar la demanda de memoria. En el sistema se ejecutan actualmente 3 procesos A, B y C. Cada acceso se codifica de forma que el primer smbolo representa el proceso que lo realiza y el segundo la pgina accedida (se supone que todas las pginas accedidas estn dentro del espacio lgico del proceso). Suponiendo que el tamao de la ventana de rea activa es 4, calcule el mnimo y mximo tamao de rea activa de cada proceso despus de la siguiente secuencia de accesos y suponiendo que el muestreo se inicia inmediatamente antes del primer acceso a cada proceso: A1, A1, B0, C3, A0, A1, B0, B1, A3, B3, C0, C1, C1, A1, C0, A0, B0, A2, A2, A1, C0, C1, B1, C2, A3, C3, A4, C3, A2, B0, B0, C2, C3, A0, C2, C0, A4, C0, A1, A0, A0, C0. Solucin rea activa es conjunto de pginas accedidas en las ltimas D (en nuestro caso D=4) referencias. El tamao del rea activa del proceso pi es el nmero de pginas referenciadas en la ventana ms reciente.

63

Sistemas Operativos I

Tema 3. Gestin de Memoria

De las referencias a pginas propuestas en el enunciado, si se extraen ordenadamente para cada proceso y se analizan en intervalos de 4 referencias se obtiene lo siguiente: Referencias al proceso A A1, A1, A0, A1, A3, A1, A0, A2, A2, A1, A3, A4, A2, A0, A4, A1, A0, A0. Se observa que para el proceso A en esta secuencia de referencias el nmero mnimo de pginas distintas que se referencia tomando una ventana de 4 referencias es 2 pginas y el mximo es de 4 pginas distintas. Por tanto tendremos: mx TAA A = 4; min TAA A = 2 Referencias al proceso B B0, B0, B1,B3, B0, B1,B0, B0. Se observa que para el proceso B en esta secuencia de referencias el nmero mnimo de pginas distintas que se referencia tomando una ventana de 4 referencias es 2 pginas y el mximo es de 3 pginas distintas. Por tanto tendremos: mx TAA B = 3; min TAA B = 2 Referencias al proceso C C3, C0, C1, C1, C0, C0, C1, C2, C3, C3, C2, C3, C2, C0, C0, C0. Se observa que para el proceso C en esta secuencia de referencias el nmero mnimo de pginas distintas que se referencia tomando una ventana de 4 referencias es 2 pginas y el mximo es de 3 pginas distintas. Por tanto tendremos: mx TAA C = 4; min TAA C = 2 65. Justifique la relacin entre el principio de localidad y el concepto de rea activa. Solucin El rea activa de un proceso trata de reflejar la localidad de dicho proceso definida como el conjunto de pginas que se estn usando activamente juntas. 66. Indicar brevemente en qu consiste el rea activa o working-set. Solucin Es un modelo usado para determinar la localidad de los procesos. Utiliza un parmetro ventana del rea activa que representa el nmero de referencias a considerar hasta el momento actual, tal conjunto de pginas constituye el rea activa. El S.O., conociendo el rea activa de cada proceso, ha de asignar marcos suficie ntes para que cada uno pueda mantenerla en memoria. Si la suma de los tamaos de las reas activas excede del total de marcos disponibles, el S.O. seleccionar un proceso, guardar sus pginas en el dispositivo de paginacin y reasignar sus marcos a los dems procesos. 67. Diga si las siguientes afirmaciones sobre el modelo del rea activa son verdaderas (V) o falsas (F) y justifique su respuesta: a) Si la suma de los tamaos de las ventanas del rea activa de los distintos procesos de un sistema es mayor que el nmero de marcos de memoria fsica, entonces en el sistema se produce hiperpaginacin. b) Si el espacio de direcciones lgicas de un proceso es de 1024 pginas y el tamao del rea

64

Sistemas Operativos I

Tema 3. Gestin de Memoria

activa en un instante dado es de 512 pginas, entonces puede asegurarse que elproceso provocar hiperpaginacin en todos los casos. c) Una MMU que pudiese provocar una interrupcin cada cierto nmero fijo de referencias a memoria y gestionase el bit de referencia, podra calcular de forma exacta el tamao del rea activa. d) En un sistema cuyo tamao de ventana de rea activa es 1024, el tamao del rea activa en un instante t vale 1024 si, y solo si, las ltimas 1024 pginas de una serie de referencias son distintas. e) Si se aumenta el nmero de marcos que tiene asignados un proceso, entonces aumentar el tamao del rea activa. Solucin a) FALSA. El tamao del rea activa del proceso pi es el nmero de pginas referenciadas en la ventana ms reciente, por tanto la suma de los tamaos de ventana de rea activa no tiene sentido. b)FALSA. El que provoque hiperpaginacin depender de cuantas pginas necesite el proceso tener en memoria a la vez para poder ser ejecutado. c)FALSA: Lo podra calcular nicamente de forma aproximada. d) VERDADERO. Ya que el tamao del rea activa del proceso pi es el nmero de pginas referenciadas en la ventana ms reciente. Slo sera falso si alguna de esas referencias fuese incorrecta. e)FALSO. EL tamao de rea activa depende de la referencias que haya solicitado ese proceso y del tamao de la ventana que se escoja para calcularlo. 68. En un sistema operativo se ha decidido utilizar el modelo del rea activa para controlar el nmero de pginas que deben residir en memoria por cada proceso. La estrategia utilizada es la siguiente: Cada vez que se realiza un acceso a memoria por parte de un proceso, su rea activa es recalculada. En todo momento slo deben estar presentes en memoria las pginas que forman las reas activas de todos los procesos, siempre y cuando exista disponibilidad de memoria fsica. Si al recalcular el rea activa de un proceso P, se detecta que no hay suficiente memoria fsica, este proceso P es eliminado completamente de memoria y es suspendido. Cuando se produzca nueva disponibilidad de memoria fsica, debe cargarse en memoria el rea activa del primer proceso que se encuentre suspendido

En este sistema los parmetros que lo caracterizan son los siguientes: El nmero de referencias que se utilizan para calcular el rea activa es 3 Existen 8 marcos en memoria fsica Inicialmente la memoria fsica esta vaca y llegan simultneamente, pero en el orden indicado, cuatro procesos (A, B, C y D). En la siguiente tabla se indica la secuencia de accesos a pginas que realiza cada proceso dentro de su espacio lgico de direcciones. En el ltimo acceso aparece la letra T, la

65

Sistemas Operativos I

Tema 3. Gestin de Memoria

cual indica que el proceso termina, lo que implica que sus pginas deben ser eliminadas de memoria y debe antenderse la reanudacin de un proceso suspendido si fuera necesario. A B C D 0 8 3 0 0 3 4 1 0 5 5 2 7 1 6 2 8 5 7 1 T T T T

El sistema atiende a los procesos siguiendo un turno rotatorio, de tal forma que permite a un proceso emitir una direccin y luego se lo permite al siguiente. Ejemplo: A0, B8, C3, D0, A0, B3 ...... Complete la siguiente tabla de tal forma que describa para cada acceso a memoria en que estado queda la memoria fsica tras dicho acceso, expresando para cada marco el identificativo del proceso y el nmero de pgina que alberga. Instante Proceso Marco Marco Marco Marco Marco Marco Marco Marco Pgina 0 1 2 3 4 5 6 7 Solucin Se tienen cuatro procesos en el sistema y 8 marcos, la ventana de rea activa es de 3. Se ubican las pginas en memoria por orden de referencia, teniendo en cuenta que ningn proceso puede tener ms de tres pginas en memoria (la ventana de rea activa es de 3) y mientras queden marcos libres. En el instante 9 y despus de hacer referencia a la pgina 5 del proceso B, la memoria se encuentra totalmente llena. En el instante 10 el rea activa del proceso C no puede ser ubicada en memoria y el proceso C es suspendido y libera memoria. Tabla que muestra el contenido de memoria en cada instante: Instante Proceso Marco Marco Marco Marco Marco Marco Marco Marco Pgina 0 1 2 3 4 5 6 7 0 A0 A0 1 B8 A0 B8 2 C3 A0 B8 C3 3 D0 A0 B8 C3 D0 4 A0 A0 B8 C3 D0 5 B3 A0 B8 C3 D0 B3 6 C4 A0 B8 C3 D0 B3 C4 7 D1 A0 B8 C3 D0 B3 C4 D1 8 A0 A0 B8 C3 D0 B3 C4 D1 9 B5 A0 B8 C3 D0 B3 C4 D1 B5 10 D2 A0 B8 D2 D0 B3 D1 B5 11 A7 A0 B8 D2 D0 B3 A7 D1 B5 12 B1 A0 B1 D2 D0 B3 A7 D1 B5 13 D2 A0 B1 D2 B3 A7 D1 B5 14 A8 A0 B1 D2 A8 B3 A7 D1 B5 15 B5 A0 B1 D2 A8 A7 D1 B5

66

Sistemas Operativos I

Tema 3. Gestin de Memoria

16 17 18 19 20 21 22 23

D1 AT BT C5 DT C6 C7 CT

A0 C3 C3 C3 C3 C6 C6

B1 B1 C5 C5 C5 C5

D2 D2 D2 D2

A8 C4 C4 C4 C4 C4 C7

A7

D1 D1 D1 D1

B5 B5

Tabla que muestra el rea activa de cada proceso en cada instante: rea activa rea activa rea activa rea activa Proceso A Proceso B Proceso C Proceso D Instante 10 0 8, 3, 5 3, 4, 5 0, 1 Se suspende C Instante 11 0, 7 8, 3, 5 Suspendido 0, 1, 2 Instante 12 0, 7 3, 5, 1 Suspendido 0, 1, 2 Instante 13 0, 7 3, 5, 1 Suspendido 1, 2 Instante 14 0, 7, 8 3, 5, 1 Suspendido 1, 2 Instante 15 0, 7, 8 5, 1 Suspendido 1, 2 Instante 16 0, 7, 8 5, 1 Suspendido 1, 2 Instante 17 Libera 5, 1 Se ubica su 1, 2 memoria rea activa Instante 18 ----Libera Se ubica su 1, 2 memoria rea activa Instante 19 --------3, 4, 5 1, 2 Instante 20 --------3, 4, 5 Libera memoria Instante 21 --------4, 5, 6 ----Instante 22 --------5, 6, 7 ----Instante 23 --------Libera ----memoria 69. Dada la siguiente lista de referencias emitida por cierto proceso: ... 5 5 8 3 2 2 3 2 3 5 8 2 9 7 (instante1) 7 9 2 2 9 10 9 10 9 10 9 10 10 2 (instante2) ... si se utiliza el modelo del rea activa con =10. Indique si las siguientes afirmaciones son verdaderas (V) o falsas (F) y justifique su respuesta. a) El tamao del rea activa en instante1es 10 y en instante2, tambin. b) El rea activa en instante 2 est formada por los marcos {2, 9, 10}. c) El rea activa en instante 1 est formada por las pginas {2, 3, 5, 7, 8, 9}. d) Con la informacin presentada no se puede saber qu pginas forman las reas activas de este proceso en los instantes 1 y 2, deberamos conocer tambin su localidad de referencia. e) El tamao del rea activa en instante2 es 4. f) Si este proceso tiene 6 marcos asignados en el instante 1 a las pginas de su rea activa (y no tiene otros marcos), no dar ningn fallo de pgina entre los instantes 1 y 2.

67

Sistemas Operativos I

Tema 3. Gestin de Memoria

Solucin a) FALSO. El rea activa en el instante 1 es de 6 pginas y en el instante 2 de 3 pginas, que son el nmero de pginas distintas que aparecen en las ltimas 10 referencias. b) FALSO. El rea activa no esta formada por marcos, si no por pginas. c) VERDADERO. El conjunto de pginas distintas que aparecen en las ltimas 10 referencias antes del instante 1 son: {2, 3, 5, 7, 8, 9}. d) FALSO. Es suficiente con la informacin de las referencias y el tamao de ventana para poder calcular el rea activa. e) FALSO. El tamao de rea activa en el instante 2 es de 3 pginas. f) FALSO. Si que da fallo de pgina, ya que hay referencias a pginas distintas a las que componen el rea activa en el instante 1, a partir de dicho instante.

Paginacin por demanda: Anlisis de eficiencia.


-Tanto en los enunciados como en las soluciones de los problemas de este apartado se emplean un conjunto de siglas que pasamos a definir: TAE = TAEF=Tiempo de acceso efectivo. MMU= Unidad de manejador de memoria. TLB= registros asociativos, la bsqueda en ellos es por contenido. TAM= tiempo de acceso a memoria. -El Tiempo de Acceso Efectivo (TAE) en los sistemas donde se utiliza paginacin por demanda, se define como: TAE = (1 - p ) * TAM + p * (1 + pm) * TTP donde: TAM: Tiempo de acceso a memoria. TTP: Tiempo de transferencia pgina/disco. p: Tasa de fallos de pgina. pm: Probabilidad de que la pgina a reemplazar haya sido modificada. 70. Sea un esquema de paginacin por demanda, donde la tabla de pginas reside en memoria y los descriptores de pgina poseen un bit de modificacin (dirty bit). Discuta cules son los nmeros mximo y mnimo de accesos a memoria y disco posibles tras la emisin de una direccin por parte de un proceso. Solucin Se utilizaran en la solucin las siguientes abreviaturas: N= nmero de palabras de una pgina TAM = tiempo de acceso a una posicin de memoria para lectura. 2*TAM = tiempo de acceso a una posicin de memoria para escritura. TAMR=Tiempo de lectura de una pgina en memoria = N * TAM TAMW= tiempo de escritura de una pgina en memoria =N *2* TAM. TADR= Tiempo de lectura de un pgina en disco. TADW= Tiempo de escritura de un pgina en disco = 2*TADR.

68

Sistemas Operativos I

Tema 3. Gestin de Memoria

Se considera un descriptor de pginas de tamao igual a una palabra. Se consideraremos el siguiente criterio para el dirty_bit: dirty_bit=0 la pgina no ha sido modificada, mientras se encontraba en memoria y por tanto si es reemplazada no es necesario actualizarla en el disco. dirty_bit=1 la pgina si ha sido modificada, mientras se encontraba en memoria y por tanto si es reemplazada es necesario actualizarla en el disco. Como se trata de un sistema de memoria paginado cada vez que se haga referencia a una direccin lgica habr que consultar las tablas pginas, que en nuestro caso se encue ntra en memoria, para localizar el marco de la direccin fsica correspondiente. Mejor caso en el nmero de accesos, no hay fallo de pgina: La pgina referenciada se encuentra en memoria 1 acceso a memoria para consultar tabla de pginas y otro acceso a memoria a la direccin fsica correspondiente. Total 2 accesos a memoria = 2 TAM. Casos con fallo de pgina y reemplazo: Pueden ocurrir dos posibilidades que la pgina a reemplazar tenga el dirty_bit a 0 a 1. Es decir que sea necesario actualizar o no la pgina en el disco. Fallo de pgina con reemplazo y dirty_bit=0. o Leer descriptor de pgina en tabla de pginas en memoria = 1 TAM. o Leer pgina referenciada en el DISCO= TADR. o Escribir pgina en memoria = TAMW = 2N*TAM. o Actualizar tabla de pginas en memoria = 1TAM. o Se reinicia la solicitud de referencia. Total _ accesos = 2 (1 + N ) TAM + TADR Fallo de pgina con reemplazo y dirty_bit=1. o Leer descriptor de pgina en tabla de pginas en memoria = 1 TAM. o Actualizar pgina victima en el DISCO= TADW = 2 TADR. o Leer pgina referenciada en el DISCO= TADR. o Escribir pgina en memoria = TAMW =2N*TAM . o Actualizar tabla de pginas en memoria = 1TAM. o Se reinicia la solicitud de referencia. Total _ accesos = 2 (1 + N ) TAM + 3 TADR 71. En un sistema de gestin de memoria segmentado-paginado se tiene una MMU donde nicamente se permiten 8 segmentos por proceso y se emplean dos niveles de paginacin, implementando ambos en memoria principal. La tabla de segmentos se ha implementado en registros, con un tiempo de acceso igual a 2 ns. El tiempo de acceso a memoria (TAM) es igual a 20 ns. Para mejorar el rendimiento, se tiene un conjunto de registros asociativos (TLB), donde se guarda como clave tanto el nmero de segmento como los dos nmeros de pgina. El tiempo de acceso para estos registros asociativos es igual a 10 ns. Indique cul ser el tiempo de acceso efectivo (TAE) de este sistema, si las direcciones lgicas a traducir se encuentran en el TLB en el 90% de los accesos. Solucin Tiempo de acceso a registros= Treg= 2 ns TAM=20 ns
69

Sistemas Operativos I

Tema 3. Gestin de Memoria

Tiempo de acceso a TLB=Ttlb=10 ns. Porcentaje de aciertos en TLB= 90% tasa de aciertos= p= 0.9 Porcentaje de fallos en TLB=10% tasa de fallos=1- p= 0.1 Como se trata de un sistema de memoria segmentado paginado (no hay paginacin por demanda), se supone que todo el proceso se encuentra en memoria, por tanto no hay fallos de pgina, sino simplemente fallos en la bsqueda de descriptores en TLB. Para poder traducir la direccin lgica a fsica habr que conocer el segmento a que pertenece, consultar la tabla de segmentos para comprobar si la direccin es correcta y acceder a tablas de los dos niveles de paginacin. Cuando se emite una direccin lgica en el sistema se sigue el siguiente esquema: Se accede a los registros de la MMU para consultar la tabla de segmentos Treg. A continuacin se realiza una bsqueda en las TLB con el nmero de segmento y los nmero de pginas de los dos niveles Ttlb. o Si hay acierto en la bsqueda, la TLB contiene el marco donde se encuentra la pgina referenciada y se accede a memoria para satisfacer la solicitud TAM. o Si no hay acierto en la bsqueda de las TLB, entonces hay que consultar las dos tablas de pginas que se encuentran en memoria, para encontrar el marco donde se encuentra la pgina referenciada y se accede a memoria para satisfacer la solicitud 3TAM. Con todo ello el tiempo efectivo de acceso a memoria vendr dado: TAE = (Treg + TAM + Ttlb ) p + (1 p )(3 TAM + Ttlb + Treg ) TAE = (2 + 20 + 10) 0.9 + 0.1 (3 20 + 10 + 2) = 36 ns En este ejercicio se ha considerado que las pginas referenciadas siempre estaban en memoria, y la diferencia radicaba en el camino que se ha seguido para buscar el marco donde se encuentra la pgina. 72. Se tiene un sistema de memoria virtual con paginacin a un nivel que no utiliza intercambios y cuya tabla de pginas se encuentra en memoria principal. Este sistema utiliza una TLB (Translation Look-aside Buffers) cuyo porcentaje de aciertos es del 85%. Cunto empeora el TAE respecto a un sistema que tuviese la tabla de pginas ntegramente en registros del procesador?. Considere que el tiempo de acceso a los registros internos del procesador y a la TLB es despreciable frente al TAM (Tiempo de Acceso a Memoria). Solucin Caso de que la tabla de pginas se encuentre en registros del procesador: En este caso no hay posibilidad de fallo a la hora de encontrar el descriptor de pginas, por tanto cada vez que se emita una direccin lgica se consultan los registros del procesador y se accede a la direccin fsica solicitada Treg_proc +TAM TAM Caso con TLB y tabla de pginas en memoria:

70

Sistemas Operativos I

Tema 3. Gestin de Memoria

En este caso cada vez que se emita una direccin lgica se ha de consultar en TLB Ttlb 0. o Si hay acierto en la bsqueda, lo cual ocurre con una probabilidad p (p=0.85), se accede a memoria a la direccin fsica solicitada TAM pTAM. o Si no hay acierto en la bsqueda, lo cual ocurre con una probabilidad 1-p (1-p=0.15), hay que acceder dos veces a memoria una para encontrar el descriptor de pgina y otra para acceder a la direccin fsica solicitada 2*TAM (1-p)TAM. = TAM ; TAE 1

TAE = p TAM + (1 p ) 2 TAM = 0.85 TAM + 0.15 2 TAM = 1.15 TAM ; TAE TAE = 0.15 TAM
2 2 1

El porcentaje de mejora que se consigue utilizando los registros del procesador vendr dado por: TAE 2 TAE1 100 = 0.15 100 TAM = 13.04% TAM 1.15 TAE 2 73. En un sistema de gestin de memoria paginado, se han incluido unos registros asociativos (TLB) para mejorar el rendimiento del sistema. La bsqueda en estos registros cuesta 20 ns, mientras que su bsqueda y actualizacin cuesta 40 ns. El tiempo de acceso a memoria (TAM) es igual a 100 ns. Suponiendo que la tasa de acierto en el TLB es de un 80%, calcular el tiempo de acceso efectivo a memoria en este sistema. Solucin TAM=100 ns Tiempo de bqueda en TLB=Ttlbusq=20 ns. Tiempo de bqueda y actualizacin en TLB=Ttlbusq_act=40 ns. Porcentaje de aciertos en TLB= 80% tasa de aciertos= p= 0.8 Porcentaje de fallos en TLB=20% tasa de fallos=1- p= 0.2 Como se trata de un sistema de memoria paginada, sin memoria virtual, para pode r traducir la direccin lgica a fsica habr consultar las tablas pginas. Cuando se emite una direccin lgica se realiza una bsqueda en las TLB con el nmero de pgina de dicha direccin lgica Ttlbusq. Si hay un acierto en la bsqueda, lo cual ocurre con una probabilidad p, la TLB contiene el descriptor de la pgina referenciada y a continuacin se accede a la posicin de memoria referenciada TAM p. TAM. Si no hay acierto en la bsqueda de las TLB, lo cual ocurre con una probabilidad 1-p, entonces hay que consultar la tabla de pginas en memoria TAM y actualizar las TLB para que contenga el descriptor de la nueva pgina referenciada Ttact. Una vez se conoce el marco donde se encuentra la pgina se ha de acceder a memoria para satisfacer la solicitud TAM (1-p) (2TAM+Ttact). Con todo ello el tiempo efectivo de acceso a memoria vendr dado:
71

Sistemas Operativos I

Tema 3. Gestin de Memoria

TAE = (100 + 20 ) 0.8 + 0.2 (2 100 + 40 ) = 144 ns En este ejercicio se ha considerado que las pginas referenciadas siempre estaban en memoria.

TAE = (TAM + Ttlbusq ) p + (1 p )(2 TAM + Ttlbusq _ act )

74. Dado un esquema de gestin de memoria basado en paginacin y donde parte de la tabla de pginas se almacena en una TLB, indique cul sera el porcentaje de aciertos en la TLB para obtener un TAE inferior a 50 ns. El tiempo de acceso a la TLB es de 5 ns y el tiempo de acceso a memoria (TAM) es 30 ns. Solucin TAM=30 ns Tiempo de bqueda en TLB=Ttlbusq=5 ns. TAE<50ns Como se trata de un sistema de memoria paginada, sin memoria virtual, para poder traducir la direccin lgica a fsica habr consultar las tablas pginas. Cuando se emite una direccin lgica se realiza una bsqueda en las TLB con el nmero de pgina de dicha direccin lgica Ttlbusq. Si hay un acierto en la bsqueda, lo cual ocurre con una probabilidad p, la TLB contiene el descriptor de la pgina referenciada y a continuacin se accede a la posicin de memoria referenciada TAM p. TAM. Si no hay acierto en la bsqueda de las TLB, lo cual ocurre con una probabilidad 1-p, entonces hay que consultar la tabla de pginas en memoria TAM. Una vez se conoce el marco donde se encuentra la pgina se ha de acceder a memoria para satisfacer la solicitud TAM (1-p) (2TAM). Con todo ello el tiempo efectivo de acceso a memoria vendr dado: TAE = (TAM + Ttlbusq) p + (1 p )(2 TAM + Ttlbusq) < 50ns TAE = (30 + 5) p + (1 p) (2 30 + 5) = 35 p + 65 65 p = 65 30 p < 50 ns 15 p> = 0,5 30 En este ejercicio se ha considerado que las pginas referenciadas siempre estaban en memoria. 75. Sea un sistema con paginacin por demanda donde la tabla de pginas se implementa en registros. El tiempo de servicio de un fallo de pgina en caso de que haya marcos libres o la pgina reemplazada no ha sido modificada (dirty bit a 0) es de 8 ms, mientras que el tiempo de servicio en caso de que la pgina a reemplazar haya sido modificada (dirty bit a 1), el tiempo de servicio es de 20 ms. La probabilidad de encontrar un marco libre cuando se produce un fallo de pgina es de 0.5. La pgina a reemplazar tiene el dirty bit a 1 el 70% de las ocasiones. El tiempo de acceso a memoria fsica es de 100s. Cul es la mayor tasa de fallos de pgina (p) aceptable para que el tiempo de acceso efectivo no exceda de 200 s?.

72

Sistemas Operativos I

Tema 3. Gestin de Memoria

Solucin Consideraremos que la tabla de pginas est completa en los registros y por tanto slo puede haber fallo de pgina de la pgina donde se encuentra la referencia solicitada (no puede haber fallo de pgina de las pginas de la tabla de pginas). Cada vez que se emita una direccin lgica en este sistema las situaciones que pueden aparecer son las siguientes: p Referencia 1-p Hay fallo de pgina pm Hay marcos libres pb 1-pm No hay marcos libres 1-pb Dirty bit = 1 Dirty bit = 0 No hay fallo de pgina

Consideraremos el tiempo de acceso a estos registros es despreciable Treg 0. Tiempo de servicio de fallo de pgina cuando hay marcos libres= TFP1=8ms. Tiempo de servicio de fallo de pgina con dirty bit a 0= TFP1=8ms Tiempo de servicio de fallo de pgina con dirty bit a 1= TFP2=20ms. Pm= 0.5 1-pb=0.7; pb=0.3; TAM = 100seg. Como se trata de un sistema de memoria con paginacin por demanda para traducir direcciones l gicas a fsica habr que consultar las tablas pginas. Como la tabla de pginas se encuentra en registros, cada vez que se emite una direccin lgica se realiza una bsqueda en registros Treg 0. Si no hay fallo de pgina, lo cual ocurre con una probabilidad p, se accede a la posicin de memoria referenciada TAM p. TAM. Si hay fallo de pgina, lo cual ocurre con una probabilidad 1-p, entonces hay que traerse la pgina de disco y ubicarla en memoria o Si hay marcos libres lo cual ocurre con una probabilidad pm (pm *TFP1) o Si no hay marcos libre lo cual ocurre con una probabilidad 1 -pm tendremos dos casos: Dirty bit =0 (1-pm)*pb*TFP1 Dirty bit =0 (1-pm)*(1-pb)*TFP2. Con todo lo cual el tiempo de acceso efectivo a memoria quedar:

73

Sistemas Operativos I

Tema 3. Gestin de Memoria

TAE = p TAM + (1 p )( pm TFP 1 + (1 pm )( pb TFP 1 + (1 pb)TFP 2)) < 200 s TAE = p TAM + (1 p )( pm TFP 1 + (1 pm )(2.4ms + 14 ms )) < 200 TAE = p TAM + (1 p )(4ms + 8.2ms ) < 200 s TAE = p 100 s + (1 p)(12200 s ) = 12200 12100 p < 200 s 12000 p> = 0,9917 12100

74