Вы находитесь на странице: 1из 14

13 problemas resueltos. Tema: GESTION DE MEMORIA. Cual es la diferencia entre direcciones lgicas y fsicas?

Solucin El termino reubicable se refiere ala capacidad de cargar y ejecutar un programa determinado en una posicin arbitraria de memoria, en contraposicin a un conjunto fijo de posiciones especificadas en el momento de traduccin del programa. Como durante las diferentes ejecuciones de un mismo programa reubicable se le pueden asignar diferentes direcciones de carga, se puede distinguir entre Las direcciones virtuales, que corresponden a las percibidas por el programador, y son identificadores utilizados para referenciar informacin dentro del espacio de direcciones de un programa y,

Las direcciones fsicas en donde el programa y sus datos se almacenan en memoria durante una ejecucin determinada es decir, que designan, por lo tanto, las posiciones reales en memoria donde la informacin se almacena en tiempo de ejecucin.

Explicar la diferencia fragmentacin externa.

entre

la

fragmentacin

interna

y la

Solucin En general, la fragmentacin se refiere a la incapacidad del sistema operativo para asignar porciones de memoria no utilizada. Se distingue entre: Fragmentacin interna corresponde al espacio interno de una particin que se malgasta cuando el bloque de datos cargado es mas pequeo que la particin. Fragmentacin externa tiene lugar cuando una participacin disponible no se utiliza porque es muy pequea para cualquiera de las tareas que esperan cargarse en memoria.

a) b) c) d)

Explicar los algoritmos de asignacin: Primero en ajustarse Mejor en ajustarse Peor en ajustarse Siguiente en ajustarse

Solucin Son los algoritmos mas habituales para la seleccin de un rea libre de memoria para asignrsela aun proceso recin creado o intercambiado.

a) El algoritmo primero en ajustarse es la estrategia mas simple y rpida. En este caso, el gestor de memoria asigna al proceso entrante el primer bloque libre suficiente grande que encuentra al recorrer la lista. b) El algoritmo mejor en ajustarse recorre la lista de memoria libre entera para hallar el bloque libre mas pequeo suficientemente grande para contener al proceso. Resulta lento y tiende a producir bloques de restos libres pequeos que pueden resultar demasiados pequeos para asignaciones posteriores c) El algoritmo peor en ajustarse representa el caso contrario al algoritmo mejor en ajustarse ya que asignan el bloque libre ms grande, siempre que el tamao del bloque exceda al tamao necesario. Este algoritmo suprime el efecto d particiones muy pequeas generadas por la estrategia anterior y produce evidentemente los restos mas grandes, pero, sin embargo algunos estudios de simulacin indican que este tipo de asignacin no es muy efectiva reduciendo la memoria desaprovechada cuando se procesan una serie de peticiones. d) El algoritmo siguiente en ajustarse corresponde a una modificacin del primero en ajustarse en donde se aade un puntero a la lista de memoria libre que guarda la direccin de la ltima asignacin y se utiliza para comenzar de l la bsqueda de la asignacin siguiente. la idea es reducir la bsqueda evitando examinar los bloques pequeos que a la larga tienden a acumularse al comienzo de la lista de memoria libre como resultado de las asignaciones previas.

Problema: Calcular el porcentaje de tiempo de CPU utilizado para la compactacin de la memoria en una maquina de 1Mb de memoria. La compactacin se hace cada 0,5 s y se tarda 300 ns en copiar una byte. Los espacios desaprovechados en promedio son del 50% del tamao de los bloques.

Solucin Se entiende por compactacin la tcnica que permite mover los procesos hacia la parte inferior (o superior) de la memoria de forma que es posible combinar todos los bloques libres en uno grande. Con esta tcnica se palia el problema de la fragmentacin externa de algunos sistemas de gestin de memoria. La cuestin que se resuelve es la siguiente: La memoria que debe ser asignada a

un proceso nuevo en particular debe ser continua, pero la memoria libre disponible se halla dispersa debido a la fragmentacin externa por lo que no se puede usar. En cualquier caso la solucin de la compactacin resulta ser un mtodo de muy alto coste. El espacio desaprovechado es del 50%, ello indica que se deben trasladar a un extremo de la memoria el 50% de la misma, es decir o.5 Mb. Por lo tanto, el nmero de bytes que se debe trasladar es: M= (1024*1024)*0.5= 524288 bytes (Conversin de megabytes a bytes) El tiempo total para el traslado es: Tcpu= 524288 * 300 * 10-9= 0,1573sg
-9 (1 segundo tiene 10 nanosegundos)

