Explicar esto requiere comprender lo que sucede en su computadora cuando se escribe algo en el almacenamiento.
Cuando una aplicación escribe contenido en un archivo, la aplicación reúne los datos que desea escribir y le pide al sistema operativo que lo escriba en el archivo. El sistema operativo determinará dónde debe escribirse y qué se escribirá realmente (una combinación de lo que ya está en el disco y lo que la aplicación ha pedido escribir, si lo que la aplicación pide escribir no llena exactamente un bloque) , y luego pone en cola los bloques que se escribirán para escribir. El sistema operativo informa a la aplicación que los datos han sido escritos. Tenga en cuenta que, en este punto, los datos no se han escrito realmente en el dispositivo. El sistema operativo escribirá los datos en el dispositivo “en algún momento posterior”. Hay muchas razones por las que esto se hace, pero la principal es el rendimiento.
Además, el sistema operativo mantiene varios datos sobre los archivos, o metadatos, en cada dispositivo. Estos datos se almacenan en varios lugares del dispositivo. Dado que los metadatos de un archivo generalmente ocupan mucho menos que un bloque completo, y dado que los metadatos de un archivo pueden cambiar varias veces antes de que las aplicaciones se completen por completo, el sistema operativo utiliza este mismo tipo de almacenamiento en caché para los metadatos: cambios en los metadatos de un archivo (incluida información como la longitud del archivo, la última vez que se modificó y los bloques que ocupa en el dispositivo) pueden no escribirse realmente en la unidad durante bastante tiempo después de su modificación. Esto no causa un problema para la computadora siempre que el dispositivo permanezca presente, porque el sistema operativo sabe verificar su cola de cambios aún no escritos si necesita acceder a estos metadatos. Esto, de nuevo, se hace por rendimiento. Esta es también la razón por la cual el sistema operativo tiene que “verificar la integridad del sistema de archivos” después de un bloqueo: es posible que haya cambios no confirmados en los metadatos en el momento en que la computadora se bloqueó, dejando el sistema de archivos en un estado inconsistente.
- No tengo ninguna experiencia con las computadoras, así que ¿aún podría armar una computadora para juegos?
- Acabo de construir una computadora con un Gigabyte GA-H170M y no reconoce ninguna unidad usb que puse en ella para arrancar. ¿Algunas ideas de como reparar esto?
- Compré una computadora portátil HP en los Estados Unidos y ahora me estoy mudando a la India. ¿Mi portátil está cubierto por una garantía internacional?
- Mi disco duro externo no aparece cuando abro Mi PC. Se detecta Simplemente no puedo encontrar el disco. ¿Qué tengo que hacer?
- Si retiro una computadora en el trabajo y tengo el software original de Windows XP y Microsoft Office, ¿puedo usarla en la computadora nueva? ¿Mis chicos de TI siempre me venden software nuevo precargado pero tengo todo el software que se suministró con la computadora anterior y todavía estamos usando Windows XP en nuestras 37 estaciones de trabajo?
Históricamente, estas mejoras solo se aplicaron en discos duros. Las unidades de disquete no recibieron estas mejoras de rendimiento porque los usuarios podían eliminarlas en cualquier momento. Los discos duros no eran extraíbles sin apagar primero la computadora, o solo podían eliminarse mediante un proceso en el que el usuario presionaba un botón de “expulsión” o “desmontaje” para solicitar que se expulsara la unidad y, por lo tanto, el sistema operativo oportunidad de confirmar primero cualquier cambio no escrito en los medios reales antes de expulsarlos. Cuando los dispositivos de almacenamiento masivo con conexión USB estuvieron disponibles, se implementaron como discos duros en lugar de unidades de disquete porque los protocolos para unidades de disquete no podían manejar dispositivos de más de unos pocos megabytes, por lo que los discos duros conectados a USB heredaron estas mejoras de rendimiento aunque la presunción de que las unidades no desaparecerán sin previo aviso no se aplica a dichas unidades.
Las versiones más recientes de Windows reconocen cuándo una unidad es extraíble por la fuerza y, de forma predeterminada, deshabilita estas mejoras de rendimiento para los sistemas de archivos y los archivos que están en dispositivos extraíbles por la fuerza. (Las aplicaciones y los usuarios experimentados pueden anular este comportamiento). En tales dispositivos, las escrituras no devuelven el éxito hasta que el contenido se haya comprometido realmente con los medios, y las operaciones que cambian los metadatos no informan el éxito hasta que los metadatos afectados se hayan escrito. Esto significa que, si espera hasta que las operaciones que están utilizando el dispositivo extraíble hayan finalizado, y luego retire el dispositivo, no habrá ningún dato a la espera de ser escrito y, por lo tanto, no hay ningún riesgo al hacerlo. También significa que si lo elimina prematuramente, la aplicación que estaba usando ese dispositivo se enterará de esto y podrá lidiar con la condición de error. Sabrá que algo salió mal y actuará en consecuencia.
Ni Linux ni OS X siguen esta estrategia. Como resultado, si elimina físicamente un dispositivo de almacenamiento masivo de una computadora que ejecuta uno de estos sistemas operativos mientras hay datos o metadatos escritos pendientes, esos datos se perderán y el contenido de ese dispositivo puede corromperse.
Obviamente, esta es una compensación entre rendimiento y fiabilidad. Windows ha tomado la opción de confiabilidad aquí; Linux y OS X han tomado la opción de rendimiento. Creo que Windows y Linux han tomado las decisiones correctas para sus respectivas bases de usuarios, mientras que OS X ha tomado la decisión equivocada dada su base de usuarios. Pero esa es solo mi opinión.