Боб Меткалф&Точка зрения

Я придумал новое слово - «предвосхипараллелизм» (anticiparallelism - производное слово от anticipate (англ.) - предвосхищать, предугадывать). На обложке журнала Wired напечатали портрет Билла Джоя, основателя Sun Microsystems. Сейчас Билл продвигает ПО Jini, призванное объединить устройства и службы на платформе Java. Вскоре после того, как этот номер вышел, Джой позвонил мне и рассказал, как Jini расширяет виртуальные машины Java новыми службами каталогов, как поддерживается устойчивость объектов и удаленный вызов методов (RMI).

Позднее Джой прислал сообщение по электронной почте, в котором благодарил меня за написанные в 1995 году статьи об операционных системах для Internet. Я тогда писал, что ПК на платформе Wintel становятся все совершеннее, и что скоро появятся ОС для Internet, которые станут платформами для разработки сетевых компьютеров.

По словам Джоя, мои статьи «вдохновили его, раскрыв потенциальные возможности рынка подобных новых продуктов, ориентированных на Internet», и навели на мысль о Jini. Я падок на такие признания, поэтому неудивительно, что я начал писать о проекте Jini. Но почивать на лаврах рановато, и недавно я сформулировал абсолютно новый принцип операционной системы: «предвосхипараллелизм».

Помимо Windows, есть и другие «миры». На наших глазах регулярно появляются новые ОС, рассчитанные на распределенные сетевые вычисления. Технология Java, обладающая переносимым кодом, намного безопаснее и «собирает свой собственный мусор». Далее, чтобы с максимальной пользой использовать вычислительную мощь, которая становится возможной благодаря все более высокой тактовой частоте процессоров, новым ОС просто необходим «предвосхипараллелизм».

Вспомните, когда появились мини-компьютеры, владельцы мэйнфреймов пренебрежительно отнеслись к принципу разделения времени, потому что при этом, в противоположность мультипрограммированию в пакетном режиме, 15% вычислительных циклов (примерно одну шестидесятую долю секунды на каждую команду) приходилось тратить на операции взаимодействия.

Сегодня же 99% вычислительных циклов непроизводительно расходуются на ожидание, 99% из этих девяносто девяти растрачиваются на операции взаимодействия с пользователем.

Конечно, ничто не ново под луной. «Предвосхипараллелизм» - это всего лишь обобщение способов повышения быстродействия, применявшихся в старых операционных системах: write behind (запись с задержкой) и read ahead (чтение с упреждением). Я уверен, что принцип «предвосхипараллелизма» обеспечит повышение вычислительной мощи в том случае, когда он будет реализован как глубокая

корневая инфраструктура в языках программирования, операционных системах и пользовательских интерфейсах.

«Предвосхипараллелизм» ищет возможности для децентрализации вычислительных процессов. Он обеспечивает согласованность прикладного программного обеспечения и операций взаимодействия с пользователем. «Предвосхпараллелизм» поддерживает «нагрузку» всех доступных процессоров так, чтобы они выполняли запросы пользователей и «предвосхищали» последующие их команды.

Раз уж ПК бездействует в ожидании вашей команды, то пусть «между делом» поработает над тем, о чем вы, скорее всего, попросите его в следующий раз.

Сегодня процесс печати проходит в фоновом режиме. Это примитивный уровень «предвосхипараллелизма». Примитивный потому, что он реализован специально для данного случая, то есть программист ОС должен был написать программу для принтера. Кроме того, не предугадывается, что могло бы потребоваться пользователю через несколько шагов. «Предвосхипараллелизм» был бы истинным, если бы ваша ОС на всякий случай форматировала документы, которые пользователь может в будущем распечатать.

А что, если бы ОС знала обо всех действиях, которые можно запросить, щелкая мышью по той или другой кнопке, и умела определить, насколько вероятно каждое такое действие? Тогда она могла бы выделять незанятые процессоры, чтобы они приступали к выполнению наиболее вероятных и наименее дорогостоящих операции, мгновенно вызывая их, если они действительно будут запрошены, или «давая отбой» в случае неверного прогноза.

Сейчас выполняется, например, кэширование просмотренных Web-страниц на жестком диске. Осталось сделать «предвосхипараллелизм» мелкомодульным и автоматическим не только в ОС, но также в языках программирования и пользовательских интерфейсах.

Отправка электронной почты и загрузка Web-страниц - вот две области, в которых инфраструктура «предвосхипараллелизма» пришлась бы кстати. Почтовые клиенты знают, что если мы редактируем сообщение, значит собираемся его отправить, но получив команду на отправку, делают вид, что для них это сюрприз, и начинают работать «с нуля». Web-браузеры знают, что мы, скорее всего, вернемся на предыдущую страницу или захотим перейти на следующую, но, увы, каждый раз работают так медленно, словно страдают плоскостопием. Когда-нибудь ОС будут автоматически подготавливать Web-страницы к загрузке. Они смогут определить, на какие ссылки щелкнет пользователь мышью и во что обойдется загрузка.

В Internet сейчас не предусмотрено взимание платы за использование ресурсов, поэтому подготовка к загрузке каждой ссылки с вашей последней Web-страницы - это пока что предел возможностей. Функция «предвосхипараллелизма» в ОС Internet будет взвешивать приоритеты, вероятность и стоимость выполнения разных команд пользователя, которые он потенциально может дать, и начнет их обработку сейчас, на тот случай, если они позднее действительно будут затребованы.

Знаток Internet Боб Меткалф в 1973 году изобрел Ethernet, а в 1979 году основал компанию 3Com.