Si cada 0,5 se pasa 0,1573 seg compactando, entonces cada 1 seg estar 0,3146s por lo que el 3146% del tiempo de CPU se esta desaprovechando en tiempos de compactacin. Obsrvese el elevado tiempo que se utiliza para las tareas de compactacin como se comentaba al inicio del problema.

PROBLEMA: Considerar un sistema con intercambio en el que la memoria posee huecos libres de tamao: 1000 Kb, 400Kb, 1800 Kb 700 Kb 900 Kb, 1200 Kb, y 1500 Kb. Estos huecos estn dispuestos en el orden dado. Se requieren tres segmentos de tamaos 1200 Kb, 1000 Kb, y 900 Kb. Para los algoritmos primero en ajustarse, mejor en ajustarse, peor en ajustarse, siguiente en ajustarse: a) Qu huecos sern asignados? b) Qu algoritmos aprovecha mejor la memoria? Solucin El algoritmo primero en ajustarse es la estrategia ms simple y rpida. En este caso, el gestor de memoria asigna al proceso entrante el primer bloque libre suficientemente grande que encuentra al recorrer la lista. Para este algoritmo se tiene:
Huecos en Kb

1000 400 1800 700 900 1200 1500

Segmento 1200 Kb 1000 Kb 900 Kb

Hueco asignado 1800 1000 900

Fragmentacin 600 0 0

El algoritmo mejor en ajustarse recorre la lista de memoria libre entera para hallar el bloque libre ms pequeo suficientemente grande para contener al proceso. Resulta lento y tiende a producir bloques de restos libres pequeos que pueden resultar demasiados pequeos para asignaciones posteriores. Para el algoritmo mejor ajustarse: Segmento 1200 Kb 1000 Kb 900 Kb Hueco asignado 1200 1000 900 Fragmentacin 0 0 0

El algoritmo peor en ajustarse representa el caso contrario al algoritmo mejor en ajustarse ya que asignan el bloque libre ms grande, siempre que el tamao del bloque exceda al tamao necesario. Este algoritmo suprime el efecto de particiones muy pequeas generadas por la estrategia anterior y produce evidentemente los restos ms grandes, pero, sin embargo, algunos estudios de simulacin indican que este tipo de asignacin no es muy efectiva reduciendo la memoria desaprovechada cuando se procesan una serie de peticiones. Para el algoritmo peor en ajustarse:

Segmento 1200 Kb 1000 Kb 900 Kb

Hueco asignado 1800 1500 1200

Fragmentacin 600 500 300

El algoritmo siguiente en ajustarse corresponde a una modificacin del primero en ajustarse en donde se aade un puntero a las listas de memoria libre que guarda la direccin de la ltima asignacin y se utiliza para comenzar a partir de l la bsqueda de la asignacin siguiente. La idea es reducir la bsqueda evitando examinar los bloques pequeos que a la larga tienden a acumularse al comienzo de la lista de memoria libre como resultado de las asignaciones previas. Para el algoritmo siguiente en ajustarse: Segmento 1200 Kb 1000 Kb 900 Kb Hueco asignado 1800 1200 1500 Fragmentacin 600 200 600

Si las particiones libres dadas se corresponden a una gestin de memoria con participaciones fijas se estar hablando de fragmentacin interna no utilizable por ningn otro proceso. En este caso el algoritmo que mejor aprovecha la memoria es el mejor en ajustarse dado que no produce fragmentacin interna, despus el algoritmo primero en ajustarse con fragmentacin interna de 600 y finalmente los otros dos que producen una fragmentacin interna de 1400. Sin embargo, si las participaciones libres dadas se corresponden con el estado de la memoria en un instante dado de una gestin de memoria con participaciones variables entonces se estar hablando de fragmentacin externa que en este caso puede que no lo sea, dado que los nuevos bloques libres son lo suficientemente grandes para alojar a otros procesos que vengan posteriormente.

En cualquier caso y a la vista de estos resultados se puede concluir que el algoritmo que mejor aprovecha la memoria es el mejor en ajustarse porque se ajusta exactamente a los bloques libres dados y estos impiden que se creen bloques pequeos no utilizables como era de esperar en este tipo de algoritmo.

Supngase un computador cuya instruccin ensamblador tiene la forma: ADD R1, R2, R3

de

suma,

en

Cuyo significado es que se suma el contenido de la direccin R1 con el de R2 y el resultado se sita en R3. La instruccin ocupa tres palabras y todos los direccionamientos son directos (es decir, la direccin efectiva es parte de la propia instruccin). Cul es el nmero mnimo de marcos de pgina que esta instruccin requiere para garantizar su ejecucin? Explicar la respuesta Solucin El tamao del marco de pgina puede ser de 4 Kb por lo que un marco puede guardar perfectamente la instruccin y sern necesarios otros tres ms para guardar R1, R2 y R3. En total 4 marcos.

