Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ос_ЛЕКЦИИ_для _методички_.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
821.76 Кб
Скачать

Реализация виртуальной памяти ос multics.

В данной ОС каждый процесс имеет свою таблицу сегментов, строки которой являются дескриптором сегмента. Сама таблица сегментов является сегментом и разбита на страницы. Дескриптор сегмента содержит индикатор того, находится ли сегмент в реальной ОП или нет. Если какая-то часть сегмента присутствует в реальной ОП, то считается, что весь сегмент в реальной ОП и таблиц страниц тоже в реальной ОП. Виртуальный адрес состоит из двух частей: номер сегмента и адрес внутри сегмента. Адрес внутри сегмента делится на номер страницы и смещение внутри страницы. Когда происходит обращение к реальной ОП, выполняются следующие действия:

1. По номеру сегмента находится дескриптор сегмента.

2. Проверяется находятся ли таблиц страниц сегмента в памяти. Если да, определяется её местоположение (адрес). Если нет, происходит прерывание по отсутствию сегмента с таблицей страниц.

3. Просматривается запись в таблице страниц для запрашиваемой виртуальной страницы. Если страницы нет в реальной ОП, прерывание по отсутствию страницы. Если в реальной ОП есть, извлекается адрес начала страницы в реальной ОП.

4. К полученному адресу прибавляется смещение, что дает в результате адрес в реальной ОП, к котором происходит обращение.

Аппаратная часть ОС содержит высокоскоростной буфер TLB, в котором поиск осуществляется параллельно по всем записям. Формат буфера TLB следующий:

№ сегмента

№ страницы

Стр. блока

защита

возраст

Признак действия

4

1

7

Чт/зап

13

1

5

0

3

Чт

10

0

Когда получен виртуальный адрес, аппаратура проверяет его нахождение в TLB. Если он там, адрес страничной рамки, в которой находится виртуальная страница берется из TLB. Если страницы нет в TLB, происходит обращение к таблице сегментов и страниц. Поле "возраст" хранит информацию о том, какая страница используется давно. Для её вытеснения из TLB.

Виртуальная память в ос с аппаратной платформой Intel Pentium.

Виртуальная память организуется на основе двух таблиц: локальной таблицы дескрипторов (LDT) и глобальной таблицы дескрипторов (GDT). У каждого процесса есть своя таблица LDT, GDT для всех процессов одна, её используют все. LDT описывает сегменты локальные для каждого процесса, включая сегменты кода, стека, данных. GDT хранит информацию о системных сегментах, включая ОС. Для получения доступа к сегменту для процесса закрепляется так называемый селектор сегмента, который хранится в одном из сегментных регистров машины.

Формат селектора:

Индекс определяет номер записи в таблице дескрипторов сегмента. Во время загрузки селектора в сегментный регистр соответствующий дескриптор извлекается из локальной или глобальной таблицы, управляющий бит 0 или 1, и загружается в микропрограммные регистры, что обеспечивает к нему быстрый доступ.

Формат дескриптора:

G:

0 - в битах;

1 - в байтах.

D:

0 - 16-разрядный адрес сегмента;

1 - 32-разрядный адрес сегмента.

Предел - предельный адрес.

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

P:

0 - отсутствует;

1 - присутствует в ОП.

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

Если включено сегментно-страничной распределение, данный адрес интерпретируется как линейный виртуальный адрес, который подлежит страничному преобразованию. Для этого используются таблицы страниц данного сегмента. У каждого процесса есть так называемый страничный каталог, хранящийся по адресу, расположенному в одном из регистров. Каждая запись в каталоге ссылается на определенную таблицу страниц. Записи в таблице страниц указывают находятся ли виртуальные страницы сегмента в реальной ОП и по какому адресу. В этом случае линейный адрес представляется как:

В системах аналогичного класса используется TLB, в котором хранится информация о наиболее часто используемых страницах.