0:00:15.353,0:00:17.238 Você se lembrade quando percebeu 0:00:17.238,0:00:18.659 que seu computador era mais 0:00:18.659,0:00:20.742 que apenas um monitore um teclado? 0:00:20.742,0:00:23.325 Que, entre o clique do mouse[br]e a reprodução de um vídeo, 0:00:23.325,0:00:25.598 havia alguma coisa que captava a sua intenção, 0:00:25.598,0:00:26.428 a entendia 0:00:26.428,0:00:27.880 e a tornava real? 0:00:28.650,0:00:30.270 O que é essa coisa? 0:00:30.270,0:00:32.006 São "gremlins"? 0:00:32.006,0:00:33.665 Imagine que pudéssemos encolher, 0:00:33.665,0:00:35.141 ficar do tamanho de um elétron 0:00:35.141,0:00:37.894 e ser inseridos no clique de um mouse. 0:00:37.894,0:00:39.531 Se você abrisse seu mouse, 0:00:39.531,0:00:42.193 veria que ele é uma máquina[br]realmente bem simples. 0:00:42.193,0:00:43.444 Tem dois botões 0:00:43.444,0:00:46.747 e um sistema de detecção[br]de movimento e espaço. 0:00:46.747,0:00:48.163 Talvez você tenha um mouse óptico 0:00:48.163,0:00:50.868 que faz isso por meio de luzes e sensores, 0:00:50.868,0:00:52.958 mas os mais antigos faziam[br]isso com uma bola de borracha 0:00:52.958,0:00:54.576 e alguns aros de plástico. 0:00:54.576,0:00:56.325 O mesmo conceito. 0:00:56.325,0:00:57.914 Quando você clica o botão do seu mouse, 0:00:57.914,0:00:59.716 ele envia uma mensagem ao computador, 0:00:59.716,0:01:01.825 com informações sobre sua posição. 0:01:01.825,0:01:03.491 Quando o clique do seu mouse é recebido, 0:01:03.491,0:01:06.880 ele é tratado pelo subsistema[br]básico de entrada/saída. 0:01:06.880,0:01:09.444 Esse subsistema age como os olhos, ouvidos, 0:01:09.444,0:01:12.053 boca e mãos do computador. 0:01:12.053,0:01:13.958 Basicamente, ele proporciona[br]ao computador uma forma 0:01:13.958,0:01:16.443 de interação com o ambiente. 0:01:16.443,0:01:18.090 Mas ele também age como um amortecedor, 0:01:18.090,0:01:21.501 que não deixa a CPU ficar [br]sobrecarregada com distrações. 0:01:21.501,0:01:23.811 Neste caso, o subsistema de E/S decide 0:01:23.811,0:01:25.942 que o clique do seu mouse[br]é muito importante, 0:01:25.942,0:01:28.939 gerando uma interrupção na CPU. 0:01:28.939,0:01:31.075 "Ei, CPU! Houve um clique aqui." 0:01:31.952,0:01:34.327 A CPU, ou unidade central de processamento, 0:01:34.327,0:01:36.522 é o cérebro do computador. 0:01:36.522,0:01:39.072 Assim como seu cérebro não[br]domina o seu corpo inteiro, 0:01:39.072,0:01:41.577 a CPU não domina o computador inteiro, 0:01:41.577,0:01:44.262 mas controla o espetáculo da mesma forma. 0:01:44.262,0:01:46.506 E o trabalho da CPU, todo o trabalho dela, 0:01:46.506,0:01:48.444 é buscar instruções na memória 0:01:48.444,0:01:50.451 e executá-las. 0:01:50.451,0:01:52.380 Então, enquanto você digita, digita, digita, 0:01:52.380,0:01:53.610 talvez bem rápido, 0:01:53.610,0:01:55.088 tipo, 60 palavras por minuto, 0:01:55.088,0:01:57.090 a CPU busca e executa 0:01:57.090,0:01:59.137 bilhões de instruções por segundo. 0:01:59.137,0:02:02.176 Sim, bilhões a cada segundo: 0:02:02.176,0:02:04.982 instruções para movimentar[br]seu mouse pela tela, 0:02:04.982,0:02:07.145 para mover o "widget" de relógio[br]no seu computador, 0:02:07.145,0:02:08.892 para tocar sua rádio online, 0:02:08.892,0:02:11.145 para gerenciar os arquivos que[br]você edita no disco rígido, 0:02:11.145,0:02:12.900 e muito, muito mais. 0:02:12.900,0:02:16.160 A CPU do seu computador[br]é um baita multitarefas! 0:02:16.743,0:02:17.613 "Mas, meu Deus! 0:02:17.613,0:02:18.909 Lá vem um clique de mouse 0:02:18.909,0:02:20.030 muito importante! 0:02:20.030,0:02:22.560 Vamos parar tudo agora e cuidar disso!" 0:02:23.207,0:02:24.604 Existem programas para tudo 0:02:24.604,0:02:26.336 que a CPU faz. 0:02:26.336,0:02:28.058 Um programa especial para o mouse, 0:02:28.058,0:02:29.092 para o "widget" do relógio, 0:02:29.092,0:02:30.303 para a rádio online, 0:02:30.303,0:02:33.136 e para lidar com as letras enviadas pelo teclado. 0:02:33.136,0:02:35.688 Cada programa foi originalmente[br]escrito por um ser humano, 0:02:35.688,0:02:37.906 em uma linguagem de programação[br]legível para o ser humano, 0:02:37.906,0:02:38.765 como Java, 0:02:38.765,0:02:39.798 C++, 0:02:39.798,0:02:41.219 ou Python. 0:02:41.219,0:02:43.741 Mas programas humanos ocupam muito espaço 0:02:43.741,0:02:47.450 e contêm muita informação[br]desnecessária para um computador. 0:02:47.450,0:02:49.191 Por isso, elas são compiladas, reduzidas 0:02:49.191,0:02:52.653 e armazenadas em "bits" de [br]números "1" e "0", na memória. 0:02:52.653,0:02:55.410 A CPU percebe que precisa de instruções 0:02:55.410,0:02:57.411 sobre como lidar com o clique do mouse. 0:02:57.411,0:02:59.380 Então, ela procura o local do programa do mouse 0:02:59.380,0:03:01.755 e envia uma solicitação ao subsistema de memória, 0:03:01.755,0:03:04.179 para acessar as instruções nela armazenadas. 0:03:05.287,0:03:07.216 Cada instrução no "driver" do mouse 0:03:07.216,0:03:09.742 é devidamente procurada e executada. 0:03:09.742,0:03:12.113 E não estamos nem perto do fim da história! 0:03:12.113,0:03:14.654 Porque a CPU sabe que houve um clique no mouse 0:03:14.654,0:03:16.216 quando o cursor estava sobre a imagem 0:03:16.216,0:03:18.177 de um botão, na tela do monitor, 0:03:18.177,0:03:21.248 e, por isso, a CPU pede à memória[br]que o programa do monitor 0:03:21.248,0:03:23.353 descubra que botão é aquele. 0:03:23.353,0:03:25.601 Depois, a CPU pede à memória 0:03:25.601,0:03:27.437 o programa para o botão, 0:03:27.437,0:03:28.948 o que significa que a CPU precisa 0:03:28.948,0:03:30.688 que o programa do monitor mostre 0:03:30.688,0:03:32.860 novamente o vídeo associado ao botão, 0:03:32.860,0:03:34.742 e lá vai. 0:03:34.742,0:03:37.487 Digamos que existem muitos programas trabalhando, 0:03:37.487,0:03:39.472 antes mesmo que você veja o botão na tela 0:03:39.472,0:03:41.379 iluminar-se ao você clicar nele. 0:03:41.379,0:03:43.848 Então, a simples tarefa de clicar em seu mouse 0:03:43.848,0:03:46.216 significa visitar todos os componentes críticos 0:03:46.216,0:03:48.196 da estrutura do seu computador: 0:03:48.196,0:03:49.238 os periféricos, 0:03:49.238,0:03:51.047 o sistema básico de entra/saída, 0:03:51.047,0:03:52.379 a CPU, 0:03:52.379,0:03:53.154 os programas, 0:03:53.154,0:03:54.140 a memória 0:03:54.140,0:03:56.133 e nenhum "gremlin".