русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


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


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

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

 

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

 

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



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

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

Уплотнение памяти

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

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

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

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

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

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

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

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

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




<== предыдущая лекция | следующая лекция ==>
Связное и несвязное распределение памяти | Страничная организация памяти


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.