Green-sell.info

Новые технологии
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Мультипрограммирование с переменными разделами

Мультипрограммные системы с реальной памятью.

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

Очередь заданий для раздела 1 Операционная система

X1 Y1 Z1 Раздел 1

Очередь заданий для раздела 2

Раздел 2

X2 Y2 Z2

Рис 9. Мультипрограммирование с фиксированными разделами, с трансляцией и загрузкой в абсолютных адресах

Очередь заданий

X Y Z Операционная система

Задания могут перемещаться в любой

свободный раздел, размер которого это допускает Раздел 2

Рис 10. Мультипрограммирование с фиксированными разделами, с трансляцией и загрузкой перемещаемых модулей

Мультипрограммирование с переменными разделами — если при размещении заданий не нужно соблюдать никаких фиксированных границ — напротив, заданиям предоставлять столько памяти, сколько необходимо.

Задание Х 40К Операционная система

Задание Y 60K

Рис 11. Начальное распределение разделов при мультипрограммировании с переменными разделами

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

· стратегия наиболее подходящего, когда задание помещеют в наиболее подходящий по размеру учесток, где остается меньше свободной памяти;

· стратегия первого подходящего, когда задание размещается в первом подходящем по размеру участке;

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

Стратегии размещения информации в памяти

Дата добавления: 2013-12-23 ; просмотров: 1455 ; Нарушение авторских прав

Мультипрограммирование с переменными разделами

Мультипрограммирование с фиксированными разделами

Потери значительных ресурсов в однопрограммных машинах послужили причиной реализации мультипрограммных систем, в которых несколько пользователей одновременно “состязаются” за обладание машинными ресурсами, что обеспечивает возможность одновременно выполнять операции ввода-вывода и вычисления на УП. Благодаря этому существенно повышается коэффициент использования УП и производительность системы. В первых мультипрограммных системах основная память разбивалась на ряд разделов фиксированного размера. В каждом разделе могло размещаться одно задание. УП переключался с задание на задание, создавая иллюзию одновременного их выполнения. Однако если задание было готово для выполнения, а его раздел в это время был занят, то заданию приходилось ждать, несмотря на то, что другие разделы были свободны. Т.е. трансляция заданий производилась в абсолютных адресах с рачётом на выполнение только в конкретном разделе. Это приводило к неэффективному использованию ресурсов памяти, однако позволяло относительно просто реализовать ОС. Существует также подход при котором имеется возможность трансляции перемещаемых модулей, которые могут работать в любом свободном разделе, достаточно большом для их размещения. В мультипрограммных системах со связным распределением памяти защита чаще всего реализуется при помощи нескольких граничных регистров. Два регистра позволяют указывать нижнюю и верхнюю границы раздела пользователя.

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

Объединение соседних свободных участков памяти

После того как в мультипрограммной системе с переменными разделами некоторое задание завершается, можно проверить, не соседствует ли освобождённый участок памяти с другими свободными участками (“дырами”). Если соседствует, то в список свободной памяти можно занести либо новый свободный участок, либо единый свободный участок, полученный объединением новой “дыры” с соседними. Благодаря объединению дыр можно формировать непрерывные блоки памяти максимально возможного размера.

Часто, даже после объединения соседних свободных участков бывает так, что остаются разбросанными отдельные “дыры”, составляющие в целом значительный объём памяти. Иногда очередное задание требует определённого объёма основной памяти, но не оказывается ни одного свободного, достаточно большого участка, для размещения этого задания, несмотря на то, что сумма всех свободных участков достаточно велика. Эта проблема решается при помощи метода, называемого уплотнением памяти. И заключающегося в перемещении всех занятых участков к одному или другому краю основной памяти. Благодаря этому мы получаем единый свободный участок памяти. Уплотнение памяти имеет свои недостатки:

Читать еще:  Современные системы программирования

1) отнимает ресурсы системы

2) во время уплотнения система должна прекращать любые другие работы и это может оказаться неприемлемым для систем реального времени

3) информация о рамещении программы должна сохраняться в легкодоступной форме.

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

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

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

Мультипрограммирование со свопингом

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

Мультипрограммирование с переменными разделами.

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

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

Рис. 8.4 Динамика распределения памяти между процессами. Серым цветом показана неиспользуемая память.

Типовой цикл работы менеджера памяти состоит в анализе запроса на выделение свободного участка (раздела), выборке его среди имеющихся в соответствие с одной из стратегий (first fit, best fit, worst fit), загрузке процесса в выбранный раздел и последующем внесении изменений в таблицы свободных и занятых областей. Аналогичная корректировка необходима и после завершения процесса. Связывание адресов может быть осуществлено на этапах загрузки и выполнения.

