La memoria se usa para muchas cosas, según tengo entendido. Sirve como caché de disco y contiene las instrucciones de los programas, y su pila y montón. Aquí hay un experimento mental. Si a uno no le importa la velocidad o el tiempo que le toma a una computadora hacer el procesamiento, ¿cuál es la cantidad mínima de memoria que uno puede tener, suponiendo que tenga un disco muy grande? ¿Es posible eliminar la memoria y solo tener un disco?
El almacenamiento en caché de disco obviamente no es necesario. Si configuramos espacio de intercambio en el disco, la pila de programas y el montón tampoco requieren memoria. ¿Hay algo que requiera memoria para estar presente?
Respuestas:
Seguro. En principio, con el hardware apropiado, podría tener solo un disco, con todo almacenado en el disco. Cada vez que la CPU realiza una instrucción de carga o almacenamiento, puede haber algún hardware que lo convierta en un disco de lectura o escritura. Sería extremadamente lento: en un disco magnético, cada búsqueda dura unos 10 ms, por lo que podría realizar alrededor de 100 lecturas y escrituras de acceso aleatorio por segundo.
Algunos sistemas tienen memoria flash asignada en su espacio de direcciones. La memoria flash proporciona almacenamiento no volátil (persistente). Entonces, de alguna manera, esto se parece a lo que mencionas, aunque esos sistemas generalmente también tienen RAM.
fuente
En términos de computabilidad, se sabe que cada computadora moderna puede ser simulada por una máquina de Turing cuyo único almacenamiento es una celda de cinta lineal única que se puede escribir. Suponiendo que pueda seguir agregando cantidades ilimitadas de almacenamiento en disco, una computadora que solo tenga discos duros es igual de poderosa. Así que ciertamente podrías hacer una computadora sin memoria.
Por supuesto, no hay discos duros de "espacio ilimitado", pero tampoco hay RAM ilimitada.
Existen varios problemas prácticos, por ejemplo, necesitaría convenciones para mapear diferentes áreas y direcciones en el disco, un sistema operativo que escribió en el disco para almacenamiento intermedio y direcciones de disco administradas. En realidad, terminaría simulando de cerca la RAM en su disco duro.
fuente
La pregunta no es puramente académica. Es una cuestión de registro histórico que una de las primeras computadoras producidas comercialmente [perdón, no recuerdo cuál de improviso] no tenía RAM: todos los programas se ejecutaron obteniendo instrucciones directamente de un tambor magnético [un cilindro giratorio con superficie externa magnetizable (los discos vinieron después)]. Fue relativamente lento, pero mucho más barato que muchos de la competencia. [Esto fue en los días del 'tubo']
Curiosamente, vino con una herramienta ahora obsoleta conocida como 'ensamblador optimizador', es decir, el ensamblador no solo generó instrucciones de la máquina, sino que las escribió en el tambor de manera no consecutiva para minimizar, para cada instrucción, la cantidad de tiempo esperando que el tambor gire al siguiente.
fuente
No. Las unidades de disco no son direccionables al azar como la RAM. En cambio, son dispositivos de almacenamiento en bloque. No puedes leer ni escribir un byte de ellos. Y su CPU no puede leer todo un sector a la vez, necesitan ese acceso aleatorio. Los sistemas operativos le ocultan este nivel de detalle, pero lo hacen leyendo un sctor completo en la RAM, modificándolo y volviéndolo a escribir.
Como resultado, necesita un bloque de almacenamiento de acceso aleatorio. Esto podría ser el caché de la CPU, que está hecho de SRAM (un tipo rápido de RAM).
No son solo discos. La memoria flash está diseñada, por diseño, con bloques, lo cual es clave para su bajo precio. Incluso tiene bloques mucho más grandes que los sectores de disco normales, pero usa RAM internamente para ocultar eso del sistema operativo.
Puede hacer un almacenamiento persistente que pueda ser utilizado directamente por una CPU. El almacenamiento de EEPROM entraría en esta categoría (memoria programable de solo lectura "borrable electrónicamente", aunque "lectura optimizada" sería una descripción mejor).
fuente
Cuando usa memoria virtual y necesita manejar fallas de página, al menos el controlador de excepciones maneja la falla de página, el controlador de disco que lee los datos del disco duro y primero escribe páginas sucias en el disco, y las tablas de páginas necesitan estar en RAM todo el tiempo. Porque si no están en RAM, no puede volver a cambiarlos a RAM. Además, necesita espacio para al menos una página de RAM.
Si tuviera una CPU como un Xeon masivo de 12 núcleos con 30 MB de memoria caché, es posible que tenga un sistema sin RAM ni disco duro, pero use solo la memoria caché. (No estoy seguro si eso realmente funciona o si por alguna razón se requiere RAM).
fuente
Es conceptualmente posible. RAM es solo un nivel de almacenamiento en caché. Hay muchos niveles de almacenamiento en caché en una computadora moderna (consulte las memorias caché L1, L2, L3 de la CPU, por supuesto, Ram, el área de intercambio -que es una sección lógica del disco utilizado como RAM ...-), si coloca o agregue uno, la máquina funcionará. Por ejemplo, un cd en vivo de Ubuntu no puede usar el nivel de almacenamiento en caché del HDD. Sin embargo, no creo que haya ningún sistema operativo que pueda soportar la ausencia de un nivel de RAM.
fuente
Técnicamente, la RAM es una memoria volátil primaria que se utiliza para mejorar la velocidad de procesamiento. Una vez que se va la energía, los datos en la memoria primaria se pierden. Si utilizamos un disco, es decir, como dice, solo un disco y no RAM, aún podríamos ejecutar nuestra computadora, pero habría más sobrecarga de lectura y escritura, lo que ralentizaría considerablemente el sistema. Por lo tanto, usamos RAM.
fuente