Сегментно-страничное распределение памяти

Сегментно-страничное распределение представляет собой комбинацию страничного и сегментного механизма управления памятью и направлен на реализацию достоинств обоих методов. Так же как и при сегментной организации памяти, виртуальное адресное пространство процесса разделено на сегменты. Это позволяет определить разные права доступа к разным частям кодов и данных программы. Перемещение данных между памятью и диском осуществляется не сегментами, а страницами. Для этого каждый виртуальный сегмент и физическая память делятся на страницы равного размера, что позволяет более эффективно использовать память, сократив фрагментацию. В большинстве современных реализаций сегментно-страничной организации памяти все виртуальные сегменты образуют одно непрерывное линейное виртуальное адресное пространство. Для каждого процесса ОС создает отдельную таблицу сегментов, в которой содержатся дескрипторы всех сегментов процесса. Описание сегмента включает назначенные ему права доступа и другие характеристики, подобные тем, которые содержатся в дескрипторах сегментов при сегментной организации памяти. В поле базового адреса указывается не начальный физический адрес сегмента, отведенный ему при загрузке в оперативную память, а начальный линейный виртуальный адрес сегмента в пространстве виртуальных адресов. Исходный виртуальный адрес, заданный в виде пары (сегмент: смещение) однозначно преобразуется в линейный виртуальный адрес байта, который затем преобразуется в физический адрес страничным механизмом.


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



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