Friday, October 14, 2022

Multitasking: Can humans really do it?

 

     Let's get more done! Why aren't you multitasking? Have these words ever been said to you? Or have you said them to yourself or others? The idea of multitasking can be very attractive. If you're doing more than one thing at a time then surely you can accomplish more. Right?

     From a computer science point of view -- which is where the concept originated -- multitasking can be a function of the operating system (the software which allows the processor/computer to do different types of programs and activity). Not all operating systems support multitasking but most, in widespread use, do. The operating system is the primary task being run by the processor.

     With a single processor (the hardware which executes the instructions), only one task can be done at any time. Multitasking is the process of the operating system switching between tasks -- preferably at a point where a task can do no more useful work until some other event happens. The switching between tasks is called a "context switch" because the operating system will save/store all necessary information for the original task to continue (later) before starting another task (restoring the information which it stored when last suspended). The more tasks in the list, and the more often they are switched, the greater will be the percentage of overhead created by context switching. It is possible to get to a point where the processor/computer does almost no useful work if it has too many tasks and swaps too often -- this is called "thrashing".

     Humans can, of course, act as a "processor" but they are certainly not computers. Humans can attempt to multitask -- but they have the same limitations of computers -- and more.

     First, as is true for computers, humans can only do a single task at a time. Second, humans also have to do "context switching" to move from one task (which is not yet complete) to another -- but human context switching is much less efficient, and prone to error, than that for a computer. Third, a computer can move between many different tasks and still remain useful -- a human will likely start losing task contexts and forget tasks or not be able to continue them efficiently.

     Today, I was working on a task at the computer -- and I had some bread toasting in the toaster oven. I got absorbed in the task at the computer and, after a while, smelled something burning. Instead of doing two separate tasks properly, one of the tasks ended up with incinerated toast which had to be thrown out (and the windows opened and fan turned on).

     I could have set an alarm to go and check the toast (but I didn't). For an operating system, an alarm is an interrupt event. Alarms may be associated with an event, an outside input, time, or other measurable event. This can allow one task to continue (but not using the processor) unmonitored (like having a sprinkler within a watering system disperse water) while other tasks are done. The interrupt may be set according to a timer, telling the system to turn off the water after a period of time.

     Note that these comments are for a single processor. When there are multiple processors, then "parallel processing" can be done -- which is similar to having a team assigned to the problem and the pursuant needs to coordinate the work between team members. Each processor, or member, can attempt multitasking but humans in teams cannot do multitasking any better than individually.

     Multitasking makes sense for a computer but it does not work well for humans and the limit for the number of possible tasks for a human to switch between is reached very quickly.

User Interfaces: When and Who should be designing them and why?

     I am striving to move over from blogs to subscription Substack newsletters. If you have interest in my meanderings please feel free to ...