history_monk: (Default)
history_monk ([personal profile] history_monk) wrote in [personal profile] liam_on_linux 2024-03-28 05:52 pm (UTC)

I think I can see how to do this, but it's complicated, and I doubt I'll ever get anywhere. Switching processes is slow for the MMU, because you have to invalidate the TLB and let it refill. The pieces seem to be:

1. QNX-style message-passing, which lets a client call a server and get a response without the overhead of a pass through the task scheduler.

2. Single address space operating system, so you don't have to invalidate the cache or the TLB.

3. As a consequence of (2), memory protection information stored and enforced separately from the page table, so that it can be changed readily on a process switch. This likely makes processes something that are defined in the hardware architecture. The trick is doing this without adding lots of complexity.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting