~1 (Разработка операционных систем), страница 4
Описание файла
Документ из архива "Разработка операционных систем", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "~1"
Текст 4 страницы из документа "~1"
Так, например, во многих версиях операционной системы UNIX своппинг включается только в том случае, когда количество процессов в памяти становится слишком большим.
3.2. Смежное размещение процессов.
Методы размещения процессов в основной памяти по отношению к расположению участков памяти, выделенных для одной и той же программы делят на два класса. Первый — метод смежного размещения, а второй — метод несмежного размещения.
Смежное размещение является простейшим и предполагает, что в памяти, начиная с некоторого начального адреса выделяется один непрерывный участок адресного пространства.
при несмежном размещении программа разбивается на множество частей, которые располагаются в различных, необязательно смежных участках адресного пространства.
3.2.1. Однопрограммный режим.
0
а
б
Рисунок иллюстрирует смежное размещение (contiguous allocation) одной программы в основной памяти.
операционная система
корневой сегмент
оверлейная область
0
а
б
При смежном размещении размер загружаемой программы ограничивается размером накопителя. Для того чтобы при смежном размещении загружать программы, размеры которых превышают размеры накопителя, используют метод оверлейных сегментов (overlay segments).
В программе, имеющей древовидную структуру, модули второго уровня работают сугубо последовательно, поэтому в памяти может находиться только один из них.
Оверлейную структуру программы и последовательность загрузки оверлейных сегментов планирует сам программист.
В процессе выполнения программы все её адреса не должны быть меньше числа а. В противном случае возможна запись какого-либо результата работы программы (поверх операционной системы) и уничтожение некоторых её частей. Защиту операционной системы в случае смежного размещения при однопрограммном режиме можно осуществить с помощью регистра границы.
0
а
б
CPU
Регистр
границы a
Во время работы прикладной программы все адреса, генерируемые CPU, сравниваются с содержимым регистра границы. Если генерируется адрес меньше числа а, работа программы прерывается.
3.2.2 Мультипрограммный режим с ФИКСИРОВАННЫМИ границами.
Мультипрограммирование с фиксированными разделами (Multiprogramming with a fixed number of tasks) предполагает разделение адресного пространства на ряд разделов фиксированного раздела. В каждом разделе размещается один процесс.
операционная система
раздел № 1
0
а
раздел № 2
б
раздел № 3
в
Наиболее простой и наименее эффективный режим MFT соответствует случаю, когда трансляция программ осуществляется в абсолютных адресах для соответствующего раздела.
В этом случае, если соответствующий раздел занят, то процесс остается в очереди во внешней памяти даже в том случае, когда другие разделы свободны.
Уменьшить фрагментацию при мультипрограммировании с фиксированными разделами можно, если загрузочные модули получать в перемещаемых адресах. Такой модуль может быть загружен в любой свободный раздел после соответствующей настройки.
При мультипрограммировании с трансляцией в перемещаемых адресах имеются две причины фрагментации. Первая — размер загруженного процесса меньше размера, занимаемого разделом (внутренняя фрагментация), вторая — размер процесса в очереди больше размера свободного раздела, и этот раздел остается свободным (внешняя фрагментация).
Для защиты памяти при мультипрограммировании с фиксированным разделами необходимы два регистра. Первый — регистр верхней границы (наименьший адрес), второй — регистр нижней границы (наибольший адрес).
операционная система
раздел № 1
0
а
раздел № 2
б
в
Очередь процессов в перемещаемых адресах
0
а
б
CPU
Регистр
границы a
Регистр
границы б
Прежде чем программа в разделе N начнет выполняться, ее граничные адреса загружаются в соответствующие регистры. В процессе работы программы все формируемые ею адреса контролируются на удовлетворение неравенства
а < Адр. < б
При выходе любого адреса программы за отведенные ей границы, работа программы прерывается.
3.2.3. Мультипрограммирование с переменными разделами. (multiprogramming with a variable number of tasks (MVT).
Метод Multiprogramming with a Variable number of Tasks предполагает разделение памяти на разделы и использование загрузочных модулей в перемещаемых адресах, однако, границы разделов не фиксируются.
0 | ОС | |||||
90 Кб | а | Раздел 1 | ||||
П5 | П4 | П3 | П2 | П1 | Раздел 2 | |
| Раздел 3 | |||||
Раздел 4 | ||||||
80 Кб |
0 | ОС | |||
90 Кб | а | Раздел 1 | ||
П7 | П6 | П5 | 100 Кб | |
Раздел 4 | ||||
Таким образом, на фазе повторного размещения действуют те же причины фрагментации, что и для метода MFT.
3.2.4. Мультипрограммирование с переменными разделами и уплотнением памяти.
Ясно, что метод Multiprogramming with a Variable number of Tasks порождает в памяти множество малых фрагментов, каждый из которых может быть недостаточен для размещения очередного процесса, однако суммарный размер фрагментов превышает размер этого процесса.
Уплотнением памяти называется перемещение всех занятых разделов по адресному пространству памяти. Таким образом, чтобы свободный фрагмент занимал одну связную область.
операционная система
раздел № 1
0
а
раздел № 2
На практике реализация уплотнения памяти сопряжена с усложнением операционной системы и обладает следующими недостатками:
-
в тех случаях, когда мультипрограммная смесь неоднородна по отношению к размерам программ, возникает необходимость в частом уплотнении, что расходует ресурс процессорное время и компенсирует экономию ресурса памяти.
-
во время уплотнения все прикладные программы переводятся в состояние “ожидание”, что приводит к невозможности выполнения программ в реальном масштабе времени.
3.2.5. Основные стратегии заполнения свободного раздела.
Рассмотренные методы мультипрограммирования предполагают наличие входной очереди/очередей к разделам основной памяти.
В том случае, когда освобождается очередной раздел, операционная система должна выбрать один из процессов для размещения его в памяти. Алгоритм выбора может использовать одну из следующих трех стратегий:
-
стратегия наиболее подходящего (best fit strategy) выбирает процесс, которому в освободившемся разделе наиболее тесно (выигрыш в памяти).
-
стратегия первого подходящего (first fit strategy) выбирает первый процесс, который может разместить в освободившемся разделе.
-
стратегия наименее подходящего (last fit strategy) выбирает процесс, которому в освободившемся разделе наиболее свободно (в этом случае остающийся фрагмент часто достаточен для размещения еще одного процесса).
3.3. Страничная организация памяти.
Страничная организация памяти (paging) относится к методам несмежного размещения процессов в основной памяти.
Основное достоинство страничной организации памяти заключается в том, что она позволяет свести к минимуму общую фрагментацию за счет полного устранения внешней фрагментации и минимизации внутренней фрагментации.
3.3.1. Базовый метод.
Основная память
f
CPU
П
Д
Логический адрес
Таблица страниц
f
f
Д
Страничная рамка
Адресное пространство основной и внешней памяти разбивают на блоки фиксированного размера, называемые страничные рамки (frames). Логическое адресное пространство программы также разбивается на блоки фиксированного размера, называемых страницами (pages). Размеры страничных рамок и страниц совпадают. Процесс загружается в память постранично, причем каждая страница помещается в любую свободную страничную рамку основной памяти.
Каждый адрес, генерируемый процессором, состоит из двух частей: П - номер страницы (page number) и Д - смещение в пределах страницы (off set). Номер страницы может использоваться как индекс для таблицы страниц (page table).
Таблица страниц содержит начальные адреса f всех страничных рамок, в которых размещена программа. Физический адрес определяется путем сложения начального адреса страничной рамки f и смещения Д.
Вторичная память | Таблица страниц | Основная память | |||||||||
программы А | | ||||||||||
стр. 0 | | 1 | | стр. 0 | |||||||
программа | стр. 1 | | 3 | | |||||||
А | стр. 2 | | 4 | | стр. 1 | ||||||
стр. 3 | | 7 | | стр. 2 | |||||||
| | ||||||||||
f П | | ||||||||||
| стр. 3 |
Для ускорения вычисления физического адреса операцию суммирования заменяют операцией конкатенации.
старшие разряды | младшие разряды | ||||||
2n+1 | 2n | f | |||||
2n-1 | 2n | Д |