Виртуальная память .
Страничная организация .
ОП разделяется на ряд непрерывных блоков равной длины. Обычно размер блоков 512 или 1024 слов (2-4 КВ) . Не требуется , чтобы программы и данные занимали непрерывные области памяти , вместо этого они распределяются в ОП на страничной основе. Любой блок ОП м.б. назначен любой странице. При этом мы уже не сталкиваемся с проблемой фрагментации т.к. размер страницы ВП обычно равен размеру блока ОП. Но существует проблема внутренней фрагментации из-за неполного заполнения страницы.
Процесс может выполняться если его текущая страница находится в ОП. При необходимости страницы переписываются из ВЗУ в ОП и размещаются в блоках ОП. Блоки ОП начинаются с адресов , кратных фиксированному размеру страницы. Обычно не все страницы процесса находятся в ОП одновременно , и в таблице блоков должно быть указано , есть ли адресуемая страница в ОП, и если есть, то где именно , а если нет - то в каком месте ВЗУ ее можно найти .
Типичная строка таблицы страниц выглядит следующем образом :
r - бит присутствия страницы в ОП (0 - нет , 1 - есть) , если страницы нет , то s - ее адрес во внешней памяти , а если есть , то p` - номер ее блока. p` - не действительный адрес ОП.
Чтобы найти адрес ОП надо p` умножить на размер блока. Таблица прямого отображения страниц м.б. очень большой и хранится обычно в ОП, и на поиск в таблице тратятся системные ресурсы. Поэтому необходимы более высоко скоростные способы преобразования адресов. Одним из способов является размещение таблицы в высокоскоростной КЕШ - памяти, другой - использование ассоциативной памяти.
Ассоциативная память - память, в которую к ячейкам обращаются по их содержимому , а не по их адресу. Поиск в ассоциативной памяти выполняется параллельно (но только по одному полю записи ) благодаря существующей аппаратурной реализации ассоциативной памяти . Когда работающая программа обращается по виртуальному адресу V=( p, d ) , все строки таблицы , хранящиеся в ассоциативной памяти , одновременно сравниваются с адресом страницы f . Находится нужная строка , p` - адрес блока , d - смещение , p` + d - реальный адрес .
Чтобы концепцию ВП можно было реализовать на практике , необходимо обеспечить быстрое динамическое преобразование адресов . Однако применение КЭШ - памяти для реализации чисто прямого отображения или ассоциативной памяти для реализации чисто ассоциативного отображения обходится слишком дорого .
Нужна некая компромиссная схема , которая обладала бы основными преимуществами методов , использующих КЭШ - память или АП , по которой обходилась бы гораздо дешевле .
Ассоциативно - прямое отображение .
Этот механизм предусматривает использование Ассоциативной Памяти , способной хранить лишь небольшую часть полной таблицы отображения страниц . В строках этой таблицы отображаются только те страницы , к которым были последние ссылки , из соображения , что если к странице обращались недавно , то по всей вероятности , обратятся и в ближайшем будущем .
Динамическое преобразование адресов в данном случае осуществляется следующим образом . Когда работающая программа обращается к виртуальному адресу V=( p , b ) , механизм преобразования адресов сигнала пытается найти структуру p частичной ассоциативной таблицы . Если страница там есть , то ассоциативная таблица выдает p` как номер кадра , соответствующего виртуальной страницы p и p` сцепляется со смещением
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.