Skip to content
EntityQ520734· pop 14· linked from 34 articles

Inwersja priorytetów

Sign in to save

Also known as inversion of priority

undesirable computing scheduling scenario

Wikidata facts

Instance of
problem
Show 2 more facts
facet of
scheduling
different from
inversion of control
Sources (2)

via Wikidata · CC0

Article · Polski

Inwersja priorytetów – zjawisko mogące występować w wielozadaniowych systemach operacyjnych takie, że w danej chwili wykonuje się inne zadanie niż powinno się wykonywać zgodnie z regułami algorytmu szeregowania. Pojawienie się inwersji priorytetów związane jest najczęściej z dostępem zadań do zasobów chronionych przez algorytmy takie jak na przykład semafory. W praktyce inwersja priorytetów to zdobycie przez zadanie będące w sekcji krytycznej pierwszeństwa w dostępie do procesora kosztem zadań o wyższych priorytetach. W niektórych przypadkach inwersja priorytetów może powodować opóźnienie w wykonywaniu zadań o wysokim priorytecie, ewentualnie zadania o niskim priorytecie mogą zwalniać dzielone zasoby, co odbywa się zwykle bez większej szkody. Jednakże istnieje wiele sytuacji, w których inwersja priorytetów może sprawić spore problemy. Jeśli zadanie o wysokim priorytecie ulega zagłodzeniu, może doprowadzić do nieprawidłowego działania systemu lub wywoływać działania zapobiegające uszkodzeniu, takie jak watchdog restartujący cały system. Klasycznym przykładem problemów spowodowanych inwersją priorytetów w systemie czasu rzeczywistego są kłopoty z działaniem lądownika sondy kosmicznej Mars Pathfinder. Inwersja priorytetów może również ograniczyć wydajność systemu. Niektóre zadania mają niski priorytet dlatego, że nie jest dla nich ważna szybka realizacja (np. nie wymagają interakcji użytkownika lub jest to seria zadań w przetwarzaniu wsadowym). Odwrotnie jest natomiast z zadaniami o wysokim priorytecie – te z kolei często wymagają jakiejś interakcji lub pełnią ważną rolę gwarantującą poprawne działanie aktualnie wykorzystywanych elementów systemu. Inwersja priorytetów powoduje to, że wywoływanie zadań o niskim priorytecie blokuje zadania z wysokim priorytetem, co może doprowadzić do utraty stabilności i zawieszeń systemu.

Abstract from DBpedia / Wikipedia · CC BY-SA