The design of the UNIX Operating System 42 страница



 

Связывание адресов


Основы операционных систем 74

Итак логические и физические адресные пространства ни по организации, ни по размеру не соответству-ют друг другу. Максимальный размер логического адресного пространства обычно определяется разряд-ностью процессора (например, 232) и в современных системах значительно превышает размер физическо-го адресного пространства. Следовательно, процессор и ОС должны быть способны отобразить ссылки в коде программы в реальные физические адреса, соответствующие текущему расположению программы в основной памяти. Такое отображение адресов называют трансляцией (привязкой) адреса или связывани-ем адресов (см. рис. 8.3).

 

Связывание логического адреса, порожденного оператором программы, с физическим должно быть осу-ществлено до начала выполнения оператора или в момент его выполнения. Таким образом, привязка ин-струкций и данных к памяти в принципе может быть сделана на следующих шагах [Silberschatz, 2002].

 

• Этап компиляции (Compile time). Когда на стадии компиляции известно точное место размещения процесса в памяти, тогда непосредственно генерируются физические адреса. При изменении стар-тового адреса программы необходимо перекомпилировать ее код. В качестве примера можно при-вести .com программы MS-DOS, которые связывают ее с физическими адресами на стадии компи-ляции.

 

• Этап загрузки (Load time). Если информация о размещении программы на стадии компиляции от-сутствует, компилятор генерирует перемещаемый код. В этом случае окончательное связывание откладывается до момента загрузки. Если стартовый адрес меняется, нужно всего лишь перезагру-зить код с учетом измененной величины.

• Этап выполнения (Execution time). Если процесс может быть перемещен во время выполнения из одной области памяти в другую, связывание откладывается до стадии выполнения. Здесь жела-тельно наличие специализированного оборудования, например регистров перемещения. Их значе-ние прибавляется к каждому адресу, сгенерированному процессом. Большинство современных ОС осуществляет трансляцию адресов на этапе выполнения, используя для этого специальный аппа-ратный механизм (см. лекцию 9).

 

 

Рис. 8.3. Формирование логического адреса и связывание логического адреса с физическим

 

Функции системы управления памятью

 

Чтобы обеспечить эффективный контроль использования памяти, ОС должна выполнять следующие функции:

 

• отображение адресного пространства процесса на конкретные области физической памяти;

 

• распределение памяти между конкурирующими процессами;

• контроль доступа к адресным пространствам процессов;

• выгрузка процессов (целиком или частично) во внешнюю память, когда в оперативной памяти не-достаточно места;


Основы операционных систем 75

• учет свободной и занятой памяти.

 

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

 

Простейшие схемы управления памятью

 

Первые ОС применяли очень простые методы управления памятью. Вначале каждый процесс пользова-теля должен был полностью поместиться в основной памяти, занимать непрерывную область памяти, а система принимала к обслуживанию дополнительные пользовательские процессы до тех пор, пока все они одновременно помещались в основной памяти. Затем появился "простой свопинг" (система по-прежнему размещает каждый процесс в основной памяти целиком, но иногда на основании некоторого критерия целиком сбрасывает образ некоторого процесса из основной памяти во внешнюю и заменяет его в основной памяти образом другого процесса). Такого рода схемы имеют не только историческую ценность. В настоящее время они применяются в учебных и научно-исследовательских модельных ОС, а также в ОС для встроенных (embedded) компьютеров.


Дата добавления: 2021-01-21; просмотров: 103; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!