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 nyarán a NASA Pathfinder űrszondája landolt a Mars felszínén, és hihetetlen, jellemző képeket kezdett közvetíteni a Földre. De pár nappal később valami borzalmasan félresikerült. Az adások megszakadtak. A Pathfinder gyakorlatilag halasztgatott: teljesen elfoglalta magát, de eközben nem végezte legfontosabb feladatát.
What was going on? There was a bug, it turned out, in its scheduler.
Mi történt? Mint kiderült, hiba történt az ütemezőrendszerében.
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.
Minden operációs rendszernek van ütemező nevű része, mely a processzort vezérli, hogy meddig dolgozzon egy-egy feladaton váltás előtt, illetve hogy mire váltson át. Ideális esetben a gépek olyan simán váltogatnak a sokféle feladat között, hogy azt az illúziót keltik, mintha mindent egyszerre csinálnának. De tudjuk, mi történik, ha valami elromlik.
This should give us, if nothing else, some measure of consolation. Even computers get overwhelmed sometimes.
Ha más nem, hát ez kellene, hogy némi vigaszt nyújtson. Még a számítógépek is túlterheltté válnak néha.
Maybe learning about the computer science of scheduling can give us some ideas about our own human struggles with time.
Talán a számítógép-ütemezést tanulmányozva támad pár ötletünk saját időgazdálkodásunkkal kapcsolatban.
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.
Első meglátásunk, hogy a feladatok sorolásával töltött időt nem munkavégzéssel töltjük. Pl. amikor átnézzük bejövő üzeneteinket, kiválasztjuk, hogy melyik a legfontosabb. Amikor azt elintéztük, megismételjük a folyamatot. Ez észszerűnek tűnik, de van itt egy probléma.
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.
Ezt úgy hívják: négyzetes időalgoritmus. Ha kétszer annyi levél érkezik, a válaszra kétszer annyi idő szükséges. Ez megnégyszerezi a munkát.
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.
A Linux operációs rendszer programozói hasonló nehézségbe ütköztek 2003-ban. A Linux minden egyes feladatát fontossági sorrendbe rendezi, és néha több időt tölt feladatok osztályozásával, mint az élvégzésükkel. A programozók józan észnek ellentmondó megoldása: rangsorolás helyett korlátozott számú prioritási puffert alkalmaztak. A rendszer pontatlanabb lett a soron következő feladat tekintetében, de helyette több ideje maradt a következő feladatra.
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.
Ha mindig a legfontosabb ímélt vesszük előre, az összeomláshoz vezethet. Végül háromszor annyi levelünk lesz, mint általában, azt kilencszer annyi ideig tart elintézni. Jobb időrendi vagy véletlenszerű sorrendben válaszolni! Meglepő módon, néha a helyes sorrend feladása lehet a kulcs a feladatok elvégzéséhez.
Another insight that emerges from computer scheduling has to do with one of the most prevalent features of modern life: interruptions.
Egy másik meglátásnak mely a számítógépes ütemezésből ered, a modern élet egyik leggyakoribb eleméhez van köze: a megszakításhoz.
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.
Amikor a számítógép feladatot vált, ún. kontextusváltást kell végeznie, , azaz megjelölni az egyik feladat állását, régi adatokat távolítva el a memóriájából, és újakat hozva be. Minden egyes ilyen akciónak megvan az ára.
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.
A meglátás itt az, hogy alapvető kompromisszum van a teljesítmény és a válaszkészség között. A komoly munka elvégzése a kontextusváltás minimalizálását jelenti. Viszont a válaszkészség a bármire való azonnali reagálást jelenti. E két alapelv folyamatos összeütközésben van.
Recognizing this tension allows us to decide where we want to strike that balance.
Az összeütközések felismerése teszi lehetővé a kedvező egyensúly beállítását.
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.
A nyilvánvaló megoldás az összeütközések minimalizálása. A kevésbé nyilvánvaló pedig ezek csoportosítása. Ha semelyik értesítés vagy ímél nem igényel egy óránál gyakoribb választ, akkor pont ilyen gyakran kell őket ellenőriznünk, sűrűbben nem.
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.
Az informatikában ezt az elvet megszakításegyesítésnek hívják. Ahelyett, hogy rögtön foglalkoznánk a felmerülő dolgokkal - Ah, az egér elmozdult? Lenyomtak egy billentyűt? Több példányban töltődött le a fájl? – e megszakításokat a rendszer aszerint csoportosítja, hogy meddig várhat a megoldásuk.
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-ban a megszakításegyesítés jelentős javulást idézett elő a laptopakkumulátorok élettartamában. Az oka: a megszakítások késleltetésével a rendszer mindent egyszerre ellenőriz, majd gyorsan áttérhet energiatakarékos üzemmódba.
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.
Ahogy a számítógépekre, úgy ránk is igaz ez. Hasonló megközelítés talán minket, felhasználókat is segítene a figyelmünk visszanyerésében, és visszaadná a modern élet egyik legritkább elemét: a pihenést.