Инверсия приоритета

Инверсия приоритета происходит тогда, когда два или несколько потоков с различными приоритетами находятся в споре, который из них должен быть обслужен процессором. Рассмотрим простой случай с тремя потоками: поток 1, поток 2 и поток 3. Поток 1 - высокоприоритетный и становится готовым быть допущенным к процессору для исполнения кода. Поток 2, поток с низким приоритетом, выполняет код в критической секции программы. Поток 1, высокоприоритетный поток, начинает ожидать совместно используемый ресурс от потока 2. Поток 3 имеет средний приоритет. Поток 3 получает все процессорное время, потому что высокоприоритетный поток (поток 1) ожидает совместно используемые ресурсы от потока с низким приоритетом (поток 2). Поток 2 не оставит критическую секцию программы, потому что не имеет самого высокого приоритета и не будет допущен к процессору для исполнения кода.

Назад в оглавление темы
На главную страницу темы

Hosted by uCoz