[SO] Investigacion Abril-20

24
Administración de memoria Domínguez García Carlo Alejandro García Carmona Juan Carlos Garrido Pérez José Juan Martínez Fortuno Enrique Sánchez Mújica Anibal Tomás

description

ninguno

Transcript of [SO] Investigacion Abril-20

Administración de memoria● Domínguez García Carlo Alejandro ● García Carmona Juan Carlos ● Garrido Pérez José Juan ● Martínez Fortuno Enrique ● Sánchez Mújica Anibal Tomás

Mapas de bits

Este tipo de administración divide la memoria en unidades de asignación, las cuales pueden ser tan pequeñas como unas cuantas palabras o tan grandes como varios kilobytes.

A cada unidad de asignación le corresponde un bit en el mapa de bits, el cual toma el valor de 0 si la unidad está libre y 1 si está ocupada (o viceversa).

•Mapas de bits.Cada zona de memoria está representada por un bit:•1 => ocupada.•0 => libre.B.M. Grande =>•Consumo.•Particiones pequeñas => poca fragmentación.B.M. pequeño =>•Poco consumo.•Particiones grandes => gran fragmentación.

El tamaño de la unidad de asignación es una importante cuestión de diseño. Entre más pequeña sea la unidad de asignación, mayor será el mapa de bits. Sin embargo, aun con una unidad de asignación tan pequeña como 4 bytes, 32 bits de memoria sólo requerirán 1 bit del mapa.

Una memoria de 32n bits utilizará n bits del mapa, por lo que el mapa de bits ocupará sólo 1/33 de la memoria. Si la unidad de asignación se elige de manera que sea grande, el mapa de bits será más pequeño pero se puede desperdiciar una cantidad considerable de memoria en la última unidad del proceso si su tamaño no es un múltiplo exacto de la unidad de asignación.

Un mapa de bits proporciona una manera simple de llevar el registro de las palabras de memoria en una cantidad fija de memoria, debido a que el tamaño del mapa de bits sólo depende del tamaño de la memoria y el tamaño de la unidad de asignación.

El problema principal es que, cuando se ha decidido llevar un proceso de k unidades a la memoria, el administrador de memoria debe buscar en el mapa para encontrar una serie de k bits consecutivos con el valor 0 en el mapa de bits.

Listas enlazadas

�Es una colección o secuencia de elementos dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un “enlace” o “puntero”.

�La idea básica consiste en construir una lista cuyos elementos llamados “nodos” se componen de dos partes o “campos”: la primera parte o campo contiene la información y es, por consiguiente, un valor de un tipo genérico (denominado Dato, TipoElemento, Info, etc.) y la segunda parte o campo es un puntero (denominado enlace o siguiente) que apunta al siguiente elemento de la lista.

Representación simple

�Una lista enlazada consta de un número de elementos y cada elemento tiene dos componentes (campos), un puntero al siguiente elemento de la lista y un valor, que puede ser de cualquier tipo.

�Los enlaces se representan por flechas para facilitar la comprensión de la conexión entre dos nodos; ello indica que el enlace tiene la dirección en memoria del siguiente nodo. Los enlaces también sitúan los nodos en una secuencia.

�El primer nodo se enlaza al segundo, el segundo nodo se enlaza al tercero y así sucesivamente hasta llegar al último nodo.

�El último nodo ha de ser representado de forma diferente para significar que este nodo no se enlaza a ningún otro.

La memoria se presenta como una lista enlazada de segmentos.

Se indica si es hueco (h) o proceso (p), dirección de inicio, longitud, puntero al siguiente elemento.

Método de los colegas(Buddy system)

•El espacio entero disponible para la asignación se trata como un solo bloque de tamaño 2U.

•Si se hace una solicitud de tamaño s tal que 2U-1 < s <= 2U, entonces el bloque entero se asigna: En otro caso, el bloque se divide en dos colegas de igual tamaño.

Este proceso continúa hasta que el bloque más pequeño sea mayor o igual que s generándose.

•Ventaja:Al liberar memoria solo se ha de buscar en la lista correspondiente para

consolidaciones.

•Inconveniente:Fragmentación interna. Redondeo a 2n.

● Gestión de las zonas de memoria y huecos en potencias de 2.● Listas separadas según tamaño: 1,2, 4, 8, 186, 32, 64 , etc. (1MB => 21 listas).● Inicio: todas las listas vacías (excepto la total).

Ej. Sistema con 1MB.Entrada de un proceso 70k => 27 = 128kSe ha de crear una partición del tamaño.

Llega P2 de 35k => 26 = 64k.

Llega P3 de 80k => 27 = 128k

Se consolidan particiones potencia de 2.P1 sale: Libera todo el bloque de 128k. (lista de bloques de 128k).P4 de 60k llega. => 26=64k.

Se consolidan particiones potencia de 2.

•Sale P2.