Ungefähr so funktioniert ein Multi-Thread-OS
Jedes Programm sollte 2 nach jeweiligem index festgelegte konstante Abschnitte im Speicher, einer mit der Liste der Befehle, einer mit einer Reihe jeweils eigener Variablen.
(Reservierte Words).
Aber dafür braucht man irgendeine Hardware, die dafür sorgt, dass das funktioniert. Per Software geht das nicht, da die Programme ja direkt vom Prozessor ausgeführt werden, und die Software darauf nur begrenzt Einfluss nehmen kann. Dieses Teil heißt halt MMU, und sorgt dafür, dass es für einen Prozess aussieht, als hätte er den gesamten RAM zur Verfügung. Die Adressen, auf denen ein Programm lesen oder schrieben will, wandelt er dann, nach Vorgaben des OS, in andere um.
Z.B könnte ein Programm den vom OS Speicherbereich 0x20 bis 0x2F zur Verfügung bekommen. Wenn er dann etwas auf Adresse 0x05 schreiben will, wird das vom MMU in 0x25 umgewandelt. Der Speicherbereich muss nicht zusammenhängen.