Particiones Fijas y Variables Uned

65
© Carolina Mañoso, 2002 Convivencia Gestión de la Memoria Gestión de la Memoria Gestión de la Memoria Dra. Carolina Mañoso Dpto. Informática y Automática.UNED

Transcript of Particiones Fijas y Variables Uned

  • Carolina Maoso, 2002

    Convivencia

    Gestin de la MemoriaGestin de la MemoriaGestin de la Memoria

    Dra. Carolina MaosoDpto. Informtica y Automtica.UNED

  • Carolina Maoso, 2002

    Introduccin (1/2)

    Para que un proceso est preparado para ejecucin debe estar cargado en memoria principal

    La misin del gestor de memoria es la asignacin de memoria principal a los procesos que la soliciten

    El espacio vacante se puede utilizar para cargar procesos que estn ya preparados para su ejecucin, de forma que el planificador est en mejores condiciones de preparar las tareas que se van a ejecutar

  • Carolina Maoso, 2002

    Introduccin (2/2)

    Un slo procesoMonitor

    Particiones FijasIntercambio/Reubicacin

    Particiones Variablesprimero en ajustarse...

    Paginacin Segmentacin Pag./Seg.

    Memoria Virtual

    Varios procesosMultiprogramacin

    Sistemas de Gestin de Memoria

  • Carolina Maoso, 2002

    Gestin de memoria de un solo proceso

    Sin gestin de Memoria: El usuario se encuentra con la mquina desnuda y tiene un control completo sobre el espacio total de la memoria (hasta los 60)

    La memoria esta dividida en dos secciones: Una est asignada permanentemente a la parte del s.o. que

    debe estar residente en memoria o monitor La otra se asigna a los llamados procesos transitorios, que

    son cargados y ejecutados uno cada vez, en respuesta a rdenes de usuario

    La memoria esta dividida en tres secciones: La parte inferior (en RAM) est asignada al s.o. La parte central al nico programa del usuario La parte superior (en ROM, (BIOS)) a los controladores de

    dispositivos

    Monitor

    Usuario

    0

    Max

    0

    Max

    Monitor

    Usuario

    Controladores

  • Carolina Maoso, 2002

    Multiprogramacin

    Multiprogramacin: permite el entrelazado y el solapamiento de la ejecucin de ms de un programa de forma que se mantenga del modo ms ocupado posible todos los recursos

    Se utiliza el trmino multitarea para referirse a la capacidad que tienen los s.o. de ejecutar de forma simultnea varios

    procesos. El trmino multiprogramacin es ms general pues incluye adems de la posibilidad de multitarea, la capacidad

    de gestin de memoria y de los ficheros

  • Carolina Maoso, 2002

    Particiones fijas (1/3)

    Consiste en divisiones de memoria que se efectan en algn momento antes de ejecutar los programas de usuario y permanecen fijas desde entonces

    El nmero de particiones distintas determina el grado de multiprogramacin

    Problema: la fragmentacin interna o memoria desaprovechada dentro de una particin

  • Carolina Maoso, 2002

    Particiones fijas (2/3)

    Una vez definidas las particiones, el s.o. necesita llevar la cuenta de sus estados, libre o en uso para propsitos de asignacin

    El estado y los atributos de las particiones se recogen en una estructura de datos llamada tabla de descripcin de particiones (TDP).

    Cada particin est descrita por su direccin inicial (base), su tamao y su estado. Los campos de la base y tamao son fijos

  • Carolina Maoso, 2002

    Particiones fijas (3/3)

    Otra organizacin posible es asignar una cola de tareas a cada particin en memoria y las tareas se incluyen en la cola de la particin de memoria correspondiente a sus exigencias de memoria

    Estrategias de asignacin de particiones: Primer ajuste Mejor ajuste

  • Carolina Maoso, 2002

    Intercambio o sawpping (1/2)

    Corresponde a las operaciones de eliminar de memoria principal los procesos suspendidos, llevarlos al disco y cargar del disco a la memoria principal procesos para su ejecucin

    Las funciones a realizar son: La seleccin de los procesos que hay que eliminar de la memoria

    principal La seleccin de los procesos que hay que cargar en memoria

    principal La asignacin y gestin del espacio de intercambio

  • Carolina Maoso, 2002

    Intercambio o sawpping (2/2)

    El intercambiador efecta la mayora de las funciones del planificador a medio plazo

    Se corre el peligro del trasiego o thrashing provocado por la retirada repetida de procesos de memoria casi inmediatamente despus de ser cargados en la memoria

    Hay que disponer de un archivo de intercambio para almacenar la imagen dinmica del proceso retirado, as se puede tener: Archivo de intercambio global del sistema Archivos de intercambio dedicados, uno por cada proceso

  • Carolina Maoso, 2002

    Reubicacin

    Se refiere a la capacidad de cargar y ejecutar un programa determinado en una posicin arbitraria de memoria, en contraposicin a un nmero fijo de posiciones especificadas en el momento de la traduccin del programa

    Dependiendo de cundo y cmo tenga lugar la traduccin del espacio de direcciones virtuales al espacio de direcciones fsicas tendremos dos tipos de reubicacin: Esttica Dinmica: se implementa mediante registros base especializados

  • Carolina Maoso, 2002

    Proteccin

    En sistemas que utilizan registros base para la reubicacin es habitual utilizar registros lmite para la proteccin

    Los valores base y lmite de cada proceso se guardan en su BCP

    Otro mtodo de proteccin es registrar los derechos de acceso en la propia memoria, asociando unos cuantos bits de proteccin con grandes bloques de memoria llamadosclave

  • Carolina Maoso, 2002

    Fragmentacin de Memoria

    Existen dos tipos de desaprovechamiento de la memoria:

    Fragmentacin interna: consiste en aquella parte de la memoria que no se est usando porque es interna a una particin asignada a una tarea

    Fragmentacin externa: ocurre cuando una particin disponible no se emplea porque es muy pequea para cualquiera de las tareas que esperan

    La seleccin de los tamaos de las particiones es un compromiso entre estos dos casos de fragmentacin

  • Carolina Maoso, 2002

    Ejercicio 1

    Prctica de particiones fijas

    Considerar un sistema con intercambio, en el que la memoria posee particiones libres de tamao fijo: 1000Kb, 400Kb, 1800Kb, 700Kb,900Kb, 1200Kb y 1500Kb. Estos huecos estn dispuestos en el orden dado. Se tienen tres procesos de tamaos 1200Kb, 1000Kb y 900Kb. Para los algoritmos:

    - Primero en ajustarse- Mejor en ajustarse- Peor en ajustarse- Siguiente en ajustarse

    a) Qu huecos sern asignados?b) Qu algoritmo aprovecha mejor la memoria?

  • Carolina Maoso, 2002

    Solucin 1 (1/4)

    Prctica de particiones fijas

    a) Para el algoritmo primero en ajustarse:Segmento Hueco asignado Fragmentacin1200Kb 1800 6001000Kb 1000 0900Kb 900 0

    Para el algoritmo mejor ajustarse:

    Segmento Hueco asignado Fragmentacin1200Kb 1200 01000Kb 1000 0900Kb 900 0

  • Carolina Maoso, 2002

    Solucin 1 (2/4)

    Prctica de particiones fijas

    Para el algoritmo peor en ajustarse:

    Segmento Hueco asignado Fragmentacin1200Kb 1800 6001000Kb 1500 500900Kb 1200 300

    Para el algoritmo siguiente en ajustarse:

    Segmento Hueco asignado Fragmentacin1200Kb 1800 6001000Kb 1200 200900Kb 1500 600

  • Carolina Maoso, 2002

    Solucin 1 (3/4)

    Prctica de particiones fijas

    Si el sistema de gestin de memoria es de particiones fijas (como indica el enunciado) el problema es la fragmentacin interna. En este caso el algoritmo que mejor aprovecha la memoria es el mejor en ajustarse dado que la fragmentacin interna es nula, despus el algoritmo primero en ajustarse con fragmentacin interna de 600 y finalmente los otros dos queproducen una fragmentacin interna de 1400

  • Carolina Maoso, 2002

    Solucin 1 (4/4)

    Prctica de particiones fijas

    Sin embargo, si las particiones libres dadas se corresponden con el estado de la memoria en un instante dado de una gestin de memoria con particiones variables entonces se estar hablando de fragmentacin externa que en esta caso no tiene lugar, 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 ajustarseporque se ajusta exactamente a los bloques libres dados y esto impide que se creen bloques pequeos no utilizables como era de esperar en este tipo de algoritmo

  • Carolina Maoso, 2002

    Particiones dinmicas (1/2)

    Cuando se pide que se cargue una imagen de un proceso en memoria, el mdulo de gestin intenta crear una particin adecuada que asignar al proceso en cuestin, para ello es preciso localizar un rea libre de memoria que sea igual o mayor que el proceso, si es as se fabrica la particin

    La gestin de la memoria con particiones libres plantea el problema de mantenimiento de un registro de particiones libres y ocupadas que sea eficiente, tanto en tiempo para la asignacin como para el aprovechamiento de la memoria. Formas de mantener este registro: Mapa de bits Listas enlazadas para las particiones libres y asignadas El sistema de los asociados

  • Carolina Maoso, 2002

    Los algoritmos ms habituales para la seleccin de un rea libre de memoria a la hora de la creacin de una particin son: Primer ajuste Siguiente ajuste Mejor ajuste Peor ajuste

    Problema la fragmentacin externa o memoria desaprovechada entre particiones

    La diferencia esencial con la gestin esttica, es que las entradas a la TDP se utilizan slo para definicin de las particiones creadas y asignadas y las reas libres se describen en la lista de memoria libre

    Particiones dinmicas (2/2)

  • Carolina Maoso, 2002

    Compactacin

    Si la memoria resulta seriamente fragmentada, la nica salida posible es reubicar algunas o todas las particiones en un extremo de la memoria y as combinar los huecos para formar una nica rea libre grande a este proceso se le llama compactacin

    Como los procesos afectados deben de ser suspendidos y copiados realmente de un rea de memoria a otra, es importante decidir cuando debe realizarse la compactacin

  • Carolina Maoso, 2002

    Ejercicio 2

    Prctica de compactacin

    Calcular el porcentaje de tiempo de UCP utilizado para la compactacin de la memoria en una mquina de 1Mb de memoria. La compactacin se hace cada 0,5 seg. y se tarda 300 nseg. en copiar un byte. Los espacios desaprovechados en promedio son del50% del tamao de los bloques

  • Carolina Maoso, 2002

    Solucin 2 (1/2)

    Prctica de compactacin

    Se entiende por compactacin la tcnica que permite mover todos 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 pala 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 contigua, 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

  • Carolina Maoso, 2002

    Solucin 2 (2/2)

    Prctica de compactacin

    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 0,5Mb. Por lo tanto, el nmero de bytes que se debe trasladar es:

    El tiempo total para el traslado es:

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

    seg 1573,0910.300524288 ==CPUT

    bytes 5242885,0)10241024( ==M

  • Carolina Maoso, 2002

    Paginacin (1/4)

    Se suprime el requisito de la asignacin contigua de memoria fsica a un programa

    La memoria fsica se divide conceptualmente en una serie de porciones de tamao fijo, llamadas marcos de pgina

    El espacio de direcciones virtuales de un proceso se divide adems en bloques de tamao fijo del mismo tamao llamados pginas

    La asignacin de memoria consiste en hallar un nmero suficiente de marcos de pgina sin utilizar para cargar en ellos las pginas del proceso solicitante

  • Carolina Maoso, 2002

    Paginacin (2/4)

    Puesto que cada pgina se hace corresponder separadamente, los diferentes marcos de pgina asignados a un solo proceso no necesitan ocupar reas contiguas de memoria fsica

    Cada direccin virtual esta dividida en dos partes: El nmero de pgina El desplazamiento dentro de esa pgina

    Para efectuar la traduccin de las direcciones, el nmero de pgina se emplea como un ndice en la tabla de pginas y la direccin fsica se construye sustituyendo, el primer campo en el que se divide la direccin, el nmero de pgina por el marco de pgina correspondiente

  • Carolina Maoso, 2002

    Paginacin (3/4)

    Memoria

    CPU

    Tabla de Pginas

    000

    001

    002

    003

    102

    FFC

    104

    FFE

    002 0FF 104 0FF

    102000

    103000104000

    1040FF

    101000

    Direccin Lgica Direccin Fsica

  • Carolina Maoso, 2002

    Paginacin (4/4)

    Si el tamao de un proceso dado no es mltiplo entero del tamao de la pgina, el ltimo marco de pgina puede estar parcialmente inutilizado, esto se llama fragmentacin oruptura de pgina

    Para acelerar el proceso de traduccin de direcciones: La utilizacin de registros especficos para la tabla de pginas es

    adecuada si la tabla de pginas es pequea. Un mtodo comnmente utilizado es utilizar una memoria asociativa

    de alta velocidad para almacenar un subconjunto de las entradas de la tabla del mapa de pginas ms frecuentemente utilizadas. Estamemoria se denomina buffer para apartado de traducciones (BAT)

  • Carolina Maoso, 2002

    Ejercicio 3 (1/2)

    Prctica de paginacin

    Supngase que la tabla de pginas de un proceso que se est ejecutando en el procesador es:

    N de Pg. N de Marco de Pg. R M V0 4 1 0 11 7 1 1 12 --- 0 0 03 2 0 0 14 --- 0 0 05 0 0 1 1

  • Carolina Maoso, 2002

    Ejercicio 3 (2/2)

    Prctica de paginacin

    R: es el bit de referencia. R=1 (la pgina ha sido referenciada)M: es el bit de modificacin. M=1 (la pgina ha sido modificada)V: es el bit de Presente/ausente. V=1 (la pgina en cuestin est en memoria principal, tiene un marco asociado)El tamao de las pginas es de 1kb. El marco 0 est cargado el la direccin fsica cero y el resto sucesivamenteSe pide: A qu direcciones fsicas corresponden las siguientes direcciones virtuales?a). (1, 125) b). (2, 324) c). (5, 322) d). (7, 321) e). (3, 1026)El formato en el que se da la direccin virtual corresponde a (n de pgina, desplazamiento)

  • Carolina Maoso, 2002

    Solucin 3 (1/2)

    Prctica de paginacin

    La direccin fsica, de acuerdo con el sistema de paginacin, ser el nmero de marco multiplicado por el tamao de marco ms el desplazamiento dentro de l Direccin Fsica = N de Marco Tamao de Marco + DesplazamientoSe ha de tener en cuenta, que:

    - Exista la pgina- El desplazamiento no supere el tamao del marco

    Sino en ambos casos se tendr un error de direccionamiento; Adems la pgina ha de tener un marco asociado, sino tendr lugar un fallo de pgina

  • Carolina Maoso, 2002

    Solucin 3 (2/2)

    Prctica de paginacin

    a) Direccin_fsica=7*1024+125=7293

    b) La pgina 2 no tiene ningn marco asociado, por lo tanto, tiene lugar un fallo de pgina.

    c) Direccin _fsica=0*1024+322=311

    d) Error de direccionamiento porque no existe la pgina 7.

    e) Error de direccionamiento porque 1026>1024, el desplazamiento es mayor que el tamao del marco

  • Carolina Maoso, 2002

    Segmentacin (1/9)

    La idea es dividir el espacio de direcciones de un solo proceso en bloques que puedan ser colocados en reas no contiguas de memoria

    Los segmentos se forman en tiempo de traduccin del programa mediante la agrupacin de elementos relacionados lgicamente por ejemplo pila, datos, cdigo

    El programa de usuario se compila y el compilador construye automticamente los segmentos de acuerdo a la estructura del programa

  • Carolina Maoso, 2002

    Segmentacin (2/9)

    El cargador tomar todos estos segmentos y le asignar nmeros de segmento. Por propsito de reubicacin cada uno de los segmentos se compila comenzando por su propia direccin lgica 0

    Por lo tanto, las direcciones de los procesos segmentados tienen dos componentes: El nombre (nmero) de segmento El desplazamiento dentro del segmento

  • Carolina Maoso, 2002

    Segmentacin (3/9)

    Utilizando una lgica similar a la utilizada para las particiones dinmicas, se puede crear una particin separada, ajustada a las necesidades de cada segmento particular

    La base (correspondiente a la direccin fsica en que comienza el segmento, obtenida durante la creacin de la particin) y el tamao de cada segmento se anotan en eldescriptor de segmento

    Todos los descriptores de segmento se recogen en una tabla llamada tabla de segmentos (TDS)

  • Carolina Maoso, 2002

    Segmentacin (4/9)

    El nmero de segmento, primer parmetro de la direccin lgica, se emplea como ndice dentro de la tabla de segmentos. La direccin fsica se obtiene aadiendo el desplazamiento a la base del segmento

    Este desplazamiento no debe sobrepasar el tamao mximo del segmento, si se supera el tamao mximo registrado en la tabla se producira un error de direccionamiento

  • Carolina Maoso, 2002

    Segmentacin (5/9)

    Una tabla de segmentos si se mantiene en registros especiales puede ser referenciada muy rpidamente; la suma a la base y la comparacin con el tamao se puede hacer simultneamente

    Este mtodo se puede llevar a cabo mientras el nmero de segmentos no sea grande, pero cuando ste crece la tabla de segmentos se deja en memoria

    En este caso el acceso a esta tabla se ve generalmente facilitado por medio de un registro hardware dedicado llamado registro base de la tabla de segmento (RBTS) yregistro lmite de la tabla de segmentos (RLTS)

  • Carolina Maoso, 2002

    Segmentacin (6/9)

    Para una direccin lgica dada de un segmento se procede:

    Se comprueba que el nmero de segmento es correcto (es decir, menor que el registro de la longitud de la tabla de segmentos)

    Se suma el nmero de segmento al valor del registro base de la tabla de segmentos para obtener la direccin de memoria para la entrada de la tabla de segmentos

    Esta entrada se lee de memoria y se procede como antes, es decir, se comprueba que el desplazamiento no rebasa la longitud del segmento y se calcula la direccin fsica como la suma del registro base de la tabla de segmentos y del desplazamiento

  • Carolina Maoso, 2002

    Segmentacin (7/9)

    Memoria

    TamaoBase

    Direccin Lgica

    Nmero de segmento

    Desplazamiento