¿Cómo funciona una computadora?
La función de una computadora es ejecutar programas. Para ejecutar un programa debe estar cargado en la memoria principal junto con los datos que el programa va a manipular. La Memoria principal o RAM es volátil, esto significa que se pierde cuando apagamos la computadora.
¿Quién carga en memoria los programas en la memoria?
Los programas comúnmente son cargados por el Sistema Operativo SO desde una unidad de almacenamiento no volátil (En una computadora personal esta unidad suele ser el disco rígido). Pero el sistema operativo en un programa entonces: ¿Quién carga el sistema operativo?.
¿Quién carga en memoria el sistema operativo?
El Sistema Operativo es cargado en memoria por un programa conocido como firmware. Este programa firmware suele estar almacenado en una memoria no volátil (ROM, Flash, etc.). El firmware suele ser un programa pequeño que se encarga de poco más que cargar el sistema operativo dejando a este a cargo de las demás tareas.
¿Comó se ejecuta un programa?
Una vez cargado en memoria el programa en código máquina, el Sistema Operativo le indica a la CPU la dirección de memoria donde esta la primer instrucción del programa. La CPU deja de ejecutar el “Sistema Operativo” y comienza a ejecutar el programa.
Una vez en ejecución los programas tiene total control sobre la computadora, aunque actualmente la mayoría de las computadoras modernas limitan este control.
Interacción del programa con los dispositivos de entrada y salida
Un programa suele comunicarse con el usuario usando la pantalla, el teclado y el ratón. Además suelen leer y escribir de archivos almacenados en discos o conectarse a otras computadoras usando la red local o internet.
En los sistemas modernos los programas realizan estas tareas usando funciones facilitadas por el sistema operativo. Muchas veces estas funciones son incompatibles entre sistemas. En un intento de disminuir las diferencias se han desarrollado lenguajes como Java y estándares como: Sockets para red, OpenGL (Open Graphics Library) para gráficos, etc.
Multitarea (multitasking)
Multitarea es la capacidad que tiene la mayoría de las computadoras modernas de ejecutar varios programas a la vez. En realidad cada programa podría ejecutarse por unos milisegundos lo que nos daría la impresión de que se están ejecutando en forma simultánea.
Limitaciones sobre el control de la computadora por programa
Antes mencionamos que un programa en ejecución tenía el control de la computadora. Esto puede ser muy peligroso sobre todo cuando la computadora es multitarea. Un programa podría interferir (maliciosamente o por error) sobre otro programa en ejecución o sobre el sistema operativo.
Para solucionar este tipo de problemas se han desarrollado mecanismos para restringir este control absoluto. Los modos protegido y supervisado, las interrupciones y otras técnicas se ven en más detalle en “Sistema Operativo: ¿Qué es y cómo funciona?”