Страничная организация памяти

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

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

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

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

номер страницы попадает в таблицу и из таблицы берется адрес свободной памяти, туда добавляется смещение и получается физический адрес страницы, который и используется в дальнейшем.

Таблица страниц
Идея несмежного разбиения памяти связана со стремлением уменьшить фрагментацию памяти.

       
 
   
 
       
 
CPU
 
P
 

           
 
   
     
 
 

 

 


   
 
 
 
 
 
 
 
 
 
 
 

 

 


Строится карта памяти.

Карта памяти – это отображение всей памяти с некоторой точностью, блоками фиксированного размера (страница памяти).

Также строится таблица страниц памяти, то есть вся свободная память отображается в виде адресов страниц.

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

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

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

Логика работы с ОП.

Имеем программу для загрузки, у нее есть требования к ОП. Процесс занял количество кб. на одной странице, разбивает эту память на нужное количество страниц. Например 1,2,3,4,5,6,7, и 7 до конца не заполнен. После этого он обращается к таблице страниц у которой есть эти номера. В таблице страниц хранятся номера свободной памяти, 1 и 5 свободные.

Как только распределяется, формируется таблица страниц для конкретной задачи.

 


Таблица страниц 1:

 
 

 

 


Пусть, например, седьмая страница заполнена не до конца.

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

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

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

Проблема же в данном случае состоит в выборе размера страницы для карты памяти.

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

Как показывает опыт, чем больше таблица страниц, тем меньше единицы, которые мы адресуем в оперативную память. По современным меркам размер страницы равен 2-4 кб.

Замечание: после того, как новый процесс переходит в состояние готового, в его PCB прописывается пересчитанная таблица страниц 1, которая и фиксирует на время выполнения адреса в операционной системе, где процесс выполняется.