PROBLEMA: Un computador tiene un espacio de direcciones de 32 bits y pginas de 8 Kb. La tabla de pginas est realizada fsicamente como un conjunto de registros, con una palabra de 32 bits por cada dato. Al iniciar un proceso la tabla de pginas se copia al hardware desde la memoria, con una palabra cada 100 ns (nanosegundos). Si cada proceso se ejecuta durante

100 ms (milisegundos) (incluyendo el tiempo de carga de la tabla de pginas). Cul es la fraccin de tiempo del procesador que se dedica a la carga de la tabla de pginas? Solucin Como el tamao de una pgina es igual al marco de pgina, se puede calcular el nmero de marcos de pgina que caben en la memoria fsica y que por lo tanto que se pueden direccionar desde la tabla de pginas. De esta forma se calcula la mxima tabla de pginas posible, es decir aquella que contiene la asociacin de pginas con todos los posibles marcos de pgina:

232
_________

232 =
__________

23 * 210
32

213

= 219 marcos de pgina

(2 cantidad de memoria direccionada por los 32 bits) 3 * 10 ( 2 2 8 * 1024 conversin de 8K a bits. Cantidad de memoria ocupada por los marcos de pgina) 19 (2 cantidad de paginas de 8k que caben en el espacio de memoria de 32 bits)

Por cada marco se tiene una palabra en la tabla de pginas por lo tanto, el tiempo que se emplea en cargar las 219 palabras. Tc= 219 * 100 *10 -9 = 52.4 ms Como el tiempo total de ejecucin de un proceso es de 100 ms, entonces se ejecuta realmente durante 47,6 ms. Por lo tanto se pasa el 52,4% como mximo cargado la tabla d pginas.

Cuando surgi el concepto de la memoria virtual y se implement por primera vez, las memorias principales eran pequeas y con frecuencia las aplicaciones eran mayores que la memoria principal. Hoy en da, la tecnologa ha cambiado drsticamente y cualquier computador personal tiene varios GIGAbytes. Es de esperar que la capacidad de la memoria siga creciendo y que en el futuro sea normal tener una memoria principal con capacidad de TERAbytes. Pero el tiempo de acceso a los discos no crece de la misma forma. Discutir si con este tipo de situacin es rentable disponer de un esquema de gestin de memoria virtual.

Solucin

Puesto que esquema de gestin de memoria virtual implica estar trayendo pginas desde disco si tiene lugar un fallo de pgina y este tipo de acceso no

mejora temporalmente hablando y si por otro lado se tiene suficiente memoria principal para alojar a los procesos que se quieren ejecutar enteros no ser rentable mantener este esquema de memoria. Adems no es nicamente que se pueda disponer de ms memoria sino que sta est sufriendo un abaratamiento del coste continuo.

PROBLEMA: Se tiene un sistema que utiliza gestin de memoria paginada. El espacio de direccionamiento virtual es de 10 pginas de 1024 palabras ( 1 palabra= 2bytes). La memoria fsica est dividida en 32 marcos. a) Cuntos bits componen una direccin virtual? b) Cuntos bits componen una direccin fsica? Solucin a) para direccionar una direccin virtual, se tiene que indicar su nmero de pgina y su desplazamiento:

N de pagina ( 10 paginas) 4 bits

Desplazamiento (1024 palabras o 2024 bytes) ( 10 bits o 11 bits)

El nmero de pginas totales es 10, por lo tanto, para distinguir entre 10 pginas hace falta 4 bits (1111 dara para 15 pginas). El desplazamiento corresponde al tamao de la pagina, si el desplazamiento se expresa en palabras ser necesario poder direccionar 1024 palabras, luego es suficiente con 10 bits, sin embargo si el desplazamiento se expresa en bytes ser necesario 11 bits. En total para representar la direccin virtual son necesarios 14 bits si se expresa el desplazamiento en palabra o 15 bits si se expresa en bytes. b) para direccionar una direccin fsica, es necesario indicar su nmero de marco de pgina y su desplazamiento:

N de pagina ( 32 marcos: de 0 a 31. Binario de 31) (5 bits)

Desplazamiento (1024 palabras o 2048 bytes) (de 0 a 1023: binario de 1023 o De 0 a 2048: binario de 2047) ( 10 bits o 11 bits)

