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

Приоритетное планирование

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

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

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

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

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

Адаптивно-рефлекторное планирование

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

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

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

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

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

  1. процессы, которые требуют много времени для ввода-вывода

  2. процессы, которые требуют много чисто процессорного времени

Обычно процессам из первого кл. присваивается более высокий приоритет.

С точки зрения планирования, процессы разделяют на 3 класса:

- интерактивные

- пакетные

- процессы реального времени.

Интерактивные процессы взаимодействуют с пользователем посредством клавиатуры или мыши. Когда новые данные введены, процесс должен быстро откликнуться. Ср. задержка – 50-150 мс. Для обеспечения быстрой реакции на ввод-вывод данных таким процессам присваивается высокий динамический приоритет.

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

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

Для управления приоритетами можно использовать системные вызовы – ф-ии API. У одной из основных подсистем ОС Windows является подсистема управления процессами – CSRTS.

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

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