Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PO_PK_11-25.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
493.53 Кб
Скачать

13.Алгоритмы планирования. Планирование в Windows.

Планирование – работа ОС по переключению потоков. Включает в себя:

-определение момента времени для смены текущего активного потока

-выбор для выполнения потока из очереди готовых потоков

Типы планирования:

-динамическое – решение принимается в соответствии с текущим состоянием системы

-статическое – заранее просчитывается расписание выполнения потоков

Диспетчеризация – реализация найденного при планировании решения по переключению потоков. Сводится к следующему:

-сохранение контекста текущего потока

-загрузка контекста нового потока

-запуск нового потока на выполнение

Виды алгоритмов планирования:

1.невытесняющие 2.вытесняющие

Невытесняющие алгоритмы планирования:

Активный поток выполняется до тех пор, пока сам не передаст управление планировщику для выбора нового потока.

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

+ поток не прерывается в «неудобный» момент времени

упрощается совместное использование данных

более высокая скорость переключений потоков

- необходимость реализации части функции планировщика в каждом потоке

возможность монопольного захвата процессора потоком

крах всей системы при зависании активного потока

Вытесняющие алгоритмы планирования:

Решение о переключении потоков принимает ОС, а не активный поток.

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

Смена активного потока происходит, если:

-активный поток завершился и покинул систему

-произошла ошибка при выполнении потока

-поток перешел в состояние ожидания

-исчерпан квант процессорного времени, отведенного активному потоку

Приоритетное обслуживание:

Приоритет – число, характеризующее степень привилегированности потока при использовании ресурсов системы, в частности –процессорного времени.

Приоритет потока связан с приоритетом процесса. Приоритет процесса назначается ОС при его создании и содержится в описателе процесса.

При назначении приоритета учитывается:

-тип процесса (системный или прикладной)

-статус пользователя, запустившего процесс на выполнение

-приоритет процесса, запустившего процесс на выполнение

Возможно изменение значения приоритета процесса или потока:

-по инициативе самого потока с помощью системного вызова

- по инициативе пользователя

-по инициативе ОС в зависимости от текущей ситуации или поведения потока

Приоритеты в Windows:

Базовый приоритет потока:критичный ко времени//самый высокий //выше нормы//норм//ниже нормы//Самый низкий//неработающий//

Динамическое изменение приоритетов:

Для пользовательских потоков (приоритет 1 – 15) возможно динамическое изменение приоритета. Однако, значение приоритета не может стать больше 15. Случаи изменения значения приоритета потока:

-завершается операция ввода-вывода и поток, ожидающий этого момента переводится в состояние готовности, то его приоритет повышается. Величина прибавки приоритета зависит от устройства (1 – HDD, 2 – COM, 6 – клавиатура, 8 – звуковая карта и т.п.)

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

-если поток графического интерфейса пользователя просыпается, потому что стал доступен оконный ввод, его приоритет повышается.

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

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

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