Você se lembrade quando percebeu
que seu computador era mais
que apenas um monitore um teclado?
Que, entre o clique do mouse e a reprodução de um vídeo,
havia alguma coisa que captava a sua intenção,
a entendia
e a tornava real?
O que é essa coisa?
São "gremlins"?
Imagine que pudéssemos encolher,
ficar do tamanho de um elétron
e ser inseridos no clique de um mouse.
Se você abrisse seu mouse,
veria que ele é uma máquina realmente bem simples.
Tem dois botões
e um sistema de detecção de movimento e espaço.
Talvez você tenha um mouse óptico
que faz isso por meio de luzes e sensores,
mas os mais antigos faziam isso com uma bola de borracha
e alguns aros de plástico.
O mesmo conceito.
Quando você clica o botão do seu mouse,
ele envia uma mensagem ao computador,
com informações sobre sua posição.
Quando o clique do seu mouse é recebido,
ele é tratado pelo subsistema básico de entrada/saída.
Esse subsistema age como os olhos, ouvidos,
boca e mãos do computador.
Basicamente, ele proporciona ao computador uma forma
de interação com o ambiente.
Mas ele também age como um amortecedor,
que não deixa a CPU ficar sobrecarregada com distrações.
Neste caso, o subsistema de E/S decide
que o clique do seu mouse é muito importante,
gerando uma interrupção na CPU.
"Ei, CPU! Houve um clique aqui."
A CPU, ou unidade central de processamento,
é o cérebro do computador.
Assim como seu cérebro não domina o seu corpo inteiro,
a CPU não domina o computador inteiro,
mas controla o espetáculo da mesma forma.
E o trabalho da CPU, todo o trabalho dela,
é buscar instruções na memória
e executá-las.
Então, enquanto você digita, digita, digita,
talvez bem rápido,
tipo, 60 palavras por minuto,
a CPU busca e executa
bilhões de instruções por segundo.
Sim, bilhões a cada segundo:
instruções para movimentar seu mouse pela tela,
para mover o "widget" de relógio no seu computador,
para tocar sua rádio online,
para gerenciar os arquivos que você edita no disco rígido,
e muito, muito mais.
A CPU do seu computador é um baita multitarefas!
"Mas, meu Deus!
Lá vem um clique de mouse
muito importante!
Vamos parar tudo agora e cuidar disso!"
Existem programas para tudo
que a CPU faz.
Um programa especial para o mouse,
para o "widget" do relógio,
para a rádio online,
e para lidar com as letras enviadas pelo teclado.
Cada programa foi originalmente escrito por um ser humano,
em uma linguagem de programação legível para o ser humano,
como Java,
C++,
ou Python.
Mas programas humanos ocupam muito espaço
e contêm muita informação desnecessária para um computador.
Por isso, elas são compiladas, reduzidas
e armazenadas em "bits" de números "1" e "0", na memória.
A CPU percebe que precisa de instruções
sobre como lidar com o clique do mouse.
Então, ela procura o local do programa do mouse
e envia uma solicitação ao subsistema de memória,
para acessar as instruções nela armazenadas.
Cada instrução no "driver" do mouse
é devidamente procurada e executada.
E não estamos nem perto do fim da história!
Porque a CPU sabe que houve um clique no mouse
quando o cursor estava sobre a imagem
de um botão, na tela do monitor,
e, por isso, a CPU pede à memória que o programa do monitor
descubra que botão é aquele.
Depois, a CPU pede à memória
o programa para o botão,
o que significa que a CPU precisa
que o programa do monitor mostre
novamente o vídeo associado ao botão,
e lá vai.
Digamos que existem muitos programas trabalhando,
antes mesmo que você veja o botão na tela
iluminar-se ao você clicar nele.
Então, a simples tarefa de clicar em seu mouse
significa visitar todos os componentes críticos
da estrutura do seu computador:
os periféricos,
o sistema básico de entra/saída,
a CPU,
os programas,
a memória
e nenhum "gremlin".