Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Страничная система изнутри




Процесс трансляции виртуальных адресов в физические адреса представлен на рисунке (Рис. 11. Трансляция адресов). При трансляции адресов используются аппаратные решения для выявления откачанных страниц и быстрого отображения их в страничные фреймы. NT использует 2-х уровневую трансляцию адресов:

· Byte index – смещение на странице;

· PTE page table index – смещение в таблице;

· PDE page directory index – смещение в каталоге.

 

Рис. 11. Трансляция адресов

1. Описатель процесса содержит указатель А на начало каталога страниц данного процесса (page directory)

2. (PDE) page directory index – это смещение в каталоге страниц, где размещен указатель на начало таблицы страниц

3. каждый процесс имеет несколько различных таблиц страниц. PDE ссылается на начало определенной таблицы страниц

4. PTE это смещение в таблице страниц относительно адреса определенной таблицы

5. искомая таблица находится в первичной памяти в страничном фрейме j, PTE указывает на страничный фрейм. Если страница не загружена диспетчер виртуальной памяти (Virtual Memory Manager) должен разместить страницу в страничном файле, найти страничный фрейм, выделить его процессу, а затем загрузить страницу в этот фрейм.

6. окончательно byte index прибавляется к базовому адресу страничного фрейма, чтобы получить нужный адрес в первичной памяти.

 

Хотя page directory может быть расположена в любом месте (указатель А на Рис. 11. Трансляция адресов), на практике она размещена в фиксированном месте адресного пространства 0XC0300000 (x86) и 0XC018000 (Alpha). Оба этих процессора используют соответствующий регистр для ссылки на page directory. Этот регистр сохраняется как часть контекста потока, когда новый поток назначается на процессор.

NT использует различные таблицы страниц, чтобы различать используемое адресное пространство. Главное различие между страницами – одни пользовательские, а другие ядра, они отображаются в различных таблицах страниц. Т.к. страницы ядра хранятся в отдельной таблице, различные процессы имеют PDEs для области ядра, указывающие на те же таблицы. Другое различие – некоторые части области ядра имеют страничную организацию как и пользовательские, а другие не страничную организацию.

Каждое PDE ссылается на номер страничного фрейма, когда соответствующая страница загружена. Существует также набор флагов, описывающих соответствующие страницы (доступен ли PTE, зарезервирована ли страница, записаны ли на нее новые значения с тех пор как, она последний раз загружена в первичную память). Требуется, чтобы в page directory был PDE, а в page table был PTE. Современные компьютеры используют ассоциативную память, называемую translation look–aside buffer (TLB). Коротко TLB это кэш-память для недавно транслированных PDEs и PTEs. Поиск во всей TLB проводится за 1 цикл.

NT использует подкачку страниц по запросу (demand paging) - это означает, что страницы не будут загружены в первичную память до тех пор, пока на них не сошлются (к ним не обратятся). PTEs даже не создаются до тех пор, пока соответствующая страница не загружена. Ведь процесс может зарезервировать память, но никогда ее не использовать, он может даже передать страницы памяти, но никогда не обратиться к ним во время выполнения. Многие PTEs могли бы быть созданы и никогда бы не использовались, следовательно, пустая трата памяти для PTEs. Т.к. PTE не создается до тех пор, пока они не используются в первый раз, OS должна подкачать другую страницу данных, чтобы хранить информацию о том, что зарезервировано и что передано. Это virtual address descriptor (VAD) – он создается, когда процесс резервирует или передает виртуальные адреса. Когда поток первый раз ссылается на адрес в пределах VAD, PTE создается, чтобы выполнить трансляцию адреса нормально.

NT использует рабочие наборы (working sets). Рабочий набор процесса:

· минимальный 20 – 50 страниц;

· максимальный 45 – 345 страниц (максимум может быть изменен системным администратором).




Поделиться с друзьями:


Дата добавления: 2014-01-14; Просмотров: 277; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.