¿Recuerdas la primera vez que te diste cuenta
de que tu computadora era más
que solo un monitor y un teclado?
¿Y que entre el clic del ratón y lo que veías en video,
había "algo" que captaba tu intención,
la entendía,
y la concretaba?
¿Qué es ese "algo"?
¿Son gremlins?
Imaginemos que podemos encogernos
hasta el tamaño de un electrón
y autoinyectarnos en un clic de ratón.
Si desmontaras tu ratón,
verías que es una máquina muy simple.
Tiene un par de botones
y un sistema para detectar el movimiento y la distancia.
Puede que tengas un ratón óptico
que hace estas mediciones con luces y sensores,
pero los viejos las hacían con una bola dura de goma
y unas ruedas de plástico.
Pero es el mismo concepto.
Cuando haces clic en el botón del ratón,
éste envía un mensaje a la computadora
con información sobre su posición.
Al recibir el clic del ratón,
el subsistema básico de entrada/salida lo procesa.
El subsistema funciona como los ojos, los oídos
la boca y las manos de la computadora.
Básicamente, le proporciona a la computadora la forma
de interactuar con su entorno.
Pero también actúa como barrera
para evitar que la CPU se abrume con distracciones.
En este caso, el subsistema de E/S decide
que el clic de tu ratón es bastante importante
de modo que genera una interrupción a la CPU.
"¡Oye CPU! Aquí tengo un clic".
La CPU, o unidad central de procesamiento,
es el cerebro de la computadora.
Así como el cerebro no ocupa todo el cuerpo,
la CPU tampoco ocupa toda la computadora,
pero igualmente dirige el espectáculo.
La tarea de la CPU, todo su trabajo,
consiste en buscar instrucciones en la memoria
y ejecutarlas.
Así, mientras tú escribes y escribes
tal vez muy rápido,
como 60 palabras por minuto,
la CPU está buscando y ejecutando
miles de millones de instrucciones por segundo.
Sí, miles de millones por segundo:
instrucciones para mover el ratón por la pantalla,
para ejecutar ese reloj del escritorio,
para reproducir la radio de Internet,
gestionar los archivos que estás editando en el disco duro,
y mucho, mucho más.
¡La CPU de tu computadora es un as de la multitarea!
"¡Pero, madre mía,
en este momento está llegando un clic
muy importante!
¡Dejemos todo y atendamos eso!"
Hay programas para todo
lo que hace la CPU.
Un programa especial para el ratón,
otro para el reloj,
otro para la radio de Internet,
y otro para las letras que se envían desde el teclado.
Cada programa fue en principio escrito por un humano
en un lenguaje de programación legible,
como Java,
C++,
o Python.
Pero los programas humanos ocupan mucho espacio
y contienen mucha información innecesaria para una computadora,
por eso se compilan, se reducen
y se almacenan en bits de unos y ceros en la memoria.
La CPU se da cuenta de que necesita instrucciones
para atender este clic del ratón,
así que busca la dirección del programa del ratón
y le envía una petición al subsistema de memoria
en busca de las instrucciones allí almacenadas.
Cada instrucción del controlador del ratón
se busca y ejecuta debidamente.
¡Pero esto acaba de empezar!
Porque la CPU se entera de que se hizo clic con el ratón
cuando el cursor estaba sobre la imagen
de un botón en la pantalla del monitor,
y entonces la CPU le pregunta a la memoria por el programa del monitor
para descubrir cuál es ese botón.
Y entonces la CPU tiene que preguntarle a la memoria
por el programa del botón,
lo que significa que la CPU necesita
que el programa del monitor
le muestre otra vez el video asociado al botón,
y así sucesivamente.
Digamos que hay muchos programas que intervienen
mucho antes de que veas iluminarse el botón
en la pantalla cuando haces clic en él.
Así, la simple tarea de hacer clic con el ratón
implica visitar todos los componentes críticos
de la arquitectura de la computadora:
los periféricos,
el sistema básico de entrada-salida,
la CPU,
los programas,
y la memoria,
y ni un solo gremlin.