Образ процесса. Виртуальное адресное пространство

Содержимое назначенного процессу вирт. адресного пространства, т.е. коды команд, исходящие и промежуточные данные, а также результаты вычислений, представляют собой образ процесса. Во время работы процесса постоянно выполняются переходы от прикладных кодов к кодам ОС, которые либо явно вызываются из прикладных процессов как системные функции; либо вызываются как реакция на внешние события или исключительные ситуации, возникающие при некорректном поведении прикладных кодов. Для того, чтобы упростить передачу пр-я от прикладного кода к коду ОС, а также для легкого доступа модулей ОС к прикладным данным (например, для вывода их на внешние устройства) в большинстве ОС ее сегмент разделяют вирт. адресное пространство с прикладными сегментами активного процесса, т.е. сегменты ОС и сегменты активного процесса образуют единое виртуальное адресное пространство. Обычно вирт. адресное пространство процесса делится на две непрерывные части: системную; пользовательскую. В некоторых ОС, напр., Windows NT ОS/2 (консольная система), эти части делятся поровну и имеют одинаковый размер по 2 Gb. Хотя соотношение может быть и другим, напр., 1Gb для ОС, а остальное – пользователю. Часть вирт. адресного пространства каждого процесса, отводимая для сегментов ОС является идентичной для всех процессов. Поэтому при смене активного процесса заменяется только вторая часть вирт. адресного пространства, содержащая его индивидуальные сегменты, как правило, коды и данные прикладной программы.

 
 


ПВ 2…

ПВ 1 ПВ N Индивидуальные части ВП

Paged

Unpaged Общая часть виртуального адресного пространства

 

Системная часть виртуальной памяти ОС любого типа включает область, подвергаемую страничному вытеснению, Paged (листание); и область, на которую страничное вытеснение не распространяется Unpaged. В не вытесняемой области размещаются модули ОС, требующие быстрой реакции и/или постоянного присутствия в памяти. Напр., диспетчер потоков или код, который управляет заменой страниц памяти (загрузка – выгрузка страниц). Остальные модули ОС могут подвергаться страничному вытеснению как и пользовательские сегменты.

 

МЕТОДЫ РАСПРЕДЕЛЕНИЯ ПАМЯТИ

Все алгоритмы распределения (управления) памятью можно разделить на 2 класса: 1) Алгоритмы, в которых используется перемещение сегментов процессов между оперативной памятью и диском. 2) Алгоритмы, в которых внешняя память не используется.