Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТОС_2013 / ТОС_6_2_проц_слайды1.doc
Скачиваний:
8
Добавлен:
03.03.2016
Размер:
1.17 Mб
Скачать

Адресное пространство процесса

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

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

При этом системный контекст остается неизменным для всех процессов. Вид адресного пространства процесса представлен на рис. 3.8.

Специальный регистр (CR3 для Intel) указывает на расположение каталога таблиц страниц в памяти.

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

Поскольку ядро (код и данные) является частью выполняющегося процесса, таблицы страниц, отображающие старший 1 Гбайт виртуальной памяти, принадлежащей ядру системы, не изменяются при переключении между процессами Для отображения ядра используются старшие 256 элементов каталога.

3Следует отметить, что большинство современных процессоров и, в частности, процессор] семейства Intel, помещают данные о нескольких последних использовавшихся ими стра-ницах в сверхоперативный кэш. Только когда процессор не находит требуемой страницы в этом кэше, он обращается к каталогу и таблицам страниц. Как правило, 98—99% адресных ссылок попадают в кэш, не требуя для трансляции адреса обращения к оперативной памяти, где расположены каталог и таблицы.

При переключении между процессами изменяется адресное пространство режима задачи, что вызывает необходимость изменения оставшихся 768 элементов каталога. В совокупности они отображают 3 Гбайт виртуального адресного пространства процесса в режиме задачи.

Таким образом, при смене процесса адресное пространство нового процесса становится видимым (отображаемым), в то время как адресное пространство предыдущего процесса является недоступным4.

4При этом физические страницы, принадлежащие предыдущему процессу, могут по-прежнему оставаться в памяти, однако доступ к ним невозможен ввиду отсутствия уста­новленного отображения. Любой допустимый виртуальный адрес будет отображаться либо в страницы ядра, либо в страницы нового процесса.

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

На рис. 3.9 изображено расположение различных сегментов процесса в виртуальной памяти для двух форматов исполняемых файлов — COFF и ELF.

Заметим, что независимо от формата исполняемого файла виртуальные адреса процесса не могут выходить за пределы 3 Гбайт.

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

Поскольку ядро системы выполняется на привилегированном уровне, она может управлять отображением как собственного адресного пространства, так и адресного пространства процесса.

Управление памятью процесса

Каждый процесс в операционной системе UNIX выполняется на собственной виртуальной вычислительной машине, где все ресурсы принадлежат исключительно данному процессу.

Подсистема управления памятью обеспечивает такую иллюзию в отношении физической памяти.

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

Ряд операций, за выполнение которых отвечает сама ОС:

  • Размещение в памяти каталога страниц и таблиц страниц; инициализация регистра - указателя на каталог таблиц страниц (для Intel — CR3); инициализация каталога страниц.

  • Установка отображения путем записи соответствующих значений в таблицы страниц.

-Обработка страничных ошибок.

-Управление сверхоперативным кэшем.

-Обеспечение обмена страницами между оперативной и вторичной памятью.

В реализации перечисленных функций существенную роль играют структуры данных, обеспечивающие удобное представление адресного пространства процесса для ОС.