12 Jul 95 14:52:00 -0700
In the Tandem system disks are run by processes. We considered this
in KeyKOS but thought the performance might suffer.
Actually, I was the one arguing for using processes. In retrospect, I
speculate we would have done measurably worse on the I/O intensive
benchmarks using processes, but still better than the competition.
The KeyKOS dispatcher is faster than the Tandem dispatcher. If you're
worrying about whether to save all the registers, your dispatcher is
probably as fast as KeyKOS's. Under those circumstances I doubt
performance would be a problem.
Tandem goes to great lengths to get good disk performance. One could
argue that the lengths wouldn't need to be so great if disk I/O were
done in the kernel. But Tandem gets other benefits by using processes.
In our multiprocessor architecture, the disk of interest may be
connected to a different processor; using a process makes a uniform way
of handling that.
I'll let Bill explain what KeyKOS did when checkpointing pinned pages.
>From email@example.com Thu Jul 13 01:50 EDT 1995
Content-Type: text/plain; charset="us-ascii"
Date: Wed, 12 Jul 1995 22:47:54 -0800
To: firstname.lastname@example.org (Jonathan Shapiro)
From: email@example.com (Bill Frantz)
Subject: Re: Driver design question
> All the more reason to have it [the driver] run in a domain.
>Are there any thoughts on how to run a disk driver in a domain? There
>would seem to me to be a chicken and egg problem with this. The only
>way I could think of was to reserve some CDA ranges for such things,
>mark them as non-checkpointed, and build them into the kernel image.
>Otherwise, the disk driver soon gets swapped out...
I would think most of the features would also be needed for real-time (e.g.
Locked pages, special scheduling). The initialization is, as always, ad
hoc, perhaps somewhat similar to the initialization for the pages that
represent the frame buffer.
Bill Frantz Periwinkle -- Computer Consulting
(408)356-8506 16345 Englewood Ave.
firstname.lastname@example.org Los Gatos, CA 95032, USA