Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Тематический обзор 4 страница

Читайте также:
  1. A) Шырыш рельефінің бұзылысы 1 страница
  2. A) Шырыш рельефінің бұзылысы 2 страница
  3. A) Шырыш рельефінің бұзылысы 2 страница
  4. A) Шырыш рельефінің бұзылысы 3 страница
  5. A) Шырыш рельефінің бұзылысы 3 страница
  6. A) Шырыш рельефінің бұзылысы 4 страница
  7. A) Шырыш рельефінің бұзылысы 4 страница

 

Наборно-ассоциативная архитектура кэша позволяет каждому блоку кэшируе­мой памяти претендовать на одну из нескольких строк кэша, объединенных в набор (set). Можно считать, что в этой архитектуре есть несколько параллельно и согла­сованно работающих каналов прямого отображения, где контроллеру кэша при­ходится принимать решение о том, в какую из строк набора помещать очередной блок данных.

В простейшем случае каждый блок памяти может помещаться в одну из двух строк (Two Way Set-Associative Cache – двухканальный наборно-ассоциативный кэш). Такой кэш должен содержать два банка памяти тегов (рис. 7).

 

Рис. 6. Секторированный кэш прямого отображения

Рис. 7. Двухканальный наборно-ассоциативный кэш

 

Номер набора (индекс), в котором может отображаться затре­бованный блок дан­ных, однозначно определяется средней частью адреса (как номер строки в кэше прямого отображения). Строка набора, отображающая требуемый блок, опреде­ляется сравнением тегов (как и в ассоциативном кэше), параллельно выполняе­мым для всех каналов кэша. Кроме того, с каждым набором должен быть связан признак, определяющий строку набора, подлежащую замещению новым блоком данных в случае кэш-промаха. Канди­датом на замещение обычно выбирается строка, к которой дольше всего не обра­щались (алгоритм LRU– Least Recently Used). При относительно большом коли­честве каналов (строк в наборе) прибегают к некоторому упрощению – алгоритм Pseudo-LRU для четырех строк (Four Way Set Associative Cache) позволяет при­нимать решения, используя всего 3 бита. Возможно также применение алгоритма замещения FIFO (первым вошел – первым вышел) или даже случайного (random) замещения, что проще, но менее эффективно.

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

 

3.2.5. Ассоциативный кэш

 

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

 

3.3. Оперативная память

 

3.3.1. Логическое распределение оперативной памяти

 

Логическое распределение оперативной памяти определяется не только при­меняемой операционной системой, но и особенностями аппаратной реализа­ции IBM-совместимых PC. Знание строения ОЗУ необходимо для программ­ной оптимизации системы.

Можно выделить пять важнейших логических областей оперативной памяти:

· Стандартная оперативная память (Conventional Memory);

· ЕМS-память (Expanded Memory Specification) – дополнительная память;

· UMA (Upper Memory Area) – верхняя память;

· HMA (High Memory Area);

· XMS (Extended Memory Specification) – расширенная память

 

3.3.2. Стандартная оперативная память

 

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

В то время как внутри PC обычно все выражается в двоичной системе счисле­ния (0 или 1), для адресации памяти применяется шестнадцатеричная, харак­теризующаяся наличием символа “h” после значения.

Стандартная память начинается от адреса 0000:0000 и про­должается до адреса А000:0000, занимая 640Кбайт. Этот невысокий верхний предел был установлен процес­сорами 8088 и 8086. Эти процессоры имели 20-разрядную адресную шину и поэтому могли адресовать только 1 Мбайт памяти (220=l 048 576 байт). В пределах этой памяти выше уровня 640 Кбайт фирмой IBM были зарезер­вированы 384 Кбайта для выполнения внутренних функций, на которых мы остановимся ниже.

В стандартной памяти расположены таблица векторов прерываний, область данных BIOS, операционная система.

 

Таблица векторов прерываний

Само название говорит о том, что речь идет о таблице (состоящей из 256 элементов по 4 байта), в которой находятся вектора прерываний – адреса сервисных программ, входящих в состав операционной системы и BIOS. При этом речь идет о таких базовых функциях, как отображение символа на экране монитора или организация доступа к дисководу или жесткому диску и т. п. Но так как существуют различные операционные системы и версии BIOS, эти програм­мы-прерывания могут располагаться в различных местах стандартной опера­тивной памяти. В таблице прерываний указано их реальное местоположение. Таблица занимает место 1024 Байт (1 Кбайт) и начинается с адреса 0000h:0000h.

