Considered Harmful
14 Nov 2022

Time-sharing the blues

I don’t know that I can produce for the “serious” or the “public”: I don’t have it in me to do something like the academics want me to do. It’s too much criticism, too much pressure, too much attention. I can’t meet expectations because my work (unlike everyone else’s) is only provisional: I (unlike everyone else) can only do the best I have to piece together the information I have at the time. And my ability to ingest and digest and egest information is (unlike everyone else’s) bounded in time and space — that is, limited. So here goes a second draft at a provisional note on the interpretation of technical phenomena. You’re going to have to trust me on this one: honestly just check the relevant wikipedia pages, scroll to the bottom, and read through the references, then read their references, and so on. Try searching things in the search engine of your choice: sometimes you get lucky. That’s all I know to do, and giving citations doesn’t always help you find the thing cited (agh!).

Now there were some problems plaguing the first computers (we’re in the mid to late 1950’s, in Anglo-America, in a series of labs funded by giant capital accretions looking to build themselves a nervous system): they were expensive, slow, and small. And these monsters had to be loaded by hand: it could take hours for a simple job to be punched onto cards, put into a queue, fed into the machine, and returned because of an error in the first line. All that shit was done by hand (almost always by a heroic team of under-appreciated and under-loved machine operators). So the hot questions were how to get programs into and out of the machine faster and how to make sure no cycles were wasted.

So there were approximately two ideas here: first, that multiple jobs should be able to run at the same time; and second, that the machine should do something productive while it was waiting for the tape drive to seek (imagine watching cable while your VCR rewinds, as opposed to watching the VMAs in reverse). So these two characters, Christopher Stratchey and Robert Bemer (except poor Bob doesn’t usually get the credit he wanted, so people usually tell this part of the story with John McCarthy, but Bob went to a lot of trouble to show that he wrote about the idea first, and I’d hate to let him down) come up with two definitely-not-the-same ideas: the machine should be able to switch between different tasks.

Except for Chris it’s all about not making the machine wait while i/o happens (I want to be able to watch porn and download more in the background: imagine if you couldn’t do anything else while your computer was writing to disk, or it couldn’t do anything while it was waiting for you to issue a command); Bob wants to think about a whole bunch of people using the same computer at once (remember when I said “expensive”? In this period, it was inconceivable that one site should have more than one machine, with one processor, with one core memory, for all its operations. That’s why people had to line up: they all had to pass their bits through the same grinder). And these two characters (and the cast quickly expands to include the afore-mentioned John, and Fernando Corbató, and Grace Hopper, and Walter Bauer, and a whole bunch of other people. I’m thankful to Donald Knuth for doing the legwork of sorting some of this out) swear up and down that their ideas are definitely not the same thing and in no way are they related (and I have the letters to prove it — they’re out there on the internet, and I promise that you already have enough information to find them from this post).

Except they totally are. And I’ll prove it to you: they are the same algorithm, which in a decade will be known as the “scheduler” (which name it still carries to 2022). Because here’s the wacky part (and hold on to your neoliberally-induced sense of subjective self): to the machine, you are an input/output device.

References (archived to prevent link rot):

Tags: technology
Archive
Creative Commons License
Considered Harmful by Preston Firestone is licensed under a Creative Commons Attribution-ShareAlike 4.0 License.