Управление памятью в многозадачной операционной системе. Свопинг и подкачка по запросу. — КиберПедия 

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Управление памятью в многозадачной операционной системе. Свопинг и подкачка по запросу.

2018-01-13 234
Управление памятью в многозадачной операционной системе. Свопинг и подкачка по запросу. 0.00 из 5.00 0 оценок
Заказать работу

Адресация виртуальной памяти. UNIX использует трехуровневую структуру таблицы страниц, состоящую из следующих таблиц:

• Каталог страниц. Активный процесс имеет единый каталог страниц, размер которого равен размеру одной страницы. Каждая запись в каталоге страниц указывает на одну страницу промежуточного каталога страниц. Каталог страниц активного процесса должен находиться в активной памяти.

• Промежуточный каталог страниц может охватывать несколько страниц. Каждая запись этого каталога указывает на одну страницу таблицы страниц.

• Таблица страниц также может охватывать несколько страниц. Каждая запись указывает на одну виртуальную страницу процесса.

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

• индекс в каталоге страниц

• индекс в промежуточном каталоге страниц

• индекс в таблице страниц

• смещение в таблице страниц

Распределение памяти ядра. Фундаментом распределения памяти ядра является механизм распределения страниц, используемый для управления пользовательской виртуальной памятью. Здесь, как и в схеме виртуальной памяти, используется алгоритм близнецов. Поскольку минимальное количество памяти, которое может быть выделено, составляет одну страницу, такое распределение неэффективно в связи с частыми запросами на выделение небольших участков памяти разного размера с минимальным временем жизни. Для повышения эффективности Linux использует схему, известную как кусочное распределение (slab allocation) в пределах выделенной страницы.

СВОПИНГ

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

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

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

1. Произведено обращение к системной функции fork, которая должна выделить место в памяти для процесса-потомка.

2. Произведено обращение к системной функции brk, увеличивающей размер процесса.

3. Размер процесса увеличился в результате естественного увеличения стека процесса.

4. Ядру нужно освободить в памяти место для подкачки ранее выгруженных процессов.

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

ПОДКАЧКА ПО ЗАПРОСУ

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

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



Поделиться с друзьями:

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.006 с.