WEBVTT 00:00:15.353 --> 00:00:17.238 Помните, когда вы впервые поняли, 00:00:17.238 --> 00:00:18.659 что ваш компьютер больше, 00:00:18.659 --> 00:00:20.742 чем просто монитор и клавиатура? 00:00:20.742 --> 00:00:23.325 Между щелчком мыши и видеоиграми 00:00:23.325 --> 00:00:25.598 было что-то, что cхватило ваш замысел, 00:00:25.598 --> 00:00:26.428 поняло его, 00:00:26.428 --> 00:00:27.880 и сделало его настоящим? 00:00:28.650 --> 00:00:30.270 Что это? 00:00:30.270 --> 00:00:32.007 Это гремлины? 00:00:32.007 --> 00:00:33.665 Давайте представим, что мы можем уменьшиться 00:00:33.665 --> 00:00:35.141 до размера электрона 00:00:35.141 --> 00:00:37.894 и внедриться в щелчок мыши. 00:00:37.894 --> 00:00:39.531 Если вы разберёте мышь, 00:00:39.531 --> 00:00:42.193 то увидите, что это на самом деле очень простая машина. 00:00:42.193 --> 00:00:43.444 Она имеет пару кнопок 00:00:43.444 --> 00:00:46.747 и систему для обнаружения движения и расстояния. 00:00:46.747 --> 00:00:48.163 У вас, возможно, есть оптическая мышь, 00:00:48.163 --> 00:00:50.868 производящая эти измерения с помощью света и датчиков, 00:00:50.868 --> 00:00:52.958 но более старые модели делали это с помощью резинового мячика 00:00:52.958 --> 00:00:54.576 и нескольких пластиковых колёсиков. 00:00:54.576 --> 00:00:56.325 Та же концепция. 00:00:56.325 --> 00:00:57.914 Когда вы нажимаете кнопку вашей мыши, 00:00:57.914 --> 00:00:59.716 она отправляет сообщение на компьютер 00:00:59.716 --> 00:01:01.825 с информацией о своей позиции. 00:01:01.825 --> 00:01:03.491 Когда нажатие вашей мыши получено, 00:01:03.491 --> 00:01:06.880 оно обрабатывается базовой подсистемой ввода/вывода. 00:01:06.880 --> 00:01:09.444 Эта подсистема действует как глаза, уши, 00:01:09.444 --> 00:01:12.053 рот и руки компьютера. 00:01:12.053 --> 00:01:13.958 По существу, она предоставляет компьютеру способ 00:01:13.958 --> 00:01:16.443 взаимодействия с окружающей средой. 00:01:16.443 --> 00:01:18.090 Но она также действует как буфер, 00:01:18.090 --> 00:01:21.501 чтобы предотвращать перегрузку ЦПУ отвлекающими факторами. 00:01:21.501 --> 00:01:23.811 В этом случае подсистема ввода-вывода решает, 00:01:23.811 --> 00:01:25.942 что ваше нажатие мыши достаточно важно, 00:01:25.942 --> 00:01:28.939 поэтому она генерирует прерывание ЦПУ. 00:01:28.939 --> 00:01:31.075 «Эй, процессор! Я здесь получила нажатие». 00:01:31.952 --> 00:01:34.327 ЦПУ, или центральное процессорное устройство, — 00:01:34.327 --> 00:01:36.522 это мозги всего компьютера. 00:01:36.522 --> 00:01:39.072 Так же, как ваш мозг не занимает всё ваше тело, 00:01:39.072 --> 00:01:41.577 ЦПУ не занимает весь компьютер, 00:01:41.577 --> 00:01:44.262 но он тем не менее всем заправляет. 00:01:44.262 --> 00:01:46.506 И работа ЦПУ, вся его работа — 00:01:46.506 --> 00:01:48.444 это выборка инструкций из памяти 00:01:48.444 --> 00:01:50.451 и их выполнение. 00:01:50.451 --> 00:01:52.380 В то время, как вы печатаете, печатаете, печатаете, 00:01:52.380 --> 00:01:53.610 может быть, очень быстро, 00:01:53.610 --> 00:01:55.088 около 60 слов в минуту, 00:01:55.088 --> 00:01:57.090 ЦПУ осуществляет выборку и выполнение 00:01:57.090 --> 00:01:59.137 миллиардов инструкций в секунду. 00:01:59.137 --> 00:02:02.176 Да, миллиардов каждую секунду: 00:02:02.176 --> 00:02:04.982 инструкции для перемещения мыши на экране, 00:02:04.982 --> 00:02:07.145 для запуска виджета часов на вашем рабочем столе, 00:02:07.145 --> 00:02:08.892 для проигрывания вашего Интернет-радио, 00:02:08.892 --> 00:02:11.145 для управления файлами, которые вы редактируете на жёстком диске, 00:02:11.145 --> 00:02:12.900 и многое, многое другое. 00:02:12.900 --> 00:02:16.160 ЦПУ вашего компьютера — тот ещё мультитаскер! 00:02:16.743 --> 00:02:17.613 «О, боже мой, 00:02:17.613 --> 00:02:18.909 очень важное нажатие мыши 00:02:18.909 --> 00:02:20.030 приходит сейчас! 00:02:20.030 --> 00:02:22.560 Давайте теперь всё бросим и займёмся этим»! 00:02:23.207 --> 00:02:24.604 Существуют программы для всего, 00:02:24.604 --> 00:02:26.336 что делает ЦПУ. 00:02:26.336 --> 00:02:28.058 Специальная программа для мыши, 00:02:28.058 --> 00:02:29.092 для виджета часов, 00:02:29.092 --> 00:02:30.303 для Интернет-радио 00:02:30.303 --> 00:02:33.136 и для работы с письмами, отправленными с клавиатуры. 00:02:33.136 --> 00:02:35.688 Каждая программа была изначально написана человеком 00:02:35.688 --> 00:02:37.906 на человекочитаемом языке программирования, 00:02:37.906 --> 00:02:38.765 как Java, 00:02:38.765 --> 00:02:39.798 C++ 00:02:39.798 --> 00:02:41.219 или Python. 00:02:41.219 --> 00:02:43.741 Но человеческие программы занимают много места 00:02:43.741 --> 00:02:47.450 и содержат большое количество ненужной для компьютера информации, 00:02:47.450 --> 00:02:49.191 поэтому они компилируются, уменьшаются 00:02:49.191 --> 00:02:52.653 и хранятся в битах единиц и нулей в памяти. 00:02:52.653 --> 00:02:55.410 ЦПУ понимает, что ему необходимы инструкции 00:02:55.410 --> 00:02:57.411 по обработке нажатия этой мыши, 00:02:57.411 --> 00:02:59.380 так что оно ищет адрес программы мыши 00:02:59.380 --> 00:03:01.755 и отправляет запрос в подсистему памяти 00:03:01.755 --> 00:03:04.179 для получения инструкций, хранящихся там. 00:03:05.287 --> 00:03:07.216 Каждая инструкция в драйвере устройства мыши 00:03:07.216 --> 00:03:09.742 должным образом выбрана и выполнена. 00:03:09.742 --> 00:03:12.113 И это далеко не конец истории! 00:03:12.113 --> 00:03:14.654 Так как ЦПУ узнаёт, что мышь была нажата, 00:03:14.654 --> 00:03:16.216 когда курсор был на рисунке 00:03:16.216 --> 00:03:18.177 кнопки на экране монитора, 00:03:18.177 --> 00:03:21.248 ЦПУ просит у памяти программу монитора, 00:03:21.248 --> 00:03:23.353 чтобы узнать, что это за кнопка. 00:03:23.353 --> 00:03:25.601 Затем ЦПУ должен попросить у памяти 00:03:25.601 --> 00:03:27.437 программу для кнопки, 00:03:27.437 --> 00:03:28.948 что означает, что ЦПУ снова нужна 00:03:28.948 --> 00:03:30.688 программа монитора, 00:03:30.688 --> 00:03:32.860 чтобы показать видео, связанное с кнопкой, 00:03:32.860 --> 00:03:34.742 и так далее. 00:03:34.742 --> 00:03:37.487 Давайте просто скажем, что существует много программ, 00:03:37.487 --> 00:03:39.472 прежде чем вы вообще увидите, как загорается 00:03:39.472 --> 00:03:41.379 кнопка на экране в результате вашего нажатия. 00:03:41.379 --> 00:03:43.848 Так что простая задача нажатия мыши 00:03:43.848 --> 00:03:46.216 означает посещение всех важных компонентов 00:03:46.216 --> 00:03:48.196 архитектуры вашего компьютера: 00:03:48.196 --> 00:03:49.238 периферийных устройств, 00:03:49.238 --> 00:03:51.047 базовой системы ввода-вывода, 00:03:51.047 --> 00:03:52.379 ЦПУ, 00:03:52.379 --> 00:03:53.154 программ 00:03:53.154 --> 00:03:54.140 и памяти. 00:03:54.140 --> 00:03:56.133 И гремлины здесь ни при чём.