ВУЗ:
Составители:
2) накладные расходы на то, чтобы определить, какие страницы или сегменты следует передавать в первичную память,
минимальны.
К недостаткам подкачки по запросу относится тот факт, что процесс в этом случае накапливает в первичной памяти
требуемые ему страницы (сегменты) по одной. При появлении ссылки на каждую новую страницу (сегмент) процессу при-
ходится ждать, когда эта страница (или сегмент) будет передана в первичную память. В зависимости от того, сколько стра-
ниц (сегментов) данного процесса уже находится в первичной памяти, эти периоды ожидания будут обходиться все более
дорого, поскольку ожидающие процессы будут занимать все больший объем памяти.
Вталкивание (подкачка) с упреждением предполагает, что система пытается заблаговременно определить, к каким
страницам или сегментам будет обращаться процесс. Если вероятность обращения высока и в первичной памяти имеется
свободное место, то соответствующие страницы или сегменты будут переписываться в первичную память еще до того, как к
ним будет явно производиться обращение. При правильном выборе страниц (сегментов) для упреждающей подкачки удается
существенно сократить общее время выполнения данного процесса и уменьшить значение показателя "пространство-время".
К недостаткам стратегии подкачки с упреждением можно отнести тот факт, что точно предсказать путь, по которому
будет развиваться процесс, в общем случае невозможно, поэтому вполне возможны ситуации, когда решения о выборе ста-
ниц (сегментов) для упреждающей подкачки будет в большинстве случаев приниматься неверно для одного или нескольких
процессов, развивающихся в системе, что, в свою очередь, приведет к резкому снижению скорости работы этих процессов
из-за увеличения времени ожидания необходимых им страниц или сегментов.
4.4.3. Стратегии размещения
В системах со страничной организацией виртуальной памяти решение о размещении вновь загружаемых страниц при-
нимается достаточно просто: новая страница может быть помещена в любой свободный страничный кадр.
Для систем с сегментной организацией виртуальной памяти применяются такие же стратегии размещения, какие ис-
пользуются в системах распределения памяти переменными разделами (см. п. 4.2): размещение с выбором первого подходя-
щего свободного участка; размещение с выбором самого подходящего свободного участка; размещение с выбором наименее
подходящего свободного участка.
4.4.4. Стратегии выталкивания
В мультипрограммных системах вся первичная память бывает, как правило, занята. В этом случае программа управле-
ния памятью должна решать, какую страницу или какой сегмент следует удалить из первичной памяти, чтобы освободить
место для поступающей страницы или сегмента. В настоящее время применяются следующие стратегии выталкивания (от-
качки) страниц (сегментов):
•
выталкивание случайных страниц или сегментов;
•
выталкивание первой пришедшей страницы или сегмента (FIFO);
•
выталкивание дольше всего не использовавшихся страниц или сегментов (LRU – Least Recently Used);
•
выталкивание наименее часто использовавшихся страниц или сегментов (LFU – Least Frequently Used);
•
выталкивание не использовавшихся в последнее время страниц или сегментов (NRU – Not Recently Used).
Стратегия выталкивания случайных страниц или сегментов является наиболее простой в реализации, обладает ма-
лыми издержками и не является дискриминационной по отношению к каким-либо процессам, работающим в системе. В со-
ответствии с этой стратегией любые страницы или сегменты, находящиеся в первичной памяти, могут быть выбраны для
выталкивания с равной вероятностью, в том числе даже следующая страница или сегмент, к которым будет производиться
обращение (и которые, естественно, удалять из памяти наиболее нецелесообразно). Поскольку подобная стратегия, по сути,
рассчитана на "слепое" везение, в реальных системах она применяется редко.
Стратегия выталкивания первой пришедшей страницы или сегмента (FIFO-стратегия) реализует принцип "первый
пришел – первый ушел". В этом случае в момент поступления каждой страницы (сегмента) в первичную память ей (ему)
присваивается метка времени. Когда появляется необходимость удалить из первичной памяти какую-либо страницу (сег-
мент), выбирается та страница (сегмент), у которой метка времени имеет наименьшее значение.
Стратегия выталкивания дольше всего не использовавшихся страниц или сегментов (LRU-стратегия) предусмат-
ривает, что для выталкивания следует выбирать те страницы (сегменты), которые не использовались дольше других. Страте-
гия LRU требует, чтобы при каждом обращении к страницам (сегментам) их метки времени обновлялись. Это может быть
сопряжено с существенными издержками, поэтому LRU-стратегия, несмотря на свою привлекательность, в современных
операционных системах реализуется достаточно редко. Кроме того, при реализации LRU-стратегии может быть так, что
страница (сегмент), к которой дольше всего не было обращений, в действительности станет следующей используемой стра-
ницей (сегментом), если программа к этому моменту очередной раз пройдет большой цикл, охватывающий несколько стра-
ниц или сегментов.
Стратегия выталкивания реже всего используемых страниц или сегментов (LFU-стратегия) является одной из
наиболее близких к рассмотренной выше LRU-стратегии. В соответствии с LFU-стратегией из первичной памяти выталки-
ваются наименее часто (наименее интенсивно) использовавшиеся к данному времени страницы или сегменты. Здесь контро-
лируется интенсивность использования страниц (сегментов). Для этого каждой странице (сегменту) назначается счетчик,
значение которого увеличивается на единицу при каждом обращении к данной странице (сегменту). LFU-стратегия, будучи
интуитивно оправданной, имеет те же недостатки, что и стратегия LRU: во-первых, велика вероятность того, что из первич-
ной памяти будут удалены страницы или сегменты, которые потребуются процессам при следующем обращении к памяти, и,
Страницы
- « первая
- ‹ предыдущая
- …
- 46
- 47
- 48
- 49
- 50
- …
- следующая ›
- последняя »
