Я не совсем понимаю преимущества "нескольких независимых виртуальных адресов, указывающих на один и тот же физический адрес", хотя я прочитал много книг и статей,
Например, в аналогичном вопросе Разница между концепцией физической адресации и виртуальной адресации а>,
В посте утверждается, что программы не будут сбивать друг друга, и
«как правило, конкретная физическая страница отображается только в виртуальное пространство одного приложения»
Ну, в http://tldp.org/LDP/tlk/mm/memory.html в разделе "общая виртуальная память" написано
«Например, в системе может быть несколько процессов, выполняющих командную оболочку bash. Вместо того, чтобы иметь несколько копий bash, по одной в виртуальном адресном пространстве каждого процесса, лучше иметь только одну копию в физической памяти и все запущенные процессы. поделись».
Если один физический адрес (например, программа-оболочка) сопоставлен с двумя независимыми виртуальными адресами, как это может не дать сбой? Разве это не то же самое, что использовать физическую адресацию?
что дает виртуальная адресация, что невозможно или удобно при физической адресации? Если виртуальной памяти не существует, то есть две прямо указывают на одну и ту же физическую память? я думаю, используя какой-то механизм координации, это все еще может работать. Так зачем вообще заниматься «виртуальной адресацией, MMU, виртуальной памятью»?