Методы распределения памяти. Странично-сегментное распределение. Свопинг.

Методы распределения памяти.

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

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

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

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

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

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

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

1 - базовый адрес сегмента в оперативной памяти (начальный линейный виртуальный адрес сегмента в пространстве виртуальных адресов);

2 - размер сегмента;

3 - правила доступа к сегменту;

4 - признаки модификации, присутствия и обращения к данному сегменту, а также некоторая другая информация.

Деление общего линейного виртуального адресного пространства процесса и физической памяти на страницы осуществляется следующим образом. Размер страниц выбирается равным степени двойки, что упрощает механизм преобразования виртуальных адресов в физические. Виртуальные страницы нумеруются в пределах виртуального адресного пространства каждого процесса, а физические страницы – в пределах оперативной памяти. При создании процесса в память загружается только часть страниц, остальные загружаются по мере необходимости. Время от времени система выгружает уже ненужные страницы, освобождая память для новых страниц. ОС ведет для каждого процесса таблицу страниц, в которой указывается соответствие виртуальных страниц физическим.

Достоинство: эффективное распределение памяти и возможность контроля прав и способа доступа к данным.

Недостатки: сложность реализации.

 

Свопинг.

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

Достоинство: простота реализации, надёжность.

Недостаток: неэффективное использование памяти, низкая производительность.