Странично - сегментное распределение.

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

Рис.8.12. Схема преобразования виртуального адреса в физический

Процесс подобного преобразования является достаточно длительным. Чтобы его ускорить и тем самым повысить производительность ЭВМ, применяют быстродействующие ассоциативные ЗУ, т.е. устройства, в которых применяется принцип ассоциативности.

Если в системе реализовано такое устройство, то преобразование ВА в ФА осуществляется по такому принципу, называемому динамическим преобразованием адресов (см. рис. 8.13): ВА, представленный парой чисел (g,p) передается в качестве поискового признака в АЗУ, т.о. VAi первый появляется в ячейке А буфера. Вторым полем ячейки является ФА страницы в ОП. При обнаружении совпадения VAi с содержимым памяти из соответствующей ячейки Асс. Буфера, извлекается соответствующий ФА страницы, позволяющий сформировать полный ФА элемента данных в ОП. Если же VAi не совпадает ни с одной ячейкой АЗУ, то преобразование осуществляется обычным способом через таблицы сегментов и страниц. Эффективность применения динамического преобразования адресов определяется тем, насколько редко используются табличные преобразования. Как правило, при первом обращении к странице, расположенной в ОП, ФА определяется с помощью таблиц и загружается в соответствующую ячейку АЗУ, с тем чтобы последующие обращения к странице могли выполняться с использованием АЗУ.

Рис. 8.13. Механизм динамического преобразования адресов

Свопинг

Разновидностью виртуальной памяти является свопинг.

Для того, чтобы задача могла начать выполняться, она должна быть загружена в ОП, объем которой ограничен.

На рис. 8.14 показан график зависимости коэффициента загрузки про­цессора в зависимости от числа одновременно выполняемых процессов и до­ли времени, проводимого этими процессами в состоянии ожидания ввода-вывода.

Рис 8.14. Зависимость загрузки процессора от числа задач и интенсивности ввода/вывода

Экспериментально выведена зависимость загрузки процессора от числа одновременно выполняемых задач и от интенсивности вв/выв. Из рисунка видно, что для того, чтобы загрузить процессор на 90%, достаточно 3-х задач с небольшой интенсивностью ввода-вывода, а чтобы обеспечить такую же загрузку интерактивными задачами с интенсивным вводом-выводом, потребуется 10 таких задач. Объем же ОП ограничен. Чтобы увеличить уровень мультипрограммирования, и был предложен метод организации вычислительного процесса, называемый свопингом. В соответствии с этим методом некоторые процессы (задачи), обычно находящиеся в состоянии ожидания, целиком могут отгружаться (откачиваться) на диск, а на их место подгружаться другие. При этом программа-планировщик ОС не исключает их из своего рассмотрения и при наступлении условий, в которых возможно выполнять некоторую задачу, находящуюся в области свопинга на диске, эта задача перемещается в ОП. Существуют различные алгоритмы отгрузки процессов на диск и подкачивания других процессов, а также различные способы выделения оперативной и дисковой памяти загружаемому процессу.