Этот метод более гибок по сравнению с методом фиксированных разделов

Этому методу также присуща внешняя фрагментация вследствие наличия большого числа участков свободной памяти. Проблемы фрагментации могут быть различными. В худшем случае мы можем иметь участок свободной (потерянной) памяти между двумя процессами. Если все эти куски объединить в один блок, мы смогли бы разместить больше процессов. Выбор между first-fit и best-fit слабо влияет на величину фрагментации.

В зависимости от суммарного размера памяти и среднего размера процесса эта проблема может быть большей или меньшей. Статистический анализ показывает, что при наличии n блоков пропадает n/2 блоков, то есть 1/3 памяти! Это известное 50% правило (два соседних свободных участка в отличие от двух соседних процессов могут быть объединены в один).

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

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

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

Резюме

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

Мультипрограммирование с фиксированными разделами. (Защита памяти при мультипрограммировании с фиксированными разделами.)

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

Читать еще:  Виды задач математического программирования

При выходи любого адреса за отведенные ей границы работы программы прерывается.

б

Рис. 5. Регистр границы при мультипрограммировании.

Оверлейная структура (для фиксированных разделов)

Так как размер логического адресного пространства процесса может быть больше чем размер выделенного ему раздела (или больше чем размер самого большого раздела), иногда используется техника, называемая оверлей (overlay) или организация структуры с перекрытием. Основная идея — держать в памяти только те инструкции программы, которые нужны в данный момент времени.

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

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

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

Перемещаемые разделы (Сжатие). Способ борьбы с фрагментацией

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

Мультипрограммирование с переменными разделами.

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

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

Рис. 10.4 Динамика распределения памяти между процессами. Серым цветом показана неиспользуемая память.

Типовой цикл работы менеджера памяти состоит в анализе запроса на выделение свободного участка (раздела), выборке его среди имеющихся в соответствие с одной из стратегий (first fit, best fit, worst fit), загрузке процесса в выбранный раздел и последующем внесении изменений в таблицы свободных и занятых областей. Аналогичная корректировка необходима и после завершения процесса. Связывание адресов может быть осуществлено на этапах загрузки и выполнения.

Этот метод более гибок по сравнению с методом фиксированных разделов

Этому методу также присуща внешняя фрагментация вследствие наличия большого числа участков свободной памяти. Проблемы фрагментации могут быть различными. В худшем случае мы можем иметь участок свободной (потерянной) памяти между двумя процессами. Если все эти куски объединить в один блок, мы смогли бы разместить больше процессов. Выбор между first-fit и best-fit слабо влияет на величину фрагментации.

В зависимости от суммарного размера памяти и среднего размера процесса эта проблема может быть большей или меньшей. Статистический анализ показывает, что при наличии n блоков пропадает n/2 блоков, то есть 1/3 памяти! Это известное 50% правило (два соседних свободных участка в отличие от двух соседних процессов могут быть объединены в один).

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

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

Читать еще:  Опишите среду программирования turbo pascal

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

Понятие виртуальной памяти. Архитектурные средства поддержки виртуальной памяти.

Понятие виртуальной памяти

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

Виртуа́льная па́мять (англ. Virtual memory) — технология управления памятью ЭВМ, разработанная для многозадачных операционных систем.(ОПРЕДЕЛЕНИЕ ИЗ ВИКИПЕДИИ)

Одним из главных усовершенствований архитектуры стало появление виртуальной памяти (virtual memory). Она впервые была реализована в 1959 г. на компьютере Атлас, разработанном в Манчестерском университете, и стала популярной только спустя десятилетие.

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

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

Возможность выполнения программы, находящейся в памяти лишь частично имеет ряд вполне очевидных преимуществ:

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

Таким образом, возможность обеспечения (при поддержке операционной системы) для программы видимости практически неограниченной (32- или 64-разрядной) адресуемой пользовательской памяти при наличии основной памяти существенно меньших размеров очень важный аспект.

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

С целью защиты виртуальная память поддерживалась и на компьютерах с 16-разрядной адресацией, в которых объем основной памяти зачастую существенно превышал 64 Кбайта (размер виртуальной памяти). Например, 16-разрядный компьютер PDP-11/70 мог иметь до 2 Мбайт оперативной памяти. Операционная система этого компьютера, тем не менее, поддерживала виртуальную память, основным смыслом которой являлось обеспечение защиты и перераспределения основной памяти между пользовательскими процессами.

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

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

Традиционно считается, что существует три модели виртуальной памяти:

· и их комбинация — сегментно-страничная модель.

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

Сегментная организация в чистом виде практически не встречается.

Папиллярные узоры пальцев рук — маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни.

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ — конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой.

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector