Организация виртуальной памяти
Схема выполнения команды:
1) УУ выбирает очередную команду и определяет исполнительные адреса операндов.
2) Аппаратура выделяет из виртуального исполнительного адреса: №строки в таблице приписки, и выделенное значение использует как индекс в таблице приписки, т.е. мы добираемся к содержимому странице по №. Если это значение >= 0, то вместо № виртуального листа записывается реальный физический адрес, т.е. в процессе выполнения при каждом обращении к памяти аппаратно происходит подмена виртуального № на физический. Если в этом поле находится, например, “-1” (лезем куда-то не туда), то происходит прерывание по защите памяти, следовательно в ОС происходит обработка прерываний. Подобного рода механизм позволяет с точностью до страницы решить проблему фрагментации. Регистры приписки решают проблему защиты памяти. Доступ к соответствующей строке таблицы происходит быстро(№ строки является № виртуальной страницы), т.к. индекс строки хранится в регистре.
Пример. вирт.№: 2 147 (2 - №стр.; 147 - смещение)
физ.№: 4 147 (аналогично).
Последовательность действий ОС при загрузке
Пусть есть программа, которой есть некоторый набор {an} виртуальных страниц. И существует некоторое количество физических страниц в памяти. ОС берет ai страницу, помещает ее на свободную физическую страницу в памяти и записывает № физической страницы на соответствующую строку таблицы. Может возникнуть проблема: доступная физическая память может быть меньше размера программы. Для ее решения используется метод свопирования (подкачки). Суть механизма: в ВС есть программно-аппаратные средства, позволяющие размещать в физической памяти часть программы и по мере необходимости подгружать новые части программы и откачивать ненужное. ОС для каждой программы составляет таблицу откаченных листов и их месторасположения во внешней памяти. В таблице приписки хранится информация об откачанных страницах. Это реализовано следующим образом: если i -тая страница откачана, то данная страница находится на ВУ и может быть подкачена. При переходе с одной программы на другую ОС должна сохранить старую таблицу приписки и сохранить таблицу откачанных страниц. Часто место для хранения страниц называется контекстом задачи (информационным полем задачи). Далее ОС выбирает программу, готовую к выполнению, затем происходит запись в таблицу приписки и заполнение таблицы откачанных страниц.
предыдущаяследующая