Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора_ОС_модуль_2.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
56.8 Кб
Скачать
  1. Алгоритмы планирования, основанные на приоритетах

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

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

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

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

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

  1. Системные вызовы

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

Реализация системных вызовов должна удовлетворять следующие требования:

  1. Обеспечивать переключения в привилегированный режим.

  2. Обладать высокой скоростью вызова процедур ОС.

  3. Обеспечивать, по возможности, одинаковое обращение к системным вызовам, для всех аппаратных платформ, на которых работает ОС.

  4. Допускать легкое расширения набора системных вызовов.

  5. Обеспечивать контроль со стороны ОС за корректным использованием системных вызовов.

Операционная система может выполнять системные вызовы в синхронных и асинхронных режимах.

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

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