Составители:
чтобы уменьшить эти потери, используется кэширование, т.е расположение дескрипто-
ров выполняемых задач в кэш-памяти микропроцессора.
Вторым недостатком является наличие фрагментации памяти, хотя и сущест-
венно меньшей, чем при непрерывном распределении.
Кроме этого, имеются потери памяти и процессорного времени на размещение и
обработку дескрипторных таблиц, так как на каждую задачу необходимо иметь свою
таблицу дескрипторов сегментов, а при определении физических адресов необходимо
выполнять операции сложения. Уменьшение этих недостатков реализовано в странич-
ном способе распределения памяти, который будет рассмотрен далее.
Примером использования сегментного способа организации виртуальной памяти
является операционная система для ПК OS/2 ver.1, созданная для процессора i80286. В
этой ОС в полной мере использованы аппаратные средства микропроцессора, который
специально проектировался для поддержки сегментного способа распределения памяти.
OS/2 v.1 поддерживала распределение памяти, при котором выделялись сегменты
программы и сегменты данных. Система позволяла работать как с именованными, так и
неименованными сегментами. Имена разделяемых сегментов данных имели ту же фор-
му, что и имена файлов. Процессы получали доступ к именованным разделяемым сег-
ментам, используя их имена в специальных системных вызовах. OS/2 v.1 допускала раз-
деление программных сегментов приложений и подсистем, а также глобальных
сегментов данных подсистем. Сегменты, которые активно не использовались, могли вы-
гружаться на жесткий диск. Система восстанавливала их, когда в этом возникала необ-
ходимость. Вообще, вся концепция системы OS/2 была построена на понятии разделения
памяти: процессы почти всегда разделяют сегменты с другими процессами. В этом со-
стояло ее существенное отличие от систем типа UNIX, которые обычно разделяют толь-
ко реентерабельные программные модули между процессами.
4.2.5. Страничное распределение памяти
В этом способе все фрагменты (части) задачи имеют одинаковый размер и длину,
кратную степени двойки. Вследствие этого, операции сложения можно заменить опера-
циями слияния, что существенно уменьшает вычислительную нагрузку. Одинаковые
части задачи называют страницами и говорят, что память разбивается на физические
страницы, а программа - на виртуальные страницы. Часть виртуальных страниц задачи
может размещаться в оперативной памяти, а часть - во внешней. Обычно место во внеш-
ней памяти, в качестве которой в абсолютном большинстве случаев выступают жесткие
диски, называют файлом подкачки или страничным файлом (paging file). Иногда этот
файл называют swap-файлом, тем самым подчеркивая, что записи этого файла - страни-
цы, которые замещают друг друга в оперативной памяти. В некоторых ОС выгруженные
страницы располагаются не в файле, а в специальном разделе дискового пространства. В
UNIX-системах для этих целей выделяется специальный раздел, но кроме него могут
быть использованы и файлы, выполняющие те же функции, если объема выделяемого
раздела недостаточно.
Разбиение всей оперативной памяти на страницы одинаковой величины, причем
величина каждой страницы выбирается кратной степени двойки, приводит к тому,
что вместо одномерного адресного пространства памяти можно говорить о дву-
мерном. Первая координата адресного пространства - это номер страницы, а вторая ко-
ордината - номер ячейки внутри выбранной страницы (его называют индексом). Таким
образом, физический адрес определяется парой (Рр, i), а виртуальный адрес - парой (Р
V
,
i), где Р
V
- это номер виртуальной страницы, Рр - это номер физической страницы и i -
это индекс ячейки внутри страницы. Количество бит, отводимое под индекс, опреде-
ляет размер страницы, а количество бит, отводимое под номер виртуальной стра-
101
чтобы уменьшить эти потери, используется кэширование, т.е расположение дескрипто-
ров выполняемых задач в кэш-памяти микропроцессора.
Вторым недостатком является наличие фрагментации памяти, хотя и сущест-
венно меньшей, чем при непрерывном распределении.
Кроме этого, имеются потери памяти и процессорного времени на размещение и
обработку дескрипторных таблиц, так как на каждую задачу необходимо иметь свою
таблицу дескрипторов сегментов, а при определении физических адресов необходимо
выполнять операции сложения. Уменьшение этих недостатков реализовано в странич-
ном способе распределения памяти, который будет рассмотрен далее.
Примером использования сегментного способа организации виртуальной памяти
является операционная система для ПК OS/2 ver.1, созданная для процессора i80286. В
этой ОС в полной мере использованы аппаратные средства микропроцессора, который
специально проектировался для поддержки сегментного способа распределения памяти.
OS/2 v.1 поддерживала распределение памяти, при котором выделялись сегменты
программы и сегменты данных. Система позволяла работать как с именованными, так и
неименованными сегментами. Имена разделяемых сегментов данных имели ту же фор-
му, что и имена файлов. Процессы получали доступ к именованным разделяемым сег-
ментам, используя их имена в специальных системных вызовах. OS/2 v.1 допускала раз-
деление программных сегментов приложений и подсистем, а также глобальных
сегментов данных подсистем. Сегменты, которые активно не использовались, могли вы-
гружаться на жесткий диск. Система восстанавливала их, когда в этом возникала необ-
ходимость. Вообще, вся концепция системы OS/2 была построена на понятии разделения
памяти: процессы почти всегда разделяют сегменты с другими процессами. В этом со-
стояло ее существенное отличие от систем типа UNIX, которые обычно разделяют толь-
ко реентерабельные программные модули между процессами.
4.2.5. Страничное распределение памяти
В этом способе все фрагменты (части) задачи имеют одинаковый размер и длину,
кратную степени двойки. Вследствие этого, операции сложения можно заменить опера-
циями слияния, что существенно уменьшает вычислительную нагрузку. Одинаковые
части задачи называют страницами и говорят, что память разбивается на физические
страницы, а программа - на виртуальные страницы. Часть виртуальных страниц задачи
может размещаться в оперативной памяти, а часть - во внешней. Обычно место во внеш-
ней памяти, в качестве которой в абсолютном большинстве случаев выступают жесткие
диски, называют файлом подкачки или страничным файлом (paging file). Иногда этот
файл называют swap-файлом, тем самым подчеркивая, что записи этого файла - страни-
цы, которые замещают друг друга в оперативной памяти. В некоторых ОС выгруженные
страницы располагаются не в файле, а в специальном разделе дискового пространства. В
UNIX-системах для этих целей выделяется специальный раздел, но кроме него могут
быть использованы и файлы, выполняющие те же функции, если объема выделяемого
раздела недостаточно.
Разбиение всей оперативной памяти на страницы одинаковой величины, причем
величина каждой страницы выбирается кратной степени двойки, приводит к тому,
что вместо одномерного адресного пространства памяти можно говорить о дву-
мерном. Первая координата адресного пространства - это номер страницы, а вторая ко-
ордината - номер ячейки внутри выбранной страницы (его называют индексом). Таким
образом, физический адрес определяется парой (Рр, i), а виртуальный адрес - парой (РV,
i), где РV - это номер виртуальной страницы, Рр - это номер физической страницы и i -
это индекс ячейки внутри страницы. Количество бит, отводимое под индекс, опреде-
ляет размер страницы, а количество бит, отводимое под номер виртуальной стра-
101
Страницы
- « первая
- ‹ предыдущая
- …
- 97
- 98
- 99
- 100
- 101
- …
- следующая ›
- последняя »
