Is it possible to run multiple processes, not threads, on a microcontroller using an RTOS?

If not, I can't see a reason for not always using a flat memory model? Without multiple processes, I can't see the need for a paged memory model.

So my question has two parts:

1) Is it possible to run multiple processes on a microcontroller using an RTOS?

2) Is there any use for a paged memory model (not flat) if only one process will ever be run? Perhaps it is necessary if there is some virtual memory on a secondary memory device.

  • 1.) Yes. 2.) Yes. The one process needs to use more memory than there is physically available. BTW there are many ways to solve that memory problem, and some do not require any special hardware, e.g. overlays. "...virtual memory on a secondary memory device" -- That's not how virtual memory works. Nor would a possible solution create a "use" that needs to be implemented.
    – sawdust
    Oct 23, 2017 at 1:53
  • @sawdust Would it be correct if I change the phrase in my question that you quoted to: Perhaps a paged memory model is useful when virtual memory is used to provide more address space than what is available in physical memory and pages are swapped out to a storage device?
    – Coffee
    Oct 23, 2017 at 2:08
  • Modern implementations of virtual memory AFAIK always uses pages. The VM schemes of segments (not to be confused with x86 segments) and paged segments in my old textbooks aren't used anymore. With Memory Management Unit hardware available even in cheap SoCs, virtual memory using pages is readily possible. Your phrasing is awkward; to me it reads like a cart before a horse.
    – sawdust
    Oct 23, 2017 at 20:07


Browse other questions tagged or ask your own question.