Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UchbnoePosobieV14 - p2.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.08 Mб
Скачать

4.1.2.Схема управления памятью

Часть операционной системы, осуществляющая управление памятью называется модулем (допустимо назвать системой) управления памятью или администратором памяти [9].

На Рис. 4 .1 представлена система управления памятью. Она состоит из двух подсистем: подсистемы управления физической памятью и подсистемы управления виртуальной памятью. При этом для данной вычислительной системы, как правило, характерна одна конкретная физическая модель памяти, но виртуальных моделей памяти может поддерживаться несколько (иногда все 4-ре модели). Выбор конкретной модели виртуальной памяти определяется рядом (порой, носящих противоречивый характер) соображений. Не последнее место занимают такие, как:

  • защищенность программ при их временной выгрузке на диск;

  • скорость выполнения программ;

  • соответствие стандарту;

  • скорость связывания информации.

Рис. 4.1. Схема управления памятью

Например, основной моделью виртуальной памяти в ОС Vx Works является плоская модель, которая в рамках концепции этой ОС РВ позволяет достичь быстрого выполнения задач и требуемой реакции на внешние события. Наряду с этим поставляется дополнительный продукт VxVMI, который осуществляет управление страничной моделью памяти (защищенный режим), что соответствует требованию в стандарте POSIX относительно ОС РВ. При применении этого продукта «скоростные» характеристики Vx Works несколько ухудшаются.

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

  • не было бы нужды делать выбор между swapping (подкачкой процессов целиком) или paging (постраничной подкачкой);

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

  • увеличение продуктивности систем за счет отказа от целого класса ненужных в этом случае алгоритмов управления памятью;

  • уменьшила бы объем данного раздела до нескольких страниц.

Стремительное возрастание объемов оперативной памяти на рубеже столетий внушило определенный оптимизм в достижении положительного решения данного вопроса. Однако, по утверждению специалистов [17] объем задач рос ещё стремительнее и полный отказ от дисковой подкачки по-прежнему остался в «стране мечтаний».

4.1.3.Управление памятью в однозадачной системе

Однозадачная система без подкачки на диск. В этой системе реализуется самая простая схема управления памятью. Адресуемое пространство памяти, как правило, содержит (см. например Error: Reference source not found):

  • резидентную часть операционной системы в ПЗУ или (и) в ОЗУ;

  • драйверы устройств и другие системные программы;

  • возможно видеобуферы.

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

Однозадачная система с подкачкой на диск. Пожалуй, этот вариант является первым кандидатом, который может уменьшить число вариантов существующих схем управления памятью. Действительно, трудно представить, что при современных объёмах оперативной памяти последней может не хватить одной задаче. Тем не менее, эта схема представляет собой простейший механизм подкачки, и в этом плане его рассмотрение заслуживает внимания. Проблема решается с помощью оверлеев (причем не только в данном случае, но и в многозадачных схемах). Если Vзадачи > Vтран и полная загрузка задачи в оперативную память не возможна, то прикладная программа разбивается на корневой сегмент и сегменты перекрытия (Рис. 4 .2). В примере на указанном рисунке корневой сегмент имеет объем Vкор. Оставшаяся часть задачи разбивается на 4-ре сегмента перекрытия соответственно с объёмами: V1, Vmax, V2 и V3. В памяти постоянно находится корневой сегмент, который по очереди вызывает сегменты перекрытия. В оперативной памяти в каждый момент времени может находиться только один сегмент перекрытия. Из этой схемы работы естественно вытекают условия разбиения задачи: сумма объёмов корневого сегмента и самого большого сегмента перекрытия не должна превышать объема транзитной области памяти

Vкор + Vmax < Vтран .

Возникает вопрос: чем разбиение на корневой сегмент и сегменты перекрытия в этой схеме отличается от индивидуальных усилий энтузиаста в предыдущей? Отличие заключается в том, что в однозадачную систему с подкачкой на диск включен механизм, позволяющий прикладному программисту легко и эффективно произвести эти разбиения. Более того, в многозадачной операционной системе RSX/M, которая была разработана для машин с весьма скромными ресурсами (PDP 11/40), существовал механизм построения дерева перекрытий. В его рамках каждый из сегментов перекрытия мог быть разбит на более мелкие сегменты перекрытия. Это позволяло наряду с корневым сегментом одновременно загрузить ветвь сегментов перекрытия. Добиваясь почти одинаковой длины всех ветвей, можно более равномерно загрузить память и добиться тем самым увеличения продуктивности системы.

Рис. 4.2. Сегменты перекрытия

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]