Gestión del espacio libre en el Sistema Operativo

El sistema realiza un seguimiento de los bloques de disco libres para asignar espacio a los archivos cuando se crean. Además, para reutilizar el espacio liberado al eliminar los archivos, la gestión del espacio libre se vuelve crucial. El sistema mantiene una lista de espacio libre que realiza un seguimiento de los bloques de disco que no están asignados a algún archivo o directorio. La lista de espacios libres se puede implementar principalmente como:

  1. Mapa de bits o vector de bits:
    un mapa de bits o vector de bits es una serie o colección de bits donde cada bit corresponde a un bloque de disco. El bit puede tomar dos valores: 0 y 1: 0 indica que el bloque está asignado y 1 indica un bloque libre.
    La instancia dada de bloques de disco en el disco de la Figura 1 (donde se asignan los bloques verdes) se puede representar mediante un mapa de bits de 16 bits como: 0000111000000110 .

    Ventajas –

    • Fácil de entender.
    • Encontrar el primer bloque libre es eficiente. Requiere escanear las palabras (un grupo de 8 bits) en un mapa de bits para una palabra distinta de cero. (Una palabra con valor 0 tiene todos los bits 0). Luego, el primer bloque libre se encuentra escaneando el primer bit en la palabra distinta de cero.

    El número de bloque se puede calcular como:
    (número de bits por palabra) *(número de palabras de valores 0) + desplazamiento del primer bit 1 en la palabra distinta de cero .

    Para la Figura-1 , escaneamos el mapa de bits secuencialmente en busca de la primera palabra distinta de cero.
    El primer grupo de 8 bits (00001110) constituye una palabra distinta de cero ya que todos los bits no son 0. Después de encontrar la palabra distinta de 0, buscamos el primer bit. Este es el quinto bit de la palabra distinta de cero. Entonces, desplazamiento = 5.
    Por lo tanto, el primer número de bloque libre = 8*0+5 = 5.

  2. Lista enlazada:
    en este enfoque, los bloques de disco libres están enlazados entre sí, es decir, un bloque libre contiene un puntero al siguiente bloque libre. El número de bloque del primer bloque de disco se almacena en una ubicación separada en el disco y también se almacena en caché en la memoria.

    En la Figura 2 , el encabezado de la lista de espacios libres apunta al Bloque 5, que apunta al Bloque 6, al siguiente bloque libre y así sucesivamente. El último bloque libre contendría un puntero nulo que indica el final de la lista libre.
    Un inconveniente de este método es la E/S requerida para el recorrido de la lista de espacio libre.

  3. Agrupación:
    este enfoque almacena la dirección de los bloques libres en el primer bloque libre. El primer bloque libre almacena la dirección de algunos, digamos n bloques libres. De estos n bloques, los primeros n-1 bloques son realmente libres y el último bloque contiene la dirección de los siguientes n bloques libres.
    Una ventaja de este enfoque es que las direcciones de un grupo de bloques de disco libres se pueden encontrar fácilmente.
  4. Recuento:
    este enfoque almacena la dirección del primer bloque de disco libre y un número n de bloques de disco contiguos libres que siguen al primer bloque.
    Cada entrada en la lista contendría:
    1. Dirección del primer bloque de disco libre
    2. un número n

    Por ejemplo, en la Figura-1 , la primera entrada de la lista de espacios libres sería: ([Dirección del bloque 5], 2), porque 2 bloques libres contiguos siguen al bloque 5.

Publicación traducida automáticamente

Artículo escrito por Saloni Baweja y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *