Tuesday, October 30. 2007
No computer processor can do multiple different jobs at the same time - there is no real multitasking going on. Instead a processor does one job after another.
When you see programs working in two different windows at the same time, it's just because the processor is doing a piece of work for the one program running in that window, doing a little bit for the other window in the background, doing a little bit for the operating system, again doing a little bit for that window in the foreground and so on. Suddenly a hardware interrupt requires CPU team and the current task will be interrupted.
A CPU constantly switches its context to simulate a parallel processing to the user. However these context switches cost quite some performance. The processor must load the working data into its internal memory, continue working on a chunk, store the current working data to the RAM, figure out, which chunk has to be processed next, load its data, continue working... and so on. The real computation time is wrapped by a lot of overhead.
A Human Brain is a CPU
Nothing new to computer pros - so why am I telling you that? Because humans do their work just as processors and both face similar problem: How to complete tasks while being most productive as team? This article shows some strategies on how you can deal with context switches in an engineers work environment while still being available to your team mates when they have questions and to keep them and you running. It's mostly about the right use of communication and that's what this article is focusing on.
Continue reading "Context Switches are Expensive"