1 00:00:15,353 --> 00:00:17,238 Помните, когда вы впервые поняли, 2 00:00:17,238 --> 00:00:18,659 что ваш компьютер больше, 3 00:00:18,659 --> 00:00:20,742 чем просто монитор и клавиатура? 4 00:00:20,742 --> 00:00:23,325 Между щелчком мыши и видеоиграми 5 00:00:23,325 --> 00:00:25,598 было что-то, что cхватило ваш замысел, 6 00:00:25,598 --> 00:00:26,428 поняло его, 7 00:00:26,428 --> 00:00:27,880 и сделало его настоящим? 8 00:00:28,650 --> 00:00:30,270 Что это? 9 00:00:30,270 --> 00:00:32,007 Это гремлины? 10 00:00:32,007 --> 00:00:33,665 Давайте представим, что мы можем уменьшиться 11 00:00:33,665 --> 00:00:35,141 до размера электрона 12 00:00:35,141 --> 00:00:37,894 и внедриться в щелчок мыши. 13 00:00:37,894 --> 00:00:39,531 Если вы разберёте мышь, 14 00:00:39,531 --> 00:00:42,193 то увидите, что это на самом деле очень простая машина. 15 00:00:42,193 --> 00:00:43,444 Она имеет пару кнопок 16 00:00:43,444 --> 00:00:46,747 и систему для обнаружения движения и расстояния. 17 00:00:46,747 --> 00:00:48,163 У вас, возможно, есть оптическая мышь, 18 00:00:48,163 --> 00:00:50,868 производящая эти измерения с помощью света и датчиков, 19 00:00:50,868 --> 00:00:52,958 но более старые модели делали это с помощью резинового мячика 20 00:00:52,958 --> 00:00:54,576 и нескольких пластиковых колёсиков. 21 00:00:54,576 --> 00:00:56,325 Та же концепция. 22 00:00:56,325 --> 00:00:57,914 Когда вы нажимаете кнопку вашей мыши, 23 00:00:57,914 --> 00:00:59,716 она отправляет сообщение на компьютер 24 00:00:59,716 --> 00:01:01,825 с информацией о своей позиции. 25 00:01:01,825 --> 00:01:03,491 Когда нажатие вашей мыши получено, 26 00:01:03,491 --> 00:01:06,880 оно обрабатывается базовой подсистемой ввода/вывода. 27 00:01:06,880 --> 00:01:09,444 Эта подсистема действует как глаза, уши, 28 00:01:09,444 --> 00:01:12,053 рот и руки компьютера. 29 00:01:12,053 --> 00:01:13,958 По существу, она предоставляет компьютеру способ 30 00:01:13,958 --> 00:01:16,443 взаимодействия с окружающей средой. 31 00:01:16,443 --> 00:01:18,090 Но она также действует как буфер, 32 00:01:18,090 --> 00:01:21,501 чтобы предотвращать перегрузку ЦПУ отвлекающими факторами. 33 00:01:21,501 --> 00:01:23,811 В этом случае подсистема ввода-вывода решает, 34 00:01:23,811 --> 00:01:25,942 что ваше нажатие мыши достаточно важно, 35 00:01:25,942 --> 00:01:28,939 поэтому она генерирует прерывание ЦПУ. 36 00:01:28,939 --> 00:01:31,075 «Эй, процессор! Я здесь получила нажатие». 37 00:01:31,952 --> 00:01:34,327 ЦПУ, или центральное процессорное устройство, — 38 00:01:34,327 --> 00:01:36,522 это мозги всего компьютера. 39 00:01:36,522 --> 00:01:39,072 Так же, как ваш мозг не занимает всё ваше тело, 40 00:01:39,072 --> 00:01:41,577 ЦПУ не занимает весь компьютер, 41 00:01:41,577 --> 00:01:44,262 но он тем не менее всем заправляет. 42 00:01:44,262 --> 00:01:46,506 И работа ЦПУ, вся его работа — 43 00:01:46,506 --> 00:01:48,444 это выборка инструкций из памяти 44 00:01:48,444 --> 00:01:50,451 и их выполнение. 45 00:01:50,451 --> 00:01:52,380 В то время, как вы печатаете, печатаете, печатаете, 46 00:01:52,380 --> 00:01:53,610 может быть, очень быстро, 47 00:01:53,610 --> 00:01:55,088 около 60 слов в минуту, 48 00:01:55,088 --> 00:01:57,090 ЦПУ осуществляет выборку и выполнение 49 00:01:57,090 --> 00:01:59,137 миллиардов инструкций в секунду. 50 00:01:59,137 --> 00:02:02,176 Да, миллиардов каждую секунду: 51 00:02:02,176 --> 00:02:04,982 инструкции для перемещения мыши на экране, 52 00:02:04,982 --> 00:02:07,145 для запуска виджета часов на вашем рабочем столе, 53 00:02:07,145 --> 00:02:08,892 для проигрывания вашего Интернет-радио, 54 00:02:08,892 --> 00:02:11,145 для управления файлами, которые вы редактируете на жёстком диске, 55 00:02:11,145 --> 00:02:12,900 и многое, многое другое. 56 00:02:12,900 --> 00:02:16,160 ЦПУ вашего компьютера — тот ещё мультитаскер! 57 00:02:16,743 --> 00:02:17,613 «О, боже мой, 58 00:02:17,613 --> 00:02:18,909 очень важное нажатие мыши 59 00:02:18,909 --> 00:02:20,030 приходит сейчас! 60 00:02:20,030 --> 00:02:22,560 Давайте теперь всё бросим и займёмся этим»! 61 00:02:23,207 --> 00:02:24,604 Существуют программы для всего, 62 00:02:24,604 --> 00:02:26,336 что делает ЦПУ. 63 00:02:26,336 --> 00:02:28,058 Специальная программа для мыши, 64 00:02:28,058 --> 00:02:29,092 для виджета часов, 65 00:02:29,092 --> 00:02:30,303 для Интернет-радио 66 00:02:30,303 --> 00:02:33,136 и для работы с письмами, отправленными с клавиатуры. 67 00:02:33,136 --> 00:02:35,688 Каждая программа была изначально написана человеком 68 00:02:35,688 --> 00:02:37,906 на человекочитаемом языке программирования, 69 00:02:37,906 --> 00:02:38,765 как Java, 70 00:02:38,765 --> 00:02:39,798 C++ 71 00:02:39,798 --> 00:02:41,219 или Python. 72 00:02:41,219 --> 00:02:43,741 Но человеческие программы занимают много места 73 00:02:43,741 --> 00:02:47,450 и содержат большое количество ненужной для компьютера информации, 74 00:02:47,450 --> 00:02:49,191 поэтому они компилируются, уменьшаются 75 00:02:49,191 --> 00:02:52,653 и хранятся в битах единиц и нулей в памяти. 76 00:02:52,653 --> 00:02:55,410 ЦПУ понимает, что ему необходимы инструкции 77 00:02:55,410 --> 00:02:57,411 по обработке нажатия этой мыши, 78 00:02:57,411 --> 00:02:59,380 так что оно ищет адрес программы мыши 79 00:02:59,380 --> 00:03:01,755 и отправляет запрос в подсистему памяти 80 00:03:01,755 --> 00:03:04,179 для получения инструкций, хранящихся там. 81 00:03:05,287 --> 00:03:07,216 Каждая инструкция в драйвере устройства мыши 82 00:03:07,216 --> 00:03:09,742 должным образом выбрана и выполнена. 83 00:03:09,742 --> 00:03:12,113 И это далеко не конец истории! 84 00:03:12,113 --> 00:03:14,654 Так как ЦПУ узнаёт, что мышь была нажата, 85 00:03:14,654 --> 00:03:16,216 когда курсор был на рисунке 86 00:03:16,216 --> 00:03:18,177 кнопки на экране монитора, 87 00:03:18,177 --> 00:03:21,248 ЦПУ просит у памяти программу монитора, 88 00:03:21,248 --> 00:03:23,353 чтобы узнать, что это за кнопка. 89 00:03:23,353 --> 00:03:25,601 Затем ЦПУ должен попросить у памяти 90 00:03:25,601 --> 00:03:27,437 программу для кнопки, 91 00:03:27,437 --> 00:03:28,948 что означает, что ЦПУ снова нужна 92 00:03:28,948 --> 00:03:30,688 программа монитора, 93 00:03:30,688 --> 00:03:32,860 чтобы показать видео, связанное с кнопкой, 94 00:03:32,860 --> 00:03:34,742 и так далее. 95 00:03:34,742 --> 00:03:37,487 Давайте просто скажем, что существует много программ, 96 00:03:37,487 --> 00:03:39,472 прежде чем вы вообще увидите, как загорается 97 00:03:39,472 --> 00:03:41,379 кнопка на экране в результате вашего нажатия. 98 00:03:41,379 --> 00:03:43,848 Так что простая задача нажатия мыши 99 00:03:43,848 --> 00:03:46,216 означает посещение всех важных компонентов 100 00:03:46,216 --> 00:03:48,196 архитектуры вашего компьютера: 101 00:03:48,196 --> 00:03:49,238 периферийных устройств, 102 00:03:49,238 --> 00:03:51,047 базовой системы ввода-вывода, 103 00:03:51,047 --> 00:03:52,379 ЦПУ, 104 00:03:52,379 --> 00:03:53,154 программ 105 00:03:53,154 --> 00:03:54,140 и памяти. 106 00:03:54,140 --> 00:03:56,133 И гремлины здесь ни при чём.