Is it possible to support multiple processes without support for virtual memory? I would like to know more about it if so.
|
|
You can run a multi-process operating system even with no hardware support (no MMU), with all pointers representing a physical address. You do however lose several key features usually provided through the MMU:
There are unix-like operating systems that work on systems with no MMU.
¹ In modern unices, this is usually done lazily (copy-on-write), which again relies on the MMU raising an exception when it can't find a physical page. |
|||
|
|
|
It is certainly possible with some constraints like memory protection which would be an issue as already stated. For example µClinux http://www.uclinux.org/ supports multiple processes without implementing virtual memory. Note that some CPUs like at least the Analog Devices Blackfin do provide a MPU (Memory Protection Unit) http://docs.blackfin.uclinux.org/doku.php?id=bfin:mpu . This allows virtual memory less operating systems to still allow memory to be partitioned. |
|||
|
|
|
This depends on how you define process vs threads in terms of memory. One of the functions of virtual memory is partitioning. While it is possible to run multiple processes without any partitioning, this would be more like running multiple threads than processes - sharing the same address space. |
|||
|