Виртуальный адрес при сегментной организации памяти может быть представлен парой (g, s), где g– номер сегмента, а s– смещение в сегменте. Физический адрес получается путем сложения начального физического адреса сегмента, найденного в таблице сегментов по номе- ру g, и смещения s.
Недостатком данного метода распределения памяти является фраг- ментация на уровне сегментов и более медленное по сравнению со страничной организацией преобразование адреса.
Странично-сегментное распределение
Как видно из названия, данный метод представляет собой комби- нацию страничного и сегментного распределения памяти и, вслед- ствие этого, сочетает в себе достоинства обоих подходов. Виртуальное пространство процесса делится на сегменты, а каждый сегмент, в свою очередь, делится на виртуальные страницы, которые нумеруются в пре- делах сегмента. Оперативная память делится на физические страницы. Загрузка процесса выполняется операционной системой постранично, при этом часть страниц размещается в оперативной памяти, а часть на диске. Для каждого сегмента создаётся своя таблица страниц, структура которой полностью совпадает со структурой таблицы страниц, исполь- зуемой при страничном распределении.
Для каждого процесса создаётся таблица сегментов, в которой ука- зываются адреса таблиц страниц для всех сегментов данного процесса. Начальный адрес таблицы сегментов загружается в специальный ре- гистр процессора, когда активизируется соответствующий процесс.
Виртуальный адрес при странично-сегментном распределении со- стоит из трёх частей (g, p, s), где g – номер сегмента, p – номер вирту- альной страницы процесса, s – смещение в пределах виртуальной стра- ницы. Трансляция виртуального адреса в физический с использованием таблиц сегментов и страниц начинается (рис. 4.17) с того, что на осно- вании начального адреса таблицы сегментов (содержимое регистра ад-
реса таблицы сегментов), номера сегмента (старшие разряды виртуаль-
ного
адреса)
определяется
базовый
адрес
соответствующей
таблицы
страниц для данного сегмента. А дальше происходит всё то же самое,
что при страничном распределении. По найденному базовому адресу
таблицы страниц, номеру виртуальной страницы
p из таблицы страниц
извлекается старшая часть физического адреса страницы (
n), к которой
присоединяется
смещение
s (младшая
часть).
Процесс преобразования адресов посредством таблиц является до-
статочно длительным и, естественно, приводит к снижению производи-
тельности
системы.
С
целью
ускорения
этого
процесса используется
специальная, полностью ассоциативная кэш-память (рис. 4.17), которая
называется
буфером преобразования адресов TLB (translation lookaside buffer).
Виртуальный адрес
(
g,
p,
s)
Физический
адрес
Рис. 4.17. Механизм преобразования адресов для странично-сегментной
организации
памяти
с
использованием
TLB
Виртуальный адрес страницы
VAi, составленный из полей
g и
p, пе-
редаётся
в
TLB
в
качестве
поискового
признака
(тега).
Он
сравнивается
с тегами (
VA) всех ячеек TLB, и при совпадении из найденной ячейки
выбирается физический адрес страницы
n, позволяющий сформировать
полный физический адрес элемента данных, находящегося в ОП. Если
совпадение не произошло, то трансляция адресов осуществляется обыч-
ными
методами
через
таблицы
сегментов
и
страниц.
Эффективность
преобразования адресов с использованием TLB зависит от коэффициен-
та «попадания» в кэш-памяти, т.е. от того, насколько редко приходится
обращаться к табличным методам трансляции адресов. Учитывая прин-
цип локальности программ и данных, можно сказать, что при первом
обращении к странице, расположенной в ОП, физический адрес опреде-
ляется
с
помощью таблиц
и
загружается
в соответствующую ячейку
TLB. Последующие обращения к странице выполняются с использова-
нием
TLB.
-
Методы ускорения процессов обмена между ОП и ВЗУ
Эффективная
скорость
обмена
между
оперативным
и
внешним
уровнями памяти в значительной степени определяется затратами на
поиск секторов или блоков в накопителе ВЗУ. Для уменьшения влияния
затрат
времени
поиска
информации
на
скорость
обмена
используют
традиционные методы
буферизации и распараллеливания. Метод бу-
феризации заключается в использовании так называемой дисковой кэш-
памяти.
Дисковый кэш уменьшает среднее время обращения к диску.
Это достигается за счёт того, что копии данных, находящихся в диско-
вой памяти, заносятся в полупроводниковую память. Когда необходи-
мые
данные
оказываются
находящимися
в
кэше,
время
обращения
значи-
тельно
сокращается.
За
счет
исключения
задержек,
связанных
с
позицио-
нированием головок, время обращения может быть уменьшено в 2–10 раз.Дисковый
кэш
может
быть
реализован
программно
или
аппаратно.
Программный дисковый кэш – это буферная область в ОП, пред-
назначенная для хранения считываемой с диска информации. При по-
ступлении запроса на считывание информации с диска вначале произ-
водится
поиск
запрашиваемой
информации
в
программном
кэше.
При наличии в кэше требуемой информации она передаётся в про-
цессор. Если она отсутствует, то осуществляется поиск информации на
диске. Считанный с диска информационный блок заносится в буферную
область ОП (программный дисковый кэш). Программа, управляющая
дисковой кэш-памятью, осуществляет также слежение и за работой дис-
ка. Весьма хорошую производительность показывают программы Smart
Drv, Ncache и Super PC-Kwik. Иногда для программного кэша использу-
ется дополнительная или расширенная память компьютера.
Аппаратный дисковый кэш – это встроенный в контроллер диска кэш-буфер с ассоциативным принципом адресации информационных блоков. По запросу на считывание информации вначале производится поиск запрашиваемого блока в кэше. Если блок находится в кэше, то он передаётся в ОП. В противном случае информационный блок считыва- ется с диска и заносится в кэш для дальнейшего использования. При по- ступлении запроса на запись информационный блок из ОП заносится вначале в дисковый кэш и лишь затем (после выполнения соответству- ющих операций по поиску сектора) – на диск, при этом обычно копия блока в дисковом кэше сохраняется. Запись информационного блока из ОП в кэш производится на место блока, копия которого сохранена на диске. Для управления процессами копирования вводятся специальные указатели, которые определяют, сохранена ли данная копия на диске,
к какому информационному блоку обращение производилось ранее других и т.п. Копирование блока на диск производится по завершении операции поиска и не связано непосредственно с моментом поступле- ния запроса.
Второй способ, позволяющий уменьшить снижение эффективной скорости обмена, вызванное операциями поиска на диске, связан с ис- пользованием нескольких накопителей на диске. Все информацион- ные блоки распределяются по нескольким накопителям, причём так, чтобы суммарная интенсивность запросов по всем накопителям была одинаковой, а запросы по возможности чередовались. Если известны интенсивности запросов к каждому информационному блоку, то можно ранжировать эти блоки, а если при этом известны и логические связи между блоками, то связанные блоки с примерно одинаковыми интен- сивностями запросов должны размещаться в разных накопителях. Это позволяет совместить операции обмена между ОП и одним из накопи- телей с
операциями
поиска
очередного
блока
в
других
накопителях.
-
1 ... 68 69 70 71 72 73 74 75 76