El nmero de marcos de pginas totales es de 32, por lo tanto, para distinguir entre estos 32 marcos hacen falta 5 bits. El desplazamiento corresponde al tamao del marco de pgina, igual al de la pgina, por lo tanto de 1024 palabras, luego es necesario 10 bits para distinguir entre palabras u 11 bits si el desplazamiento se expresa en bytes. En total para representar la direccin fsica son necesarios 15 bits si se expresa el desplazamiento en palabra o 16 bits si se expresa en bytes

Si una instruccin necesita 1 microsegundo para ejecutarse y un fallo de pgina tarda n microsegundos adicionales, dar una frmula que exprese el tiempo promedio de acceso necesario para una instruccin si los fallos de pginas ocurren cada K instrucciones. ( He creado un hipervnculo para la definicin de fallo de pgina) Solucin El tiempo que transcurre para K instrucciones es el tiempo de ejecucin de las K-1 instrucciones anteriores sin fallo de pgina que es K-1 seg mas el tiempo correspondiente al fallo de pgina de la K-estima instruccin mas la ejecucin de la correspondiente instruccin, n*+1, es decir:

T= (K-1)+ (1+n)= K+n us Por lo tanto en promedio una instruccin tardara:


T

instruccin=K+n us K

Para un computador que tiene 100 Mb de memoria fsica, suponer que el tamao de pagina es de 2 Kb. Cuntas entradas debe de tener una memoria asociativa para implementar una tabla de pagina para la memoria?

Solucin Si la memoria tiene 100 Mdirreciones, y cada pg. requiere de 2 Kb, entonces hay 100 Mb/2 Kb=50 Kb marcos de pagina en la memoria. cada marco requiere una entrada, por lo tanto la memoria asociativa debe tener 50 Kb entradas.

PROBLEMA: En un sistema con gestin de memoria virtual por demanda de pgina con segmentacin paginada, las direcciones lgicas tienen la siguiente estructura: 31 N de segmento 19 Desplazamiento 19 N de pgina 7 desplazamiento 0

Las tablas de descriptores de segmento y de pgina son las siguientes ( ver Tabla 4.21): N segmento .. 00A 00B 00C 00D .. Bit validacin .. 07FF 02FF 01FF 03FF .. Marco de pgina .. 0081 00F2 0103 01FA .

Tabla 4.17: Tabla de descriptores de segmento

N Pagina Bit validacin Marco de pgina 0 1 3501 1 0 xxxx 2 0 xxxx 3 1 0020 4 1 0137 5 0 xxxx 6 0 xxxx 7 1 0AIF Tabla 4.18: Tabla de pginas del segmento con base en 0081 N Pagina Bit validacin Marco de pgina 0 1 320F 1 0 xxxx 2 0 xxxx 3 1 33DA Tabla 4.19: Tabla de pginas del segmento con base en 01FA N Pagina 0 1 2 Bit validacin 1 0 1 Marco de pgina 014D xxxxx F001

Tabla 4.20: Tabla de pginas del segmento con base en 00F2 N Pagina 0 1 Marco de pgina 1 AB10 1 0126 Tabla 4.20: Tabla de pginas del segmento con base en 0103 Bit validacin

a) Explicar de una forma razonada cuales de las siguientes direcciones lgicas generan un fallo de pgina y cuales un error de direccionamiento, para las correctas calcular la direccin fsica que les corresponde: 00A001A4 00D003F1 00A100B2 00C41F20 00A0075F 00D002D b) En este sistema, y suponiendo que se le asigna a cada proceso tantos marcos de pginas como solicite, Cul es el mximo nmero de marcos de pgina que el sistema operativo puede asignara a un proceso?

Nota: todas las direcciones se han dado en hexadecimal. Solucin

a) Se sigue el esquema de la Figura 4.16. se verifica si el segmento existe, si es as se verifica si la pgina esta (para lo cual se ha aadido un bit de validacin en las tablas de pginas), si la pgina esta se verifica que con el desplazamiento dado en la direccin no se viola el tamao del segmento. Direccin 00A001A4

N segmento 00A

N pgina 001

desplazamiento A4

La base para el segmento 00 A es 0081, al ir a la tabla de pginas de este segmento se observa que la pgina 001 no se encuentra en memoria, por lo tanto se producir un fallo de pgina. Direccin 00D003F1 N segmento 00D N pgina 003 desplazamiento F1

La base para el segmento 00D es 01FA, en la correspondiente tabla de pgina se observa que el marco de pgina para la pgina 003 es 33 DA, y no se viola el tamao del segmento, por lo tanto la direccin fsicas es: 33DAF1.

Direccin 00A100B2: N segmento 00A N pgina 100 desplazamiento B2

