![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
В данной ОС каждый процесс имеет свою таблицу сегментов, строки которой являются дескриптором сегмента. Сама таблица сегментов является сегментом и разбита на страницы. Дескриптор сегмента содержит индикатор того, находится ли сегмент в реальной ОП или нет. Если какая-то часть сегмента присутствует в реальной ОП, то считается, что весь сегмент в реальной ОП и таблиц страниц тоже в реальной ОП. Виртуальный адрес состоит из двух частей: номер сегмента и адрес внутри сегмента. Адрес внутри сегмента делится на номер страницы и смещение внутри страницы. Когда происходит обращение к реальной ОП, выполняются следующие действия:
1. По номеру сегмента находится дескриптор сегмента.
2. Проверяется находятся ли таблиц страниц сегмента в памяти. Если да, определяется её местоположение (адрес). Если нет, происходит прерывание по отсутствию сегмента с таблицей страниц.
3. Просматривается запись в таблице страниц для запрашиваемой виртуальной страницы. Если страницы нет в реальной ОП, прерывание по отсутствию страницы. Если в реальной ОП есть, извлекается адрес начала страницы в реальной ОП.
4. К полученному адресу прибавляется смещение, что дает в результате адрес в реальной ОП, к котором происходит обращение.
Аппаратная часть ОС содержит высокоскоростной буфер TLB, в котором поиск осуществляется параллельно по всем записям. Формат буфера TLB следующий:
№ сегмента | № страницы | Стр. блока | защита | возраст | Признак действия |
Чт/зап | |||||
Чт |
Когда получен виртуальный адрес, аппаратура проверяет его нахождение в TLB. Если он там, адрес страничной рамки, в которой находится виртуальная страница берется из TLB. Если страницы нет в TLB, происходит обращение к таблице сегментов и страниц. Поле "возраст" хранит информацию о том, какая страница используется давно. Для её вытеснения из TLB.
Дата публикования: 2015-06-12; Прочитано: 300 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!