Cтраница 3
Каждая программа в системе MULTICS имеет таблицу сегментов с одним дескриптором на сегмент. Так как записей в таблице потенциально больше четверти миллиона, таблица сегментов сама является сегментом и разбита на страницы. Дескриптор сегмента содержит индикатор того, находится ли сегмент в памяти или нет. Если какая-то часть сегмента присутствует в памяти, считается, что сегмент в памяти и его таблица страниц будет в памяти. Поскольку физические адреса 24-разрядные, а страницы выстраиваются по 64-байтным границам ( предполагается, что 6 бит низших разрядов адреса страницы - это 000000), необходимо только 18 бит в дескрипторе для хранения адреса таблицы страниц. Дескриптор также содержит размер сегмента, биты защиты и несколько других полей. Рисунок 4.36, б демонстрирует дескриптор сегмента в системе MULTICS. Адрес сегмента во вспомогательной памяти не находится в дескрипторе сегмента, но в другой таблице используется обработчиком сегментных прерываний. [31]
![]() |
Развитие внешней фрагментации ( а-г. устранение фрагментации с помощью уплотнения ( д. [32] |
Каждая программа в системе MULTICS имеет таблицу сегментов с одним дескриптором на сегмент. Так как записей в таблице потенциально больше четверти миллиона, таблица сегментов сама является сегментом и разбита на страницы. Дескриптор сегмента содержит индикатор того, находится ли сегмент в памяти или нет. Если какая-то часть сегмента присутствует в памяти, считается, что сегмент в памяти и его таблица страниц будет в памяти. Поскольку физические адреса 24-разрядные, а страницы выстраиваются по 64-байтным границам ( предполагается, что 6 бит низших разрядов адреса страницы - это 000000), необходимо только 18 бит в дескрипторе для хранения адреса таблицы страниц. Дескриптор также содержит размер сегмента, биты защиты и несколько других полей. Рисунок 4.36, бдемонстрирует дескриптор сегмента в системе MULTICS. Адрес сегмента во вспомогательной памяти не находится в дескрипторе сегмента, но в другой таблице используется обработчиком сегментных прерываний. [33]
На первом этапе алгоритма проверки трассировки составляется таблица сегментов. Сегментами называются участки трассируемого пути, разделенные межсловными переходами и контактными площадками. [34]
Содержимое бита 31 строки, выбранной из таблицы сегментов, определяет доступность соответствующего сегмента. Если обнаруживается, что этот бит равен единице, то фиксируется особый случай при переадресации сегмента, и операция аннулируется. Обработка содержимого битов 4 - 7 и 29 - 30 строки таблицы сегментов зависит от модели. Обычно, если содержимое этих разрядов не равно нулю, фиксируется особый случай по спецификации переадресации, и операция подавляется; однако в некоторых моделях эти разряды могут игнорироваться. [35]
Применение в программе VECED стека сегментов и таблицы сегментов обладает следующими преимуществами. [36]
Поля регистра используются следующим образом: Длина таблицы сегментов: содержимое битов 0 - 7 управляющего регистра 1 определяет длину таблицы сегментов в блоках по 64 байта каждый. Следовательно, размер таблицы сегментов может изменяться на целое число, кратное суммарной длине 16 строк такой таблицы. Индекс сегмента служит для выбора строки таблицы сегментов, а содержимое поля длины позволяет проверить, указывает ли индекс сегмента на строку, находящуюся в пределах заданной таблицы сегментов. [37]
Вводятся указатели, описывающие массив связей с таблицей сегментов. [38]
![]() |
Динамическая переадресация памяти. [39] |
Каждое пространство виртуальной основной памяти описывается одной таблицей сегментов и набором таблиц страниц, адреса которых содержатся в строках этой таблицы сегментов. [40]
Аппаратура использует число 32 в качестве индекса для таблицы сегментов и находит расположение сегмента связи. [41]
Информация из TLB, представляющая собой копию строки таблицы сегментов, может быть использована для неявной перекодировки адреса только в том случае, если эта строка TLB была сформирована из информации, выбранной из памяти в качестве выделенной и действительной строки таблицы сегментов, и только тогда, когда в процессе переадресации выбирается ячейка действительно установленной памяти, определяющая строку таблицы сегмента, причем эта строка таблицы выделена в момент выборки. [42]
![]() |
Схема выполнения обращения по адресу Sd при сегментации. [43] |
Адрес самой таблицы хранится в специальном аппаратном регистре-регистре таблицы сегментов. Переключение системы на ту или иную программу осуществляется занесением в этот регистр адреса соответствующей таблицы сегментов. [44]
Если адрес памяти, сформированный для выборки строки таблицы сегментов, выходит за пределы основной памяти, имеющейся на данной вычислительной установке, распознается особый случай адресации и данный элемент операции подавляется. [45]