2009-03-29 16 views
5

Tengo algunas ideas que me gustaría probar en la Arena de Desfragmentación de Disco. Llegué a la conclusión de que, como precursor de la implementación, sería útil poder poner un disco en un estado en el que estuviera fragmentado. Esto me parece ser un estado que es más difícil de lograr que uno desfragmentado. Supongo que las compañías de desfragmentadores comerciales probablemente hayan resuelto este problema.¿Cómo se puede implementar un fragmento de disco?

Así que mi pregunta .....

¿Cómo puede uno ir sobre la implementación de un fragmentador? ¿Qué sentido tiene en el contexto que se usaría para probar un desfragmentador?

Respuesta

2

La mejor fragmentación posible depende del sistema de archivos.

En general, al mismo tiempo abrir una gran cantidad de archivos. Abrir un archivo creará una nueva entrada de directorio pero no causará que se escriba un bloque para ese archivo. Pero ahora repase cada archivo uno por uno, escribiendo un bloque. Esto normalmente provocará que se consuma el siguiente bloque libre, lo que dará lugar a que todos sus archivos se fragmenten entre sí.

Fragmenting existente archivos es otro asunto. Básicamente, haga lo mismo, pero hágalo en una copia de archivo de archivos existentes, haciendo una eliminación del original y cambiando el nombre de la copia.

7

Quizás en lugar de fragmentar el disco real, ¿realmente debería probar su algoritmo de desfragmentación en un disco de simulación/simulacro? Solo una vez que esté satisfecho de que el algoritmo funciona como se especificó, podría hacer la prueba en discos reales utilizando la API del disco real.

Incluso puede tomar instantáneas de discos fragmentados reales (los suyos o los de alguien que conoce) y usar estos datos como modelo simulado para probar.

+0

hombre, su respuesta me golpeó con segundos! –

0

La fragmentación es un problema matemático que intenta maximizar la distancia que recorre la cabeza del disco duro mientras se realiza una operación específica. Por lo tanto, para fragmentar de manera efectiva algo que necesita definir la operación específica primero

2

Podría estar simplificando demasiado aquí, pero si fragmenta artificialmente el disco no ejecutará ninguna prueba que solo sea cierto para la fragmentación creada por su fragmento en lugar de que cualquier fragmentación del mundo real. Puede terminar optimizando las suposiciones en la herramienta de fragmentación que no representan las ocurrencias del mundo real.

¿No sería más fácil y más preciso tomar algunas imágenes de discos fragmentados? ¿Tienes algún amigo o colega que confíe en ti para no hacer nada antisocial con sus datos?

Cuestiones relacionadas