24521

Методы распределения памяти без использования диска (фиксированными, динамическими, перемещаемыми разделами)

Доклад

Информатика, кибернетика и программирование

Методы распределения памяти без использования диска фиксированными динамическими перемещаемыми разделами. Методы распределения памяти. Рассмотрим наиболее общие подходы к распределению памяти которые были характерны для разных периодов развития ОС. Классификация методов распределения памяти 5.

Русский

2013-08-09

83.87 KB

10 чел.

Вопрос 26. Методы распределения памяти без использования диска (фиксированными, динамическими, перемещаемыми разделами).

§5.3.1. Методы распределения памяти.

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

Все методы управления памятью могут быть разделены на два класса: методы, которые не используют перемещение сегментов процессов между оперативной памятью и жестким диском, и методы, которые делают этого (рис. 5.3). Начнем с первого, более простого класса методов.

Рис.5.3. Классификация методов распределения памяти

§5.3.1 Распределение памяти без использования диска.

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

Самым простым способом управления оперативной памятью является разделение ее на несколько разделов фиксированной величины. Это может быть выполнено вручную оператором во время старта системы или во время ее генерации. Очередная задача, поступившая на выполнение, помещается либо в общую очередь, либо в очередь к некоторому разделу (рис. 5.4).

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

а – с общей очередью; б – с отдельными очередями

Подсистема управления памятью в этом случае выполняет следующие задачи:

- выбирает подходящий раздел, сравнивая размер программы, поступившей на выполнение, и свободных разделов;

- осуществляет загрузку программы и настройку адресов.

При простоте реализации данный метод имеет существенный недостаток – отсутствие гибкости. Так как в каждом разделе может выполняться только одна программа, то уровень мультипрограммирования заранее ограничен числом разделов, не зависимо от того, какой размер имеют программы. Например, в системе с тремя разделами невозможно выполнять одновременно более трех процессов, даже если им требуется совсем мало памяти. Даже если программа имеет небольшой объем, она будет занимать весь раздел, что приводит к неэффективному использованию памяти. С другой стороны, даже если общий объем оперативной памяти машины позволяет выполнить некоторую программу, разбиение памяти на разделы не позволяет сделать этого.

Сейчас такой метод распределения памяти находит применение в системах реального времени, в которых заранее известен набор выполняемых задач и их требования к памяти.

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

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

На рис. 5.5 показано состояние памяти в различные моменты времени при использовании динамического распределения. Так в момент t0 в памяти находится только ОС, а к моменту t1 память разделена между 5 задачами, причем задача П4, завершаясь, покидает память. На освободившееся после задачи П4 место загружается задача П6, поступившая в момент t3.

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

(свободные области заштрихованы)

Задачами операционной системы при реализации данного метода управления памятью является:

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

- анализ запроса при поступлении новой задачи – просмотр таблицы свободных областей и выбор раздела, размер которого достаточен для размещения поступившей задачи;

- загрузка задачи в выделенный ей раздел и корректировка таблиц свободных и занятых областей;

- корректировка таблиц свободных и занятых областей после завершения задачи.

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

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

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

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

Распределение памяти динамическими разделами использовалось во многих мультипрограммных операционных системах 1960-70-х годов.

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

Одним из методов борьбы с фрагментацией является перемещение всех занятых областей в сторону старших либо младших адресов, так, чтобы вся свободная память образовывала единую область (рис. 5.6). Для этого в дополнение к распределению памяти динамическими разделами ОС должна еще время от времени копировать содержимое разделов из одного места памяти в другое, корректируя таблицы свободных и занятых областей. Эта процедура называется "сжатием".

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

(свободные области заштрихованы)

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

Такой подход был использован в ранних версиях OS/2, в которых память распределялась сегментами, а возникавшая при этом фрагментация устранялась путем периодического перемещения сегментов.


 

А также другие работы, которые могут Вас заинтересовать

6856. Визначення інерційних параметрів ланок методом фізичного маятника 63 KB
  Визначення інерційних параметрів ланок методом фізичного маятника Мета роботи: визначення координат центра мас ланки визначення момента інерції ланки. Розрахункові методи визначення інерційних параметрів ланок...
6857. Визначення коефіцієнтів тертя ковзання 87 KB
  Визначення коефіцієнтів тертя ковзання Мета роботи Метою є експериментальне визначення коефіцієнтів тертя ковзання у тертєвих парах з різних конструкційних матеріалів. Використовується метод В.О. Желіговського (нахиленої лінійки), що дає можли...
6858. Определение коэффициентов трения скольжения 66 KB
  Определение коэффициентов трения скольжения Цель работы Цель - экспериментальное определение коэффициентов трения скольжения в трущихся парах из разных конструкционных материалов. Используется метод В.A. Желиговского (наклонной линей...
6859. Визначення геометричних параметрів зубчатих коліс 84 KB
  Визначення геометричних параметрів зубчатих коліс Ціль роботи: засвоєння методики розрахунку геометричних параметрів евольвентних зубчатих передач визначення геометричних параметрів (розшифровка) евольвентних зубчатих коліс засвоєння правил офо...
6860. Визначення механічних характеристик електричних двигунів 3.09 MB
  Визначення механічних характеристик електричних двигунів Мета роботи: визначення залежностей частоти обертання ротору електродвигуна та його механічної потужності від моменту, який розвиває двигун Електродвигуни постійного струму...
6861. Вивчення конструкцій механізмів слідкуючих систем дистанційного керування 66.5 KB
  Вивчення конструкцій механізмів слідкуючих систем дистанційного керування Ціль роботи...
6862. Изучение конструкций механизмов следящих систем дистанционного управления 43 KB
  Изучение конструкций механизмов следящих систем дистанционного управления. Выходной вал следящего привода с заданной степенью точности воспроизводит в виде механического перемещения входной управляющий сигнал....
6863. Визначення пружних властивостей та характеристик гвинтових пружин 1.46 MB
  Визначення пружних властивостей та характеристик гвинтових пружин Мета роботи - визначення: пружних властивостей гвинтових пружин методів розрахунків міцності та жорсткості пружин при проектуванні методів експериментального...
6864. Визначення моментів тертя у підшипниках кочення 53 KB
  Визначення моментів тертя у підшипниках кочення Мета роботи: визначення моментів тертя у шарикопідшипниках. Розрахункові методи визначення моментів тертя у підшипниках кочення Моменти тертя Тп, Н.мм, у шарикопідшипниках із внутріш...