1 00:00:15,353 --> 00:00:17,238 Você se lembrade quando percebeu 2 00:00:17,238 --> 00:00:18,659 que seu computador era mais 3 00:00:18,659 --> 00:00:20,742 que apenas um monitore um teclado? 4 00:00:20,742 --> 00:00:23,325 Que, entre o clique do mouse e a reprodução de um vídeo, 5 00:00:23,325 --> 00:00:25,598 havia alguma coisa que captava a sua intenção, 6 00:00:25,598 --> 00:00:26,428 a entendia 7 00:00:26,428 --> 00:00:27,880 e a tornava real? 8 00:00:28,650 --> 00:00:30,270 O que é essa coisa? 9 00:00:30,270 --> 00:00:32,006 São "gremlins"? 10 00:00:32,006 --> 00:00:33,665 Imagine que pudéssemos encolher, 11 00:00:33,665 --> 00:00:35,141 ficar do tamanho de um elétron 12 00:00:35,141 --> 00:00:37,894 e ser inseridos no clique de um mouse. 13 00:00:37,894 --> 00:00:39,531 Se você abrisse seu mouse, 14 00:00:39,531 --> 00:00:42,193 veria que ele é uma máquina realmente bem simples. 15 00:00:42,193 --> 00:00:43,444 Tem dois botões 16 00:00:43,444 --> 00:00:46,747 e um sistema de detecção de movimento e espaço. 17 00:00:46,747 --> 00:00:48,163 Talvez você tenha um mouse óptico 18 00:00:48,163 --> 00:00:50,868 que faz isso por meio de luzes e sensores, 19 00:00:50,868 --> 00:00:52,958 mas os mais antigos faziam isso com uma bola de borracha 20 00:00:52,958 --> 00:00:54,576 e alguns aros de plástico. 21 00:00:54,576 --> 00:00:56,325 O mesmo conceito. 22 00:00:56,325 --> 00:00:57,914 Quando você clica o botão do seu mouse, 23 00:00:57,914 --> 00:00:59,716 ele envia uma mensagem ao computador, 24 00:00:59,716 --> 00:01:01,825 com informações sobre sua posição. 25 00:01:01,825 --> 00:01:03,491 Quando o clique do seu mouse é recebido, 26 00:01:03,491 --> 00:01:06,880 ele é tratado pelo subsistema básico de entrada/saída. 27 00:01:06,880 --> 00:01:09,444 Esse subsistema age como os olhos, ouvidos, 28 00:01:09,444 --> 00:01:12,053 boca e mãos do computador. 29 00:01:12,053 --> 00:01:13,958 Basicamente, ele proporciona ao computador uma forma 30 00:01:13,958 --> 00:01:16,443 de interação com o ambiente. 31 00:01:16,443 --> 00:01:18,090 Mas ele também age como um amortecedor, 32 00:01:18,090 --> 00:01:21,501 que não deixa a CPU ficar sobrecarregada com distrações. 33 00:01:21,501 --> 00:01:23,811 Neste caso, o subsistema de E/S decide 34 00:01:23,811 --> 00:01:25,942 que o clique do seu mouse é muito importante, 35 00:01:25,942 --> 00:01:28,939 gerando uma interrupção na CPU. 36 00:01:28,939 --> 00:01:31,075 "Ei, CPU! Houve um clique aqui." 37 00:01:31,952 --> 00:01:34,327 A CPU, ou unidade central de processamento, 38 00:01:34,327 --> 00:01:36,522 é o cérebro do computador. 39 00:01:36,522 --> 00:01:39,072 Assim como seu cérebro não domina o seu corpo inteiro, 40 00:01:39,072 --> 00:01:41,577 a CPU não domina o computador inteiro, 41 00:01:41,577 --> 00:01:44,262 mas controla o espetáculo da mesma forma. 42 00:01:44,262 --> 00:01:46,506 E o trabalho da CPU, todo o trabalho dela, 43 00:01:46,506 --> 00:01:48,444 é buscar instruções na memória 44 00:01:48,444 --> 00:01:50,451 e executá-las. 45 00:01:50,451 --> 00:01:52,380 Então, enquanto você digita, digita, digita, 46 00:01:52,380 --> 00:01:53,610 talvez bem rápido, 47 00:01:53,610 --> 00:01:55,088 tipo, 60 palavras por minuto, 48 00:01:55,088 --> 00:01:57,090 a CPU busca e executa 49 00:01:57,090 --> 00:01:59,137 bilhões de instruções por segundo. 50 00:01:59,137 --> 00:02:02,176 Sim, bilhões a cada segundo: 51 00:02:02,176 --> 00:02:04,982 instruções para movimentar seu mouse pela tela, 52 00:02:04,982 --> 00:02:07,145 para mover o "widget" de relógio no seu computador, 53 00:02:07,145 --> 00:02:08,892 para tocar sua rádio online, 54 00:02:08,892 --> 00:02:11,145 para gerenciar os arquivos que você edita no disco rígido, 55 00:02:11,145 --> 00:02:12,900 e muito, muito mais. 56 00:02:12,900 --> 00:02:16,160 A CPU do seu computador é um baita multitarefas! 57 00:02:16,743 --> 00:02:17,613 "Mas, meu Deus! 58 00:02:17,613 --> 00:02:18,909 Lá vem um clique de mouse 59 00:02:18,909 --> 00:02:20,030 muito importante! 60 00:02:20,030 --> 00:02:22,560 Vamos parar tudo agora e cuidar disso!" 61 00:02:23,207 --> 00:02:24,604 Existem programas para tudo 62 00:02:24,604 --> 00:02:26,336 que a CPU faz. 63 00:02:26,336 --> 00:02:28,058 Um programa especial para o mouse, 64 00:02:28,058 --> 00:02:29,092 para o "widget" do relógio, 65 00:02:29,092 --> 00:02:30,303 para a rádio online, 66 00:02:30,303 --> 00:02:33,136 e para lidar com as letras enviadas pelo teclado. 67 00:02:33,136 --> 00:02:35,688 Cada programa foi originalmente escrito por um ser humano, 68 00:02:35,688 --> 00:02:37,906 em uma linguagem de programação legível para o ser humano, 69 00:02:37,906 --> 00:02:38,765 como Java, 70 00:02:38,765 --> 00:02:39,798 C++, 71 00:02:39,798 --> 00:02:41,219 ou Python. 72 00:02:41,219 --> 00:02:43,741 Mas programas humanos ocupam muito espaço 73 00:02:43,741 --> 00:02:47,450 e contêm muita informação desnecessária para um computador. 74 00:02:47,450 --> 00:02:49,191 Por isso, elas são compiladas, reduzidas 75 00:02:49,191 --> 00:02:52,653 e armazenadas em "bits" de números "1" e "0", na memória. 76 00:02:52,653 --> 00:02:55,410 A CPU percebe que precisa de instruções 77 00:02:55,410 --> 00:02:57,411 sobre como lidar com o clique do mouse. 78 00:02:57,411 --> 00:02:59,380 Então, ela procura o local do programa do mouse 79 00:02:59,380 --> 00:03:01,755 e envia uma solicitação ao subsistema de memória, 80 00:03:01,755 --> 00:03:04,179 para acessar as instruções nela armazenadas. 81 00:03:05,287 --> 00:03:07,216 Cada instrução no "driver" do mouse 82 00:03:07,216 --> 00:03:09,742 é devidamente procurada e executada. 83 00:03:09,742 --> 00:03:12,113 E não estamos nem perto do fim da história! 84 00:03:12,113 --> 00:03:14,654 Porque a CPU sabe que houve um clique no mouse 85 00:03:14,654 --> 00:03:16,216 quando o cursor estava sobre a imagem 86 00:03:16,216 --> 00:03:18,177 de um botão, na tela do monitor, 87 00:03:18,177 --> 00:03:21,248 e, por isso, a CPU pede à memória que o programa do monitor 88 00:03:21,248 --> 00:03:23,353 descubra que botão é aquele. 89 00:03:23,353 --> 00:03:25,601 Depois, a CPU pede à memória 90 00:03:25,601 --> 00:03:27,437 o programa para o botão, 91 00:03:27,437 --> 00:03:28,948 o que significa que a CPU precisa 92 00:03:28,948 --> 00:03:30,688 que o programa do monitor mostre 93 00:03:30,688 --> 00:03:32,860 novamente o vídeo associado ao botão, 94 00:03:32,860 --> 00:03:34,742 e lá vai. 95 00:03:34,742 --> 00:03:37,487 Digamos que existem muitos programas trabalhando, 96 00:03:37,487 --> 00:03:39,472 antes mesmo que você veja o botão na tela 97 00:03:39,472 --> 00:03:41,379 iluminar-se ao você clicar nele. 98 00:03:41,379 --> 00:03:43,848 Então, a simples tarefa de clicar em seu mouse 99 00:03:43,848 --> 00:03:46,216 significa visitar todos os componentes críticos 100 00:03:46,216 --> 00:03:48,196 da estrutura do seu computador: 101 00:03:48,196 --> 00:03:49,238 os periféricos, 102 00:03:49,238 --> 00:03:51,047 o sistema básico de entra/saída, 103 00:03:51,047 --> 00:03:52,379 a CPU, 104 00:03:52,379 --> 00:03:53,154 os programas, 105 00:03:53,154 --> 00:03:54,140 a memória 106 00:03:54,140 --> 00:03:56,133 e nenhum "gremlin".