Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Управление реальной памятью



 

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

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

Задание Длина (шестнадцатеричная)
1 A000
2 14000
3 A800
4 4000
5 E000
6 B000
7 C000
8 D000

Пусть объем доступной памяти предполагается равным 50 000 байт, а ОС занимает первые 10 000 байт (размеры и адреса даны в шестнадцатеричном виде).

 Разделы фиксированной длины

Допустим, что память, не занятая ОС состоит из четырех разделов: раздел 1 занимает 18000 байт, разделы 2 и 3 по 10000 байт, а раздел 4 – 8000 байт.

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

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

 Использование разделов переменного размера

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

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

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

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

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

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


Поделиться:



Последнее изменение этой страницы: 2019-04-19; Просмотров: 208; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.01 с.)
Главная | Случайная страница | Обратная связь