Pregunta 1¿En qué pieza está el archivo cuando solo has guardado el código fuente?
Qué es un programa — su relación con la CPU, la memoria y el almacenamiento
Este artículo forma parte del curso Fundamentos de informática, que construye desde cero los conocimientos prácticos de informática que necesitas como mínimo para programar y hacer vibe coding.
Un programa es una secuencia de instrucciones: al ejecutarlo se carga en la memoria y la CPU las va haciendo una a una. Con diagramas vemos por qué guardarlo no basta para que se ejecute, partiendo del reparto entre las tres piezas.
Este artículo trata qué ocurre dentro de la computadora cuando se ejecuta un programa.
Guardar un archivo y ejecutarlo son sucesos distintos dentro de la computadora.
La diferencia se explica por lo que hace cada una de las tres piezas: la CPU, la memoria y el almacenamiento.
- Un programa es una secuencia de instrucciones y, al ejecutarlo, avanza línea a línea desde arriba
- El reparto entre CPU, memoria y almacenamiento y qué desaparece al apagar
- Por qué guardarlo no basta para ejecutarlo: la escritura llega solo hasta el almacenamiento
- Qué entrega al entorno de ejecución el «ejecuta esto» de los manuales
Un programa es una serie de instrucciones y, al ejecutarlo, avanza en orden desde arriba
Un programa (program) son las instrucciones que quieres que haga la computadora, puestas en el orden en que se hacen.
El texto legible para personas es el código fuente (source code), y hacerlas una a una desde arriba es ejecutar (run / execute).
Las tres líneas de la izquierda del diagrama son el contenido de app.js, y la CPU nunca recibe más de una línea a la vez.
Una línea que solo recuerda un valor no muestra nada en pantalla.
Cuando termina la tercera línea, la ejecución misma termina y los valores recordados por el camino tampoco quedan.
Si una línea intermedia no puede ejecutarse, la ejecución termina ahí.
En las tres líneas siguientes, el nombre gokei del medio no está escrito en ninguna parte.
console.log("Voy a mostrar el total");
gokei();
console.log("Terminado");
Que se detuvo con un error significa que la ejecución terminó antes de llegar a la última línea.
La primera línea sí aparece en pantalla, la del medio muestra el texto del error y la última termina sin llegar a leerse.
Un programa es una secuencia de instrucciones que se hacen desde arriba
Un programa es lo que quieres que se haga, escrito en orden.
Ejecutarlo es hacer esa secuencia una a una desde arriba y, si una línea intermedia no se puede hacer, las líneas siguientes terminan sin llegar a leerse.
De qué se encarga cada una: CPU, memoria y almacenamiento
La «computadora» del diagrama anterior está hecha de tres piezas con funciones distintas.
La CPU (Central Processing Unit) hace las instrucciones una a una, la memoria (memory) guarda el contenido solo mientras algo se ejecuta y el almacenamiento (storage) lo conserva aunque se apague.
Un archivo del almacenamiento se convierte dentro de la memoria en una secuencia de instrucciones, y la CPU recibe solo una de ellas cada vez.
Los valores intermedios de un cálculo también están en la memoria, y el archivo del almacenamiento no se reescribe durante la ejecución.
Las tres piezas se reparten así dentro de una misma computadora.
- El archivo app.js que guardaste
- Queda tal cual aunque se apague
- El contenido de app.js que se cargó
- Los valores recordados por el camino, como 150 y 200
- Se borra entero al apagar
- Recibe solo la instrucción que hace en ese momento
- Ya no tiene las instrucciones terminadas
Lo que se mueve es solo el contenido; el propio app.js del almacenamiento sigue donde está.
En la memoria entra solo lo que se está ejecutando ahora y sus valores intermedios.
Esta distinción también aparece al leer los avisos que da la computadora.
«No hay memoria suficiente» habla de la memoria, así que borrar archivos normalmente no la aumenta.
«No hay espacio suficiente» habla del almacenamiento, y ahí sí aumenta al borrar archivos.
El lugar donde se guarda y el lugar donde se ejecuta son distintos
El almacenamiento es donde se guardan los archivos, la memoria es donde está lo que se ejecuta ahora, y la CPU es la que hace esas instrucciones una a una.
Lo escrito en el almacenamiento queda aunque se apague, y lo que estaba en la memoria se borra.
Por qué guardar el archivo no basta para que se ejecute
Guardar es escribir los caracteres del código fuente en el almacenamiento.
Se escriben dentro de la carpeta de my-app, la app de reservas que estás creando.
- app.js — el código fuente que guardaste
- Si lo vuelves a guardar, cambia el contenido de este archivo
- Archivos de fotos y documentos
- Los archivos que no se ejecutan también están ahí tal cual
La CPU nunca va por su cuenta a leer un archivo que está aquí.
Cuando solo lo has guardado, todavía no se ha hecho ni una sola instrucción.
| Paso | Almacenamiento | Memoria | Pantalla |
|---|---|---|---|
| Solo guardar | Se escribe app.js | No entra nada | No aparece nada |
| Guardar y ejecutar | app.js sigue igual | Se carga y empieza a ejecutarse | Aparece 350 |
La fila de solo guardar se detiene en el almacenamiento y, como no entra nada en la memoria, la CPU no recibe ni una instrucción.
En la pantalla no pasa nada porque no has indicado que se ejecute.
Al ejecutarlo de nuevo, el contenido viejo de la memoria se descarta y se carga el archivo nuevo.
Lo que corregiste se ejecuta en el momento en que ocurre esa recarga.
Por eso los pasos te dicen que lo ejecutes de nuevo.
Guardar no es aplicar el cambio
Guardar llega solo hasta escribir los caracteres en el almacenamiento.
Un programa en ejecución sigue con el contenido que tenía al cargarse, así que aunque corrijas el archivo el resultado de la pantalla no cambia hasta que lo ejecutas de nuevo.
«Ejecuta esto» significa entregar un archivo al entorno de ejecución
Quien carga el archivo en la memoria y lleva las instrucciones a la CPU es el entorno de ejecución (runtime: el software que lee el código fuente y hace que la CPU ejecute sus instrucciones).
El «ejecuta esto» de los pasos es entregar el archivo a este entorno de ejecución.
Lo único que tecleas tú es la línea de la izquierda del todo.
Esa línea aparece así en los pasos.
# Ejecutar código fuente de JavaScript (Node.js)
node app.js
# Ejecutar código fuente de Python
python app.py
Esa línea es un comando (command: una indicación en texto que le dice al software qué hacer).
Al principio va el nombre del entorno de ejecución y detrás el nombre del archivo del código fuente, separados por un espacio.
- node — lee código fuente de JavaScript
- python — lee código fuente de Python
- app.js — el nombre del archivo de código fuente que guardaste
- El entorno de ejecución lo carga desde el almacenamiento
- A veces, en lugar del nombre del archivo se escribe un nombre corto acordado de antemano
El principio te dice qué entorno de ejecución hace falta y lo que va detrás, qué archivo se carga.
La pantalla donde tecleas esta línea se trata en el artículo «Qué es un entorno de desarrollo» de este curso.
Aunque cambie el lenguaje, se lee igual: al principio va el software que lo recibe y detrás lo que le entregas.
Hay otro punto en el que cambia la redacción de los pasos.
La forma de terminar después de indicar la ejecución se divide en dos.
La rama de abajo es la clase de programa que los pasos te dicen que dejes en marcha.
Hay entornos de ejecución que recargan el archivo automáticamente cada vez que guardas.
Incluso así, la pantalla cambia solo después de que se ha cargado el archivo nuevo.
Indicar la ejecución es entregar un archivo
«Ejecuta esto» significa que entregues el archivo al software llamado entorno de ejecución.
Se entrega con una línea como node app.js, y hay programas que llegan a la última línea y terminan y otros que no terminan hasta que los detienes.
Verificación de conocimientos
Responde cada pregunta una a una.
Pregunta 2¿Qué hace la computadora cuando «ejecuta un programa»?
Pregunta 3En el comando node app.js, ¿a qué se refiere el node del principio?