Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
391384.rtf
Скачиваний:
8
Добавлен:
31.07.2019
Размер:
2.39 Mб
Скачать

Размещено на http://www.allbest.ru/

Министерство образования и науки Росcийской Федерации

Федеральное агентство по образованию

ГОУВПО «Cеверо-Кавказский государственный технический универcитет»

Кaфедра защиты информации

Курсовaя рaботa

по дисциплине: «Безопасность операционных систем»

тема: «Алгоритмы распределения памяти»

Вариант №28

Cтаврополь, 2011

Cодержание

Введeние

1. Распределение без использования внешней памяти

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

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

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

2. Распределение с использованием внешней памяти

2.1 Страничное распределение памяти

2.2 Сегментное распределение памяти

2.3 Сегментно-страничное распределение памяти

3. Аналитическая часть

3.1 Общие сведения о матричных принтерах

3.2 Проектирование символов для матричных принтеров

3.3 Проектирование символа «Ш»

3.4 Проектирование символа «Р»

3.5 Проектирование символа «С»

Зaключение

Cписок литературы

Прилoжение 1

Прилoжение 2

Прилoжение 3

Введение

Следует ли назначать каждому процессу одну непрерывную область физической памяти или можно выделять память «кусками»? Должны ли сегменты программы, загруженные в память, находиться на одном месте в течение всего периода выполнения процесса или можно ее время от времени сдвигать? Что делать, если сегменты программы не помещаются в имеющуюся память? Разные ОС по-разному отвечают на эти и другие базовые вопросы управления памятью. Далее будут рассмотрены наиболее общие подходы к распределению памяти, которые были характерны для разных периодов развития операционных систем. Некоторые из них сохранили актуальность и широко используются в современных ОС, другие же представляют в основном только познавательный интерес, хотя их и сегодня можно встретить в специализированных системах.

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

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

  1. Распределение без использования внешней памяти

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

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

Рис 2. Распределение памяти фиксированными разделами: а - с общей очередью; б - с отдельными очередями

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]