wtf wrote: ↑Tue Jul 19, 2022 8:29 am
What? The handler is a block of code executed by the OS on behalf of the interrupt. They go together like ham on rye.
Yes, but that which triggers the OS to execute the interrupt handler is not the OS, or any process running on the OS.
In the event of timeouts it's the hardware clock. Which has its own, separate CPU. Its own logic - monotonically increasing function... (blah blah).
wtf wrote: ↑Tue Jul 19, 2022 8:29 am
Ok I see the point you are making, but I don't agree. The handler is a block of code, so it's executable on a TM. But the interrupt itself is just a particular data location in a register on the cpu.
Yes sure. Lets pretend it's some 1-bit register. What it is doesn't matters. Who is allowed to toggle that register matters.
When that register is toggled by whatever it is toggled by - the CPU alters its control flow.
wtf wrote: ↑Tue Jul 19, 2022 8:29 am
A TM can emulate memory locations. In a working (physical) computer, the OS periodically checks the interrupt locations
to see if any of them have been set
Precisely. Set by who/what? What is mutating the Turing Machine's memory locations (tape) other than the Turing Machine itself?!?
Interrupts are shared memory - a communication channel between two separate programs.
wtf wrote: ↑Tue Jul 19, 2022 8:29 am
Not every interrupt comes from I/O. One of the executing processes can raise an interrupt. So these would be internally generated interrupts that could easily be implemented in a TM.
Every interrupt IS I/O. Something (not you!) is mutating your memory!
wtf wrote: ↑Tue Jul 19, 2022 8:29 am
I see the distinction between TMs and what you're calling process calculi, and I recognize the distinction and appreciate your drawing my attention to it. But even in a pure TM situation, an internal process could raise an interrupt just by setting the appropriate bit or simulated memory location.
Well, yes. That is how inter-process communication works.
The point you don't seem to be appreciating is that two distinct processes are sharing a single memory location - they have an open communication channel.
One process can pass messages to the other process by writing to their shared memory location.
wtf wrote: ↑Tue Jul 19, 2022 8:29 am
Ok. I read that web page and of course you are right that systems made up of interacting processes on different computers are not TMs. For example client/server systems, such as a web browser interacting with a web server, are not TMs.
Yes. Any externally-interruptable process is not a TM.
wtf wrote: ↑Tue Jul 19, 2022 8:29 am
However I followed some of the links in that article, and it's clear that process calculi have
at most the computational power of TMs and no more.
Yes. That would be true IF the set of interracting processes were a closed system.
In practice each computer in the world is interacting with other computers AND with the humans using them. Humans drive interrupts. Keyboard, Mouse clicks...
So if the process calculi is equivalent to a TM then the process calculi is also an insufficient model to account for modern computation.
External interrupts render the system open and non-deterministic.
wtf wrote: ↑Tue Jul 19, 2022 8:29 am
So if I'm using "TM" to mean any algorithmic computation whatsoever, you're correct that I'm using the term loosely. But if I mean to include process calculi as algorithmic computational systems, they have no more computational power than a TM; and that's the sense in which I'm using the term TM. I hope this is clear. You're right that I should use the more general term, but you are still not making your point, because process calculi have no more computational power than pure TMs.
Then I must be mistaken in the finer details. If the process calculi is deterministic then the process calculi is as inadequate in accounting for modern computers as turing machines are!
wtf wrote: ↑Tue Jul 19, 2022 8:29 am
That is to say, process calculi of any type do not break the Church-Turing thesis nor do they have any more computational power than TMs. So I don't see the point you are making, other than correcting my loose usage of TM to encompass any algorithmic process.
Modern computers are non-deterministic. Turing machines are not like that!