Inwersja priorytetów: Różnice pomiędzy wersjami

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
Addbot (dyskusja | edycje)
m Bot: Przenoszę 8 linków interwiki do Wikidata, znajdziesz je teraz w zasobie d:q520734
m int. meryt.
Linia 3:
Pojawienie się inwersji priorytetów związane jest najczęściej z dostępem zadań do zasobów chronionych przez algorytmy [[synchronizacja międzyprocesowa|synchronizacji międzyprocesowej]] takie jak na przykład [[semafor (informatyka)|semafory]]. W praktyce inwersja priorytetów to zdobycie przez zadanie będące w [[sekcja krytyczna|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łodzenie procesu|zagłodzeniu]], może to prowadzićdoprowadzić do nieprawidłowego działania systemu lub wywoływać działania zapobiegające uszkodzeniu, takichtakie 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żneważna szybkieszybka zakończenie sięrealizacja (np. nie wymagającewymagają interakcji użytkownika lub jest to seria zadań w [[Tryb wsadowy|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 prowadzićdoprowadzić do utraty stabilności i zawieszeń systemu.
 
== Przykład ==