¿Por qué la eliminación de carpetas no se realiza en paralelo?

¿Por qué la eliminación de carpetas no se realiza en paralelo?

Cuando hago Shift y elimino una carpeta grande, veo el siguiente uso de CPU:

ingrese la descripción de la imagen aquí

No se utilizan todas las cajas. ¿Es esto ineficiente?

Esto me parece fácilmente paralelizable, a través de divide y vencerás. Intenté seleccionar y eliminar manualmente la mitad de las cosas, luego la otra mitad, y eso llenó más cuadros.

He oído que el reciclaje muestra un comportamiento diferente, aunque no lo he probado yo mismo.

Respuesta1

Los sistemas de archivos modernos intentan garantizar que la integridad de los datos se mantenga en todo momento durante las escrituras. En el pasado escuché que esto se denomina escritura "atómica", ya que se completa con éxito o no se completa en absoluto.

Solo puede enviar un comando a la vez al disco real, ignorando las colas y los cachés del disco, y una operación de eliminación consistiría en varias lecturas (escanear directorio, etc.) y así sucesivamente antes de las escrituras finales que eliminan el elemento del árbol de directorios y lo marcan. el espacio como libre.

Combinado con el uso moderno del registro en diario (que permite que las tareas del disco avancen o retrocedan dependiendo de cuándo fueron interrumpidas), bien podría ser que el cuello de botella esté en poner en cola las tareas (lecturas/búsquedas/escrituras) para el controlador de disco.

Mover algo a la papelera de reciclaje es simplemente mover una carpeta; hay mucho menos que hacer para "eliminar" algo de esa manera, ya que simplemente está modificando la estructura de una carpeta en lugar de marcar una gran cantidad de datos como ya no necesarios. Sin embargo, cuando vacíes tu papelera de reciclaje, terminarás volviendo a la tarea de liberar espacio en el disco nuevamente.

Respuesta2

Esta operación no está obstaculizada por la CPU, sino por el disco. No se puede hacer que la CPU vaya más rápido de lo que el disco puede almacenar cambios. Por lo tanto, la CPU espera a que el disco haga su trabajo antes de enviar más trabajo.

Este efecto se amplifica particularmente para operaciones en muchos archivos pequeños, donde la sobrecarga del sistema de archivos es mayor que el tamaño de los archivos mismos, por lo que parece que su procesamiento toma mucho tiempo.

información relacionada