Операционные системы. Макушкина Л.А - 28 стр.

UptoLike

28
остатков, так как размеры виртуальных и физических страниц совпадают. Такой
режим работы системы управления памятью используется в некоторых
специализированных ОС, когда требуется высокая реактивность системы и
способность выполнять переменный набор приложений (пример ОС семейства
Novell NetWare 3.x и 4.x).
2.2.2 Сегментное распределение
При страничной организации виртуальное адресное пространство процесса
делится на равные части механически, без учета смыслового значения данных. В
одной странице могут оказаться и коды команд, и инициализируемые переменные,
и массив исходных данных программы. Такой подход не позволяет обеспечить
дифференцированный доступ к разным частям программы, а это свойство могло
бы быть очень полезным во многих случаях. Например, можно было бы запретить
обращаться с операциями записи в сегмент программы, содержащий коды команд,
разрешив эту операцию для сегментов данных.
Кроме того, разбиение виртуального адресного пространства на
«осмысленные» части делает принципиально возможным совместное
использование фрагментов программ разными процессами. Пусть, например, двум
процессам требуется одна и та же подпрограмма, которая к тому же обладает
свойством реентерабельности . Тогда коды этой подпрограммы могут быть
оформлены в виде отдельного сегмента и включены в виртуальные адресные
пространства обоих процессов. При отображении в физическую память сегменты,
содержащие коды подпрограммы из обоих виртуальных пространств,
проецируются на одну и ту же область физической памяти. Таким образом оба
процесса получат доступ к одной и той же копии подпрограммы (рисунок 12).
Рисунок 12 - Распределение памяти сегментами
остатков, так как размеры виртуальных и физических страниц совпадают. Такой
режим работы системы управления памятью используется в некоторых
специализированных ОС, когда требуется высокая реактивность системы и
способность выполнять переменный набор приложений (пример — ОС семейства
Novell NetWare 3.x и 4.x).

   2.2.2 Сегментное распределение
   При страничной организации виртуальное адресное пространство процесса
делится на равные части механически, без учета смыслового значения данных. В
одной странице могут оказаться и коды команд, и инициализируемые переменные,
и массив исходных данных программы. Такой подход не позволяет обеспечить
дифференцированный доступ к разным частям программы, а это свойство могло
бы быть очень полезным во многих случаях. Например, можно было бы запретить
обращаться с операциями записи в сегмент программы, содержащий коды команд,
разрешив эту операцию для сегментов данных.
   Кроме того, разбиение виртуального адресного пространства на
«осмысленные» части делает принципиально возможным совместное
использование фрагментов программ разными процессами. Пусть, например, двум
процессам требуется одна и та же подпрограмма, которая к тому же обладает
свойством реентерабельности . Тогда коды этой подпрограммы могут быть
оформлены в виде отдельного сегмента и включены в виртуальные адресные
пространства обоих процессов. При отображении в физическую память сегменты,
содержащие коды подпрограммы из обоих виртуальных пространств,
проецируются на одну и ту же область физической памяти. Таким образом оба
процесса получат доступ к одной и той же копии подпрограммы (рисунок 12).




                Рисунок 12 - Распределение памяти сегментами
                                     28