Страничный способ организации виртуальной памяти

Как уже упоминалось, при страничном методе организации виртуальной памяти все куски программки, на которые она разбивается (кроме последней ее части), получаются схожими. Схожими полагаются и единицы памяти, которые предоставляются для размещения фрагментов программки. Эти однообразные части именуют страничками и молвят, что оперативка разбивается на физические странички, а программка — на виртуальные Страничный способ организации виртуальной памяти странички. Часть виртуальных страничек задачки располагается в оперативки, а часть — во наружной. Обычно место во наружной памяти, в качестве которой в абсолютном большинстве случаев выступают накопители на магнитных дисках (так как они относятся к быстродействующим устройствам с прямым доступом), именуют файлом подкачки, либо страничным файлом (paging file). Время Страничный способ организации виртуальной памяти от времени этот файл именуют swap-файлом, тем подчеркивая, что записи этого файла — странички — замещают друг дружку в оперативки. В неких операционных системах выгруженные странички размещаются не в файле, а в особом разделе дискового места.

Разбиение всей оперативки на странички схожей величины, при этом кратной степени двойки, приводит к тому, что заместо Страничный способ организации виртуальной памяти одномерного адресного места памяти можно гласить о двухмерном. 1-ая координата адресного места — это номер странички, 2-ая координата — номер ячейки снутри избранной странички (его именуют индексом). Таким макаром, физический адресок определяется парой (Рр, i), а виртуальный адресок — парой (Pv, i), где Pv — номер виртуальной странички, Рр — номер физической странички Страничный способ организации виртуальной памяти, i — индекс ячейки снутри странички. Количество битов, отводимое под индекс, определяет размер странички, а количество битов; отводимое под номер виртуальной странички, — объем потенциально доступной для программки виртуальной памяти. Отображение, осуществляемое системой во время выполнения, сводится к отображению Pv в Рр и приписыванию к приобретенному значению битов адреса, задаваемых величиной Страничный способ организации виртуальной памяти i. При всем этом нет необходимости ограничивать число виртуальных страничек числом физических, другими словами не поместившиеся странички можно располагать во наружной памяти, которая в этом случае служит расширением оперативной.

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

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

o только чтение;

o чтение и запись;

o только выполнение.

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

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

Напомним, что метод LFU выбирает для замещения ту страничку, на которую не было ссылки в протяжении более долгого периода времени. Метод LRU сравнивает c каждой страничкой время ее последнего использования. Для замещения выбирается та страничка, которая подольше всех не использовалась.

Для Страничный способ организации виртуальной памяти использования дисциплин LRU и LFU в микропроцессоре должны быть надлежащие аппаратные средства. В дескрипторе странички располагается бит воззвания (на рис. 3.5 предполагается, что этот бит размещен в последнем поле), который становится единичным при воззвании к дескриптору.


Рис. 3,5. Страничный метод организации виртуальной памяти

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

Для абсолютного большинства современных операционных систем свойственна дисциплина замещения страничек LRU как самая действенная. Так, эта самая дисциплина употребляется в OS/2 и в Linux. Но в Страничный способ организации виртуальной памяти операционных системах Windows NT/2000/XP разработчики, желая сделать их очень независящими от аппаратных способностей микропроцессора, отказались от этой дисциплины и применили правило FIFO. А для того чтоб как-то восполнить неэффективность правила FIFO, была введена «буферизация» тех страничек, которые должны быть записаны в файл подкачки на диск (В системе Windows NT Страничный способ организации виртуальной памяти файл с выгруженными виртуальными страничками носит заглавие PageFile.sys. Таких файлов может быть несколько. Их совокупный размер должен быть более, чем объем физической памяти компьютера плюс 11 Мбайт, нужных для самой Windows NT. В системах Windows 2000 размер файла PageFile.sys намного превосходит объем установленной физической памяти и Страничный способ организации виртуальной памяти нередко добивается многих сотен мегабайтов.) либо просто расформированы. Принцип буферизации прост. До того как замещаемая страничка вправду окажется во наружной памяти либо просто расформированной, она помечается как кандидат на выгрузку. Если в последующий раз произойдет воззвание к страничке, находящейся в таком «буфере», то страничка никуда не выгружается и уходит в конец перечня Страничный способ организации виртуальной памяти FIFO. В неприятном случае страничка вправду выгружается, а на ее место в «буфер» попадает последующий «кандидат». Величина такового «буфера» не может быть большой, потому эффективность страничной реализации памяти в Windows NT/2000/XP намного ниже, чем в других операционных системах, и явление пробуксовки начинается даже при значительно большем объеме Страничный способ организации виртуальной памяти оперативки.

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

Как и в случае с сегментным методом организации Страничный способ организации виртуальной памяти виртуальной памяти, страничный механизм приводит к тому, что без особых аппаратных средств он значительно замедляет работу вычислительной системы. Потому обычно употребляется кэширование страничных дескрипторов. Более действенным механизмом кэширования является ассоциативный кэш. Конкретно таковой ассоциативный кэш и сотворен в 32-разрядных процессорах i80x86. Начиная с i80386, который Страничный способ организации виртуальной памяти поддерживает страничный метод рассредотачивания памяти, в этих процессорах имеется кэш на 32 страничных дескриптора. Так как размер странички в этих процессорах равен 4 Кбайт, может быть резвое воззвание к памяти размером 128 Кбайт.

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

1-ое — это то, что страничная трансляция виртуальной памяти просит существенных затратных расходов. По правде, таблицы страничек необходимо тоже располагать в памяти. Не считая того, эти таблицы Страничный способ организации виртуальной памяти необходимо обрабатывать; конкретно с ними работает диспетчер памяти.

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

Для того чтоб избежать второго недочета, постаравшись сохранить достоин­ства страничного метода рассредотачивания памяти, был предложен очередной метод — сегментно-страничный. Правда, за счет роста затратных расходов на его реализацию.


strani-i-nacionalnosti-na-ispanskom.html
strani-s-nizkimi-dohodami.html
strani-vostochnoj-evropi-kompleksnaya-fgh-i-egh-metodi-obucheniya-geo-ih-klassifikaciya-primenenie-razlichnih-metodov-obucheniya-pri-izuchenii-ve.html