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