В книге операционных систем Tanenbaum в разделе 1.4 приведен пример MMU, который использует две пары базовых и предельных регистров для сопоставления виртуальных адресов с физическими адресами. Кроме того, сказано, что с помощью этой структуры (две пары) для нескольких пользователей можно использовать одну и ту же программу только с одной копией в памяти. Эта доля невозможна при использовании только одной пары.Блок управления базовым регистром регистра
Поэтому мой вопрос: почему можно использовать одну и ту же программу при использовании двух пар регистров и невозможно использовать только одну пару?
То, что я думаю, я понимаю:
- При запуске исполняемого (программа), процесс создается.
Так первое сомнение в моей голове начинается здесь:
Как и та же программа совместно, если каждая программа представляет собой другой процесс?
- Каждый процесс содержит свои собственные регистры. Таким образом, каждый процесс имеет регистр счетчика программ , регистр указателя стека и базу и предельные регистры.
Итак, как можно регистрировать регистры между двумя процессами?
Я уверен, что он говорит о программном коде, который является общим. Код доступен только для чтения (по крайней мере, на x86), поэтому его совместное использование тривиально и сохраняет память (см. «Копирование-В-Запись»). – Downvoter
Показать точную цитату и выделить то, что вы не понимаете. Это облегчает нам понимание вашего вопроса. – Downvoter
Речь идет о сегментированном управлении памятью или выгружаемом? – user3344003