Материал: А. Д. Чередов, А. Н. Мальчуков

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам


Виртуальный адрес при сегментной организации памяти может быть представлен парой (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.
      1. Методы ускорения процессов обмена между ОП и ВЗУ


Эффективная скорость обмена между оперативным и внешним уровнями памяти в значительной степени определяется затратами на поиск секторов или блоков в накопителе ВЗУ. Для уменьшения влияния затрат времени поиска информации на скорость обмена используют традиционные методы буферизации и распараллеливания. Метод бу- феризации заключается в использовании так называемой дисковой кэш- памяти. Дисковый кэш уменьшает среднее время обращения к диску. Это достигается за счёт того, что копии данных, находящихся в диско- вой памяти, заносятся в полупроводниковую память. Когда необходи- мые данные оказываются находящимися в кэше, время обращения значи- тельно сокращается. За счет исключения задержек, связанных с позицио- нированием головок, время обращения может быть уменьшено в 2–10 раз.

Дисковый кэш может быть реализован программно или аппаратно.

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

При наличии в кэше требуемой информации она передаётся в про- цессор. Если она отсутствует, то осуществляется поиск информации на диске. Считанный с диска информационный блок заносится в буферную область ОП (программный дисковый кэш). Программа, управляющая дисковой кэш-памятью, осуществляет также слежение и за работой дис- ка. Весьма хорошую производительность показывают программы Smart Drv, Ncache и Super PC-Kwik. Иногда для программного кэша использу-
ется дополнительная или расширенная память компьютера.

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

к какому информационному блоку обращение производилось ранее других и т.п. Копирование блока на диск производится по завершении операции поиска и не связано непосредственно с моментом поступле- ния запроса.

Второй способ, позволяющий уменьшить снижение эффективной скорости обмена, вызванное операциями поиска на диске, связан с ис- пользованием нескольких накопителей на диске. Все информацион- ные блоки распределяются по нескольким накопителям, причём так, чтобы суммарная интенсивность запросов по всем накопителям была одинаковой, а запросы по возможности чередовались. Если известны интенсивности запросов к каждому информационному блоку, то можно ранжировать эти блоки, а если при этом известны и логические связи между блоками, то связанные блоки с примерно одинаковыми интен- сивностями запросов должны размещаться в разных накопителях. Это позволяет совместить операции обмена между ОП и одним из накопи- телей с
операциями поиска очередного блока в других накопителях.
  1. 1   ...   68   69   70   71   72   73   74   75   76
Источник: https://files.student-it.ru/previewfile/151041