Dekkers algoritms

Autors: Robert Simon
Radīšanas Datums: 17 Jūnijs 2021
Atjaunināšanas Datums: 24 Jūnijs 2024
Anonim
Race Conditions and How to Prevent Them - A Look at Dekker’s Algorithm
Video: Race Conditions and How to Prevent Them - A Look at Dekker’s Algorithm

Saturs

Definīcija - ko nozīmē Dekkers algoritms?

Dekkera algoritms ir pirmais zināmais algoritms, kas vienlaicīgas programmēšanas laikā atrisina savstarpējās izslēgšanas problēmu. Tas tiek ieskaitīts Th. J. Dekkers, holandiešu matemātiķis, kurš izveidoja algoritmu citam kon. Dekkers algoritms tiek izmantots procesu rindā, un tas ļauj diviem dažādiem pavedieniem koplietot to pašu vienreiz lietojamo resursu bez konfliktiem, saziņai izmantojot koplietojamo atmiņu.


Ievads Microsoft Azure un Microsoft Cloud | Šajā rokasgrāmatā jūs uzzināsit, kas ir mākonis skaitļošana un kā Microsoft Azure var palīdzēt jums migrēt un vadīt savu biznesu no mākoņa.

Techopedia skaidro Dekkers algoritmu

Dekkera algoritms ļaus resursam izmantot tikai vienu procesu, ja divi procesi to mēģina izmantot vienlaikus. Algoritma akcents ir tas, kā tas atrisina šo problēmu. Tas izdodas novērst konfliktu, panākot savstarpēju izslēgšanu, kas nozīmē, ka resursus vienlaikus var izmantot tikai viens process un jāgaida, kad to izmantos cits process. Tas tiek panākts, izmantojot divus "karodziņus" un "marķieri". Karodziņi norāda, vai process vēlas iekļūt kritiskajā sadaļā (CS) vai nē; vērtība 1 nozīmē PATIESI, ka process vēlas iekļūt CS, bet 0 vai FALSE nozīmē pretējo. Žetons, kura vērtībai var būt arī 1 vai 0, norāda prioritāti, ja abu procesu karodziņi ir iestatīti uz TRUE.

Šis algoritms var veiksmīgi ieviest savstarpēju izslēgšanu, taču tas nepārtraukti pārbaudīs, vai ir pieejama kritiskā sadaļa un tāpēc tērē ievērojamu procesora laiku. Tas rada problēmu, kas pazīstama kā slēdzenes sinhronizācija, kurā katru pavedienu drīkst izpildīt tikai stingrā sinhronizācijā. Tas nav arī paplašināms, jo atbalsta tikai maksimāli divus savstarpējās izslēgšanas procesus.