Операционные системы. Макушкина Л.А - 25 стр.

UptoLike

25
Здесь используется эмпирическое правило: если обращение произошло по
некоторому адресу, то велика вероятность того, что следующие обращения
произойдут по соседним адресам.
Другим важным резервом повышения производительности системы является
правильный выбор размера страницы. Каким же должен быть оптимальный размер
страницы? С одной стороны, чтобы уменьшить частоту страничных прерываний,
следовало бы увеличивать размер страницы. С другой стороны, если страница
велика, то велика и фиктивная область в последней виртуальной странице каждого
процесса. Если учесть, что в среднем в каждом процессе фиктивная область
составляет половину страницы, то в сумме при большом объеме страницы потери
могут составить существенную величину. Из приведенных соображений следует,
что выбор размера страницы является сложной оптимизационной задачей,
требующей учета многих факторов. На практике же разработчики ОС и
процессоров ограничиваются неким рациональным решением, пригодным для
широкого класса вычислительных систем. Типичный размер страницы составляет
несколько килобайт, например, наиболее распространенные процессоры х86 и
Pentium компании Intel, а также операционные системы, устанавливаемые на этих
процессорах, поддерживают страницы размером 4096 байт (4 Кбайт).
Размер страницы влияет также на количество записей в таблицах
страниц. Чем
меньше страница, тем более объемными являются таблицы страниц процессов и
тем больше места они занимают в памяти. Учитывая, что в современных
процессорах максимальный объем виртуального адресного пространства процесса,
как правило, не меньше 4 Гбайт (232), то при размере страницы 4 Кбайт (212) и
длине записи 4 байта для хранения таблицы страниц может потребоваться 4 Мбайт
памяти! Выходом в такой ситуации является хранение в памяти только той части
таблицы страниц, которая активно используется в данный период времени так
как сама таблица страниц хранится в таких же страницах физической памяти, что
и описываемые ею страницы, то принципиально возможно временно вытеснять
часть таблицы страниц из оперативной памяти.
Именно такой результат может быть достигнут путем более сложной
структуризации виртуального адресного пространства, при котором все множество
виртуальных адресов процесса делится на разделы, а разделы делятся на страницы
(рисунок 10). Все страницы имеют одинаковый размер, а разделы содержат
одинаковое количество страниц. Если размер страницы и количество страниц в
разделе выбрать равными степени двойки (2k и 2" соответственно), то
принадлежность виртуального адреса к разделу и странице, а также смещение
внутри страницы можно определить очень просто: младшие k двоичных разрядов
дают смещение, следующие п разрядов представляют собой номер виртуальной
страницы, а оставшиеся старшие разряды (обозначим их количество т) содержат
номер раздела.
Для каждого раздела строится собственная таблица страниц. Количество
дескрипторов в таблице и их размер подбираются такими, чтобы объем таблицы
оказался равным объему страницы. Например, в процессоре Pentium при размере
страницы 4 Кбайт длина дескриптора страницы составляет 4 байта и количество
записей в таблице страниц, помещающейся на страницу, равняется соответственно
Здесь используется эмпирическое правило: если обращение произошло по
некоторому адресу, то велика вероятность того, что следующие обращения
произойдут по соседним адресам.
   Другим важным резервом повышения производительности системы является
правильный выбор размера страницы. Каким же должен быть оптимальный размер
страницы? С одной стороны, чтобы уменьшить частоту страничных прерываний,
следовало бы увеличивать размер страницы. С другой стороны, если страница
велика, то велика и фиктивная область в последней виртуальной странице каждого
процесса. Если учесть, что в среднем в каждом процессе фиктивная область
составляет половину страницы, то в сумме при большом объеме страницы потери
могут составить существенную величину. Из приведенных соображений следует,
что выбор размера страницы является сложной оптимизационной задачей,
требующей учета многих факторов. На практике же разработчики ОС и
процессоров ограничиваются неким рациональным решением, пригодным для
широкого класса вычислительных систем. Типичный размер страницы составляет
несколько килобайт, например, наиболее распространенные процессоры х86 и
Pentium компании Intel, а также операционные системы, устанавливаемые на этих
процессорах, поддерживают страницы размером 4096 байт (4 Кбайт).
   Размер страницы влияет также на количество записей в таблицах страниц. Чем
меньше страница, тем более объемными являются таблицы страниц процессов и
тем больше места они занимают в памяти. Учитывая, что в современных
процессорах максимальный объем виртуального адресного пространства процесса,
как правило, не меньше 4 Гбайт (232), то при размере страницы 4 Кбайт (212) и
длине записи 4 байта для хранения таблицы страниц может потребоваться 4 Мбайт
памяти! Выходом в такой ситуации является хранение в памяти только той части
таблицы страниц, которая активно используется в данный период времени — так
как сама таблица страниц хранится в таких же страницах физической памяти, что
и описываемые ею страницы, то принципиально возможно временно вытеснять
часть таблицы страниц из оперативной памяти.
   Именно такой результат может быть достигнут путем более сложной
структуризации виртуального адресного пространства, при котором все множество
виртуальных адресов процесса делится на разделы, а разделы делятся на страницы
(рисунок 10). Все страницы имеют одинаковый размер, а разделы содержат
одинаковое количество страниц. Если размер страницы и количество страниц в
разделе выбрать равными степени двойки (2k и 2" соответственно), то
принадлежность виртуального адреса к разделу и странице, а также смещение
внутри страницы можно определить очень просто: младшие k двоичных разрядов
дают смещение, следующие п разрядов представляют собой номер виртуальной
страницы, а оставшиеся старшие разряды (обозначим их количество т) содержат
номер раздела.
   Для каждого раздела строится собственная таблица страниц. Количество
дескрипторов в таблице и их размер подбираются такими, чтобы объем таблицы
оказался равным объему страницы. Например, в процессоре Pentium при размере
страницы 4 Кбайт длина дескриптора страницы составляет 4 байта и количество
записей в таблице страниц, помещающейся на страницу, равняется соответственно

                                     25