Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GOSv1_3.docx
Скачиваний:
56
Добавлен:
30.03.2015
Размер:
1.9 Mб
Скачать
  1. Управление оперативной памятью в современных операционных системах: управление физической и виртуальной памятью, способы организация виртуальной памяти, организация подкачки.

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

С точки зрения принципов фон Неймана ОП - одно из главнейших устройств компьютера. Более того, вследствие принципов фон Неймана процессор не может взаимодействовать напрямую ни с кем, кроме оперативной памяти.

Т.е. процессор во время выполнения процесса выбирает его код и данные только из ОП, ниоткуда больше. Функции управления ОП – 2ые по важности функции ОС.

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

Каждый байт имеет свой номер - адрес ячейки ОП, так как номера присваиваются байтам, следовательно, байт - минимальная адресуемая ячейка памяти.

Когда процессор выбирает из ОП больше одного байта, адресом считается адрес младшего байта.

Можно утверждать, что никогда ОП не бывает достаточно. ОП – самый критичный ресурс, ее никогда не хватает, поэтому в современных ОС появилось понятие виртуальной ОП.

Задачи управления физической памяти:

  1. Выделение памяти под процессы.

  2. Освобождение памяти после завершения процессов.

  3. Решение проблемы фрагментации памяти.

  4. Современные ОС управляют не физической, а виртуальной памятью – отображение виртуального адресного пространства на физическое выполняется аппаратно.

Существуют два вида ОП: физическая и виртуальная ОП

Физическая память – память, которая реально инсталлирована в компьютер. Объем ее измеряется объемом запоминающего устройства и не может быть увеличен.

Виртуальная память – память, которой в компьютере реально не существует, но которая может использоваться программным обеспечением. Существует в фантазиях ОС.

Виртуализация ОП рассматривается с двух позиций:

1. Традиционный подход: физической памяти мало, а виртуальной памяти много, всё физическое адресное пространство представляется в виде виртуального адресного пространства. Вся память, к которой работает ОС это ВАП(вирт. адр. простр.) и часть ВАПа – ФАП.

Задача ОС : каким образом организовать нормальную работу процессов с виртуальным адресным пространством. Решение-организация swaping

2. нарушение свойства линейности ОП.

ФАП рассматривается как одномерный линейный массив. ВАП можнт рассматривается как более сложно организованное ВАП. Речь идет о том чтобы преобразовать линейное одномерное пространство ФАП в n-мерное ВАП. Как правило используются 2хмерные модели, реже 3хмерные модели. Самый писк – 4хмерная модель ОП.

Современные ОС могут использовать несколько преставлений ОП.

Все современные ОС используют оба подхода. Виртуальная память в современных ОС - расширение физической ОП с нарушением свойства линейности одномерного пространства адресов.

В зависимости от ОС механизмы управления адресным пространством могут быть различны. Разные ОС могут управлять либо физической, либо виртуальной ОП. А некоторые даже могут совмещать .

Swapping – это механизм обмена страницами между физической (первичной) памятью и виртуальной (вторичной).

UNIX всегда при помещении чего-то в память, что-то убирает из памяти. Windows заполняет память постепенно. UNIX заполняет сразу.

Организация свопинга/подкачки

Свопинг - механизм, который позволяет расширить физическую ОП за счет использования дискового пространства.

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

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

В Windows используется 2 дисциплины одновременно.

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

+ в памяти будут находиться только те страницы, которые нужны.

- замедляет работу системы.

Используется, как вспомогательная, так как основная не может гарантировать со 100%, что страницы будут вовремя подкачаны в память.

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

Все программисты пишут программы более или менее одинаково

Отслеживает, что делает процесс. И смотрит, какие страницы будут нужны.

VMM отслеживает поведенческие характеристики процесса и на основании этих характеристик, какие страницы процессам будут нужны, а какие нет. ОС используют нечеткие или эвристические алгоритмы для работы алгоритма подкачки. Такая дисциплина дает сбой примерно в 20-30% случаев.

В UNIX.

Расширение ОП достигается за счет своп - раздела.

Особенностью такого управления памятью состоит в том, что UNIX и Linux не делают различия между областью физической памяти и областью свопинга.

Обмен страницами всегда происходит так: если какая-то страница выноситься из 1ной памяти, то её место занимает страница из 2ой памяти. Нельзя делать так: что-то добавили, но ничего не убрали. В VAX такое было на аппаратном уровне.

Используется 2 механизма

1 механизм. Определение рабочих наборов. Идет на основании глобальной таблицы страниц. Вероятность того, что нужная страница будет подгружена 80-85%.

2 механизм. Подкачка по требованию

В Windows.

В Windows используется не свопинг, а подкачка. По сути.

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

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

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

Разные варианты свопинга определили разные подходы к планированию процесса. Windows старается реализовать переключение между процессами быстрее. UNIX – неинтерактивная система, поэтому при определении рабочего множества на основании глобальной таблицы страниц определить процесс нельзя. Она может взять и выгрузить процесс целиком. Чем наглее процесс – тем больше памяти получит. Linux находится посередине. Позиционировать её нельзя ни как вычислительную, ни как интерактивную.

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