La base para el segmento 00A es 0081,pero su lmite es 07FF, 100B2 supera este lmite por lo que se produce una violacin del tamao del segmento o error de direccionamiento. Direccin 00C41F20 N segmento 00C N pgina 41F desplazamiento 20

La base para el segmento 00C es 0103, pero sus limite es 01FF, 41F20 supera este lmite por lo que se produce una violacin del tamao del segmento o error de direccionamiento. Direccin 00A0075F: N segmento 00A N pgina 007 desplazamiento 5F

La base para el segmento 00A es 0081, en la correspondiente tabla de pgina se observa que el marco de pgina para la pgina 007 es 0A1F, y no se viola el tamao del segmento, por lo tanto la direccin fsica es 0A1F5F.

Direccin 00D0002D: N segmento 00D N pgina 000 desplazamiento 2D

La base para el segmento 00D es 01FA, en la correspondiente tabla de pgina se observa que el marco de pgina para la pgina 000 es 320F, y no se viola el tamao del segmento, por lo tanto la direccin fsica es 320F2D. b) El nmero de marcos de pgina que se le puede asignar a un proceso puede estar determinado por el mximo nmero de pginas que puede direccionar o por el tamao de la memoria. El numero de pginas que un proceso puede direccionar esta limitado por la direccin lgica. En el caso actual, segn el formato de la direccin lgica el mximo numero de pginas que se puede direccionar es:

Pginas= segmentos* 224paginas

pginas/seg=212

segmentos

*212

pginas/seg=

En un sistema con gestin de memoria virtual por demanda de pginas, el cdigo reubicable de un programa, despus de la complicacin, ocupa diez pginas (numeradas de 0 a 9) de 2 Kb cada una. Cuando el programa se carga abra ejecucin, se cargan las pginas 3 y 4 en los marcos 5 y2 respectivamente. a) Dibujar la tabla de pginas para esta situacin y la parte de la memoria principal correspondiente, (En la tabla de pginas incluir el marco de pagina asignado y un bit de presente/ausente). b) En otro instante de tiempo, la tabla de pginas corresponde a la Tabla 4.15. Indicar a que direcciones fsicas de memoria principal corresponden las direcciones lgicas 1000, 3500, 8000 y 19500 (en decimal)

c) Si el sistema de gestin de memoria hace la asignacin con solo 4 marcos de pgina y hace una prepaginacin de una pagina. Indicar los fallos de pgina que se producen para los algoritmos de sustitucin FIFO Y LUR con la siguiente cadena de referencia:

192124565656 7 7 5 5 4 4 5 N de pgina 0 1 2 3 4 5 6 7 8 9 Marco de pgina Bit presente/ausente 3 1 4 1 3 0 4 0 1 0 3 0 4 0 8 1 1 0 3 0 Tabla 4.15: Tabla de pginas

Solucin a) Slo se tienen cargadas las pginas 3 y 4, que son las que tienen a 1 el bit de presente/ausente. La tabla de pginas para esta situacin es la indicada a continuacin:

N de pgina 0 1 2 3 4 5 6 7 8 9

Marco de pgina X X X 5 2 X X X X X

Bit presente/ausente 0 0 I I 0 0 0 0 0 0

Si los marcos estn asociados a la memoria principal, de forma que el marco 0 se halla en la direccin 0, la memoria principal queda:

Direccin fsica

Marco de pgina 0 1 2 3 4 5 6 7 8 9

0 2048 4096 6144 8192 10240 12288 14336 16384 18432

b) La direccin fsica viene dada por la expresin: D fisica = n marco * tamao + desplazamiento Teniendo en cuenta esto: La direccin virtual 1000 se halla en la pagina 0 que se corresponde con el marco 3, por lo tanto: D1000 = 3 * 2048 + 1000 = 7144 La direccin virtual 3500 se halla en la pagina 1 con un desplazamiento de 35000-2048=1452 Entonces la direccin fsica, teniendo en cuenta que la pgina 1 le corresponde el marco 4, ser:

D1000 = 4 * 2048 + 1452 = 9644

La direccin virtual 8000 se halla en la pgina 8000/2048=3 de ,9, es decir, en la pgina 3 con un desplazamiento de 8000 - (2048*3) = 1856

Pero esta pgina no tiene ningn asociado como indica su bit de presente/ausente a cero, por lo tanto, no tiene ninguna direccin fsica asociada. La direccin virtual 19500 se halla en la pgina 19500/2048=9,52, es decir en la pagina 9 con un desplazamiento de 19500 18432 = 1068 Pero esta pgina no tiene ningn marco asociado como indica su bit de presente/ ausente a cero, por lo tanto, no tiene ninguna direccin fsica asociada.

Вам также может понравиться