Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Demkin_otvety_New.doc
Скачиваний:
13
Добавлен:
17.04.2019
Размер:
3.22 Mб
Скачать
  1. Какая главная проблема эффективной реализации систем виртуальной памяти? Назовите несколько способов ее решения?

Главная проблема: баланс между размером страниц и их количеством.

Инвертированные таблицы страниц нашли широкое применение на 64-разрядных машинах, поскольку даже при очень больших размерах страниц количество записей в обычных таблицах страниц будет для них запредельным. К примеру, при размере страниц в 4 Мбайт и 64-разрядных виртуальных адресах понадобится 242 записей в таблице страниц.

В настоящее время известно несколько методов повышения эффективности функционирования страничной виртуальной памяти. К ним относятся:

  • более сложная структуризация виртуального адресного пространства, например, двухуровневая (типичная для 32-битовой адресации);

  • использование специального высокоскоростного кэша для хранения части записей таблицы страниц, который обычно называют буфером быстрого преобразования адреса, или буфером поиска трансляции (translation lookaside buffer – TLB);

  • выбор оптимального размера страницы виртуальной памяти;

  • эффективное управление страничным обменом.

Естественно, что эффективность реализации виртуальной памяти в мультизадачных системах - один из главных критериев качества всей компьютерной системы в целом. Разные стратегии управления виртуальной памятью, воплощенные в различных алгоритмах замещения, наглядно наблюдаются даже по поведению той или иной ОС, например при запуске новых задач: MS Windows "жадно урчит винчестером", экономная Linux стремится к минимизации процессов замещения, надежная и ориентированная на серверные приложения FreeBSD упорно добивается максимума свободной физической памяти (чтобы быстрее запустить еще один процесс в случае необходимости).

Файл подкачки - файл на жестком диске, используемый Windows для хранения данных, которые не помещаются в оперативной памяти.

Виртуальная память - это оперативная память вместе с файлом подкачки.

Объём виртуальной памяти складывается из объёма оперативной памяти и области подкачки (swap-а) именно поэтому объем доступной виртуальной памяти меньше максимального.

Методики эффективной организации файла подкачки

  • Одним из способов выделения места для swap‐файла (раздела) является кратное выделение памяти, когда объём этого файла равен объёму оперативной памяти, умноженному на 1, на 2, на 3.

  • Если на компьютере имеется более одного жёсткого диска, то для более быстрого обращения к файлу подкачки его желательно разместить на наименее нагруженном запросами чтения/записи физическом диске. Хорошим выбором будет физический диск, с которого не запускается ОС или приложения.

  • Следует учесть пропускную способность интерфейса жёсткого диска (IDE/SATA), а также характеристики самих дисков. Лучше разместить файл подкачки на диске, который имеет наибольшую скорость чтения/записи.

  • В Windows скорость чтения из небольших разделов больше у FAT32 по сравнению с NTFS[2], однако, благодаря более высокой устойчивости NTFS к сбоям и значительным объёмам современных винчестеров, разделы с FAT32 ныне редко используются.

  • При наличии на компьютере значительного объёма ОЗУ (1 и более гигабайт) и использовании большинства популярных ОС семейств GNU/Linux и MS Windows (кроме Windows Vista/7) можно полностью отключить подкачку. При использовании различных версий Windows Vista также можно отключить подкачку, однако, в силу ресурсоёмкости этой системы, желательно при этом иметь не менее 2 Гб физической памяти.

  1. Сформулируйте алгоритм выбора кандидата на удаление из кэша “Часы”. Опишите его работу на простом примере. В чем его преимущества и недостатки? Кэш или кеш (англ. cache, от фр. cacher — прятать; произносится [kæʃ] — кэш) — промежуточный буфер с быстрым доступом, содержащий информацию, которая может быть запрошена с наибольшей вероятностью. Доступ к данным в кэше идёт быстрее, чем выборка исходных данных из оперативной (ОЗУ) и быстрее внешней (жёсткий диск или твердотельный накопитель) памяти, за счёт чего уменьшается среднее время доступа и увеличивается общая производительность компьютерной системы. В информатике под алгоритмами кэширования (часто называемыми алгоритмами вытеснения или политиками вытеснения, а также «алгоритмами/политиками замещения») понимают оптимизацию инструкций — алгоритмы — особая компьютерная программа или аппаратно поддерживаемая структура, способная управлять кэшем информации, хранимой в компьютере. Когда кэш заполнен, алгоритм должен выбрать, что именно нужно удалить из него, чтобы иметь возможность записи (в кэш) новой, более актуальной информации. «Уровень попаданий» кэша означает то, насколько часто искомые данные обнаруживаются в кэше. Более эффективные политики вытеснения отслеживают обращения к наиболее используемой информации, чтобы улучшить уровень попаданий (при том же размере кэша). «Латентность» кэша означает насколько быстро кэш может вернуть запрошенные данные непосредственно после запроса (в случае, если происходит «попадание»). Более быстрые стратегии вытеснения обычно отслеживают наименее используемую информацию — или, в случае кэша прямого отображения (direct-mapped cache), отсутствие информации, чтобы снизить затраты времени на обновление информации. Каждая стратегия вытеснения является компромиссом между уровнем попаданий и латентностью.

Алгоритм «часы»

Хотя алгоритм «вторая попытка» является корректным, он слишком неэффективен, потому что постоянно передвигает страницы по списку. Поэтому лучше хранить все страничные блоки в кольцевом списке в форме часов, как показано на рис. 6. Стрелка указывает на старейшую страницу.

Когда происходит страничное прерывание, проверяется та страница, на которую направлена стрелка. Если ее бит R равен 0, страница выгружается, на ее место в часовой круг встает новая страница, а стрелка сдвигается вперед на одну позицию. Если бит R равен 1, то он сбрасывается, стрелка перемещается к следующей странице. Этот процесс повторяется до тех пор, пока не находится та страница, у которой бит R = 0. Неудивительно, что этот алгоритм называется «часы». Он отличается от алгоритма «вторая попытка» только своей реализацией.

"Часы" реализуются так: элементы кэша хранятся в виде списка, по которому указатель перемещается каждый раз, когда нужно найти свободный участок. Записи помечаются флагом "используется", который определяет, что указатель должен освобождать эту запись для последующего использования. Каждый раз, когда указатель находит запись с флагом, он сбрасывает флаг, чтобы при следующем проходе запись могла быть освобождена. Освобождение записи кэша возможно только при не установленном для неё флаге "используется", поэтому, указатель проходит по списку записей, пока не обнаружит запись без флага, после полного прохода по списку - начиная с его начала, по кругу, вследствие чего алгоритм и получил свое название.

Недостатки: строгая цикличность замедляет работу.

Преимущества: простота и надежность.

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