Современные операционные системы

Современные операционные системы
Управление памятью  Понятие адресного пространства

Понятие адресного пространства

Чтобы допустить одновременное размещение в памяти нескольких приложений без создания взаимных помех, нужно решить две проблемы, относящиеся к защите и перемещению. Примитивное решение первой из этих проблем мы уже рассматривали на примере IBM 360: участки памяти помечались защитным ключом, и ключ выполняемого процесса сличался с ключом каждого выбранного слова памяти. Но этот подход не решал второй проблемы, хотя она могла быть решена путем перемещения программ в процессе их загрузки, но это было слишком медленным и сложным решением.

Более подходящее решение — придумать для памяти новую абстракцию: адресное пространство.

Понятие адресного пространства читать полное описание.


Управление памятью  Базовый и ограничительный регистры

Базовый и ограничительный регистры

В простом решении используется весьма примитивная версия динамического перераспределения памяти. При этом адресное пространство каждого процесса просто проецируется на различные части физической памяти. Классическое решение, примененное на машинах от CDC 6600 (первого в мире суперкомпьютера) до Intel 8088 (сердца первой модели IBM PC), заключается в оснащении каждого центрального процессора двумя специальными аппаратными регистрами, которые обычно называются базовым и ограничительным регистрами. При использовании этих регистров программы загружаются в последовательно расположенные свободные области памяти без модификации адресов в процессе загрузки, как показано на рис. 3.2, в. При запуске процесса в базовый регистр загружается физический адрес, с которого начинается размещение программы в памяти, а в ограничительный регистр загружается длина программы.

Базовый и ограничительный регистры читать полное описание.


Управление памятью  Свопинг

Свопинг

Если у компьютера достаточный объем памяти для размещения всех процессов, то все рассмотренные до сих пор схемы будут в той или иной степени работоспособны. Но на практике суммарный объем оперативной памяти, необходимый для размещения всех процессов, зачастую значительно превышает имеющийся объем ОЗУ. На обычных Windows- или Linux-системах при запуске компьютера могут быть запущены около 40-60 или более процессов. Например, при установке приложения Windows зачастую выдаются команды, чтобы при последующих запусках системы запускался процесс, единственной задачей которого была бы проверка наличия обновлений для этого приложения. Такой процесс запросто может занять 5-10 Мб памяти.

Свопинг читать полное описание.


Управление памятью  Работа системы с использованием свопинга

Работа системы с использованием свопинга

Работа системы с использованием свопинга показана на рис. 3.4. Изначально в памяти присутствует только процесс А. Затем создаются или появляются в памяти путем свопинга с диска процессы В и С. На рис. 3.4, г процесс А за счет свопинга выгружается на диск. Затем появляется процесс D и выгружается из памяти процесс 5. И наконец, снова появляется в памяти процесс А. Поскольку теперь процесс А находится в другом месте, содержащиеся в нем адреса должны быть перестроены либо программным путем, при загрузке в процессе свопинга, либо (скорее всего) аппаратным путем в процессе выполнения программы.

Работа системы с использованием свопинга читать полное описание.


Управление памятью  Большинство процессов

Большинство процессов

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

Большинство процессов читать полное описание.