Диспетчеры операционных систем обычно определяют период, в течение которого каждая программа гарантированно работает, хотя бы немного. При этом система отдает сегмент такого периода каждой из программ. Чем больше программ запущено, тем меньше становятся сегменты и тем чаще в течение каждого периода происходят контекстные переключения. Таким образом, способность быстро реагировать поддерживается за счет продуктивности. Если оставить без присмотра этот порядок, гарантирующий каждому процессу хоть немного внимания в каждом периоде, случится катастрофа. При избыточном количестве запущенных программ сегмент для задачи сократится до такого размера, что системе придется его полностью потратить на контекстное переключение прежде, чем опять немедленно переключиться на новое задание.
Препятствие заключается в том, что гарантировать быстрое реагирование сложно. Современные операционные системы устанавливают минимальный размер для своих сегментов, который не подлежит дальнейшему делению. (В Linux, например, такой минимальный рабочий сегмент составляет около трех четвертых миллисекунды, но у людей он, скорее всего, будет составлять не менее нескольких минут.) Если после этого процессы продолжают добавляться, то период просто будет продлен. Это значит, что процессам придется ждать своей очереди дольше, чем настанет их очередь, но зато, когда она подойдет, у них будет достаточно времени, чтобы сделать что-то полезное. Установка минимального времени, которое можно потратить на одно любое задание, помогает полностью предотвратить стремление к быстрому реагированию за счет продуктивности: если минимальный сегмент больше времени, которое требуется на контекстное переключение, система никогда не сможет впасть в состояние, когда переключение будет ее единственной работой. Этот принцип также можно с легкостью перевести и в плоскость умственной деятельности человека. Метод тайм-боксинга или техника помидора, где вы устанавливаете кухонный таймер и выполняете только одно задание, пока не прозвучит сигнал, – прямое воплощение этой идеи.
Но какой величины должен быть ваш кусочек? Ответ на вопрос, сколько времени можно выделить на интервал между выполнением повторяющегося задания (например, между проверками почты), с точки зрения продуктивности крайне прост: столько, сколько возможно. Но это еще не конец; бóльшая производительность также означает более медленное реагирование.
Для вашего компьютера такая раздражающая помеха, на которую ему приходится постоянно отвлекаться, – вовсе не проверка почты. Это вы. Вы можете не шевелить мышкой несколько минут или часов, но, дотронувшись до нее, вы ожидаете немедленно увидеть движение курсора на экране, и это означает, что машина тратит огромные усилия на то, чтобы следить за вами. Чем чаще она проверяет мышку и клавиатуру, тем быстрее сможет отреагировать на запрос, но тем больше контекстных переключений ей придется совершить. Поэтому правило, которому следуют операционные системы, чтобы определить время, которое они могут выделить на решение какой-либо задачи, элементарно: столько, сколько возможно без паники или отставания от пользователя.