1. What is more suitable for running RTOS: Cortex-A or Cortex-R or Cortex-M?
2. I want to make my own RTOS on Cortex-M: How to use MPU for protecting tasks?
With respect to memory protection the term MMU =~ MPU.
The "task" concept in SCIOPTA is more like the thread concept in *nix/Windows/MacOS: We have modules and processes. Memory protection (by MPU or MMU) is done between modules. Process within one module share the same memory area and are not protected against each other. So like process/thread in Linux.
SCIOPTA has no shared memory at all. It uses direct message passing. If messages are sent between protection regimes, then the message contents will be copied by the kernel.
As for the number of regions: The kernel changes MPU setup on task switch if needed.
The pity about the MPU (and MMU is even worse) is the granularity, that's why I decided to leave active stack check out.
Though we might use a data watch point if wanted (and available) to protect against stack overflow.