Область данных BIOS

Вслед за таблицей прерываний расположена область данных BIOS объемом 768 Байт. Здесь размещены, например, счетчик таймера, буфер клавиатуры и другая внутренняя информация.

 

Операционная система

Далее в стандартной оперативной памяти расположена опера­ционная систе­ма. Конечно же, она загружается в RAM не полностью, а только частично (ядро). Ядро ОС не имеет постоянного адреса памяти. Его местоположение и размер занимаемой им памяти зависят от операционной системы.

 

Основная область памяти

Далее до адреса A000h:0000h все принадлежит только программам и данным. Этот адрес известен как граница 640 Кбайт, с которой успешно справляются мно­гие PC с процессором выше 80286.

 

3.3.3. UMA

 

Верхняя память – участок памяти от 640Кб до 1 Мб.

Здесь находится информация, которая служит для сопряжения прикладных программ с раз­личными картами расширений, уста­новленными в PC. И поскольку иногда карты расширения, например, видеокарту, называют адаптером (Adapter), эту область памяти коротко называют сегментом адаптера или, поскольку речь идет об области памяти с более высокими адресами, UMA (Upper Memory Area). Эта верхняя память (Upper Memory) располагается по адресам от A0000h до FFFFFh (от 640 Кбайт до 1 Мбайт), ее размер составляет 384 Кбайт.

Рассматриваемая область памяти не однородна. В UMA размешается видеопа­мять и ПЗУ BIOS, а также могут находиться модули постоянной и оператив­ной памяти, конструктивно расположенные на картах расширения, подклю­ченных к PC. Поэтому среди этих блоков некоторые являются зарезервиро­ванными (пользователь не может их исполь­зовать), другие, напротив, свобод­ны. Свободные блоки, поскольку они находятся в верхней памяти, также называют UMB (Upper Memory Block).

 

3.3.4. EMS

 

Как уже упоминалось ранее, в верхней памяти имеются изрядные «дыры», которые представляют собой свободную память, самостоятельно не иденти­фицируемую системой. Пустуют, как правило, область расширения системно­го ROM BIOS или часть области под дополни­тельные модули ROM. Исполь­зовать эту память позволяет метод EMS (Expanded Memory Specification), появившийся прежде всего потому, что программы, использующие большое количество памяти, не могут разместиться в оперативной памяти до 640 Кбайт.

Для того чтобы преодолеть этот барьер, фирмы Lotus, Intel и Microsoft (отсюда название LIM) создали стандарт, который основывается на так называемом переключении банков (Bank Switchings), или блоков (страниц), памяти. В об­ласти UMB между видеобуфером и системным ROM BIOS выделяется неза­нятое «окно» (page frame) размером 64 Кбайт, разделенное на 4 логические страницы по 16 Кбайт. С помощью специального драйвера, например ЕММ386.ЕХЕ, строятся «ото­бражения» до четырех произвольных физических страниц из дополнительной (Expanded) памяти, расположенной на специаль­ной карте расширения, в логические. Поэтому эту память часто называют отображаемой памятью. При необходимости обращения к данным, располо­женным в дополнительной памяти, с помощью драйвера выбирается соответ­ствующее ранее построенное «отображение» физических страниц в логичес­кие. Когда процессор обращается к области памяти, входящей в «окно» (адрес памяти которого ниже 1 Мбайт), аппаратно происходит обращение к соответствую­щим страницам дополнительной памяти на плате расширения. Таким обра­зом, посредством адресации, реализуемой драйвером EMS, можно обращать­ся к 8 Мбайт (стандарт LIM 3.2) или к 32 Мбайт (стандарт LIM 4.0) дополнительной памяти, которая конструктивно расположена на отдельной карте расширения. На PC с процессорами 80386 и выше такая отдельная карта не нужна. EMS здесь может эмулироваться с помощью соответствующих драй­веров.

Для того чтобы использовать EMS-память, необходимо выполнение двух условий:

· прикладные программы должны уметь обращаться к драйверу EMS-па­мяти;

