Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Os_Otvety.docx
Скачиваний:
145
Добавлен:
01.04.2022
Размер:
32.58 Mб
Скачать

30. Функции ос по управлению памятью.

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

Управление:

  1. учет и контроль состояния каждой единицы памяти (свободна или распределена)

  2. стратегия распределения памяти (кому,когда, сколько)

  3. выделение памяти (выбор конкретной области)

  4. стратегия освобождения памяти

*страничное распределение м.б. исп-но и без исп-ия внешней памяти

31. Алгоритмы распределения памяти без использования внешних носителей (фиксированные, динамические, перемещаемые разделы).

Распределение памяти фиксированными разделами

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

  • возможно мультипрограммирование

  • степень мультипрограммирования ограничена (разделами)

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

Проблемы:

  1. Имеем области памяти, которые не используются.

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

Либо задачи объединяются в одну очередь, либо заранее формируются свои очереди к каждому разделу (рисунки ниже)

Необходимые аппаратные средства:

  1. два регистра границ (границы раздела)

  2. ключи защиты

Распределение памяти динамическими разделами

Процессы поступают в систему и получают память в соответствии со своими запросами.

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

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

+поддержка мультипрограммирования

+вся память свободна и доступна для распределения

- Память системы может оказаться “изъеденной”, так как буду возникать небольшие “дырки” свободной памяти в разных местах, не позволяющие выполнить ни один процесс, даже если суммарный объем будет достаточен.

Распределение памяти перемещаемыми разделами

В предыдущем случае свободные участки пропадали, в данном же распределении памяти выполняется процедура “сжатия”. То есть выполняется перенос образов процессов по какому-то правилу, а свободные области памяти объединяются в общий пул в надежде, что их суммарного объема хватит для какого-либо процесса.

Является достаточно накладной операцией, так как происходит полноценная физическая перезапись.

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