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

Политика очистки страниц

Подкачка страниц работает лучше, когда в системе существует много свободных страничных блоков. Для того чтобы были пустые страницы в системе работает процесс «страничный демон», который большую часть времени спит, но периодически просыпается и проверяет состояние памяти. Если мало свободных блоков, демон выбирает страницы для удаления. Если страниц грязн, то записываются на диск(ставит в очередь к драйверу диска). Если одна из выгруженных страниц требуется снова еще до того, как ее блок был перезаписан, ее можно вернуть назад, удалив из пула свободных страничных блоков. Демон гарантирует, что все свободные блоки являются чистыми, и когда они требуются, их не нужно спешно записывать на диск.

Осуществ очистку страниц можно с помощью часов с двумя стрелками. Когда длинная стрелка (стран демон) указывает на «грязную» страницу, копия страницы на диске обновляется, а стрелка сдвигается на позицию, если она направлена на чистую страницу, то просто сдвигается вперед. Короткая стрелка использ для замещения страниц, как в стандартном алгоритме «часы». Так возрастает вероятность попадания короткой стрелки на чистую страницу благодаря работе страничного демона.

Интерфейс виртуальной памяти

Обычно программист и процессам доступна только виртуальн память. Но в некоторых прогрессивных ОС процессу доступен некотор контроль над его картой памяти.

Причины: 1) позволить двум и более процессам совместно использовать одну память. один процесс сможет дать другому процессу имя области памяти, так что этот второй процесс также сможет ей пользоваться. Увелич скорость совместного доступа если один процесс пишет в разделяемую память, а другой читает из нее. 2) реализация высокопроизводительных систем передачи сообщений. Данные обычно копируются из одного адресного пространства в другое, что имеет значительную стоимость. Решение: передавать сообщ с помощью посылающего процесса, убирающего из карты страницу, содержащую сообщение, и принимающего процесса, вносящего ее (их) в карту. При этом должны копироваться только имена страниц вместо всех данных. 3) распределенная память совместного доступа. В сети несколько процессов совместно использ набор страниц, как единое разделяемое линейное адресное пространство.

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

в карту памяти и прерванная команда перезапускается.

  1. Участие ос в пpоцессе подкачки стpаниц.

4 ситуации, в которых ОС приходится выполнять работу, относящуюся к страничной подкачке: 1) создание процесса, 2) выполнение процесса, 3) страничное прерывание, 4) завершение процесса.

1) при создании процесса ОС должна определить, как будут велики программа и ее данные и создать для них ТС. Для ТС надо выделить память, и ТС нужно проинициализ (знать где она находится). ТС может быть выгружена => ей требуется область для подкачки для процесса тоже должна быть область подкачки, котор нужно тоже инициализир. Некоторые системы подкачивают страницы текста программы прямо из исполняемого файла, таким образом, экономя время инициализации и место на диске. Либо загр 1:1 с диска, либо Swap. Информация о ТС и области подкачки на диске должна быть записана в таблицу процесса.

2) для каждого нового проц надо сбросить стар диспетчер памяти (MMU), затем очистить буфер быстрого преобраз адреса (TLB). ТС нового процесса сделать текущей(скопир ее или указ на нее в аппар регистр). Часть страниц процесса или они все могут быть считаны в память, чтобы уменьшить изначальное количество страничных прерываний.

3) ОС читает аппаратные регистры, чтобы определить, какой виртуальный адрес вызвал

ошибку. Вычислить № треб страницы и физич адрес, найти ее диске или области подкачки. Затем ОС нужно найти доступный страничный блок для новой страницы, при необходимости выгрузить старую страницу. ОС должна загрузить страницу в страничный блок. ОС должна изменить счетчик команд, чтобы тот указывал на вызвавшую прерывание инструкцию, и запустить эту команду заново.

4) Когда процесс завершается, ОС должна освободить его ТС, его страницы и дисковое пространство, которое занимают страницы, когда они находятся на диске. Если есть совместно использ стран, то освободить из только тогда, когда удал послед использ их процесс (семафор=0=>удалить из пам ТС).

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