Добавил:
Developerrnrn Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС Нижний.pdf
Скачиваний:
34
Добавлен:
25.03.2023
Размер:
2.75 Mб
Скачать

Лабораторный практикум по курсу "Операционные системы"

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

Способ описания физической памяти

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

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

-Для решения конкретных задач управления могут быть использованы битовые массивы (один бит на одну страницу), например, для учета используемых и свободных блоков. Данный способ имеет существенный недостаток – поиск серии заданной длины в битовом массиве является длительной операцией.

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

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

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

Виртуальное адресное пространство прикладной программы (ВАП) и способ его отображения на физическую память

Каждому процессу предоставляется виртуальное адресное пространство. Варианты организации ВАП полностью определяются возможностями аппаратной архитектуры. Рассмотрим несколько типичных случаев.

Вкачестве виртуального адресного пространства выступает адресное пространство

физической памяти

Вэтом случае процесс может использовать все физическое адресное пространство системы.

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

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

Учебно-исследовательская лаборатория «Информационные технологии» 47

Лабораторный практикум по курсу "Операционные системы"

MAX

Свободно

ОЗУ Область прикладного процесса

0

Область ОС

 

Рис. 29 ВАП процесса совпадает с физической памятью

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

Вкачестве виртуального адресного пространства выступает множество сегментов

При создании процесса создается множество сегментов (или один сегмент) для хранения его кода, данных и стека.

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

MAX

Сегмент прикладного процесса 1

Свободный сегмент

Сегмент прикладного процесса 2

Сегмент ОС

0

ВАП процесса состоит из одного сегмента фиксированного размера

 

MAX

Сегменты

 

прикладного

 

процесса 2

Сегменты

 

прикладного

Свободное

процесса 1

 

пространство

Область ОС

 

 

0

ВАП процесса состоит из нескольких сегментов различного размера

Рис. 30 ВАП процессов, организованное на основе сегментной адресации

48 Учебно-исследовательская лаборатория «Информационные технологии»

Лабораторный практикум по курсу "Операционные системы"

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

В данном случае операционная система должна отслеживать занятость областей памяти, множества сегментов, принадлежащих каждому процессу, обеспечивать разделение адресных пространств (например, поддерживать для каждого процесса собственную таблицу дескрипторов сегментов). Благодаря использованию сегментной адресации становится возможна организация выгрузки сегментов на более медленный носитель информации, например, на диск – при обратном перемещении сегмента в оперативную память достаточно будет изменить значение атрибута «физический адрес начала» в дескрипторе сегмента.

Виртуальное адресное пространство организуется на основе страничной организации памяти

Для каждого процесса создается собственное виртуальное адресное пространство с адресами от 0 до MAX, где MAX зависит от аппаратной архитектуры, но обычно достаточно велико (например, 4Гб). Код процесса оперирует с адресами в рамках своего ВАП. Обычно в ВАП процесса выделяется пространство доступных и недоступных ему адресов (например, 3Гб1Гб или 2Гб-2Гб). В недоступных прикладному процессу адресах содержится область кода и данных операционной системы.

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

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

-адрес страницы в оперативной памяти или на внешнем носителе;

-признак присутствия в оперативной памяти;

-признак отображения страницы на физическую память;

-признак изменения содержимого страницы;

-признак обращения к странице;

-признак блокирования страницы в оперативной памяти;

-тип информации, размещенной в странице (код, данные, стек и др.);

-уровень привилегированности;

-доступные операции над информацией страницы (чтение, запись, выполнение и др.);

-другие атрибуты.

Учебно-исследовательская лаборатория «Информационные технологии» 49

Лабораторный практикум по курсу "Операционные системы"

 

 

ВАП

 

 

 

 

 

 

 

процесса

 

 

 

 

ОЗУ

ВАП

 

 

 

 

 

Таблица страниц

 

 

ОЗУ

 

 

 

 

 

 

 

 

 

