Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_os.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
626.79 Кб
Скачать

31. Планирование в oc windows Vista. Условия вызова планировщика.

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

  1. Текущий, выполняющийся поток блокируется на семафоре мьютексе, семафоре, событии и т. д.;

  2. Поток сигнализирует объект;

  3. Истекает квант времени;

  4. Завершается операция ввода/вывода;

  5. Истекает время ожидания.

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

Во втором случае поток также находится в режиме ядра. При этом событии поток не блокируется, однако всё равно вызывается планировщик. Вызывается он потому что, возможно существует поток с более высоким приоритетом.

В третьем случае происходит прерывание в режиме ядра.

Четвертый случай подразумевает запуск потока после того как он дождался и завершил операцию ввода/вывода.

32. Планирование в oc windows Vista. Система приоритетов.

В системе Windows Vista используется приоритетный алгоритм планирования. Существуют два понятия: базовый приоритет и текущий приоритет. Базовый приоритет устанавливается по умолчанию при создании процесса/потока. Текущий приоритет изменяется динамически во время работы системы. В системе всего существует 32 уровня приоритетов (от 0 до 31). От 1 до 15 – пользовательские потоки. От 16 до 31 – системные потоки. Процесс с приоритетом «0» - это поток обнуления страниц.

Также существует понятие класс приоритетов и относительный приоритет.

Класс – задает приоритет для процесса и всех потоков, находящихся в нём. Допустимые значения:

Real-time

High

Above normal

Normal

Idle

Класс устанавливается для процесса, но влияет на приоритеты потоков.

Относительный приоритет. Допустимые значения:

Time critical

Highest

Above normal

Normal

Below normal

Lowest

Idle

Базовый алгоритм планированиям ОС Vista поддерживает массив с 32 элементами. Элементы массива соответствуют приоритетам от 0 до 31. Каждому элементу массива соответствует список процессов соответствующего приоритета. Планировщик просматривает этот массив, начиная с самого высокого приоритета и ищет не пустой список потоков. Как только будет найден данный список, выбирается первый в очереди поток и выполняется в течение одного кванта времени. Если выбранный поток не успел выполниться, то он ставится в конец очереди своего приоритета. То есть на каком-либо уровне приоритетов потоки планируются циклически. В дополнении к базовым алгоритмам планирования используются механизм динамического изменения текущего приоритета.

33. Планирование в oc windows Vista. Условия изменения приоритетов.

Условие повышения приоритета:

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

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

Условия понижения приоритета:

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

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