Is it feasible to sustain numerous procedures without assistance for Virtual memory?
This relies on just how you specify process vs strings in regards to memory.
Among the features of digital memory is separating. While it is feasible to run numerous procedures with no dividing, this would certainly be extra like running numerous strings than procedures - sharing the very same address room.
It is absolutely feasible with some restraints like memory defense which would certainly be a concern as currently mentioned. As an example µClinux http://www.uclinux.org/ sustains numerous procedures without applying digital memory. Keep in mind that some CPUs like at the very least the Analog Devices Blackfin do give a MPU (Memory Protection Unit) http://docs.blackfin.uclinux.org/doku.php?id=bfin:mpu. This permits digital memory much less running systems to still permit memory to be separated.
You can run a multi - process os despite having no equipment assistance (no MMU), with all reminders standing for a physical address. You do nonetheless shed numerous key attributes generally given via the MMU:
- Since a reminder constantly indicates a details area in RAM, you can not have swap (or in a really minimal means). Generally, the MMU elevates an exemption when it can not find a physical web page for an offered digital address, and also the OS - given exemption trainer brings the web page from swap.
- Given that a reminder is dereferenced without check, every process can access various other procedures is memory, and also the bit memory. Generally, the MMU elevates an exemption when it can not find a physical web page for an offered digital address, and also the OS - given exemption trainer ends the process for trying a void accessibility.
- Given that the very same reminder has the very same definition in various procedures, you can not conveniently implement fork. Generally, the result of
forkis to make a duplicate ¹ of the process is physical memory, and also create a new digital memory map from the very same digital addresses to the new physical addresses.
There are unix - like running systems that work with systems without MMU.
- MINIX is a unix alternative initially created by Andrew Tanenbaum as a friend to his publication Operating Systems: Design and Implementation. The original versions worked on the PCs of the moment, which could not sustain digital memory. (Given your passions, I advise reviewing this publication, also an older version if that is all you can manage.)
- µCLinux is a variant of Linux for microcontrollers without an MMU. µCLinux's limitations include not applying a basic fork (just
vforkis sustained), and also the lack of memory defense ; yet there is preemptive multitasking.
¹ In modern-day unices, this is generally done lazily (duplicate - on - write), which once more relies upon the MMU elevating an exemption when it can not find a physical web page.