Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voprosy_po_os_21-41.doc
Скачиваний:
14
Добавлен:
19.09.2019
Размер:
991.23 Кб
Скачать
  1. Подкачка страниц по запросу и с упреждением.

Подкачка страниц (англ. Paging; иногда используется термин swapping от swap, /swɔp/) — один из механизмов виртуальной памяти, при котором отдельные фрагменты памяти (обычно неактивные) перемещаются из ОЗУ на жёсткий диск (или другой внешний накопитель, такой как Флеш-память), освобождая ОЗУ для загрузки других фрагментов памяти. Такими фрагментами в современных ЭВМ являются страницы памяти.

Временно выгруженные из памяти страницы могут сохраняться на внешних запоминающих устройствах как в файле, так и в специальном разделе на жёстком диске (partition), называемые соответственно swap-файл и swap-раздел. В случае откачки страниц, соответствующих содержимому какого-либо файла (например, memory-mapped files), они могут удаляться. При запросе такой страницы она может быть считана из оригинального файла.

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

  1. Управление процессорами. Планирование загрузки процессоров. Цели планирования.

11.2 Цели планирования

Дисциплина планирования должна:

· Быть справедливой. Дисциплина планирования считается справедливой, если ко всем процессам она относится одинаково, и ни один процесс не может пострадать от бесконечного откладывания.

· Обеспечивать максимальную пропускную способность системы. Дисциплина планирования должна стремиться к обслуживанию максимально возможного количества процессов в единицу времени.

· Обеспечивать максимальному числу пользователей, работающих в интерактивном режиме, приемлемые времена ответа (т. е. в худшем случае несколько секунд)

· Быть предсказуемой. Данное задание должно выполняться приблизительно за одно и то же время и с приблизительно одинаковой стоимостью независимо от нагрузки на систему.

· Минимизировать накладные расходы.

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

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

· Исключать бесконечное откладывание. Во многих случаях бесконечное откладывание процессов может приводить к не менее неприятным последствиям, чем тупики. Чтобы исключить бесконечное откладывание, лучше всего учитывать старение процесса — с увеличением периода времени, в течение которого процессу приходится ожидать некоторого ресурса, приоритет этого процесса должен расти. В конце концов, приоритет окажется настолько высоким, что процессу будет предоставлен нужный ресурс.

· Учитывать приоритеты. В системах, в которых процессам присваиваются приоритеты, механизм планирования должен оказывать предпочтение процессам с более высокими приоритетами.

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

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

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

Многие из перечисленных целей противоречат друг другу, что делает организацию планирования весьма сложной проблемой.

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

Уровни планирования

Мы рассмотрим три основных уровня планирования (рис. 11.1).

• Планирование на верхнем уровне. Иногда называется планированием заданий. Средства этого уровня определяют, каким заданиям будет разрешено активно конкурировать за захват ресурсов системы. Этот вид планирования иногда называют также планированием допуска, поскольку на этом уровне определяется, какие задания будут допущены в систему. Вошедшие в систему задания становятся процессами или группами процессов.

• Планирование на промежуточном уровне. Средства этого уровня определяют, каким процессам будет разрешено состязаться за захват центрального процессора. Планировщик промежуточного уровня оперативно реагирует на текущие колебания системной нагрузки, кратковременно приостанавливая и вновь активизируя (или возбуждая) процессы, что обеспечивает равномерную работу системы и помогает достижению определенных глобальных целевых скоростных характеристик. Таким образом, планировщик промежуточного уровня выполняет как бы функции буфера между средствами допуска заданий в систему и средствами предоставления ЦП для выполнения этих заданий

• Планирование на нижнем уровне. Средства этого уровня определяют, какому из готовых к выполнению процессов будет предоставляться освободившийся ЦП, и фактически выделяют ЦП данному процессу (т. е. осуществляют диспетчерские функции). Планирование на нижнем уровне производится так называемым диспетчером, который работает с большой частотой, много раз в секунду, и поэтому всегда должен располагаться в основной памяти.

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