MAX

 

 

 

 

 

 

 

MAX

 

 

 

 

 

Физический адрес страницы N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Физический адрес страницы 1

 

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Физический адрес страницы 0

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Внешний

 

 

 

 

 

 

 

 

 

 

 

носитель

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

№ страницы Смещение

Адрес ВАП

Рис. 31 Связь между виртуальными и физическими адресами через таблицу страниц

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

за отсутствия страницы или ошибкой присутствия в памяти, страничным прерыванием или страничным сбоем. Операционная система выбирает малоиспользуемый страничный блок, записывает его на внешний носитель, на освободившееся место считывает страницу, на которую произошла ссылка, изменяет таблицу страниц и запускает заново прерванную команду. Исключение составляет случай, когда программа попыталась выполнить операцию над неиспользуемым участком виртуального адресного пространства (который не отображен ни на оперативную память, ни на диск). Реакция на такую ситуацию зависит от операционной системы, но в большинстве случаев программа, выполнившая подобную операцию, будет аварийно завершена.

Несмотря на достаточно простое описание, при реализации встает важная проблема – таблица страниц может быть слишком большой. Современные компьютеры используют по крайней мере 32-х разрядные виртуальные адреса. При размере страницы в 4Кб, ВАП процесса будет состоять из одного миллиона страниц, и соответственно, таблица страниц будет содержать миллион записей! И таких таблиц страниц должно быть столько, сколько в каждый момент работает процессов.

Для решения этой проблемы во многих архитектурах используется многоуровневая таблица страниц.

На рисунке приведен пример двухуровневой таблицы страниц. При этом адрес ВАП делится на три поля – индекс таблицы таблиц страниц, индекс таблицы страниц, смещение в странице.

50 Учебно-исследовательская лаборатория «Информационные технологии»

Лабораторный практикум по курсу "Операционные системы"

 

ВАП

 

 

 

 

 

 

 

 

 

 

 

 

 

ВАП процесса

 

Таблица таблиц

 

 

 

 

 

Таблица страниц

 

ОЗУ

ОЗУ

MAX

 

 

страниц

 

 

 

 

 

 

 

MAX

 

 

 

 

 

 

 

 

ФА страницы M1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Физический адрес таблицы страниц N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ФА страницы 1

 

 

 

 

 

 

 

 

Физический адрес таблицы страниц 1

 

 

 

 

 

ФА страницы 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Физический адрес таблицы страниц 0

 

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица страниц

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

ФА страницы M0

 

 

 

 

 

 

 

 

Внешний

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ФА страницы 1

+

 

 

 

 

 

 

 

 

 

 

носитель

 

 

 

 

 

 

 

 

 

ФА страницы 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

№ таблицы № страницы Смещение страниц

Адрес ВАП

Рис. 32 Использование двух уровней таблиц страниц

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

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

ВАП

 

 

 

ВАП процесса 1

Таблица таблиц

Таблица страниц

ОЗУ

MAX

страниц процесса 1

ФА страницы M2

ОЗУ

 

ФА таблицы страниц N

MAX

 

 

 

ФА страницы 1

общая

 

 

 

 

память

 

ФА таблицы страниц 1

ФА страницы 0

 

 

 

ФА таблицы страниц 0

 

 

 

 

Таблица страниц

0

0

 

ФА страницы M1

 

 

ВАП

 

 

Внешний

ВАП процесса 2

 

ФА страницы 1

Таблица таблиц

носитель

MAX

ФА страницы 0

 

страниц процесса 2

 

 

 

Таблица страниц

 

 

ФА таблицы страниц N

 

 

 

 

ФА страницы M0

ФА таблицы страниц 1 ФА таблицы страниц 0 ФА страницы 1

ФА страницы 0

0

Рис. 33 Организация разделяемой памяти для нескольких процессов

Учебно-исследовательская лаборатория «Информационные технологии» 51

Соседние файлы в предмете Современные операционные системы