Читайте также:
|
|
Первый этап. Работает механизм сегментации(подобно рис.5.10). Исходный виртуальный адрес вида (номер сегмента, смещение) преобразуется в линейный виртуальный адрес. Для этого по базовому адресу таблицы сегментов и номеру сегмента из таблицы сегментов извлекается дескриптор этого сегмента. Производится анализ полей дескриптора. Если доступ к сегменту разрешен, то вычисляется линейный виртуальный адрес путем сложения базового виртуального адреса сегмента (из дескриптора) и смещения.
Второй этап. Работает страничный механизм. Полученный линейный виртуальный адрес преобразуется в искомый физический адрес. Вначале выделяются его составляющие (номер виртуальной страницы, смещение в странице), понятные страничному механизму. Далее преобразование адреса в физический происходит так же, как при страничной организации (подобно рис.5.6). Номер виртуальной страницы дает адрес дескриптора страницы в таблице страниц, по которому из дескриптора выбирается номер физической страницы. Последний операцией конкатенации присоединяется к смещению.
28)_Ч5 Как используется модифицированный страничный механизм при сегментно-страничной организации ОП?
Модифицированный страничный механизм реализует двухуровневую схему, когда ВАП процесса делится сначала на разделы, а затем на страницы. Поэтому на втором этапе сначала вычленяются смещение, номер страницы и (дополнительно) номер раздела. Далее (подобно рис.5.7) по номеру раздела из таблицы разделов выбирается адрес таблицы страниц, из нее по номеру виртуальной страницы – номер физической страницы, к которому операцией конкатенации присоединяется смещение. Модифицированная схема второго этапа преобразования виртуального адреса в физический представлена на рис.5.13.
Подсистема виртуальной памяти может обеспечивать и совместный доступ нескольких процессов к одному и тому же сегменту памяти, который в этом случае называется разделяемой памятью. Страничная организация не позволяет организовать разделяемые сегменты памяти. При сегментной организации надо в дескрипторах виртуального сегмента каждого процесса указать один и тот же базовый физический адрес. При сегментно-страничной организации отображение на одну и ту же область ОП достигается соответствующей настройкой таблицы страниц каждого процесса.
При работе с разделяемыми сегментами памяти ОС должна выполнять еще и свои функции поддержки связанных с ними разделяемых ресурсов – файлов, семафоров и т.п. Они заключаются в поддержке схемы именования ресурсов, проверке прав доступа определенного процесса к ресурсу, отслеживании числа процессов, пользующихся данным ресурсом, для его удаления при ненадобности.
Дескриптор сегмента должен содержать специальное поле, имеющее два значения: shared (разделяемый) или private (индивидуальный). ОС может создавать разделяемые сегменты двумя способами:
*по явному запросу. Прикладной процесс должен выполнить соответствующий системный вызов, по которому ОС создает новый разделяемый сегмент в соответствии с указанными в вызове параметрами (размером сегмента, разрешенными над ним операциями чтение/запись) и идентификатором. Все процессы, выполнившие подобные вызовы с одним и тем же идентификатором, получают доступ к этому сегменту и используют его по своему усмотрению;
*по умолчанию. ОС в определенных ситуациях принимает решение о создании разделяемого сегмента сама.
Разделяемые сегменты выгружаются на диск системой виртуальной памяти по тем же алгоритмам и на основе тех же механизмов, что и индивидуальные
Дата добавления: 2015-12-08; просмотров: 62 | Нарушение авторских прав