Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
NewОтветыОС_1.doc
Скачиваний:
37
Добавлен:
07.02.2015
Размер:
2.67 Mб
Скачать
  1. Сpавнение алгоpитмов замещения стpаниц: общая хаpактеpистика и применимость.

1) Оптимальный алгоритм заменяет ту страницу, обращение к которой производилось раньше других, находящихся в данный момент в памяти. Неосуществим. Полезен как тестовая задача, относительно которой можно оценивать другие алгоритмы.

2) Алгоритм NRU (не использовав в последнее время страница) делит страницы на четыре класса в зависимости от битов R и M. Выбирается любая страница из класса с наименьшим номером. Легко реализуется, но он является очень грубым.

3) FIFO (первым прибыл - первым обслужен) отслеживает порядок загрузки страниц в память, храня их в связном списке. Неиспольз т.к. могут быть выгружены нужн стран.

4) «вторая попытка» -модификация алгоритма FIFO, перед удалением страницы из памяти проверяет, используется ли она в данный момент. Если да, то страница пропускается. Такое изменение сильно повышает производительность.

5) «часы» реалистичн алгоритм (другое осуществление «второй попытки»). требует немного меньше времени на выполнение алгоритма чем вторая попытка.

6) LRU (страница, не использовавшаяся дольше всего) - отличный алгоритм, но на практике не реализуем.

7) NFU (редко использовавшаяся страница) - грубое приближение алгоритма LRU. Неиспольз.

8) «старение»(лучший), лучше аппроксимирует алгоритм LRU и может быть эффективно реализован. Использ на практике

9) «рабочий набор» - приемлемая производительность, дорог в реализации.

10) WSCIock – (лучший) - хорош производительность, просто реализовать.

ВОПРОСЫ РАЗРАБОТКИ СИСТЕМ СО СТРАНИЧНОЙ ОРГАНИЗАЦИЕЙ ПАМЯТИ

  1. Политика pаспpеделения памяти: локальная и глобальная. Регулиpование загpузки. Размеp стpаницы.

Политика распределения памяти: локальная и глобальная

Локальные алгоритмы (ЛА ) соответствуют размещению каждого процесса в фиксированной области памяти(замещ стран происх в рамках 1 процесса). Глобальные алгоритмы (ГА) замещ станицы наиболее ниспольз из всех процессов.

ГА работают лучше, особенно если размер рабочего набора может изменяться за время жизни процесса. При использ ЛА 1) если рабочий набор увеличивается в размере, то в результате получим пробуксовку(из-за частых страничн прерыван), даже когда в системе существует достаточное количество свободных страничных блоков. 2) если рабочий набор уменьшается часть памяти потратится впустую.

Другой способ состоит в том, чтобы иметь в системе алгоритм для распределения страничных блоков между процессами. Например, можно периодически .определять количество работающих процессов и предоставлять каждому равную часть памяти. Соответственно, при наличии доступных (то есть не принадлеж ОС) 12 416 страничных блоках и 10 процессах каждый процесс получит 1241 блок. Оставшиеся 6 блоков поступают в резерв и могут использов при страничн прерыван.

Если используется ГА, допустимо запускать каждый процесс с некоторым количеством страниц, пропорциональным его размеру, распределение памяти можно динамически изменять во время работы.

Алгоритм PFF (Page Fault Frequency — частота страничных прерываний) управляет размещением процессов в памяти, говорит когда увелич или уменьш количество страниц, предоставленных процессу, но не какую страницу замещать по прерыванию.

Частота прерываний ↓ при ↑ числа предоставленных страниц- основа алгоритма PFF.

Выше линии А частота страничн прерыв очень большая. Чтобы уменьшить процент страничн прерыв увеличивается кол-во страничных блоков прерванного процесса.

Линия В соответствует очень низкой частоте странич прерыв, => что процесс занимает слишком много памяти и у него можно забрать несколько страничных блоков. Алгоритм PFF сохран частоту подкачки страниц для каждого процесса внутри допустимых границ. Для некоторых алгоритмов замещения страниц имеет смысл только локальная стратегия. В частности, алгоритмы «рабочий набор» и WSClock.

Регулирование загрузки

Симптомом пробуксовки является показание алгоритма PFF, что много страничн прерываний, но в системе нет процессов, требующих меньше памяти. Решение: временно избавиться от некоторых процессов. Уменьшить количество запрашив дополн память процессов можно, выгрузив некоторые из них целиком на диск(swap) и освободив все занимаемые ими страницы, разделив их между буксующими процессами. Если пробуксовка прекращается, то система может работать некоторое время в таком состоянии. Если не прекращается, то выгружается следующий процесс и т. д. , пока не закончится пробуксовка.

+ принять во внимание степень (когда количество процессов в основной памяти слишком мало, центральный процессор может простаивать) + учет размера процесса и частоты подкачки страниц(для опред является ли процесс ограниченным возможностями процессора или скоростью ввода-вывода).

Размер страницы

Доводы в пользу маленького размера страниц 1) задан сост из кода, данных и сегмент стека, котор в среднем заним по 0,5 стран, остальн 0,5 стран пропадает (наз-ся внутрен фрагментац). Если в памяти n сегментов, а размер страницы равен p байтам, n*р/2 байт будет потеряно =>р↓→потери↓. 2) представим программу, состоящую из 8 этапов, по 4 Кб. При р=32 Кб программе выделено 32 Кб (28Кб теряет), р=16 Кб →16 Кб (12 теряет), р=4 Кб →4 Кб. =>чем больше разм стран, тем больше в памяти неиспольз частей стран.

Доводы в пользу больш стран 3) чем меньше стран, тем больше надо страниц и тем больше размер ТС. Программа размером 32 Кб →4 страницы по 8 Кбайт и 64 страницы по 512 байт. Время загрузки больш и мален стран примерно один и чем больше загр стран тем больше трат времени. 4) Размер ТС уменьш при увелич размера страниц, и время треб для записи ТС в аппаратн регистры тоже уменьшится. Пусть размер процесса = S байт, а страницы = P байт. 1 запись в ТС =Е байт. Тогда число страниц= S/P, что займет SE/P байт для ТС. Потери из-за внутренней фрагментации = Р/2. Накладные расходы =SE/P + Р/2. ( Р↑, 1сл↓, 2сл↓). Производная: -SE/P^2 + 1/2 = 0. Оптимальный размер страницР=(2SE )^(1/2)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]