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