Разделы презентаций


виртуальная память

Содержание

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю. Physics Faculty, Electronic Devices & Systems, 7th semester,2010 Dr. MokhovikovПереключение задач.

Слайды и текст этой презентации

Слайд 1Lection №10
Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков

А..Ю. Physics Faculty, Electronic Devices & Systems, 7th

semester,2010 Dr. Mokhovikov Alexander Yurievich

Переключение задач. Страничное управление памятью.
Виртуальная память.

Lection №10Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices

Слайд 2Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.

Physics Faculty, Electronic Devices & Systems, 7th semester,2010

Dr. Mokhovikov

Переключение задач.


Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices &

Слайд 3Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.

Physics Faculty, Electronic Devices & Systems, 7th semester,2010

Dr. Mokhovikov

Рассмотрим пример обращения процессора к памяти в сегмент (данных), описанный в глобальной дескрипторной таблице (GDT) – т.е. бит “TI” в селекторе сегмента равен нулю.

Старшие 13 байт селектора являются смещением искомого дескриптора от начала дескрипторной таблицы. Младшие байты играют роль атрибутов и при адресации внутри таблицы интерпретируются как нули – за счет чего происходит адресация таблицы по полю “i” с точностью до восьмибайтного слова, или (что в данном случае одно и тоже) до дескриптора.
Адрес сегмента, прочитанный из дескриптора, складывается с внутрисегментным смещением и при отсутствии страничного преобразования адреса выставляется на адресную шину.

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices &

Слайд 4Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.

Physics Faculty, Electronic Devices & Systems, 7th semester,2010

Dr. Mokhovikov

Если бит “TI” в селекторе сегмента равен “1”, то происходит выборка сегмента из локальной дескрипторной таблицы. В этом случае регистр LDTR должен содержать селектор этой таблицы (индекс) – локальная дескрипторная таблица описывается дескриптором глобальной таблицы.
Сам же селектор (в котором “TI”=1) определяет дескриптор сегмента памяти, описанного в локальной дескрипторной таблице. В регистре LDTR бит “TI” всегда нулевой – т.к. дескриптор-описатель локальной таблицы может находиться только в GDT.

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices &

Слайд 5Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.

Physics Faculty, Electronic Devices & Systems, 7th semester,2010

Dr. Mokhovikov

Сегмент состояния задачи



TSS


Ну очень наглядно!!

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices &

Слайд 6Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.

Physics Faculty, Electronic Devices & Systems, 7th semester,2010

Dr. Mokhovikov


Уже лучше!!!

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices &

Слайд 7Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.

Physics Faculty, Electronic Devices & Systems, 7th semester,2010

Dr. Mokhovikov

Карта разрешения ввода-вывода (I/O Permission Bit Map), расположенная в конце TSS, имеет по одному биту на каждый адрес портов . Разрешению обращения соответствует нулевое значение бита. Максимальный размер таблицы(2000h), соответствующий всем 64Кбайт адресов, может быть урезан лимитом TSS, но байт-терминатор 0FFh должен обязательно вписываться в лимит TSS. Порты с адресами, не попавшими в усеченную таблицу, считаются недоступными.

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices &

Слайд 8Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.

Physics Faculty, Electronic Devices & Systems, 7th semester,2010

Dr. Mokhovikov

Страничное управление памятью

Страничное управление (Paging) является средством организации виртуальной памяти с подкачкой страниц по запросу (Demand-Paged Virtual Memory).
В отличие от сегментации, которая организует программы и данные в модули различного размера, страничная организация оперирует с памятью, как с набором страниц одинакового размера. В момент обращения страница может присутствовать в физической оперативной памяти, а может быть выгруженной на внешнюю (дисковую) память.

При обращении к выгруженной странице памяти процессор вырабатывает исключение #PF — отказ страницы, а программный обработчик исключения (часть ОС) получит необходимую информацию для свопинга — «подкачки» отсутствующей страницы с диска. Страницы не имеют прямой связи с логической структурой данных или программ.

В то время как селекторы можно рассматривать как логические имена модулей кодов и данных, страницы представляют части этих модулей.
Учитывая обычное свойство локальности (близкого расположения требуемых ячеек памяти) кода и ссылок на данные, в оперативной памяти в каждый момент времени следует хранить только небольшие области сегментов, необходимые активным задачам.
Эту возможность (а следовательно, и увеличение допустимого числа одновременно выполняемых задач при ограниченном объеме оперативной памяти) как раз и обеспечивает страничное управление памятью.

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices &

Слайд 9Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.

Physics Faculty, Electronic Devices & Systems, 7th semester,2010

Dr. Mokhovikov

!

