Во время работы прикладной
программы все адреса, генерируемые CPU,
сравниваются с содержимым регистра границы.
Если генерируется адрес меньше числа
00F1A, работа программы прерывается.
Схема с фиксированными
разделами
Одним из простых способов управления
оперативной памятью является ее предварительное
разбиение на несколько разделов фиксированной
величины (MFT — .Multiprogramming with a fixed number of tasks).
Поступающие процессы помещаются в тот
или иной раздел. При этом происходит условное
разбиение физического адресного пространства.
Связывание логических и физических адресов
процесса происходит на этапе его загрузки
в конкретный раздел, иногда – на этапе
компиляции. Каждый раздел может иметь
свою очередь процессов, а может существовать
и глобальная очередь для всех разделов.
Эта схема была реализована в IBM OS/360 (MFT),
DEC RSX-11 и ряде других систем. Подсистема
управления памятью: оценивает размер
поступившего процесса, выбирает подходящий
для него раздел, осуществляет загрузку
процесса в этот раздел и настройку адресов.
Недостатки такой схемы:
- число одновременно выполняемых
процессов ограничено числом разделов
- предлагаемая схема сильно
страдает от внутренней фрагментации
– потери части памяти, выделенной процессу,
но не используемой им. Фрагментация возникает
потому, что процесс не полностью занимает
выделенный ему раздел или потому, что
некоторые разделы слишком малы для выполняемых
пользовательских программ.
Один процесс в памяти
и оверлейные структуры
В схеме с фиксированными разделами
также возможен однопрограммный и оверлейный
режимы. Принцип функционирования такой
же, как был рассмотрен ранее. Отличие
лишь в том, что CPU должно содержать несколько
регистров границ – для каждого из разделов.
При выходе любого адреса программы за
отведенные ей границы работа программы
.прерывается.
Оверлеи могут быть полностью
реализованы на пользовательском уровне
в системах с .простой файловой структурой.
ОС при этом лишь делает несколько больше
операций ввода-вывода.
Тщательное проектирование
оверлейной структуры отнимает много
времени и требует .знания устройства
программы, ее кода, данных и языка описания
оверлейной структуры. .По этой причине
применение оверлеев ограничено компьютерами
с небольшим .логическим адресным пространством.
Как мы увидим в дальнейшем, проблема оверлейных
сегментов, контролируемых программистом,
отпадает благодаря появлению систем
виртуальной памяти.
Динамическое распределение.Свопинг
Имея дело с пакетными системами,
можно обходиться фиксированными разделами
и не использовать ничего более сложного.
В системах с разделением времени возможна
ситуация, когда память не в состоянии
содержать все пользовательские процессы
(мультипрограммный режим работы). Приходится
прибегать к свопингу (swapping) – перемещению
процессов из основной памяти во внешнюю
память и обратно целиком.
Выгруженный процесс может
быть возвращен в то же самое адресное
пространство или в другое. Это ограничение
диктуется методом связывания. Для схемы
связывания на этапе выполнения можно
загрузить процесс в другое место памяти.
Свопинг иногда используют
при приоритетном планировании CPU. В этом
случае с целью освобождения памяти для
высокоприоритетных процессов, низкоприоритетные
процессы перемещаются во внешнюю память.
Очевидно, что свопинг увеличивает
время переключения контекста. Время выгрузки
может быть сокращено за счет организации
специально отведенного пространства
на .диске (раздел для свопинга). Обмен
с диском при этом осуществляется блоками
большего размера, то есть быстрее, чем
через стандартную файловую систему. Во
многих версиях Unix свопинг начинает работать
только тогда, когда возникает необходимость
в снижении загрузки системы.
Схема с переменными
разделами
В принципе, система свопинга
может базироваться на фиксированных
разделах. Более эффективной, однако, представляется
схема динамического распределения или
схема с переменными разделами, которая
может использоваться и в тех случаях,
когда все процессы целиком помещаются
в памяти, то есть в отсутствие свопинга.
В этом случае вначале вся память свободна
и не разделена заранее на разделы.
Вновь поступающей задаче выделяется
строго необходимое количество памяти,
не более. После выгрузки процесса память
временно освобождается. По истечении
некоторого времени память представляет
собой переменное число разделов разного
размера Смежные свободные участки могут
быть объединены.
Стратегии
размещения информации в памяти
Те или иные стратегии размещения
информации в памяти применяются для того,
чтобы определить, в какое место основной
памяти следует помещать поступающие
программы и данные. Организация памяти
- это способ представления и использования
памяти.
Стратегия наиболее
подходящего (First fit)
Поступающее задание помещается
в тот свободный участок основной памяти,
в котором ему наиболее "тесно", так
что остается минимально возможное неиспользуемое
пространство. Для многих людей выбор
наиболее подходящего кажется интуитивно
самой рациональной стратегией.
Стратегия первого
подходящего (Best fit)
Поступающее задание помещается
в первый встретившийся свободный участок
основной памяти достаточного размера.
Выбор первого подходящего по размеру
свободного участка также кажется интуитивно
рациональным, поскольку он позволяет
быстро принять решение о размещении задания.
.
На первый взгляд подобный подход
кажется весьма странным. Однако более
тщательное рассмотрение показывает,
что выбор наименее подходящего по размеру
также имеет сильные интуитивные аргументы
в свою пользу. Этот принцип говорит о
том, что при помещении программы в основную
память нужно занимать свободный участок,
имеющий наиболее далекий размер, т. е.
максимальный возможный свободный участок.
Интуитивный аргумент в пользу такого
подхода достаточно прост: после помещения
программы в большой свободный участок
остающийся свободный участок зачастую
также оказывается большим и, таким образом,
в нем можно разместить относительно большую
новую программу.
Фрагментация
Понятие фрагментации
Фрагментация – наличие большого
числа участков неиспользуемой памяти,
не выделенной ни одному процессу.
Метод «Стратегии наименее
подходящего» более гибок по сравнению
с методом фиксированных разделов, однако
ему присуща фрагментация.
Выбор стратегии размещения
процесса между первым подходящим и наиболее
подходящим слабо влияет на величину фрагментации.
Любопытно, что метод наиболее подходящего
может оказаться наихудшим, так как он
оставляет множество мелких незанятых
блоков.
Уменьшить фрагментацию памяти
при мультипрограммировании с фиксированными
.разделами можно, если загрузочные модули
создаются в перемещаемых адресах. Такой
модуль может быть загружен в любой свободный
раздел после соответствующей настройки.
Причины фрагментации
При мультипрограммировании
с трансляцией в перемещаемых адресах
имеются две .причины фрагментации.
Первая — размер загруженного
процесса меньше размера, занимаемого
разделом (внутренняя фрагментация).
Вторая — размер процесса в
очереди больше размера свободного раздела,
и этот .раздел остается свободным (внешняя
фрагментация).
Защита от фрагментации
Для защиты памяти при мультипрограммировании
с фиксированным количеством разделов
необходимы два регистра.
Первый — регистр верхней границы
(наименьший адрес).
Второй — регистр нижней границы
(наибольший адрес).
Статистический анализ показывает,
что пропадает в среднем 1/3 памяти! Это
известное .правило 50% (два соседних свободных
участка в отличие от двух соседних процессов
.могут быть объединены).
Одно из решений проблемы внешней
фрагментации – организовать сжатие,
то есть перемещение всех занятых (свободных)
участков в сторону возрастания (убывания)
адресов, так, чтобы вся свободная память
образовала непрерывную область. Этот
метод иногда называют схемой с перемещаемыми
разделами. В идеале фрагментация после
сжатия должна отсутствовать. Сжатие,
однако, является дорогостоящей процедурой,
алгоритм выбора оптимальной стратегии
сжатия очень труден и, как правило, сжатие
осуществляется в комбинации с выгрузкой
и загрузкой по другим адресам.
Заключение
Физическая память компьютера
имеет иерархическую структуру. Программа
представляет собой набор сегментов в
логическом адресном пространстве. Для
выполнения программы при ее загрузке
в основную память ей выделяется часть
Машинных ресурсов – они необходимы для
размещения команд, данных, управляющих
таблиц и областей ввода-вывода, т. е. производится
трансляция адресного пространства откомпилированной
программы в местоположение в реальной
памяти. Существует реальный и защищенный
режимы работы памяти. Алгоритмы распределения,
использования, освобождения ресурсов
и предоставления к ним доступа предназначены
для наиболее эффективной организации
работы всего комплекса устройств ЭВМ.
Выделение ресурсов может быть
осуществлено как пользователем, так и
операционной системой.
Адресное пространство - это
просто набор адресов, которые умеет формировать
процессор; совсем не обязательно все
эти адреса отвечают реально существующим
ячейкам памяти. В зависимости от модификации
персонального компьютера и состава его
периферийного оборудования, распределение
адресного пространства может несколько
различаться. Тем не менее, размещение
основных компонентов системы довольно
строго унифицировано
Список литературы и
электронных информационных источников
- http://dnf.su/college/attachments/article/1/OS_11_UprPam.pdf
- Чекмарев Ю.В. Вычислительные
системы, сети и телекоммуникации, М.:МДК
Пресс, 2009-184с.
- Бройдо, В. Л. Вычислительные
системы, сети и телекоммуникации / В. Л.
Бройдо. – СПб. : Питер, 2002. – 688 с. : ил.
- Вычислительные системы, сети
и телекоммуникации / А. П. Пятибратов,
Л. П. Гудыно, А. А. Кириченко. – М. : Финансы
и статистика, 2001.– 512 с.