Упрощение выделения дополнительной физической оперативной памяти

С использованием концепции виртуальной памяти реализуется простой механизм выделения пользовательским про­цессам дополнительной физической оперативной памяти. Когда программа, выполняющаяся в пользовательском процессе, запрашивает дополнительное пространство из "динамической памя­ти" (например, в результате вызова функции mailoc), операционная система выделяет соответствующее число, скажем к, последовательно расположенных страниц вирту­альной памяти и отображает их на к произвольных физических страниц оперативной памяти. В силу особенностей функциониро­вания таблиц страниц, нет необходимости в том, чтобы операционная система опре­деляла место этих последовательно расположенных к страниц физической оперативной памяти. Страницы могут быть беспорядочно рассеяны в физической памяти.

Виртуальная память как средство защиты оперативной памяти

Любой современный высокопроизводительный компьютер должен обладать средствами, с помощью которых операционная система могла бы управлять доступом к физической оперативной памяти. Пользовательскому процессу нельзя разрешать изменять свой раздел текста только для чтения. Нельзя также разрешать читать или изменять какие-либо программы и структуры данных ядра операционной системы. Нельзя разрешать чтение или производить записи в защищенную физическую оперативную память других процессов, нельзя также разрешать внесение изме­нений в какие-либо виртуальные страницы, которые используются совместно с другими процессами, пока все заинтересованные стороны однозначно не дадут на это своего согласия (путем явных системных вызовов функций взаимодействия между процессами).

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

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

Признаки READ и WRITE управляют доступом по чтению и по записи к заданной странице. Например, если процесс i выполняется в непривилегированном режиме, он может читать и писать только в разрешенные страницы. В то же время ему не позволено обращаться к защищенным этими признаками страницам.

Поскольку аппаратные средства преобразования (трансляции) адреса читают элементы таблицы страниц каждый раз, когда процессор генерирует адрес, они каждый раз проверяют состояние признаков защиты страниц оперативной памяти.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: