Если включена только сегментация - PullRequest
0 голосов
/ 16 февраля 2012

вопрос для начинающих:

  • «Если» подкачка отключена и включена только сегментация (установлена ​​CR0.PE), значит ли это, что программа загружена в память (ОЗУ), всяДвоичное изображение загружается, и ни одна из его «частей» не выгружается, поскольку программа разбивается на фрагменты фиксированного размера только при включенной подкачке страниц (которая затем может быть выгружена).И если это правда, это уменьшит количество процессов, которые выполняются в памяти определенного размера оперативной памяти, скажем, 2 ГБ?

1 Ответ

0 голосов
/ 16 февраля 2012

Скорее всего, но не обязательно.

Зависит от операционной системы ...

Вы можете написать операционную систему, которая использует сегмент для отображения части программы в память. Когда программа обращается к памяти вне сегмента, вы получаете ошибку сегментации. Когда ошибка сегментации передается операционной системе, она может заменить некоторые данные с диска и изменить информацию о сегментации, прежде чем вернуть управление программе.

Однако это, вероятно, сложно и дорого сделать, и я не знаю ни одной операционной системы, которая действует таким образом.

Что касается количества процессов - вам нужно разделить доступную память на непрерывные части, по одной для каждого процесса. Это легко, если процессы не растут; если это произойдет, вам понадобится заполнение и, возможно, потребуется скопировать процессы, что довольно дорого ...

...