Timers @%$#&
Landau, Charles
charles.landau@TANDEM.com
Wed, 4 Feb 1998 16:07:28 -0800
Perhaps you need to reread the old Dijkstra note "Goto considered
harmful." If goto is bad, interrupts, by whatever name, are worse.
It's also a bad idea to have the kernel allocate space on the user's
stack. KeyKOS knew nothing about the organization of the user's address
space.
Instead of the mechanism you came up with, why wouldn't this work:
1. A TCP/IP domain that embodies the protocol implementation.
2. A timer domain that runs with the same address space as the TCP/IP
domain and executes:
while (true) {
sleep();
turn off meter of TCP/IP domain;
if (mutex_bit)
run_timer_code_when_done = true;
else {
run timer code;
}
turn on meter of TCP/IP domain;
}
What's so wrong with this, that would tempt you to invent an evil
interrupt mechanism?