2009-09-15 2 views
0

Сколько задач необходимо для инверсии приоритетов? .. Насколько мне известно, нам нужно как минимум 3 ..... или мы можем иметь это только с 2-мя задачами?Приоритетная инверсия

Я действительно просмотрел книгу: современная операционная система Эндрю Таненбаума. Я знал только тогда, когда в какой-то частице есть 3 задачи, так как все знают .. Приоритет инверсии может произойти. Тем не менее .. Я нашел, что в книге написано, что только две две задачи: 1-низкий и 1-высокий тоже могут вызывать то же самое. .so меня смущает ...

+0

Не могли бы вы предоставить немного больше контекста, пожалуйста. –

+0

Я думаю, что он имеет в виду что-то с этим; http://en.wikipedia.org/wiki/Priority_inversion – Kirschstein

+0

Проблема может возникать с двумя задачами тогда и только тогда, когда скорость выполнения задачи, на которой хранится ресурс, может быть ослаблена его низким приоритетом *, даже если он является единственным разблокированным задачи в системе *. Например, некоторые процессоры имеют маломощные режимы, которые не могут работать с максимальной скоростью, но потребляют меньше энергии за инструкцию. Если ОС должна была переключать ЦП в такой режим «низкой скорости/низкой мощности» при выполнении задач с низким приоритетом (разумная вещь, чтобы сделать, с точки зрения энергосбережения), инверсия приоритета могла бы произойти даже при выполнении только двух реальных задач , – supercat

ответ

4

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

Так что да, вам нужно три.

0

инверсия приоритетов может происходить с 2 нитью, также Ex: -

Higer приоритетной задачей ожиданием на приоритетную задаче низки, который держит спинлки эффективны отключением упреждения задачи по более высокому приоритету.