В книге «Принципы операционной системы» Сильбершаца/Галвина (9-е издание), а также статья в Википедии о инверсии приоритета говорят, что при приоритетном обращении процесс с высоким приоритетом не может использовать ресурс, который имеет низкий приоритет процесс в качестве процесса с приоритетом среднего приоритета приостанавливает процесс с низким приоритетом и получает этот ресурс. Но если это так (, т. Е. Если допускается приоритизация на основе приоритета), почему процесс высокоприоритетного процесса не может вытеснить сам процесс более низкого приоритета и получить ресурс?В случае инверсии с приоритетом, почему процесс приоритетного приоритета не может вытеснить процесс приоритетного среднего приоритета?
Ниже то, что упоминается в книге, а также статьи Википедии:
Рассмотрим две задачи H и L, высокого и низкого приоритета соответственно, любой из которых может приобрести исключительное использование общей ресурс R. Если H пытается получить R после того, как L его приобрел, тогда H блокируется , пока L не освободит ресурс. Совместное использование ресурса исключительного использования (R в этом случае) в хорошо спроектированной системе обычно включает в себя L , чтобы быстро отменить R, чтобы H (задача с более высоким приоритетом) не оставалась заблокированной в течение чрезмерных периодов времени. Несмотря на хороший дизайн, , однако, возможно, что третья задача M среднего приоритета (p (L) < p (M) < p (H), где p (x) представляет приоритет задачи (x)) становится , выполняемый во время использования L R. В этот момент M выше в приоритетом, чем L, вытесняет L, заставляя L не удалять R , что в свою очередь вызывает H-процесс с наивысшим приоритетом - не может бежать. Это называется инверсией приоритета, когда задача с более высоким приоритетом вытесняется с помощью более низкого приоритета.
Ссылка, которую вы поделились, была полезной, так как мой точный вопрос был в одном из комментариев. У кого-то была такая же путаница, как у меня. – Meathead