Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Виртуализация памяти. Классы виртуальной памяти ⇐ ПредыдущаяСтр 5 из 5
· Виртуализация оперативной памяти осуществляется совокупностью аппаратных средств процессора и программных средств ОС и включает решение следующих задач: · размещение данных (образов процессов или их частей) в запоминающих устрой- ствах разного типа: частично – в оперативной памяти, частично – на диске; · выбор образов процессов или их частей для перемещения из оперативной памя- ти на диск и обратно; · перемещение данных между памятью и диском; · преобразование виртуальных адресов в физические. Решение этих задач осуществляется автоматически, без участия программиста, и не отображаются в логике работы приложений. · Виртуализация памяти может быть осуществлена на основе двух подходов – свопинга и механизма виртуальной памяти. Свопинг (swapping). Между оперативной памятью и диском перемещаются образы процессов Более простой в реализации способ, чем виртуальная память. Однако обла- дает избыточностью при подкачке или выгрузке: часто для активизации процесса или освобождения памяти не требуется перемещение всего образа процесса. Избыточность приводит к замедлению работы системы и неэффективному использованию памяти. Кроме того, невозможно загрузить для выполнения процесс, виртуальное адресное про- странство которого превышает имеющуюся в наличии свободную память. Как основной механизм управления памятью в современных ОС почти не использует- ся. В некоторых ОС, например, версиях Unix, основанных на коде SVR4, свопинг приме- няется как дополнительный к виртуальной памяти, включающийся только при серьезных перегрузках системы. Виртуальная память (virtual memory). Между оперативной памятью и диском пе- ремещаются части (сегменты, страницы – см. ниже) образов процессов. В зависимости от способа структуризации виртуального адресного пространства, опре- деляющего преобразование виртуальных адресов в физические, выделяется три класса виртуальной памяти. · Страничное распределение. Единицей перемещения между памятью и диском является страница – часть виртуального адресного пространства фиксированного и небольшого объема. · Сегментное распределение. Единицей перемещения между памятью и диском является сегмент – часть виртуального адресного пространства произвольного объе-
ма, содержащая осмысленную с некоторой точки зрения совокупность данных (под- программу, массив и т.д.). · Сегментно-страничное распределение. Объединяет элементы предыдущих клас- сов. Виртуальное адресное пространство структурируется иерархически: делится на сег- менты, а затем сегменты делятся на страницы. Единицей перемещения между памятью и диском является страница. Для временного хранения вытесненных на диск сегментов и страниц отводится либо специальная область, либо специальный файл, обычно называемые странич- ным файлом (page file, paging file) или, по традиции, файлом свопинга. Текущий размер страничного файла влияет на возможности работы ОС следую- щим образом: чем больше файл, тем больше одновременно работающих приложе- ний, но тем медленнее их работа из-за многократной перекачки перемещаемых эле- ментов на диск и обратно. Размер страничного файла в современных ОС является настраиваемым парамет- ром, который выбирается администратором системы для достижения компромисса между числом одновременно выполняемых приложений и быстродействием системы. Этот размер устанавливается в панели управления, пункт «система», вкладка «до- полнительно» – «параметры быстродействия». Страничное распределение · Общая схема Виртуальное адресное пространство каждого процесса делится на части одинако- вого, фиксированного для данной системы размера, называемые виртуальными стра- ницами (virtual pages). В общем случае размер виртуального адресного пространства не является кратным размеру страницы, поэтому последняя страница каждого про- цесса дополняется фиктивной областью. Вся оперативная память машины также делится на части такого же размера, на- зываемые физическими страницами (блоками, кадрами). Для каждого процесса ОС создает таблицу страниц – информационную структу- ру, содержащую записи обо всех виртуальных страницах процесса. Схема страничного распределения памяти приведена на рис. 3.3. При создании процесса его виртуальные страницы загружаются в оперативную па- мять; в случае нехватки последней часть виртуальных страниц может быть вытесне-
на на диск. Смежные виртуальные страницы не обязательно располагаются в смежных физических страницах.
Кэширование данных · Память вычислительной машины, представленная совокупностью запоминающих устройств (ЗУ) различных видов, может быть иерархизирована по следующим основ- ным признакам: · время доступа к данным; · объем; · стоимость хранения данных в расчете на один бит. Конкретные значения этих характеристик изменяются очень быстро, поэтому в данном случае важны не столько их абсолютные значения, сколько соотношение для разных типов запоминающих устройств. Иерархия ЗУ приведена на рис. 3.9. Закономерность такова: чем больше быстродействие, тем больше стоимость хра- нения данных в расчете на один бит и меньше объем устройства. Кэш-память пред- ставляет некоторое компромиссное решение этой проблемы. · Кэш-память (cache) – это способ организации совместного функционирования двух типов запоминающих устройств, отличающихся временем доступа и стоимос- тью хранения данных, который позволяет уменьшить среднее время доступа к дан- ным за счет динамического копирования в “быстрое” ЗУ наиболее часто используе- мой информации из “медленного” ЗУ. Механизм кэш-памяти прозрачен для пользователя: все перемещения данных де- лаются автоматически системными средствами. Кэш-памятью часто называют не только способ организации работы двух типов запоминающих устройств, но и одно из устройств – “быстрое” ЗУ. Оно стоит дороже и, как правило, имеет сравнительно небольшой объем. Медленное ЗУ из этой пары назовем основной памятью, быстрое представлено кэш-памятью. · Кэширование – универсальный метод, пригодный для ускорения доступа к опе- ративной памяти, к диску и другим видам ЗУ. Так, в качестве составляющих пары «основная память – кэш-память» могут выступать: оперативная память – быстро- действующая статическая память; система ввода-вывода – буферы в оперативной памяти (или специальная кэш-память). Функционирование кэш-памяти Рассмотрим одну из возможных схем кэширования. Содержимое кэш-памяти представляет собой совокупность записей обо всех заг- руженных в нее элементах данных из основной памяти. Каждая запись об элемен- те данных включает в себя: - значение элемента данных; - адрес, который этот элемент данных имеет в основной памяти; - управляющую информацию для реализации алгоритма замещения, обычно – признак модификации и признак обращения к данным за некоторый последний период времени. При каждом обращении к основной памяти по физическому адресу просматрива- ется содержимое кэш-памяти с целью определения, не находятся ли там нужные дан- ные. Поиск нужных данных осуществляется по содержимому – взятому из запроса значению поля адреса в оперативной памяти. Далее возможно одно из двух: · произошло кэш-попадание – данные обнаружены в кэш-памяти; они считываются из кэш-памяти и результат передается источнику запроса; · произошел кэш-промах (cache-miss) – нужных данных нет; они считываются из ос- новной памяти, передаются источнику запроса и одновременно копируются в кэш-память. Покажем, что среднее время доступа к данным зависит от вероятности попада-
ния в кэш. Пусть имеется основное запоминающие устройство со средним временем доступа к данным t1 и кэш-память, имеющая время доступа t2 (t2<t1). Обозначим через t сред- нее время доступа к данным в системе с кэш-памятью, а через p -вероятность попа- дания в кэш. По формуле полной вероятности имеем: t = t1((1 – p) + t2p. Видно, что среднее время доступа изменяется от среднего времени доступа в основ- ное ЗУ (при р=0) до среднего времени доступа непосредственно в кэш-память (при р=1). Таким образом, использование кэш-памяти имеет смысл только при высокой веро- ятности кэш-попадания. Эта вероятность, в свою очередь, зависит от многих раз- личных факторов. Тем не менее в реальных системах вероятность попадания в кэш очень высока и составляет более 0.9. Такое высокое значение вероятности нахож- дения данных в кэш-памяти связано с наличием у данных объективных свойств: про- странственной и временной локальности. Пространственная локальность. Если произошло обращение по некоторому ад- ресу, то с высокой степенью вероятности в ближайшее время произойдет обращение к соседним адресам. Временная локальность. Если произошло обращение по некоторому адресу, то сле- дующее обращение по этому же адресу с большой вероятностью произойдет в бли- жайшее время. На практике в кэш-память считывается не один элемент данных, к которому про- изошло обращение, а целый блок данных, что увеличивает вероятность попадания в кэш при последующих обращениях. Проблемы кэширования · Вытеснение данных их кэша в основную память В процессе работы содержимое кэш-памяти постоянно обновляется, а значит, пе- риодически данные должны из нее вытесняться. Вытеснение предполагает объявле- ние соответствующей области кэша свободной (сброс бита действительности) и, если вытесняемые данные за время нахождения в кэше были изменены, копирование дан- ных в основную память. Методы выбора данных для вытеснения зависят от способа отображения основной памяти на кэш и базируются на предположениях о свойствах данных. Реально как пра- вило учитывается интенсивность обращения к данным. В некоторых алгоритмах заме- щения предусматривается первоочередная выгрузка модифицированных данных. Из-за непредсказуемости вычислительного процесса ни один алгоритм замещения данных не может быть максимально быстрым и одновременно гарантировать макси-
мально возможную вероятность кэш-попаданий. Поэтому разработчики ограничивают- ся рациональными решениями, по крайней мере, не сильно замедляющими работу кэша. · Согласование данных кэша и основной памяти при записи в последнюю Проблема заключается в том, что при записи данных в основную память их копия в КЭШе (если она там есть) становится недостоверной. Для решения этой проблемы типич- ны два подхода. Сквозная запись (write through). Если данные по запрашиваемому адресу отсут- ствуют в кэше, то запись выполняется только в основную память, в противном слу- чае – одновременно в кэш и основную память. Обратная запись (write back). Если данные по запрашиваемому адресу отсут- ствуют в кэше, то запись выполняется только в основную память, в противном слу- чае – только в кэш-память. Во втором случае устанавливается признак модифика- ции, указывающий на необходимость записи данных в основную память при вытес- нении их из кэша.
|
||||||||
Последнее изменение этой страницы: 2017-02-06; просмотров: 985; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.226.200.76 (0.031 с.) |