Not necessarily. Typically the scheduler will lower the dynamic priority of a task after its quantum expires, but if it is still the highest priority task, then it gets another. In general though, yes, when the task has run long enough, the OS takes over and switches to another. Why should that be inefficient?
Операционная система вставляет после каждого отрезка времени / кванта?
В контексте планирования процессов, вмешивается ли операционная система после каждого временного отрезка / кванта? Например, если компьютер простаивал и приходили 4 задачи: t1, t2, t3 и t4, и они планировались с использованием функции «первым пришел - первым обслужен», мы обычно считаем, что t1, t2, t3, t4 находятся в ЦП, но это не упрощение? Потому что это мы t1, OS, t2, OS, t3 OS t4, что на самом деле произойдет? Если это правда, ОС вмешивается после каждого временного среза (иначе кванта), разве это не очень неэффективно?
2 ответа на вопрос
Я считаю, что в современных операционных системах временные интервалы имеют переменную длину. Планировщик вызывается после обслуживания каждого прерывания (клавиатура, мышь, сенсорный экран, сеть, передача на диск завершена, ...), а также прерываний таймера.
Грубо говоря, планировщик предназначен для оценки скользящего среднего времени между системными вызовами, блокирующими процесс. Перед тем, как планировщик передает управление процессу X, он устанавливает таймер, который будет прерываться за время, немного превышающее скользящее среднее процесса X. Если планировщик хорошо угадывает время до следующего блокирующего системного вызова, то большая часть процессов фактически добровольно освободит ЦП, выполнив блокирующий системный вызов.
Цель состоит в том, чтобы заставить интерактивные процессы выполнить немного вычислений, сделать системный вызов блокировки для запроса некоторых данных с медленного устройства, а затем перенести их, как только они будут возвращены. Если планировщик должен выбирать между планированием между двумя процессами, а при прочих равных условиях он будет благоприятствовать процессу, который чаще блокирует системные вызовы. Это имеет тенденцию максимизировать количество одновременных блокирующих запросов ввода / вывода, что улучшает общую пропускную способность системы.
Похожие вопросы
-
1
Приостановить все, кроме x задач, интенсивно использующих процессор
-
3
Ищу бесплатный загрузчик
-
4
На каком дистрибутиве Linux основана Google Chrome OS?
-
-
6
Влияет ли открытие большого количества вкладок в Google Chrome на производительность?
-
4
Может ли 32-битная ОС работать на 64-битном процессоре?
-
7
Другие преимущества 64-битной ОС помимо расширения памяти?
-
2
Что BeOS может предложить сегодняшним пользователям?
-
5
В чем разница между 64-битными и 32-битными операционными системами?
-
2
Изображение VPC для загрузки изначально
-
7
Стоит ли устанавливать ОС сразу после ее выпуска?