Sisällysluettelo:
Määritelmä - mitä Dekkerin algoritmi tarkoittaa?
Dekkerin algoritmi on ensimmäinen tunnettu algoritmi, joka ratkaisee keskinäisen poissulkemisongelman samanaikaisessa ohjelmoinnissa. Se hyvitetään Th. J. Dekker, hollantilainen matemaatikko, joka loi algoritmin toiseen kontekstiin. Dekkerin algoritmia käytetään prosessijonointiin, ja se antaa kahdelle eri säikeelle mahdollisuuden jakaa sama kertakäyttöinen resurssi ilman ristiriitoja käyttämällä jaettua muistia viestintään.
Techopedia selittää Dekkerin algoritmin
Dekkerin algoritmi sallii vain yhden prosessin käyttää resurssia, jos kaksi prosessia yrittää käyttää sitä samanaikaisesti. Algoritmin kohokohta on, kuinka se ratkaisee tämän ongelman. Se onnistuu estämään konfliktin toteuttamalla keskinäisen poissulkemisen, mikä tarkoittaa, että vain yksi prosessi voi käyttää resurssia kerrallaan ja odottaa, jos toinen prosessi käyttää sitä. Tämä saavutetaan käyttämällä kahta "lippua" ja "rahaketta". Liput osoittavat, haluaako prosessi siirtyä kriittiseen osaan (CS) vai ei; arvo 1 tarkoittaa TOSI, että prosessi haluaa tulla CS: hen, kun taas 0, tai FALSE, tarkoittaa päinvastaista. Tunnus, jolla voi myös olla arvo 1 tai 0, ilmaisee prioriteetin, kun molempien prosessien liput on asetettu TODELLISEKSI.
Tämä algoritmi voi menestyksekkäästi toteuttaa keskinäisen poissulkemisen, mutta testaa jatkuvasti, onko kriittinen osa käytettävissä ja hukkaa siten prosessorin huomattavaa aikaa. Se luo ongelman, joka tunnetaan nimellä lockstep-synkronointi, jossa jokainen säie voi suorittaa vain tiukassa synkronoinnissa. Sitä ei myöskään voida laajentaa, koska se tukee vain enintään kahta prosessia keskinäisen poissulkemisen vuoksi.
