Continuing on the theme of juggling, starting with Friends doing that in remote rural Oregon, during a winter festival, I now turn to “juggling tasks” as my topic, otherwise known as multi-tasking.
Anyone who does chores, which is just about everyone, knows what it means to switch one’s attention from A to B to C, back to B, then C, then A and so on. Both farmers and housekeepers multitask. But then so does everyone. Life is a juggling act in a lot of ways. The phrase “juggling a busy calendar” is idiomatic and applies to any randomly active worker bee.
In computer languages, multitasking is addressed in various ways. But before diving into any of that, we should zoom back and look at the Liberty ships and their construction, across from Vanport, Oregon, a company town set up by the Kaiser company during the Great Patriotic War, to help the Russians.
Fast construction of war machines motivated the evolution of operations research into project management and other such sciences (queuing theory…) devoted to multi-tasking and optimization. Some will remember Taylorism in this vein (book: Cheaper by the Dozen).
The short-order cook is often your paradigm multitasker in textbook analogies. The cook has a queue operationalized as a literal wheel mounted horizontally above the counter, to which customer orders are clipped. The cook returns the chit (order) next to the plate when it’s finished (in this restaurant anyway).
In between, the cook is preoccupied with flipping eggs and pancakes, frying hash browns, toasting toast. Maybe there’s more than one cook, plus a prep team keeping the supplies coming as needed, from the walk in refrigerator and so on. A single human has limited capacity, no matter how skilled. One juggler is able to juggle only so many balls.
Turning to computer languages, in FoxPro (a flavor of xBase) we had the famous READ EVENTS which we’d but at the end of a block of code wherein all manner of GUI widgets, interactive gizmos, had been defined. The event reader would play the role of the scheduler-juggler, awaiting events such as mouse clicks and keypresses, and handling them, right there and then. Like a short order cook.
Do whatever is ready to be done. If the pot hasn’t boiled yet, keep waiting and don't just stand there watching it; do something else.
Computer code can be a lot like that: many pending tasks, each handled when ready. Picture eggs incubating. When an egg hatches, deal with it, whatever that means. These are figurative eggs representing awaited outcomes. When your ship comes in, unload it, give the crew shore leave and so on. Ships sometimes queue, awaiting an unloading dock, ditto airplanes.
Switching topics (tasks): I’m thinking that for andragogical reasons, when we get to the tetrahedron’s two perpendiculars, not touching each other, we’ll talk about the centrioles and their mutual orientation within the centrosome.
What’s a centrosome?
It’s a kind of puppet master criss-cross (the centrioles) from which strings descend to puppet limbs (we’re talking marionettes), except in this case the strings go to chromosomes.
When a cell splits (mitosis), the centrosome does so first and then each attaches strings to all the chromosome in its portion, and the two pull these DNA coils apart, such that by the end of mitosis, each cell has secured its complement of genetic code.
That’s not the whole story with centrosomes though. They anchor the entire cytoskeleton by means of microtubules, of which nine pass, like cables, through each centriole. The tension network holding the cell together starts from there, with microtubules cooperating with intermediate microfilaments and so forth.
What’s important to us is the geometric configuration of the centrioles within the centrosome. We’ll stylize the relationship as that of two opposite edges of a regular tetrahedron.