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

Usunięte 4 bajty ,  13 lat temu
drobna korekta
[wersja nieprzejrzana][wersja nieprzejrzana]
(dodanie opisu problemu)
(drobna korekta)
'''Inwersja priorytetów''' - zjawisko mogące występować w [[wielozadaniowość|wielozadaniowych]] [[system operacyjny|systemach operacyjnych]] takie, że w danej chwili wykonuje się inne zadanie niż powinno się wykonywać zgodnie z regułami [[Algorytm szeregowania|algorytmu szeregowania]].
 
Pojawienie się inwersji priorytetów związane jest najczęściej z dostępem zadań do zasobów chronionych przez algorytmy [[synchronizacja międzyzadaniowamiędzyprocesowa|synchronizacji międzyzadaniowejmię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ć do nieprawidłowego działania systemu lub wywoływać przekroczenie zdefiniowanych wartości zapobiegających uszkodzeniu, takich jak [[Watchdog_timer|watch dog timer]]. Kłopoty doświadczone przez sondę kosmiczną [[Mars_Pathfinder|Mars Pathfinder]] są klasycznym przykładem problemu spowodowanego inwersją priorytetów w systemie czasu rzeczywistego.
 
== Przykład ==
W systemie uruchomione są trzy [[proces (informatyka)|procesy]] o identyfikatorach 1, 2 i 3, przy czym najwyższy [[priorytet]] posiada proces 1, a najniższy proces 3. Ponadto procesy 1 i 3 wykorzystują [[semafor (informatyka)|semafor]] jako mechanizm synchronizujący dostęp do pewnego zasobu.
 
Proces 3 podczas swojego wykonania uzyskuje dostęp do chronionego semaforem zasobu. Tuż po tym zostaje on [[wywłaszczenie (informatyka)|wywłaszczony]], po czym wykonanie rozpoczyna proces o najwyższym priorytecie - proces 1.
6

edycji