АППАРАТНОЕ ОБЕСПЕЧЕНИЕ, УПРАВЛЯЮЩЕЕ СТРУКТУРОЙ
Сравнивая простую страничную организацию и сегментацию с фиксированным и динамическим распределением памяти, мы видим базу для фундаментального прорыва в технологии управления памятью. Ключевыми для него являются следующие характеристики страничной организации и сегментации.
1. Все обращения к памяти в рамках процесса представляют собой логические адреса, которые динамически транслируются в физические адреса во время исполнения.Это означает, что процесс может быть выгружен на диск и вновь загружен в основную память, так что во время работы он может находиться в разных местах основной памяти.
2. Процесс может быть разбит на ряд частей (страниц или сегментов), которые не обязательно должны располагаться в основной памяти единым непрерывным блоком. Это обеспечивается за счет динамической трансляции адресов и использования таблицы страниц или сегментов.
Теперь перейдем к нашему прорыву в технологии управления памятью. Если в системе выполняются указанные характеристики, то наличие всех страниц или сегментов процесса в основной памяти одновременно не является обязательным условием. Рассмотрим, каким образомэто может осуществляться. Сейчас мы говорим об этой технологии обобщенно, так что для обозначения страницы или сегмента используем термин блок — в зависимости от того, имеем ли мы делосо страничной организацией или с сегментацией. Предположим, что наступило время загрузки нового процесса в память. Операционная система начинает ее с размещения в памяти только одного или нескольких блоков, включая блок, содержащий начало программы. Часть процесса, располагающаяся в некоторый момент времени в основной памяти, называетсярезидентным множеством процесса. Во время выполнения процесса все происходит так, как если бы все ссылки были только на резидентное множество процесса. При помощи таблицы сегментов или страниц процессор всегда может определить, располагается ли блок, к которому требуется обращение, в основной памяти. Если процессор сталкивается с логическим адресом, который не находится в основной памяти, он генерирует прерывание, свидетельствующее об ошибке доступа к памяти. Операционная система переводит прерванный процесс в заблокированное состояние и получает управление.
Чтобы продолжить выполнение прерванного процесса, операционной системе необходимо загрузить в основную память блок, содержащий вызвавший проблемы логический адрес. Для этого операционная система использует запрос на чтение с диска (во время выполнения которого может продолжаться выполнение других процессов). После того как необходимый блок загружен в основную память, выполняется прерывание ввода-вывода, передающее управление операционной системе, которая, в свою очередь, переводит заблокированный процесс в состояние готовности.
Естественно, тут же возникает вопрос об эффективности использования такой технологии, когда выполнение процесса постоянно прерывается только из-за того, что в основной памяти размещены не все его блоки. Отложим пока рассмотрение вопроса эффективности, полагая, что эффективная работа все же возможна, и обратимся к следствиям применения нашей новой стратегии. Их два (причем второе потрясает воображение), и оба приводят к повышению эффективности использования системы.
Дата добавления: 2016-06-05; просмотров: 1919;