Cтраница 1
Таблица сегментов и большие части таблиц страниц всегда размещаются в оперативной памяти. Это связано с ограниченной емкостью сверхбыстродействующей регистровой памяти, используемой при преобразовании математических адресов в физические. Для хранения строк страничных таблиц, отвечающих наиболее часто используемым физическим страницам, используется регистровая ассоциативная память ( АП), включающая в свой состав 8 основных регистров и 8 схем сравнения; регистры 21-разрядные, а схемы сравнения - 12-разрядные. [1]
Все таблицы сегментов различных пользователей хранятся в оперативной памяти, при активизации некоторой программы пользователя супервайзер засылает в специальный регистр начальный адрес таблицы сегментов, принадлежащий этому пользователю. Содержимое этого регистра прибавляется к номеру сегмента и используется для входа в таблицу сегментов. [2]
Длина таблицы сегментов в блоках по 64 байта равна содержимому битов 0 - 7 управляющего регистра 1, увеличенному на единицу. С помощью содержимого поля длины устанавливается, принадлежит ли таблице сегментов строка, определяв мая индексом сегмента логического адреса. [3]
Адрес таблицы сегментов - Биты 8 - 25 управляющего репь стра 1, дополненные шестью младшими нулями, образуют 24-битовый истинный адрес, определяющий начало таблицы сегментов. [4]
Строка таблицы сегментов или строка таблицы страниц может быть помещена в TLB только в том случае, когда эта строка является выделенной и когда бит недействительности в этой строке равен нулю. Строка может быть помещена в TLB сразу же, как только она станет выделенной и действительной. [5]
Строка таблицы сегментов определяет длину, доступность и начало соответствующей таблицы страниц. [6]
Строка таблицы сегментов находится за пределами этой таблицы. [7]
По таблице сегментов определяется, загружен ли нужный сегмент в память, если нет, сегмент и все сегменты его пути загружаются в память. Для определения сегментов пути используется цепочка номеров сегментов в таблице SEGTAB, а индикатор состояния сегментов указывает, загружен сегмент в память или пет. [8]
По таблице сегментов определяют начальный адрес другой таблицы, а именно таблицы страниц данного сегмента. По таблице страниц и номеру страницы, являющемуся частью исходного адреса, определяют номер физической страницы, что вместе с номером строки в итоге дает физический адрес. Предполагается, что таблицы сегментов и таблицы страниц постоянно находятся в оперативной памяти во время работы программы пользователя. [9]
Так как таблицы сегментов и страниц, поддерживаемые такой операционной системой, не отражают действительного размещения страниц виртуальной памяти операционной системы в основной памяти реальной ЭВМ и поэтому не могут использоваться для динамического преобразования адресов, то МВМ строит группу таблиц сегментов и страниц, называемых теневыми. Теневые таблицы строятся, когда виртуальная машина инициализирует режим динамического преобразования адресов. [10]
Код длины таблицы сегментов и код длины таблицы страниц, превышающие максимальный используемый код длины, считаются действительными. Например, код длины считается действительным даже в том случае, если конец таблицы выхо дит за пределы доступной основной памяти или если часть таблицы нельзя адресовать логическими адресами. Состояние самого младшего бита, содержащегося в строке таблицы страниц, не определено и не проверяется на равенство нулю; этот разряд может быть использован при программировании. [11]
Код длины таблицы сегментов и таблицы страниц является допустимым, если даже эта длина превышает максимальную длину, которую фактически можно использовать. Например, код длины допустим, если даже конец таблицы ( определенный этим кодом) выходит за пределы имеющейся основной памяти или если к части таблицы нельзя адресоваться с помощью логического адреса. [12]
Копия строки таблицы сегментов в TLB может использоваться при неявной динамической переадресации только в том случае, когда при формировании этой строки TLB была использована информация, полученная в результате выборки из памяти присоединенной и доступной строки таблицы сегментов, и только тогда, когда выбор этой ячейки реальной основной памяти как строки таблицы производится в ходе динамической переадресации, причем эта строка таблицы присоединена в момент выборки. [13]
Начало расположения таблицы сегментов в оперативной памяти находится также в некотором управляющем регистре. Этот адрес можно задавать программно и, следовательно, таблицу сегментов можно поместить на любое физическое место оперативной памяти. Каждая строка таблицы сегментов занимает 4 байта ( 32 разряда) и содержит информацию о длине и начальном адресе таблицы страниц, входящих в состав данного сегмента. Каждая строка таблицы страниц состоит из двух байт ( 16 разрядов) и содержит информацию о старших разрядах физического адреса соответствующего логическому адресу. Сами таблицы страниц могут быть довольно произвольным образом размещены в оперативной памяти. [14]
Для этого используются таблица сегментов и таблица страниц, размещенные в оперативной памяти. Сначала по таблице сегментов необходимо определить адрес начальной строки нужной таблицы страниц, а уж затем выявлять требуемую строку этой таблицы. [15]