¿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.