Поскольку имеется возможность расширения физического адреса до 36 бит (64 Гбайт), при котором могут использоваться страницы размером 4 Кбайт и 2 Мбайт.


Режимом страничной переадресации управляют биты PG в регистре CR0, флаги PAE и PSE в СR4 и бит размера страницы PS в PDE – элементе каталога страниц

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices &

Слайд 10Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.

Physics Faculty, Electronic Devices & Systems, 7th semester,2010

Dr. Mokhovikov

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

Механизм имеет три части:
Каталог страниц (Page Directory),
Таблицы страниц (Page Table)
Собственно страницы (Page Frame).

Механизм включается установкой бита PG=1 в регистре CRO.
Регистр CR2 хранит линейный адрес отказа (Page Fault Linear Address) — адрес памяти, по которому был обнаружен последний отказ страницы.
Регистр CR3 хранит физический адрес каталога страниц (Page Directory Physical Base Address). Его младшие 12 бит всегда нулевые (каталог выравнивается по границе страницы).

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices &

Слайд 11Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.

Physics Faculty, Electronic Devices & Systems, 7th semester,2010

Dr. Mokhovikov

а — строка каталога;
б — строка таблицы

Каталог страниц, размером 4 Кбайт содержит 1024 32-битных строки РDЕ (Page Directory Entry).
Каждая строка (см. ниже рис. а) содержит 20 старших бит адреса таблицы следующего уровня (младшие биты этого адреса всегда нулевые) и признаки (атрибуты) этой таблицы.
Индексом поиска в каталоге страниц являются 10 старших бит линейного адреса (А22-А31).

Страничное управление памятью

Каждая таблица страниц также имеет 1024 строки РТЕ (Page Table Entry) аналогичного формата (рис. б), но эти строки содержат базовый физический адрес (Page Frame Address) и атрибуты самих страниц.
Индексом поиска в таблице являются биты А12-А21 линейного адреса.

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices &

Слайд 12Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.

Physics Faculty, Electronic Devices & Systems, 7th semester,2010

Dr. Mokhovikov

Страничное управление памятью

Физический адрес получается из адреса страницы, взятого из таблицы, и младших 12 бит линейного адреса. Строки каталога и таблиц имеют следующие биты атрибутов:

• Р (Present) — бит присутствия. Р=1 означает возможность использования данной строки для трансляции адреса. Бит присутствия вхождений в таблицы, используемые текущим исполняемым кодом, должен быть установлен. Программный код не должен его изменять «на ходу». Если Р=0, то все остальные биты доступны операционной системе и могут использо­ваться для получения информации о местонахождении данной страницы.

• A (Accessed) — признак доступа, который устанавливается перед любым чтением или записью по адресу, в преобразовании которого участвует данная строка.

• D (Dirty) — признак, который устанавливается перед операцией записи по адресу, в преобразовании которого участвует данная строка. Таким образом, помечается использованная — «грязная» страница, которую в случае замещения необходимо выгрузить на диск.

Биты Р, А, D модифицируются процессором аппаратно в заблокированных шинных циклах. При их программной модификации в многопроцессорных системах должен использоваться префикс LOCK, гарантирующий сохранение целостности данных.

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices &

Слайд 13Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.

Physics Faculty, Electronic Devices & Systems, 7th semester,2010

Dr. Mokhovikov

Страничное управление памятью

Поле OS Reserved программно используется по усмотрению ОС и может хранить, например, информацию о «возрасте» страницы, необходимую для реализации замещения по алгоритму LRU (Least Recently Used — наиболее долго не использовавшаяся страница замещается первой).

Бит PWT (Page Write Through) определяет политику записи при кэшировании, а бит PCD (Page Cache Disable) запрещает кэширование памяти для обслуживаемых страниц или таблиц.

Бит PS (Page Size) задает размер страницы. При PS=0 страница имеет размер 4 Кбайт, PS=1 используется в расширениях РАЕ и PSE.

Бит G (Global), появившийся в Р6, определяет глобальность страницы. Он анализируется только в строке, указывающей на страницу физической памяти (в РТЕ для страниц в 4 Кбайт, в PDE — для страниц 2 Мбайт или 4 Мбайт). Этот бит, управляемый только программно, позволяет пометить страницы глобального использования (например, ядра ОС). При установленном бите PGE в регистре CR4 строки с указателями на глобальные таблицы не будут аннулироваться в TLB при загрузке CR3 или переключении задач, что снижает издержки обслуживания виртуальной памяти.

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices &

Слайд 14Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.

Physics Faculty, Electronic Devices & Systems, 7th semester,2010

Dr. Mokhovikov

Страничное управление памятью

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

