ПОД (пособие) (1184372), страница 14
Текст из файла (страница 14)
Это не значит, что процесс не будет иметь ссылок накакую-либо новую страницу — если бы это было так, то процессы вообще не могли быдаже начать выполнение. Это просто означает, что процесс будет, как правило,сосредоточивать свои обращения в течение некоторого временного интервала на некоторомконкретном подмножестве своих страниц.9.6 Подкачка страниц по запросуТрадиционно считается, что наиболее рационально загружать в основную память страницы,необходимые для работы процесса, по его запросу.
Не следует переписывать из внешнейпамяти в основную ни одной страницы до тех пор, пока к ней явно не обратитсявыполняющийся процесс, В пользу такой стратегии можно привести несколько аргументов:·Теория вычислимости, в частности проблема останова (Mi67, Не77), говорит о том,что путь, который выберет программа при своем выполнении, точно предсказатьневозможно. Поэтому любая попытка заранее загрузить страницы в память в предвидениитого, что они потребуются в работе, может оказаться неудачной — будут загружены не тестраницы.·Подкачка страниц по запросу гарантирует, что в основную память будутпереписываться только те страницы, которые фактически необходимы для работыпроцессов.·Накладные расходы на то, чтобы определить, какие страницы следует передавать восновную память, минимальны.
Стратегии вталкивания с упреждением могут потребоватьзначительных дополнительных затрат процессорного времени.Подкачка страниц по запросу, как показывает рис. 9.7, имеет свои проблемы. Процессдолжен накапливать в памяти, требуемые ему страницы по одной. При появлении ссылки накаждую новую страницу процессу приходится ждать, когда эта страница будет передана восновную память.
В зависимости от того, сколько страниц данного процесса уже находятсяв основной памяти, эти периоды ожидания будут обходиться все более дорого, посколькуожидающие процессы будут занимать все больший объем памяти. Рис. 9.7 иллюстрируетпонятие произведения «пространство— время», которое часто применяется в операционныхсистемах для оценки использования памяти процессом. Произведение «пространство—время» соответствует площади «под кривой» на этом рисунке. Оно является комплекснымпоказателем, отражающим как объем, так и время использования памяти процессом.Уменьшение произведения «пространство—время» за счет периодов ожидания процессомнужных ему страниц является важнейшей целью всех стратегий управления памятью.9.6 Подкачка страниц с упреждениемГлавный критерий эффективности управления ресурсами можно сформулироватьследующим образом: интенсивность использования каждого ресурса должна определятьсяотносительной ценностью этого ресурса.
Так, в настоящее время стоимость аппаратурырезко снижается, и поэтому значительно снижается относительная ценность машинноговремени по сравнению с временем, затрачиваемым человеком. Сейчас разработчикиоперационных систем активно ищут пути уменьшения количества времени, в течениекоторого пользователям приходится ждать получения результатов от компьютера.
Одним из42весьма перспективных в этом смысле является метод подкачки страниц с упреждением (сопережением).При упреждающей подкачке операционная система пытается заблаговременно предсказать,какие страницы потребуются процессу, а затем, когда в основной памяти появляетсясвободное место, загружает в нее эти страницы. Пока процесс работает со своими текущимистраницами, система запрашивает новые страницы, которые будут уже готовы киспользованию, когда процесс к ним обратится. Если решения о выборе страниц дляподкачки принимаются правильно, то удается значительно сократить общее времявыполнения данного процесса.Метод подкачки страниц с упреждением характеризуется следующими преимуществами:·Если в большинстве случаев удается принимать правильные решения о выборестраниц для подкачки, то время выполнения процесса значительно уменьшается.
Поэтомуимеет смысл пытаться создавать механизмы упреждающей подкачки, даже если от нихнельзя ожидать абсолютной точности.·Во многих случаях вполне можно находить правильные решения. Если такоепринятие решений удается реализовать при относительно малых затратах, то выполнениеданного процесса можно значительно ускорить, не замедляя при этом работы другихактивных процессов.·Поскольку аппаратура вычислительных машин все более дешевеет, последствиянеоптимальных решений становятся менее серьезны. Сейчас мы можем позволить себеприобрести дополнительную основную память, обеспечивающую накоплениедополнительных страниц, которые механизм упреждающей подкачки будет передавать восновную память.9.8 Освобождение страницПри управлении памятью по рабочему множеству программы говорят нам, какие страницыони хотят использовать, явно обращаясь к этим страницам.
Страницы, которые больше ненужны, должны каким-то образом выводиться из рабочих множеств. Существует обычнопериод времени, в течение которого ненужные страницы все еще остаются в основнойпамяти.Когда выясняется, что некоторая страница больше не понадобится, пользователь может пособственной инициативе выдать сигнал об удалении страницы из памяти (отказаться отстраницы) с освобождением соответствующего страничного кадра.
Благодаря этому будетисключен период задержки, неизбежный в случае, если предоставить системе возможностьестественным порядком вывести эту страницу из рабочего множества процесса.Подобное «добровольное освобождение» страниц может исключить непроизводительноеиспользование памяти и ускорить выполнение программ. Однако большинствопользователей современных вычислительных машин даже не знают, что такое страница,поэтому их вообще нельзя просить принимать решения на системном уровне. Включениекоманд освобождения страниц в прикладные программы пользователя может значительнозамедлить их разработку.Можно надеяться, что реально эта проблема будет решена при помощи компиляторов иоперационных систем, которые будут автоматически обнаруживать ситуации, требующиеосвобождения, страниц, причем, делать это гораздо быстрее, чем позволяют стратегии сиспользованием рабочих, множеств страниц.9.9 Размер страниц43В системах со страничной организацией реальная память обычно разбивается настраничные кадры фиксированного размера.
Какой величины следует выбирать размер этихстраничных кадров? Какой величины следует выбирать размер страницы? Должны ли всестраницы в системе иметь одинаковый размер либо следует использовать страницынескольких различных размеров? Если используются различные размеры страниц, тодолжны ли большие размеры страниц быть целыми кратными меньших размеров?Для ответа на эти вопросы требуется тщательный анализ и всестороннее пониманиевозможностей аппаратных и программных средств и области применения конкретнойсистемы. Здесь не может быть универсальных ответов. Не существует никакой особойнеобходимости в том, чтобы все вычислительные системы имели одинаковый илиединственный размер страниц.Некоторые соображения, которые необходимо учитывать при выборе того или иногоразмера страницы, приведены ниже.·Чем меньше размер страницы, тем большее количество страниц и страничных кадровбудет в системе и тем больше будут таблицы страниц.
Для систем, в которых таблицыстраниц занимают первичную память, это указывает на необходимость увеличенныхразмеров страниц. Такое неэффективное использование памяти из-за чрезмерно большихтаблиц называется табличной фрагментацией. Здесь мы отметим, что подобный аргумент внастоящее время не столь актуален, поскольку выпускается недорогая память оченьбольшой емкости.·При крупных размерах страниц в первичную память при подкачке попадают большиеобъемы информации, которая, вообще говоря, может и не понадобиться. Это указывает нанеобходимость уменьшения размеров страниц.·Поскольку обмены данными с дисковой памятью занимают относительно многовремени, мы хотим свести к минимуму число обменов, которые будут производиться дляпрограммы во время ее выполнения.
Это указывает, по-видимому, на необходимостьувеличения размеров страниц.·Программы, как правило, проявляют свойство локальности обращений, причемразмеры подобных локальных участков невелики. Таким образом, уменьшение размерастраницы должно способствовать тому, что у программы образуется более компактныйнабор страниц, т. е. страницы рабочего множества» размещаемые в реальной памяти, будутсодержать более интенсивно используемые объекты.·Поскольку блоки процедур и данных редко представляют целое число страниц, всистемах со страничной организацией наблюдается внутренняя фрагментация,иллюстрируемая рис.