Turinys:
Apibrėžimas - ką reiškia Dekkerio algoritmas?
Dekkerio algoritmas yra pirmasis žinomas algoritmas, kuris išsprendžia abipusio atskirties problemą tuo pačiu metu vykstant programavimui. Tai įskaityta Th. J. Dekkeris, olandų matematikas, sukūręs algoritmą kitam kontekstui. „Dekker“ algoritmas yra naudojamas proceso eilėse ir leidžia dviem skirtingiems siūlams dalytis tuo pačiu vienkartiniu ištekliu be konfliktų, naudojant bendrą atmintį ryšiui.
„Techopedia“ paaiškina Dekkerio algoritmą
„Dekker“ algoritmas leis išteklių naudoti tik viename procese, jei du procesai bando jį naudoti tuo pačiu metu. Algoritmo akcentas yra tai, kaip jis išsprendžia šią problemą. Tai pavyksta užkirsti kelią konfliktui užtikrinant abipusę atskirtį, tai reiškia, kad išteklius vienu metu gali naudoti tik vienas procesas ir lauks, jei jį naudos kitas procesas. Tai pasiekiama naudojant dvi „vėliavas“ ir „žetoną“. Vėliavos rodo, ar procesas nori patekti į kritinę sekciją (CS), ar ne; 1 vertė reiškia TIESA, kad procesas nori patekti į CS, o 0 arba FALSE reiškia priešingai. Ženklas, kurio vertė taip pat gali būti 1 arba 0, rodo prioritetą, kai abiejų procesų vėliavos yra tiesos.
Šis algoritmas gali sėkmingai užtikrinti abipusį atskyrimą, tačiau jis nuolatos tikrins, ar yra kritinė dalis, ir ar dėl to eikvojamas didelis procesoriaus laikas. Tai sukuria problemą, vadinamą spynos sinchronizavimu, kai kiekviena gija gali būti vykdoma tik griežtai sinchronizuojant. Jis taip pat neišplečiamas, nes palaiko tik daugiausiai du tarpusavio atskirties procesus.
