|
|
|
|
|
by m463
2317 days ago
|
|
The thing is -- computers ARE event driven at the low levels. Problem is most systems are designed to completely hide the event-driven nature of things. The "nightmare to read, understand, debug and modify" is happily abstracted away and we have a nice safe environment to work with. ... and it then becomes much harder to support parallelism, error handling and responsiveness. I think there may be a more nuanced solution. |
|
Interrupts are really a polling mechanism: the CPU checks an interrupt line at convenient times and alters its control flow.
Most signaling depends on timing: based on what signals have been seen so far, some other signals must appear within a certain time frame. The new signals are blindly sampled.
For instance, if some device asserts some bus line that it's writing some data, then the data to be written is expected to then appear in some time window. The data lines will be sampled regardless of whether the device actually puts out that data. There is no "device has done it" event, and even the original write indication signal is basically polled.
If we look for a pure cause-and-effect relationship, it's hard to find. A device whose operation is altered by a signal is as much the cause for what happens as is the device which originates that signal.