Algunas buenas respuestas aquí sobre una base técnica. Pero muchos pierden el punto básico.
Este es un problema nuevo
Si regresa a los primeros días de la informática personal, descubrirá que nunca ha habido ningún problema al quitar una unidad. Esto se debe a que, en su mayor parte, cada unidad era una unidad de disquete, inherentemente extraíble, y nadie en su sano juicio habría creado un sistema que corrompiera un disquete si lo quitara en las circunstancias correctas. En la mayoría de los sistemas, había una luz en el disco. Esperarías a que se apagara la luz, y luego sería seguro quitarla. En algunos casos, como en las primeras computadoras Macintosh, tenía que pedir que se expulsara el disco, pero el resultado fue inmediato.
Ahora, incluso en aquellos días, todos sabían que el disco era lo más lento del sistema. La memoria RAM de la PC fue rápida, el disco fue lento. Con el tiempo, obtuvimos RAM más rápida, las diversas memorias caché de una CPU y un almacenamiento no volátil más rápido, como discos duros y memorias flash. Pero incluso hasta el día de hoy, la RAM es mucho más rápida que el disco duro o el almacenamiento flash.
Numerosas opciones de almacenamiento
Y, por supuesto, a medida que las computadoras se hacen más grandes, tenemos muchas cosas opcionales: partes opcionales de programas muy grandes, partes opcionales de sistemas operativos muy grandes. Hace mucho tiempo, es posible que haya tenido todo el sistema operativo de la computadora en ROM y, una vez cargado, toda la aplicación en RAM. Pero con el tiempo, sus unidades más rápidas se convirtieron en una parte integral del funcionamiento del sistema operativo, ya que las cosas se enviaron desde y hacia su unidad principal.
Entonces, a medida que las cosas evolucionaron, comenzamos a agregar memoria caché a la unidad. Los sistemas para cargar componentes del sistema operativo en la RAM desde el disco, y desechar las cosas no utilizadas … DLL y bibliotecas y memoria virtual, todo funcionó bastante bien. Entonces, una vez que las computadoras tenían un poco más de memoria (al menos a veces), en lugar de rediseñar todo este sistema, agregamos cachés a nuestras unidades. La primera caché de unidades solo almacena las cosas usadas más recientemente de sus discos en un pequeño búfer de RAM. Más tarde, escribieron el almacenamiento en caché. Algunos datos se escribieron en una unidad, el bus como se mencionó, la unidad es una de las cosas más lentas en cualquier computadora. El sistema operativo solo necesita saber si la escritura fue exitosa o fallida, y una falla es un error bastante serio, raro y digno de distorsión. Entonces, un caché de escritura toma los datos de la CPU, envía esa CPU en su camino y escribe los datos en la CPU en el tiempo que toma. El almacenamiento en caché de escritura es muy común hoy en día … los cachés en CPU también hacen almacenamiento en caché de escritura.
Ahora, para una unidad fija en un sistema ejecutado probablemente, no hay una preocupación real sobre cuándo se escriben los datos “publicados”. Una vez que llegamos a los sistemas multiprocesador, si no antes, puede que no haya habido ninguna urgencia, con el tiempo, en llevar los datos al disco. Los sistemas operativos modernos funcionan según lo que sus diseñadores han encontrado que funcionan, a veces de maneras muy complejas.
¿Pero unidades extraíbles?
Pero es muy diferente, y muy de 1980, cuando se trata de unidades extraíbles. Ahora, algunas de estas cosas habían sido ciertas durante mucho tiempo en las computadoras de sistemas grandes, las cosas que consume nunca se vieron. Por ejemplo, el sistema operativo UNIX siempre tuvo profesionales de la informática atendiendo sus necesidades. Tanta gente usó UNIX en las universidades que, gradualmente, lo reescribieron para ser completamente gratuito, cosas como Linux y OpenBSD y FreeBSD y todo eso. Debería parecer una gran idea para la informática de menor costo. Pero todavía estaban usando las cosas “tradicionales” del pasado. Y estos sistemas operativos, al menos al principio, ni siquiera tenían una designación especial de unidad extraíble. En un centro de datos, cualquier unidad antigua podría montarse y desmontarse . Nadie pensó siquiera en que un usuario lo activara.
Pero para los consumidores, el comportamiento correcto es tener una unidad extraíble realmente extraíble. En pocas palabras, cuando se apaga la luz de su disquete, su disco duro, su memoria USB, eso es todo lo que necesita. En algunos sistemas operativos, como AmigaOS desde 1985, esta era una propiedad fundamental de cualquier unidad conectada al sistema. Pero muchos otros sistemas operativos ignoraron los factores del consumidor.
Y hubo un momento en que Microsoft y Windows también lo hicieron. Hace un tiempo, casi cada vez que sacaba una unidad USB, incluso minutos después de la última vez que la usaba, Windows entraba en modo de pánico y le exigía que volviera a conectar esa unidad. En ese momento, escribiría las cosas que todavía están almacenadas en la memoria caché de la unidad y devolverle la tarjeta de memoria. La estupidez de eso es que esta aplicación ocurre en un pequeño número de segundos. Esos datos podrían haberse escrito muy rápido, inmediatamente cuando el sistema operativo los obtuvo.
Y así, en estos días, eso es lo que hace Windows. Desafortunadamente, no parecen entender completamente el problema o algo así, ya que todavía tienen varias formas de desmontar unidades extraíbles, todavía le advierten sobre esto. Si el sistema se diseñara correctamente, no habría muchas advertencias, y aquellas a las que dirija estarán mucho más orientadas hacia el modo de uso natural de estas cosas.