1. Подготовить описания всех используемых в программе страниц, таблиц страниц и каталога страниц.
2. Загрузить адрес начала (т.е. базовый адрес) каталога страниц в CR3.
3. Разрешить в процессоре страничное преобразование.

1. Подготовка описаний страниц.
Мы будем использовать формат страницы в следующем виде:

Бит: Описание
0: P = 1/0, если страница определена / нет
1: R/W = 1/0, если страницу можно писать и читать / только читать
2: U/S = 0, т.к. наши примеры пока работают только на нулевом уровне привилегий
3..11: 0 (не используются)
12..31: Старшие 20 бит физического адреса, на который отображена страница.

Как видите, нужно будет устанавливать только биты 0 и 1 в элементах PDE и PTE, что мы и будем делать примерно следующим образом:

Mov eax,page_address ; Загружаем в EAX выравненный на ; границу 4Кб адрес страницы.
Mov al,3 ; Устанавливаем биты 0 и 1 (все остальные должны быть равны 0).

Mov PTE_or_PDE,eax ; Записываем готовый элемент PDE или PTE.

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices &

Слайд 15Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.

Physics Faculty, Electronic Devices & Systems, 7th semester,2010

Dr. Mokhovikov

Страничное управление памятью

Приближения в примере:
Рассмотрим только первый мегабайт адресного пространства, чтобы не перегружать исходник лишними деталями; первый мегабайт гарантированно есть в любом используемом сейчас компьютере и поэтому не нужно дополнительно определять количество присутствующей физической памяти.
Используем только один элемент каталога страниц - PDE 0, который определит одну таблицу страниц. Этого достаточно, т.к. таблица страниц может покрыть до 4Мб адресного пространства.
В таблице страниц определим только первые 256 страниц (т.е. элементов PTE) и зададим им тождественное отображение. Это значит, что линейные адреса будут совпадать с физическими и для элемента PTE 0 базовый адрес будет равен 0000 0000h, для PTE 1 - 0000 1000h, PTE 2 - 0000 2000h и т.д.

Итого, 256 страниц по 4Кб каждая образуют один мегабайт. Все остальные элементы PTE мы просто очищаем нулями - главное, чтобы бит P (0-й бит в каждом PTE) был равен 0 для неопределённых страниц - тогда процессор не допустит обращения к ним и сгенерирует исключения страничного нарушения.

Все операции по установке элементов PDE и PTE выполняет процедура "set_pages". Эта процедура сбрасывает (т.е. записывает в них нули) все элементы PDE и все PTE в первой и единственной таблице страниц. Затем она устанавливает первый элемент каталога страниц (PDE 0), в котором указывает адрес таблицы страниц и, наконец, устанавливает первые 256 PTE в таблице страниц. В качестве указателя на каталог страниц используется содержимое переменной Page_Directory, которая записывается другой процедурой set_PDBR

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices &

Слайд 16Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.

Physics Faculty, Electronic Devices & Systems, 7th semester,2010

Dr. Mokhovikov

Страничное управление памятью: пример отображения страниц

set_pages proc near
; Установка каталога страниц, PDE 0 и тождественного отображения страниц для
; первого мегабайта.

mov ax,Data_selector
mov es,ax
mov di,Page_Directory ; ES:DI = указатель на каталог страниц.
xor eax,eax
mov cx,1024 + 1024 ; Очистка 2-х страниц памяти (по 4Кб).
cld
push di
rep stosd ; Очищаем все элементы каталога страниц
; (PDE 0 .. PDE 1023) и всю первую таблицу
; страниц (соответствующую элементу PDE 0).
pop di
mov eax,cr3 ; EAX = адрес начала каталога страниц.
add eax,4096 ; Первая таблица страниц (PDE 0) будет
; располагаться сразу за каталогом страниц.
mov al,3 ; Флаги PDE: P=1, R/W = 1
stosd ; Записали PDE 0

add di,4096 - 4 ; Переходим к таблице страниц
xor eax,eax ; Начнём с адреса 0
mov al,3 ; Флаги PTE: P=1, R/W = 1
mov cx,256 ; Установим 256 страниц (они покроют
; первый мегабайт физической памяти).
spag_1:
stosd
add eax,4096
loop spag_1

ret

endp

пример

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices &

Слайд 17Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.

Physics Faculty, Electronic Devices & Systems, 7th semester,2010

Dr. Mokhovikov

Страничное управление памятью

Загрузка базового адреса каталога страниц в CR3.