· необходим специальный менеджер памяти (Expanded Memory Manager), со­кращенно EMM, который организует страницы и управляет ими. Ранее, для старых материнских плат, соответствующий драйвер поставлялся на отдельной дискете. В настоящее время этот драйвер входит в стандарт­ные поставки DOS и Windows, в этом случае он соответствует последне­му стандарту LIM и представляет собой файл ЕММ386.ЕХЕ. Этот драй­вер позволяет программно эмулировать дополнительную (Expanded) па­мять в расширенной (Extended) памяти.

 

3.3.5. НМА

 

Первый блок величиной 64 Кбайта непосредственно выше границы 1 Мбайт оперативной памяти обозначают как НМА (High Memory Area). Своему сущест­вованию эта область целиком обязана несколько «ущербной» эмуляции процес­сора 8088 процессором 80286. Дело состоит в следующем. Вся стандартная па­мять, помимо того, что может быть представлена в виде 16 неперекрываемых блоков размером 64 Кбайта каждая (0–F), также может быть представлена и в виде перекрываемых 64 Кбайтных областей, называемых сегментами, которые, вообще говоря, могут начинаться через каждые 16 байт. Максимальный пол­ный адрес в виде сегмент: смещение, по которому может обратиться процессор 8088, – это FFFF:000Fh (20 адресных линий). Если увеличить это значение хотя бы на единицу, то произойдет циклический перенос (wrap around) и значе­ние адреса станет 0000:0000. Для процессора 80286 и выше в общем случае этого не случится, так как адресная шина этих процессоров больше 20 разрядов, но адрес памяти при этом превысит границу 1 Мбайт. Чтобы исправить эту ошибку, фир­ма IBM предусматривает на материнских платах PC специальные аппаратные средства, «заставляющие» процессор 80286 выполнять переход на низшие адре­са, как это было при работе процессора 8088. Однако такой переход может быть отменен чисто программным путем. Таким образом, PC с процессором не ниже 80286 в реальном режиме может дополнительно адресовать память в пределах FFFF:0010-FFFF:FFFFh, т.е. практически целый сегмент размером 64 Кбайт минус 16 байт. Особенно важным для понимания является тот факт, что область НМА доступна, по сути, в реальном режиме работы процессора.

 

3.3.6. XMS

 

В 1982 году появилась возможность использования расширенной памяти.

Расширенная память – часть оперативной памяти в компьютерах с микропроцессорами Intel-80286, расположенная выше первого мегабайта.

XMS (eXtended Memory Specification) обозначает всю память выше границы 1 Мбайт, включая также НМА.

Чтобы иметь доступ к этой памяти, необходим специальный драйвер, с помо­щью которого данные пересылаются из стандартной памяти в расширенную и обратно. Выполнение программ, размещенных в расширенной памяти, не предусмотрено. Драйвер, реализующий XMS, переводит процессор в защищенный режим, т. е. режим, в котором можно адресовать всю память.

 

3.4. Страничная и сегментная организация памяти. Виртуальная память

 

3.4.1. Режимы процессора

 

32-разрядный про­цессор может работать в одном из двух режимов и переключаться между ними достаточно быстро:

Real Address Mode – режим реальной адресации (или просто реальный режим – Real Mode), полностью совместим с 8086. В этом режиме возможна адресация до 1 Мбайт физической памяти.

Protected Virtual Address Mode – защищенный режим виртуальной адресации (или просто защищенный режим – Protected Mode). В этом режиме процессор позво­ляет адресовать до 4 Гбайт физической памяти, через которую при использовании механизма страничной адресации могут отображаться до 64 Тбайт виртуальной памяти каждой задачи.

Существенным дополнением является Virtual 8086 Mode – режим виртуального процессора 8086. Этот режим является особым состоянием задачи защищенного режима, в котором процессор функционирует как 8086.

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

 

3.4.2. Организация памяти

 

Ячейка памяти – элементарная адресуемая единица запо­минающего устройства.

Память для 32-разрядных процессоров 80х86 подразделяется на байты (8 бит), слова (16 бит), двойные слова (32 бит) и учетверенные слова (64 бит). Все пространство памяти разбивается на параграфы – области из 16 смежных байт, начиная с нулевого адреса.

Более крупными единицами организации памяти являются страницы и сегменты.

Сегмент – единица памяти, которая в зависимости от режима работы процессора может быть 64 Кбайт, 1Мбайт или 4 Гбайта.

Страница памяти – единица памяти, обычно 4Кбайта.

Страничный сегмент – сегмент в памяти, разделенный на страницы.

Память может логически организовываться в виде одного или множества сегмен­тов переменной длины (в реальном режиме – фиксированной). Кроме сегмента­ции, в защищенном режиме возможно разбиение (Paging) логической памяти на страницы размером 4 Кбайта, каждая из которых может отображаться на любую область физической памяти. Начиная с 5-го поколения появилась возможность увеличения размера страницы до 4 Мбайт. Сегментация и разбиение на страницы могут применяться в любых сочетаниях. Сегментация является средством организации логической памяти на прикладном уровне. Разбиение на страницы применяется на системном уровне для управления физической памятью. Сегмен­ты и страницы могут выгружаться из физической оперативной памяти на диск и по мере необходимости подкачиваться с него обратно в физическую память. Таким образом реализуется виртуальная память.

Применительно к памяти различают три адресных пространства: логическое, линейное и физическое. Основным режимом работы 32-разрядных процессоров считается защищенный режим, в котором работают все механизмы преобразова­ния адресных пространств.

Логический адрес, также называемый виртуальным, состоит из селектора сегмента и эффективного адреса, называе­мого также смещением (offset).

Селектор сегмента хранится в старших 14 битах сегментного регистра (CS, DS, ES, SS, FS или GS), участвующего в адресации конкретного элемента памяти. По значению селектора из специальных таблиц, хранящихся в памяти, извлекается начальный адрес сегмента.

Эффективный адрес вычисляется по формуле

EA=Base+Index · Scale+Disp,

где Смещение (Displacement или Disp) – 8-, 16- или 32-битное число, включенное в команду;

База (Base) – содержимое базового регистра;

Индекс (Index) – содержимое индексного регистра;

Масштаб (Scale) – множитель (1, 2, 4 или 8), указанный в коде инструкции.

Блок сегментации транслирует логическое адресное пространство в 32-битное пространство линейных адресов. Линейный адрес образуется сложением базового адреса сегмента со смещением.

Базовый адрес – адрес, относительно которого указываются другие адреса в сегменте данных.

Смещение – величина, добавляемая к базовому адресу для получения исполнительного адреса.

Базовый адрес сегмента в реальном режиме образуется умножением содержимого используемого сегментного регис­тра на 16 (как и в 8086). В защищенном режиме базовый адрес загружается из дес­криптора, хранящегося в таблице, по селектору, загруженному в используемый сегментный регистр.

32-битный физический адрес памяти образуется после преобра­зования линейного адреса блоком страничной переадресации. Он выводится на внешнюю шину адреса процессора. В простейшем случае (при отключенном блоке страничной переадресации) физический адрес совпадает с линейным. Включенный блок страничной переадресации осуществляет трансляцию линейного адреса в физи­ческий страницами размером 4 Кбайт (для старших поколений процессоров так­же возможны страницы размером 2 или 4 Мбайт). Блок обеспечивает расшире­ние разрядности физического адреса процессоров шестого поколения до 36 бит.

Шина адреса разрядностью 32/64 бита позволя­ет адресовать 4/64 Гбайта физической памяти, но в реальном режиме доступен только 1 Мбайт младших адресов.

 

3.4.3. Концепция виртуальной памяти

 

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

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

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

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

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

 


3.4.4. Страничная организация памяти

 

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

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

Для увеличения эффективности такого типа схем в процессорах используется специальная полностью ассоциативная кэш-память, которая также называется буфером преобразования адресов (TLB).

Поиск в таблицах страниц, расположенных в основной памяти, и загрузка TLB может осуществляться либо программным способом, либо специальными аппаратными средствами. В последнем случае для того чтобы предотвратить возможность обращения пользовательской программы к таблицам страниц, с которыми она не связана, предусмотрены специальные меры. С этой целью в процессоре предусматривается дополнительный регистр защиты, содержащий описатель (дескриптор) таблицы страниц или базово-граничную пару. База определяет адрес начала таблицы страниц в основной памяти, а граница - длину таблицы страниц соответствующей программы. Загрузка этого регистра защиты разрешена только в привилегированном режиме. Для каждой программы операционная система хранит дескриптор таблицы страниц и устанавливает его в регистр защиты процессора перед запуском соответствующей программы.

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

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

 

3.4.5. Сегментация памяти

 

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

Обычно в подобных системах обмен информацией между приложениями строится на базе сегментов. Поэтому сегменты являются отдельными логическими единицами информации, которые необходимо защищать, и именно на этом уровне вводятся различные режимы доступа к сегментам. Можно выделить два основных типа сегментов: программные сегменты и сегменты данных (сегменты стека являются частным случаем сегментов данных). Поскольку общие программы должны обладать свойством повторной входимости, то из программных сегментов допускается только выборка команд и чтение констант. Запись в программные сегменты может рассматриваться как незаконная и запрещаться системой. Выборка команд из сегментов данных также может считаться незаконной и любой сегмент данных может быть защищен от обращений по записи или по чтению.

В системах с сегментацией памяти каждое слово в адресном пространстве пользователя определяется виртуальным адресом, состоящим из двух частей: старшие разряды адреса рассматриваются как номер сегмента, а младшие - как номер слова внутри сегмента. Наряду с сегментацией может также использоваться страничная организация памяти. В этом случае виртуальный адрес слова состоит из трех частей: старшие разряды адреса определяют номер сегмента, средние - номер страницы внутри сегмента, а младшие - номер слова внутри страницы.

Как и в случае страничной организации, необходимо обеспечить преобразование виртуального адреса в реальный физический адрес основной памяти. С этой целью для каждого пользователя операционная система должна сформировать таблицу дескрипторов. Каждый элемент таблицы дескрипторов содержит описатель (дескриптор) сегмента (поля базы, границы и индикаторов режима доступа). При отсутствии страничной организации поле базы определяет адрес начала сегмента в основной памяти, а граница - длину сегмента. При наличии страничной организации поле базы определяет адрес начала таблицы страниц данного сегмента, а граница - число страниц в сегменте. Поле индикаторов режима доступа представляет собой некоторую комбинацию признаков блокировки чтения, записи и выполнения.

Таблицы дескрипторов различных пользователей операционная система хранит в основной памяти. Для определения расположения таблицы дескрипторов выполняющейся программы используется специальный регистр защиты, который загружается операционной системой перед началом ее выполнения. Этот регистр содержит дескриптор таблицы дескрипторов (базу и границу), причем база содержит адрес начала таблицы дескрипторов выполняющейся программы, а граница - длину этой таблицы дескрипторов. Разряды номера сегмента виртуального адреса используются в качестве индекса для поиска в таблице дескрипторов. Таким образом, наличие базово-граничных пар в дескрипторе таблицы дескрипторов и элементах таблицы дескрипторов предотвращает возможность обращения программы пользователя к таблицам дескрипторов и страниц, с которыми она не связана. Наличие в элементах таблицы дескрипторов индикаторов режима доступа позволяет осуществить необходимый режим доступа к сегменту со стороны данной программы. Для повышения эффективности схемы используется ассоциативная кэш-память.

 

3.4.6. Механизм замены (своппирования) страниц

 

Как было упомянуто выше, использование ВП подразумевает применение магнитного диска, на котором хранятся те страницы или сегменты, которые на данный момент не нужны в оперативной памяти.

Метод применения ВП довольно прост: те страницы, с которыми пользователь работает в данный момент, находятся в памяти машины и к ним осуществляется непосредственный доступ. Через определённое время процессору, отработавшему с данной страницей, требуется другая страница, которая подгружается в память с диска. Страница, с которой только что отработали, «вытесняется» на диск, а ни в коем случае не уничтожается.

Довольно часто случается так, что вся реальная память, разбитая на страницы, полностью занята. И при необходимости подгрузить новую страницу, супервизор должен установить, какую страницу перенести на диск, чтобы освободить место для требующейся. Это достаточно сложная задача, так как удалённая страница может понадобиться на следующем этапе, а это может привести к потере времени. Для своппирования страниц в разных программах используются различные стратегии, примеры которых приведены ниже:


Дата добавления: 2015-07-08; просмотров: 136 | Нарушение авторских прав


Читайте в этой же книге: Базовая | ТЕМАТИЧЕСКИЙ ОБЗОР 1 страница | ТЕМАТИЧЕСКИЙ ОБЗОР 2 страница | ТЕМАТИЧЕСКИЙ ОБЗОР 6 страница | Адреса и прерывания последовательных портов | Общие сведения об интерфейсе RS–232C | ГЛОССАРИЙ |
<== предыдущая страница | следующая страница ==>
ТЕМАТИЧЕСКИЙ ОБЗОР 3 страница| ТЕМАТИЧЕСКИЙ ОБЗОР 5 страница

mybiblioteka.su - 2015-2024 год. (0.021 сек.)