Операционные системы. Теория и практика. Замятин А.В. - 102 стр.

UptoLike

Составители: 

102
торе. Как правило, для этого используется бит присутствия Р (от англ.
present). В этом случае в поле адреса диспетчер памяти записывает ад-
рес физической памяти, с которого сегмент начинается, а в поле длины
сегмента (limit) указывается количество адресуемых ячеек памяти. Это
поле используется не только для того, чтобы размещать сегменты без
наложения друг на друга, но и для того, чтобы контролировать, не об-
ращается ли код исполняющейся задачи за пределы текущего сегмента.
В случае превышения длины сегмента вследствие ошибок программи-
рования можно выявить нарушения адресации и с помощью введения
специальных аппаратных средств генерировать сигналы прерывания,
которые позволят фиксировать (обнаруживать) ошибки такого рода.
Помимо информации о местоположении сегмента, в дескрипторе
сегмента, как правило, содержатся данные о его типе (сегмент кода или
сегмент данных), правах доступа к этому сегменту (можно или нельзя
его модифицировать, предоставлять другой задаче), отметка об обраще-
ниях к данному сегменту (информация о том, как часто или как давно
этот сегмент используется или не используется, на основании которой
можно принять решение о том, чтобы предоставить место, занимаемое
текущим сегментом, другому сегменту).
При передаче управления следующей задаче ОС должна занести в
соответствующий регистр адрес таблицы дескрипторов сегментов этой
задачи. Сама таблица дескрипторов сегментов, в свою очередь, также
представляет собой сегмент данных, который обрабатывается диспетче-
ром памяти ОС.
При таком подходе появляется возможность размещать в ОП не все
сегменты задачи, а только задействованные в данный момент. Благодаря
этому, с одной стороны, общий объем виртуального адресного про-
странства задачи может превосходить объем физической памяти компь-
ютера, на котором эта задача будет выполняться, с другой стороны, да-
же если потребности в памяти не превосходят имеющуюся физическую
память, можно размещать в памяти больше задач, поскольку любой за-
даче, как правило, все ее сегменты единовременно не нужны. Как из-
вестно, увеличение коэффициента мультипрограммирования µ позволя-
ет увеличить загрузку системы и более эффективно использовать ресур-
сы вычислительной системы.
Очевидно, однако, что увеличивать количество задач можно только
до определенного предела, т.к. если в памяти не будет хватать места для
часто используемых сегментов, то производительность системы резко
упадет. Ведь сегмент, находящийся вне ОП, для участия в вычислениях
должен быть перемещен в ОП. При этом если в памяти есть свободное
пространство, то необходимо всего лишь найти нужный сегмент во
внешней памяти и загрузить его в ОП. Если свободного места нет, при-