Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС 2 модуль все части ПЕЧАТАТЬ.docx
Скачиваний:
90
Добавлен:
18.12.2018
Размер:
329 Кб
Скачать
☆

26)_Ч5Поясните суть сегментно-страничной организации оп. Сегментно-страничное распределение памяти

Это комбинация страничного и сегментного механизмов управления памятью с реализацией достоинств обоих подходов:

*ВАП процесса разделено на сегменты, что обеспечивает поддержку разных прав доступа;

*перемещение данных между ОП и диском осуществляется страницами.

Для этого каждый виртуальный сегмент и вся физическая память делятся на страницы равного (фиксированного) размера, что позволяет более эффективно использовать ОП, до минимума сокращая фрагментацию. Все виртуальные сегменты образуют одно общее непрерывное линейное ВАП процесса в диапазоне (0000000016 – FFFFFFFF16). Для каждого процесса ОС создает отдельную таблицу сегментов, содержащую описатели (дескрипторы) всех его сегментов. Там указывается начальный линейный (то есть базовый) виртуальный адрес сегмента в ВАП процесса. Деление общего линейного ВАП процесса и ОП на страницы осуществляется так же, как и при страничной организации памяти (размером по 2k).

При порождении процесса в ОП загружается только часть страниц, остальные загружаются по мере необходимости. Время от времени ОС выгружает уже ненужные страницы, освобождая ОП для новых страниц. ОС ведет для каждого процесса таблицу страниц, где указывается соответствие виртуальных страниц физическим.

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

27)_Ч5Как происходит преобразование виртуального адреса в физический при сегментно-страничной организации

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

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

28)_Ч5 Как используется модифицированный страничный механизм при сегментно-страничной организации оп?

Модифицированный страничный механизм реализует двухуровневую схему, когда ВАП процесса делится сначала на разделы, а затем на страницы. Поэтому на втором этапе сначала вычленяются смещение, номер страницы и (дополнительно) номер раздела. Далее (подобно рис.5.7) по номеру раздела из таблицы разделов выбирается адрес таблицы страниц, из нее по номеру виртуальной страницы – номер физической страницы, к которому операцией конкатенации присоединяется смещение. Модифицированная схема второго этапа преобразования виртуального адреса в физический представлена на рис.5.13.

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

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

Дескриптор сегмента должен содержать специальное поле, имеющее два значения: shared (разделяемый) или private (индивидуальный). ОС может создавать разделяемые сегменты двумя способами:

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

*по умолчанию. ОС в определенных ситуациях принимает решение о создании разделяемого сегмента сама.

Разделяемые сегменты выгружаются на диск системой виртуальной памяти по тем же алгоритмам и на основе тех же механизмов, что и индивидуальные