Пример использования разделяемых сегментов

Пример использования разделяемых сегментов - student2.ru

Рис. 4.Пример использования разделяемых сегментов.

В примере два процесса используют общий сегмент – код редактора, который имеет в таблицах сегментов обоих процессов один и тот же номер – 0. Кроме того, каждый из процессов имеет собственный сегмент данных с номером 1, однако эти сегменты, естественно, у обоих процессов разные.

Сегментно-страничная организация памяти в системах MULTICS и "Эльбрус"

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

Поэтому в системе MULTICS проблемы внешней фрагментации и длительного времени поиска решены путем страничной организации памяти для сегментов. Данное решение отличается от чисто сегментной организации тем, что элемент таблицы сегментов содержит не базовый адрес сегмента, а базовый адрес таблицы страницдля данного сегмента.

В системе "Эльбрус" данные проблемы решены по-другому: в системе используется страничная организация для математической (виртуальной, логической)памяти и сегментная организация – для физической памяти. Математическая память (т.е. образ памяти на диске) распределяется с точностью до страницы,а физическая – с точностью до слова. Кроме того, как уже отмечалось, для адресации в системе "Эльбрус" используются дескрипторы массивов, содержащие начальный адрес, длину и признаки защиты массива.

Схема трансляции адресов в MULTICS приведена на рис. 5.

Пример использования разделяемых сегментов - student2.ru

Рис. 5.Схема трансляции адресов в MULTICS.

Логический адрес (s, d) используется следующим образом. Номер сегмента s складывается с содержимым регистра STBR, после чего происходит обращение по полученному адресу в таблицу сегментов. Смещение dсравнивается с длиной сегмента; если оно больше или равно длине сегмента,то прерывание. Из элемента таблицы сегментов извлекается адрес базы таблицы страниц данного сегмента, который складывается со старшими разрядами смещения ( p ). Младшие разряды смещения используются как смещение внутри страницы, адрес которой извлекается из таблицы страниц данного сегмента.

Нельзя не отметить, что данная схема, на наш взгляд, несколько усложнена. Система MULTICS, в которой этот и многие другие механизмы доведены, казалось бы, до совершенства, вызвала противоположную тенденцию в развитии ОС – к упрощению. Как мы уже говорили, даже название следующей системы – UNIX – выбрано как противоположность MULTICS, что говорит о многом. Таковы тенденции развития во многих областях, в том числе и в операционных системах.

Наши рекомендации