Bueno, como todos ya han mencionado, está el problema de la velocidad. La respuesta más técnica es porque la CPU de la computadora no tiene acceso directo a bytes individuales de datos en el disco duro. Por lo general, no se da cuenta, pero su disco duro asigna espacio en disco en bloques.
La mejor manera de ver esto (desde Windows) es ir al Explorador de archivos, encontrar un archivo pequeño (alrededor de 1 KB), hacer clic derecho sobre él y hacer clic en “Propiedades”. Verá dos líneas: “Tamaño de archivo” y “Tamaño de archivo en disco”.
Notarás que estos dos números son diferentes. El tamaño del archivo puede ser de 1 KB, pero el “tamaño del archivo en el disco” será de 4 KB. Eso significa que su HDD tiene un tamaño de bloque de 4 KB (la mayoría de las unidades modernas lo hacen), por lo que cada archivo, sin importar cuán pequeño sea, usa 4 KB de espacio, y cada archivo que es más grande que 4 KB se redondea al siguiente 4 más alto. KB tamaño. (Por ejemplo, un archivo de 5 KB de tamaño realmente utilizará 8 KB de espacio en su HDD).
Su CPU no puede acceder directamente a un byte específico del archivo. No tiene acceso directo a la información almacenada en su HDD; en cambio, tiene que pasar solicitudes al HDD y esperar … MUCHO. Esta respuesta se convertiría en un capítulo completo de un libro si explicara en detalle cómo se almacenan los archivos en su HDD, pero no es simple y no es tan rápido como cree. En los términos más simples, el HDD tiene que terminar lo que sea que esté haciendo actualmente. Luego tiene que mover el cabezal de lectura a esa pista, esperar a que ese sector pase por debajo del cabezal de lectura y leer todo el sector (incluso si solo necesita un byte de él). Luego, ese sector debe pasar del búfer interno del HDD a la RAM para que su CPU pueda ver realmente el contenido. Puede ser rápido desde SU punto de vista (10 a 15 milisegundos), pero para su CPU, es como la melaza que fluye cuesta arriba en temperaturas bajo cero (la CPU puede leer un byte de RAM en 8 a 10 nanosegundos) .
Para poner eso en perspectiva, eso es aproximadamente un millón de veces más lento que leerlo desde la RAM, y tendría que pasar por todo el proceso cada vez que necesitara ese byte. Su CPU estaría perdiendo mucho tiempo esperando el HDD, cuando podría estar haciendo otra cosa. Tendría que usar el mismo proceso a la inversa si fuera necesario cambiar el valor del byte; todo el sector tendría que escribirse en el búfer de la unidad, y se tendría que enviar un comando al HDD para volver a escribir el sector en el disco (el disco duro tendría que terminar lo que estaba haciendo, el cabezal de escritura tendría que si se mueve, tendría que esperar a que el sector esté debajo del cabezal de escritura, luego tendría que escribir el búfer en el disco, etc.) El proceso es en realidad mucho más complicado de lo que describí; Solo estaba tratando de dividirlo en términos simples.
Debido a que no tiene acceso directo a nivel de bytes al HDD, una CPU no puede ejecutar programas directamente desde el HDD. Primero tiene que cargarlos en la RAM. Cualquier dato que deba manipularse también debe cargarse en la RAM, modificarse y luego volver a escribirse. Esta es la razón por la cual su sistema operativo utiliza parte del disco duro como “memoria virtual”, pero esa es otra pared de texto. 🙂
PD , una cosa más. Si su sistema operativo es solo de 32 bits, no puede acceder a más de 4 GB de memoria de todos modos, por lo que no habría ninguna diferencia si pudiera usar parte del disco duro como RAM física. (Si tuviera una computadora con más de 4 GB, pero solo un sistema operativo de 32 bits, hay formas en que la RAM adicional podría usarse como una “unidad de RAM” a través de un proceso llamado intercambio de bancos , pero eso es todo. el sistema no podía usar esa RAM adicional, aunque la CPU sí.)