Системная и пользовательская часть ВАП процесса
Во время работы процесса постоянно выполняются переходы от прикладных кодов к кодам ОС, которые либо явно вызываются из прикладных процессов как системные функции, либо вызываются как реакция на внешние события или на исключительные ситуации, возникающие при некорректном поведении прикладных кодов. Для того чтобы упростить передачу управления от прикладного кода к коду ОС, а так же для легкого доступа модулей ОС к прикладным данным (например, для вывода их на внешние устройства), в большинстве ОС ее сегменты разделяют виртуальное адресное пространство с прикладными сегментами активного процесса. То есть сегменты ОС и сегменты активного процесса образуют единое виртуальное адресное пространство.
Обычно виртуальное адресное пространство процесса делится на две непрерывные части: системную и пользовательскую. Часть виртуального адресного пространства каждого процесса, отводимого под сегменты ОС, является идентичной для всех процессов. Поэтому при смене активного процесса заменяется только вторая часть виртуального адресного пространства, содержащая его индивидуальные сегменты, как правило, - коды и данные прикладной программы . Архитектура современных процессов отражает эту особенность структуры виртуального адресного пространства, например, в процессорах Intel Pentium существует два типа системных таблиц: одна – для описания сегментов общих для всех процессорах, а другая – для описания индивидуальных сегментов данного процесса. При смене процесса первая таблица остается низменной, а вторая заменяется новой.
Рис. Общая и индивидуальные части виртуальных адресных пространств
Механизм страничной памяти в большинстве универсальных ОС применяется ко всем сегментам пользовательской части виртуального адресного пространства процесса. Исключения могут составлять специализированные ОС, например ОС реального времени, в которых некоторые сегменты жестко фиксируются в оперативной памяти и соответственно никогда не выгружаются на диск – это обеспечивает быструю реакцию определенных приложений на внешние события.
Системная часть виртуальной памяти в ОС любого типа включает
· область, подвергаемого страничному вытеснению(paged) - модули ОС подвергаются страничному вытеснению, как и пользовательские сегменты
· область, на которую страничное вытеснение не распространяется (non-paged). В не вытесняемой области размещаются модули ОС, требующие быстрой реакции и /или постоянного присутствия в памяти, например диспетчер потоков или код, который управляет заменой страниц памяти
Обычно аппаратура накладывает свои ограничения на порядок использования виртуального адресного пространства. Некоторые процессоры предусматривают для определенной области системной части адресного пространства особые правила отображения на физическую память.
Дата добавления: 2016-06-05; просмотров: 2850;