Составители:
щейся в таком «буфере», то страница никуда не выгружается и уходит в конец списка
FIFO. В противном случае страница действительно выгружается, а на ее место в «буфе-
ре» попадает следующий «кандидат». Величина такого «буфера» не может быть боль-
шой, поэтому эффективность страничной реализации памяти в Windows NT намного
ниже, чем у других современных ОС и явление пробуксовки проявляется при достаточ-
но большом объеме оперативной памяти. В системе Windows NT файл с выгруженными
виртуальными страницами носит название PageFile.sys. Следует отметить, что в совре-
менных версиях Windows NT Microsoft все же реализовала дисциплину замещения LRU.
Более подробно распределение памяти в ОС семейства Windows будет рассмотрено да-
лее.
Как и в случае с сегментным способом организации виртуальной памяти, странич-
ный способ приводит к тому, что без специальных аппаратных средств он будет сущест-
венно замедлять работу вычислительной системы. Поэтому обычно используется кэши-
рование страничных дескрипторов. Наиболее эффективным способом кэширования
является использование ассоциативного кэша. Именно такой ассоциативный кэш и
создан в 32-разрядных микропроцессорах i80x86, начиная с i80386, который стал под-
держивать страничный способ распределения памяти. В этих микропроцессорах имеется
кэш на 32 страничных дескриптора. Поскольку размер страницы в них равен 4 Кбайт,
возможно быстрое обращение к 128 Кбайт памяти.
Рассмотрев страничный способ организации памяти можно сделать следующие
выводы. Основным достоинством страничного способа, по сравнению с рассмотрен-
ными ранее, является минимально возможная фрагментация. Так как на каждую за-
дачу может приходиться по одной незаполненной странице становится очевидным, что
память можно использовать достаточно эффективно.
Недостатками способа является, во-первых, наличие существенных дополни-
тельных накладных расходов для страничной трансляция виртуальной памяти. В этом
случае таблицы страниц нужно тоже размещать в памяти. Кроме этого, эти таблицы
нужно обрабатывать; именно с ними работает диспетчер памяти.
Второй существенный недостаток страничной адресации заключается в том, что
программы разбиваются на страницы случайно, без учета логических взаимосвязей,
имеющихся в коде. Это приводит к усложнению организации разделения программных
модулей между выполняющимися процессами. Для исправления этого недостатка, пред-
ложен сегментно-страничный способ, рассмотренный далее.
Несмотря на вышеперечисленные недостатки все современные ОС для ПК исполь-
зуют именно этот способ распределения памяти.
4.2.6. Сегментно-страничное распределение памяти
В данном способе распределения памяти, как и в сегментном, программа разбива-
ется на логически законченные части - сегменты и виртуальный адрес содержит указа-
ние на номер соответствующего сегмента. Вторая составляющая виртуального адреса -
смещение относительно начала сегмента состоит из двух полей: виртуальной страницы
и индекса. Другими словами, получается, что виртуальный адрес теперь состоит из трех
компонентов: сегмент, страница, индекс.
Очевидно, что этот способ организации виртуальной памяти вносит еще большую
задержку доступа к памяти. Необходимо сначала вычислить адрес дескриптора сегмента
и прочитать его, затем вычислить адрес элемента таблицы страниц этого сегмента и из-
влечь из памяти необходимый элемент, и уже только после этого можно к номеру физи-
ческой страницы приписать номер ячейки в странице (индекс). Задержка доступа к ис-
комой ячейке получается по крайней мере в три раза больше, чем при простой прямой
103
щейся в таком «буфере», то страница никуда не выгружается и уходит в конец списка
FIFO. В противном случае страница действительно выгружается, а на ее место в «буфе-
ре» попадает следующий «кандидат». Величина такого «буфера» не может быть боль-
шой, поэтому эффективность страничной реализации памяти в Windows NT намного
ниже, чем у других современных ОС и явление пробуксовки проявляется при достаточ-
но большом объеме оперативной памяти. В системе Windows NT файл с выгруженными
виртуальными страницами носит название PageFile.sys. Следует отметить, что в совре-
менных версиях Windows NT Microsoft все же реализовала дисциплину замещения LRU.
Более подробно распределение памяти в ОС семейства Windows будет рассмотрено да-
лее.
Как и в случае с сегментным способом организации виртуальной памяти, странич-
ный способ приводит к тому, что без специальных аппаратных средств он будет сущест-
венно замедлять работу вычислительной системы. Поэтому обычно используется кэши-
рование страничных дескрипторов. Наиболее эффективным способом кэширования
является использование ассоциативного кэша. Именно такой ассоциативный кэш и
создан в 32-разрядных микропроцессорах i80x86, начиная с i80386, который стал под-
держивать страничный способ распределения памяти. В этих микропроцессорах имеется
кэш на 32 страничных дескриптора. Поскольку размер страницы в них равен 4 Кбайт,
возможно быстрое обращение к 128 Кбайт памяти.
Рассмотрев страничный способ организации памяти можно сделать следующие
выводы. Основным достоинством страничного способа, по сравнению с рассмотрен-
ными ранее, является минимально возможная фрагментация. Так как на каждую за-
дачу может приходиться по одной незаполненной странице становится очевидным, что
память можно использовать достаточно эффективно.
Недостатками способа является, во-первых, наличие существенных дополни-
тельных накладных расходов для страничной трансляция виртуальной памяти. В этом
случае таблицы страниц нужно тоже размещать в памяти. Кроме этого, эти таблицы
нужно обрабатывать; именно с ними работает диспетчер памяти.
Второй существенный недостаток страничной адресации заключается в том, что
программы разбиваются на страницы случайно, без учета логических взаимосвязей,
имеющихся в коде. Это приводит к усложнению организации разделения программных
модулей между выполняющимися процессами. Для исправления этого недостатка, пред-
ложен сегментно-страничный способ, рассмотренный далее.
Несмотря на вышеперечисленные недостатки все современные ОС для ПК исполь-
зуют именно этот способ распределения памяти.
4.2.6. Сегментно-страничное распределение памяти
В данном способе распределения памяти, как и в сегментном, программа разбива-
ется на логически законченные части - сегменты и виртуальный адрес содержит указа-
ние на номер соответствующего сегмента. Вторая составляющая виртуального адреса -
смещение относительно начала сегмента состоит из двух полей: виртуальной страницы
и индекса. Другими словами, получается, что виртуальный адрес теперь состоит из трех
компонентов: сегмент, страница, индекс.
Очевидно, что этот способ организации виртуальной памяти вносит еще большую
задержку доступа к памяти. Необходимо сначала вычислить адрес дескриптора сегмента
и прочитать его, затем вычислить адрес элемента таблицы страниц этого сегмента и из-
влечь из памяти необходимый элемент, и уже только после этого можно к номеру физи-
ческой страницы приписать номер ячейки в странице (индекс). Задержка доступа к ис-
комой ячейке получается по крайней мере в три раза больше, чем при простой прямой
103
Страницы
- « первая
- ‹ предыдущая
- …
- 99
- 100
- 101
- 102
- 103
- …
- следующая ›
- последняя »
