In the summer of 1997, NASA's Pathfinder spacecraft landed on the surface of Mars, and began transmitting incredible, iconic images back to Earth. But several days in, something went terribly wrong. The transmissions stopped. Pathfinder was, in effect, procrastinating: keeping itself fully occupied but failing to do its most important work.
Летом 1997 года летательный аппарат NASA Pathfinder приземлился на поверхность Марса и начал передавать на Землю невероятные по красоте фото планеты. Но спустя несколько дней что-то пошло не так. Передача данных прекратилась. На самом деле система марсохода откладывала выполнение задач, она была занята другими операциям, но не выполняла самых важных из них.
What was going on? There was a bug, it turned out, in its scheduler.
Что же пошло не так? Как выяснилось, сбой дал механизм планирования.
Every operating system has something called the scheduler that tells the CPU how long to work on each task before switching, and what to switch to. Done right, computers move so fluidly between their various responsibilities, they give the illusion of doing everything simultaneously. But we all know what happens when things go wrong.
В каждой операционной системе есть так называемый планировщик задач, который подсказывает процессору, сколько работать над каждой задачей, прежде чем переключиться на другую, а также на какую переключиться. Если всё идёт, как надо, компьютеры легко переключаются с задачи на задачу, отчего создаётся впечатление того, что они выполняют их все одновременно. Но нам хорошо известно, что случается, когда что-то идёт не так.
This should give us, if nothing else, some measure of consolation. Even computers get overwhelmed sometimes.
По крайней мере, это нас в некоторой степени утешит: даже компьютеры иногда бывают перегружены делами.
Maybe learning about the computer science of scheduling can give us some ideas about our own human struggles with time.
Возможно, изучив приёмы планирования задач в информатике, мы, люди, получше узнаем, как распоряжаться своим временем.
One of the first insights is that all the time you spend prioritizing your work is time you aren't spending doing it. For instance, let's say when you check your inbox, you scan all the messages, choosing which is the most important. Once you've dealt with that one, you repeat. Seems sensible, but there's a problem here.
Наблюдение первое: всё время, потраченное на расстановку приоритетов в работе, тратится не на выполнение работы. Например, вы проверяете почту, просматриваете темы всех сообщений и выбираете наиболее важные из них. Ответив на важные письма, вы опять просматриваете почту. Это кажется разумным, но здесь есть подвох.
This is what's known as a quadratic-time algorithm. With an inbox that's twice as full, these passes will take twice as long and you'll need to do twice as many of them! This means four times the work.
Это так называемый алгоритм квадратичного времени. Если количество входящих писем удвоится, то на ответы понадобится в два раза больше времени, а повторять процедуру понадобится в два раза чаще!
The programmers of the operating system Linux encountered a similar problem in 2003. Linux would rank every single one of its tasks in order of importance, and sometimes spent more time ranking tasks than doing them. The programmers’ counterintuitive solution was to replace this full ranking with a limited number of priority “buckets.” The system was less precise about what to do next but more than made up for it by spending more time making progress.
Это означает, что выполнение работы займёт у вас в четыре раза больше времени. Программисты операционной системы Linux столкнулись с подобной проблемой в 2003 году. Linux выставляла приоритет каждой задаче в зависимости от её важности, и иногда на расстановку приоритетов требовалось больше времени, чем на выполнение задач. Программисты приняли решение, которое шло вразрез со здравым смыслом: они заменили ранжирование ограниченным числом приоритетных буферов. От системы не требовалось в точности знать, что делать дальше,
So with your emails, insisting on always doing the very most important thing first could lead to a meltdown. Waking up to an inbox three times fuller than normal could take nine times longer to clear. You’d be better off replying in chronological order, or even at random! Surprisingly, sometimes giving up on doing things in the perfect order may be the key to getting them done.
но вместо этого у неё появилось больше времени на будущие задачи. Так же, как и с электронными письмами, если решать сначала важные задачи, то можно быстро выгореть. Закончится тем, что в ящике будет в три раза больше писем, чем обычно, а чтобы разобрать всю эту почту, потребуется в девять раз больше времени. Гораздо лучше отвечать в хронологическом и даже в произвольном порядке! Невероятно, но если вдруг прекратить выполнять задачи в «правильном» порядке,
Another insight that emerges from computer scheduling has to do with one of the most prevalent features of modern life: interruptions.
то можно будет в итоге быстрее с ними справиться. Ещё один приём, которому можно поучиться у компьютерного планирования,
When a computer goes from one task to another, it has to do what's called a context switch, bookmarking its place in one task, moving old data out of its memory and new data in. Each of these actions comes at a cost.
связан с наиболее распространённым явлением современной жизни — прерыванием. Когда компьютер выполняет одно задание за другим, он должен придерживаться так называемого переключения контекста, отмечать его в одном задании, затем удалять старые данные из памяти и помещать в неё новые.
The insight here is that there’s a fundamental tradeoff between productivity and responsiveness. Getting serious work done means minimizing context switches. But being responsive means reacting anytime something comes up. These two principles are fundamentally in tension.
Каждое из этих действий связано с затратами. Фокус здесь в том, что существует значительный побочный эффект для производительности системы в ущерб её быстроте реагирования. Выполнение серьёзной работы требует минимум переключения контекста. Но быстрота реагирования означает ответить в любое время, чтобы ни случилось. Два данных принципа являются по сути взаимоисключающими.
Recognizing this tension allows us to decide where we want to strike that balance.
Понимание невозможности их совмещения позволяет нам решать, какой из сторон мы отдадим предпочтение.
The obvious solution is to minimize interruptions. The less obvious one is to group them. If no notification or email requires a response more urgently than once an hour, say, then that’s exactly how often you should check them. No more.
Наиболее очевидное решение — минимизировать прерывания. Наименее очевидное — сгруппировать их. Если ни на одно из уведомлений или электронных писем не требуется дать ответ в течение, скажем, часа, то вы должны проверять почту именно с таким интервалом — не чаще.
In computer science, this idea goes by the name of interrupt coalescing. Rather than dealing with things as they come up – Oh, the mouse was moved? A key was pressed? More of that file downloaded? – the system groups these interruptions together based on how long they can afford to wait.
В информатике это получило название «объединение прерываний». Вместо того, чтобы реагировать на что-то по мере изменений: курсор ли передвинули, клавишу ли нажали, завершилась ли загрузка файла, — система объединяет все эти прерывания на основании того, как долго эти задачи могут подождать.
In 2013, interrupt coalescing triggered a massive improvement in laptop battery life. This is because deferring interruptions lets a system check everything at once, then quickly re-enter a low-power state.
В 2013 году объединение прерываний позволило значительно улучшить работу элементов питания ноутбуков. Это потому, что при отложенном прерывании система не проверяет сразу все параметры, отчего элементы питания у компьютеров быстро не разряжаются.
As with computers, so it is with us. Perhaps adopting a similar approach might allow us users to reclaim our own attention, and give us back one of the things that feels so rare in modern life: rest.
С компьютерами происходит то же, что и с нами. Возможно, если взять на вооружение подобный подход, то мы, пользователи, сможем вернуть себе утраченное внимание и вместе с ним — что-то, что стало большой редкостью в наше время, — отдых.