Implementación de directorios en el sistema operativo

La implementación de directorios en el sistema operativo se puede realizar mediante la lista de enlaces únicos y la tabla hash. La eficiencia, la confiabilidad y el rendimiento de un sistema de archivos se ven muy afectados por la selección de algoritmos de administración y asignación de directorios. Existen numerosas formas de implementar los directorios. Pero debemos elegir un algoritmo de implementación de directorio apropiado que mejore el rendimiento del sistema. 

Implementación de directorios utilizando listas enlazadas individuales

La implementación de directorios usando una lista enlazada individualmente es fácil de programar pero requiere mucho tiempo para ejecutarse. Aquí implementamos un directorio usando una lista lineal de nombres de archivo con punteros a los bloques de datos.

Directory Implementation Using Singly Linked List

Implementación de directorios usando una lista enlazada individualmente

  • Para crear un nuevo archivo, se debe verificar la lista completa de modo que el nuevo directorio no exista previamente.
  • El nuevo directorio se puede agregar al final de la lista o al principio de la lista.
  • Para eliminar un archivo, primero buscamos en el directorio con el nombre del archivo a eliminar. Después de buscar podemos borrar ese archivo liberando el espacio que se le ha asignado.
  • Para reutilizar la entrada del directorio, podemos marcar esa entrada como no utilizada o podemos agregarla a la lista de directorios libres.
  • Eliminar una lista vinculada de archivos es la mejor opción, ya que lleva menos tiempo.

Desventaja

La principal desventaja de usar una lista enlazada es que cuando el usuario necesita encontrar un archivo, debe realizar una búsqueda lineal. En el mundo actual, la información de directorio se usa con bastante frecuencia y la implementación de listas enlazadas da como resultado un acceso lento a un archivo. Por lo tanto, el sistema operativo mantiene un caché para almacenar la información de directorio utilizada más recientemente.

Implementación de directorios mediante tabla hash

Una estructura de datos alternativa que se puede utilizar para la implementación de directorios es una tabla hash . Supera los principales inconvenientes de la implementación de directorios utilizando una lista enlazada. En este método, usamos una tabla hash junto con la lista enlazada. Aquí, la lista enlazada almacena las entradas del directorio, pero se usa una estructura de datos hash en combinación con la lista enlazada. 

En la tabla hash para cada par en el directorio se genera el par clave-valor. La función hash en el nombre del archivo determina la clave y esta clave apunta al archivo correspondiente almacenado en el directorio. Este método reduce de manera eficiente el tiempo de búsqueda en el directorio, ya que no se buscará en la lista completa en cada operación. Con las claves, se comprueban las entradas de la tabla hash y, cuando se encuentra el archivo, se recupera. 

Directory Implementation Using Hash Table

Implementación de directorios mediante tabla hash

Desventaja:

El principal inconveniente de usar la tabla hash es que, por lo general, tiene un tamaño fijo y depende del tamaño. Pero este método suele ser más rápido que la búsqueda lineal en todo un directorio utilizando una lista enlazada.

Publicación traducida automáticamente

Artículo escrito por arunbang17 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 *