Страничная организация памяти
Подразумевает разбиение всей свободной памяти на отдельные страницы, каждая из которых имеет фиксированный размер.
Все предыдущие методы организации относились к методам, при которых осуществляется смежное разбиение, страничная же организация памяти позволяет осуществить несмежное разбиение памяти.
Т.е. вся свободная память отображается в виде адресов страниц. Прежде чем процесс начнет работать с адресом страницы, ему задается логический адрес: страница р и некоторое смещение внутри страницы.
Реальный физический адрес получается следующим образом:
номер страницы попадает в таблицу и из таблицы берется адрес свободной памяти, туда добавляется смещение и получается физический адрес страницы, который и используется в дальнейшем.
|
|
| ||||
Строится карта памяти.
Карта памяти – это отображение всей памяти с некоторой точностью, блоками фиксированного размера (страница памяти).
Также строится таблица страниц памяти, то есть вся свободная память отображается в виде адресов страниц.
Прежде чем процессор начинает работать с таблицей страниц, он задает логический адрес, номер станицы (р) и некоторое смещение внутри страницы.
Номер станицы попадает в таблицу, из таблицы берется адрес свободной памяти, туда добавляется смещение и получается физический адрес страницы, который будет использоваться данным процессом. Если та страница занята, другой процесс ее занять не сможет.
Недостатокв данном случае состоит в том, что процессы убираются из памяти и возникают дыры, которые могут быть расположены так, что новый процесс будет невозможно в них вложить.
Логика работы с ОП.
Имеем программу для загрузки, у нее есть требования к ОП. Процесс занял количество кб. на одной странице, разбивает эту память на нужное количество страниц. Например 1,2,3,4,5,6,7, и 7 до конца не заполнен. После этого он обращается к таблице страниц у которой есть эти номера. В таблице страниц хранятся номера свободной памяти, 1 и 5 свободные.
Как только распределяется, формируется таблица страниц для конкретной задачи.
Таблица страниц 1:
Пусть, например, седьмая страница заполнена не до конца.
После разбиения на определенное количество страниц процессор обращается к таблице страниц, эта таблица формируется следующим образом: страницы загружаются в таблицу туда, где свободно.
Затем формируется конечная таблица страниц. Логический адрес берется из этой конечной таблицы, к нему добавляется физический адрес страницы, смещение относительно начала страницы и тогда определяется физический адрес в оперативной памяти, где находятся команды или данные.
При данном способе организации памяти получится, что потери будут составлять ту часть 7-ой страницы, которая свободна, остальная же память будет полностью занята.
Проблема же в данном случае состоит в выборе размера страницы для карты памяти.
Для упрощения получения физического адреса выполняется операция конкатенации старших и младших разрядов, т.е. к старшим разрядам, которые берутся из логических адресов добавляются разряды смещения.
Как показывает опыт, чем больше таблица страниц, тем меньше единицы, которые мы адресуем в оперативную память. По современным меркам размер страницы равен 2-4 кб.
Замечание: после того, как новый процесс переходит в состояние готового, в его PCB прописывается пересчитанная таблица страниц 1, которая и фиксирует на время выполнения адреса в операционной системе, где процесс выполняется.