Вообще говоря, загрузка регистра CR3 должна проводится после того, как будет определена вся используемая структура страниц, но на самом деле не имеет значения, когда вы запишите в CR3 базовый адрес каталога страниц - до тех пор, пока в процессоре не будет разрешено страничное преобразование, этот регистр также не будет использоваться.
Установка CR3 производится почти в самом начале программы, процедурой "set_PDBR". Дело в том, что каталог страниц и любые таблицы страниц должны находиться целиком в физической странице памяти, т.е. по адресам, кратным 4Кб. Определить эти адреса гораздо проще находясь в режиме реальных адресов, используя значения сегментных регистров - в защищённом режиме понадобилось бы обратиться к GDT, чтобы получить адрес текущего сегмента данных, либо вводить дополнительные переменные.
Процедура "set_PDBR" вычисляет адрес каталога страниц как адрес ближайшей к концу программы свободной физической страницы памяти и помещает его в CR3:

set_PDBR proc near
; Установка значения в PDBR

xor eax,eax
mov edx,eax
mov ax,ds
shl eax,4
mov ebx,eax ; Сохраняем в EBX физический адрес начала
; сегмента данных.
lea dx,Last_label ; Last_label - это последняя метка программы.
add eax,edx ; EAX = физический адрес последней метки.

mov dx,ax
and ax,0f000h ; Сбрасываем младшие 12 бит адреса.
sub dx,ax
cmp dx,0; Адрес последней метки уже был выровнен на границу 4Кб ?
je spdbr_1

add ah,10h ; Если нет, то выравниваем его.

spdbr_1:
mov cr3,eax ; Загрузка адреса в CR3 (т.е. в PDBR).
; По этому адресу будет размещён каталог страниц.

sub eax,ebx ; EAX = AX = смещение каталога страниц
; относительно начала сегмента данных.

mov Page_Directory,ax

ret

endp

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices &

Слайд 18Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.

Physics Faculty, Electronic Devices & Systems, 7th semester,2010

Dr. Mokhovikov

Страничное управление памятью

Разрешение в процессоре страничного преобразования.

Для того, чтобы включить или, другими словами, разрешить в процессоре страничное преобразование, необходимо установить бит PG (это 31-й бит) в регистре управления CR0.
После того, как это будет сделано, нужно выполнить команду перехода - она заставит процессор сбросит конвейер и начать выборку команд уже используя механизм трансляции страниц.
Перед возвратом программы в режим реальных адресов нужно запретить страничное преобразование - сбросить бит PG в CR0 и выполнить команду перехода - в этом случае она заставит процессор при выборке команд не использовать содержимое буферов TLB и программа корректно выйдет в R-Mode.

В нашем примере тождественное отображение для всех страниц устанавливается не потому, что это просто, а потому, что это - надёжно. Если вы включите страничное отображение и какая-либо часть программы (код, стек, данные) будет описываться страницами с не тождественным отображением, то программа может "уйти" по нормальному линейному адресу, указанному в программе на совершенно другой физический адрес, что в любом случае приведёт к нестабильности программы и скорее всего - к зависанию или сбросу процессора.

Для разрешения страничного преобразования в наших примерах будет использоваться процедура "set_paging", для запрещения - "reset_paging":

set_paging proc near
; Включение страничного преобразования

mov eax,cr0
bts eax,31 ; Устанавливаем 31-й бит (PG)
mov cr0,eax

jmp spg_1

spg_1:
ret

endp

reset_paging proc near
; Запрещение страничного преобразования

mov eax,cr0
btc eax,31 ; Сбрасываем 31-й бит (PG)
mov cr0,eax

jmp rspg_1

rspg_1:
ret

endp

Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices &

Слайд 19Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.

Physics Faculty, Electronic Devices & Systems, 7th semester,2010

Dr. Mokhovikov

Используемые Интернет-ресурсы:

http://sasm.narod.ru/docs/pm/pm_mem/chap_6.htm
http://sasm.narod.ru/docs/pm/pm_mem/chap_7.htm
http://citforum.ru/operating_systems/sos/glava_7.shtml
http://x86.migera.ru/text/glava_2.html
http://www.intuit.ru/department/os/osintro/10/
http://www.moodle.ipm.kstu.ru/mod/resource/view.php?id=57


Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices &

Слайд 20Используемая литература:
Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков

А..Ю. Physics Faculty, Electronic Devices & Systems, 7th

semester,2010 Dr. Mokhovikov Alexander Yurievich

Книга «Ассемблер. Учебник для ВУЗов», авторы Михаил Гук, Виктор Юров
Книга «Архитектура ЭВМ»,автор Мюллер
Книга «Процессоры Pentium4, Athlon и Duron», авторы Михаил Гук, Виктор Юров
Книга «Архитектура ЭВМ», автор Танненбаум

Используемая литература:Физический факультет, ЭВУ и системы, 7 семестр,2010 Доцент Моховиков А..Ю.   Physics Faculty, Electronic Devices

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика