Suponga que tiene un montón de pizarras pequeñas en las que guarda información y que así es como las usa:
- Cuando ya no necesita la información en una de las pizarras, la arroja sobre una pila de pizarras sucias;
- Cuando necesita escribir algo, toma una pizarra sucia de la pila, la borra y comienza a escribir en ella.
Esto es eficiente en el sentido de que, si no le preocupa que alguien lea su información anterior, no hay razón para borrar una pizarra sucia a menos que necesite escribir algo nuevo.
Para estirar un poco esta analogía, su mano a menudo borrará cualquier información vieja del tablero en el proceso de escribir algo nuevo, por lo que es posible que nunca necesite borrar explícitamente.
- ¿Cuáles son algunos ejemplos de hardware de entrada?
- ¿Por qué es importante actualizar los controladores de las tarjetas gráficas?
- ¿Cuál fue el primer software de computadora y cómo se hizo?
- ¿El HP ax248TX está sobrevalorado? ¿Vale la pena comprar por 70K?
- ¿Por qué mi HP 6005 Compaq Pro no reconoce mi monitor?
Ahora, términos menos simples; Esto puede tomar algunos antecedentes CS para entender. En general, un sistema de archivos tiene estos elementos:
- Mapa de asignación Indica qué partes de la memoria se usan y cuáles no, pero no mucho sobre para qué se usan; a menudo un “bit” en el mapa de asignación representa una cantidad fija de memoria, como 1K de memoria (que podría denominarse un “sector” de memoria)
- Directorio. Describe los archivos almacenados en el sistema de archivos, generalmente como, para cada uno, un nombre de archivo, algunos atributos (¿es un archivo de texto o binario, o una carpeta?), Y una lista ordenada de las partes de la memoria que contienen los datos del archivo ; la información para cada archivo se llama su entrada de directorio
- Almacén de datos. Toda la memoria que se puede usar para almacenar archivos; En el Mapa de asignación, puede saber qué partes de esta memoria están en uso, y puede indicar desde el Directorio qué partes pertenecen a qué archivos.
Por lo general, cuando elimina un archivo de un sistema de archivos (no la papelera, una eliminación real), se producen las siguientes acciones; digamos, por simplicidad, todo ocurre en un solo paso indivisible:
- OS encuentra la entrada de directorio del archivo en el directorio
- El SO usa esa información para identificar qué partes de la memoria / Data Store usa el archivo
- El SO actualiza el Mapa de asignación para indicar que esas partes de la memoria ya no están en uso, escribe el Mapa de asignación actualizado en el hardware, pero no borra la memoria
- OS marca la entrada del directorio como ya no está en uso, a menudo de manera trivial, por ejemplo, al establecer el primer byte del nombre del archivo en un carácter NUL, escribe la entrada actualizada del directorio en el hardware, pero no borra la entrada del directorio
Debido a esto, puede “recuperar” un archivo fácilmente si no ha habido mucha actividad en el disco: busque su entrada de directorio anterior, que aún describirá todas las partes del almacén de datos que utilizó el archivo, ninguna de las cuales ha sido borrado porque no borramos al eliminar; restablecer el nombre en la entrada del directorio; actualice el Mapa de asignación para mostrar las partes del Almacén de datos en uso, ¡y el archivo está de vuelta!
Sin embargo, si ha habido demasiada actividad de disco, alguna otra operación de archivo podría haber reutilizado la entrada de directorio, o reutilizado uno o más de los “sectores” de la memoria; en este caso, solo parte del archivo, o una cadena sin nombre de “sectores” podría ser recuperable.