Страничная схема функционирования вап
Каждой программе для хранения программного кода выделяется фрагмент ВАП, при чем размер этого АП больше 0 и меньше размера ОП. Каждая программа размещается в ВАП. Коды, адреса для каждой программы начинаются с 0. Для исполнения процесс целиком переносится в ОП и загружается с нулевого адреса. Это не эффективно. Чтобы улучшить используется чисто страничная схема.
Чисто страничная схема
Осуществляется структуризация ОП страницами фиксированной длины. Программа или модули подгружаются в ВАП и подвергаются структуризации в момент загрузки. Структуризация осуществляется тоже страницами фиксированной длины. Программа, которая занимает Q адресов потребует K=Q/L+1 страниц. Сохраняется требование, что размер программы должен не превышать размер ОП. Как и в предыдущем случае для исполнения процесса программный код переносится в ОП, но в этом случае для процесса выделяются любые свободные страницы (могут быть несмежные).
Плюсы:
Появляется возможность параллельно исполнять несколько процессов
Положительный эффект достигается если размер ОП позволяет одновременно разместить не менее 3 – 4 процессов
При перемещении из ВП в ОП происходит изменение адресов (меняется базовый адрес на реальный)
Данный подход повышает производительно ОС в целом.
Минусы:
Размер процесса не может быть больше размера ОП.
Чтобы устранить этот минус используется схема «страничная по требованию»
Схема страничная по требованию
Снимается принципиальное ограничение на размер программного кода. Учитываются следующие моменты:
Различные части программного кода используются с разной интенсивностью
Вводится понятие «локальность вычисления», то есть в течении определенного времени процесс вычислений осуществляется в пределах одной страницы программного кода, то есть присутствие этих страниц в определенный момент времени вовсе не обязательно, поэтому реализуется очевидный механизм: схема «страничная по требованию» позволяет выделять ОП каждому процессу в размере одной страницы
30112011
Основные задачи управления адресными пространствами (АП)
С точки зрения любого АП любой элемент данных характеризуется тремя основными атрибутами: Aв – адрес в виртуальном индексном пространстве, АА – абсолютный адрес архивной среды хранения, АОП – абсолютный адрес в адресном пространстве в оперативной памяти (рабочий адрес).
Между этими атрибутами существует соответствие, устанавливаемое с помощью функции преобразования адресов. Вид функции и способ преобразования зависит от варианта структуризации рассматриваемых АП. Наиболее важным моментом является взаимодействие между архивной средой хранения и рабочим адресным пространством. При этом это взаимодействие рассматривается в момент развития (исполнения) того или иного активного процесса.
Взаимодействие между этими средами основано на решении 4 основных задач управления памяти:
Задача размещения данных в каждой из этих сред (в каждом АП);
Задача перемещения информации в пределах адресных пространств;
Задача преобразования адресов между АП;
Замещение информации в пределах одного АП.
Задача размещения информации
Суть задачи: В результате решения задачи размещения (ЗР) в каком-либо АП выбираются конкретные страницы или сегменты, на которые отображается информация.
Первый вариант – решение этой задачи для страничной по требованию схема функционирования памяти. И то, и другое пространство структурируется страницами фиксированной длины. При этом используются разные алгоритмы для размещения информации в пределах ОП и в пределах виртуального пространства. Это обусловлено двумя факторами:
ОП и ВП значительно отличаются по размерам;
Эти пространства отличаются методами доступа к информации.
При рассмотрении этих задач выводятся следующие коэффициенты:
Размеры NВ >> NОП
Коэффициент расщепления АП: α=L/NВ β= L/NОП , α,β<<1 и α<<β
Для оценки качества решения ЗР понятие фрагментации АП
Внешняя фрагментация: между областями АП, выделенных под что-либо
Внутренняя фрагментация: вследствие неполной занятости страниц или сегментов
Потери от фрагментации влияют на показатели: с увеличением фрагментации уменьшается темп обслуживания процессов и уменьшается коэффициент мультиплексирования АП (связан с количеством процессов, занимающих АП).
Рассмотрим алгоритм для выделения ВП:
Для увеличения скорости размещения в ВП информации выбирается наиболее простой алгоритм и при этом не учитывают возможные потери ВАП.
Алгоритм строится с учетом уменьшения количества обращения к внешнему адресному пространству.
ЗР считается длинным процессом с точки зрения выполнения.
Пример:
NОП=512 Mb NВОП=4Gb
ВАП состоит из последовательных номеров страниц от 0 до max количества страниц.
Минимальной единицы выделения ВАП является целая страница. При развитии процесса программный код или массивы данных помещаются в ВАП. При этом каждому процессу выделяется область ВП, состоящая из смежных страниц.
Для каждого нового процесса номера страниц выделяется в строго возрастающем порядке из неиспользованных страниц. При этом всё ВП условно делиться на два сектора: уже занятое под существующие процессы и свободный сектор (включает в себя нераспределенные на данный момент страницы).
Чтобы помнить что занято, а что не занято, хранят номер первой незанятой страницы М0. ТО есть для идентификации реального свободного пространства системе нужно знать только М0. По мере выполнения, процессы исчезают. В занятом секторе образуются псевдосвободные АП (псевдодыры в адресах).
При функционировании ВАП и решении ЗР псевдосвободные АП во внимание не принимаются. То есть даже если псевдодыры новый процесс размещается с М0. Есть вероятность, что M0 превысит максимум страниц. Выполняются алгоритм, который позволяется все псевдосводные участки собирает в свободный сектор АП. Все занятые адреса смещаются вниз. Всё это называется алгоритм перемещения без переиспользования.
Теперь в ОП. Предыдущий алгоритм не может быть использован, потому что:
Слишком часто будет переполняться
Возникают большие накладные расходы по перемещению занятых и свободных страниц.
В данном случае используется свойство процессов, что запрос на выделение памяти может потребовать только одну страницу. В этом случае для исполнения данного запроса может быть выделена любая свободная страница без ограничения на смежные страницы. Учет свободных и занятых страниц в самом простом случае может осуществляться с помощью двоичного вектора. Количество разрядов соответствует количеству страниц ОП. Занята или не занята фиксируется признаком 0 и 1. При выборе свободной страницы данный вектор сканируется и выбирается первая свободная страница. В неё размещается страница, вызываемая из ВАП.
Если на данный момент времени все станицы заняты, выбирается страница, которая либо может быть освобождена без потери информации (процесс завершен), либо страница, информация с которой может быть перенесена в архивную среду хранения. Выбор и перенос страницы осуществляется путем решения задач перемещения, замещения и преобразования адресов. При этом учитывается, что в составе ОП могут быть страницы резидентных процессов и не резидентных процессов (резидентные – постоянно должны находиться в ОП).
Второй вариант – структуризация адресных пространств страницами переменной длины или сегментами.
Отличие – размер изменяется от 1 до размеров ОП.
Задача размещения для ВАП. Алгоритм решения очень похож на предыдущий, но ВАП структурируется по мере размещения сегментов или страниц, которые могут иметь различный размер. Алгоритмы обладают такими же характеристиками, М0. Алгоритм выталкивания тот же.
Работа с ОП. Структуризация АП ОП осуществляется по мере перемещения сегментов в ОП. При перемещении очередного сегмента выбирается непрерывный участок ОП, размер которого равен или превышается размер выделенного сегмента. Если такой участок найден, сегмент размещается в свободное АП. Если нет свободного АП по размеру сегмента, то в этом случае на основе задачи перемещения осуществляется уплотнение информации. Если после этой операции опять же недостаточно места для выделенного сегмента, осуществляется перенос данных из ОП в архивную среду. Тем самым освобождается место. Самый длины – это перенос.
Для хранения информации в ОП о занятом пространстве нужна сложная структура. Здесь используются структуры типа двунаправленного списка, в строке минимум четыре записи – начало свободного пространства, размер или конечный адрес, следующий и предыдущий куски.
14122011
