Szymańskis algoritmi - Szymańskis algorithm - Wikipedia

Shzimanski o'zaro chiqarib tashlash algoritmi a o'zaro chiqarib tashlash algoritmi kompyuter olimi doktor tomonidan o'ylab topilgan Boleslav Szimanski, ko'plab qulay xususiyatlarga ega, shu jumladan chiziqli kutish,[1][2] va qaysi kengaytma[3] tomonidan joylashtirilgan ochiq muammoni hal qildi Lesli Lamport[4] Lamport tomonidan o'ylab topilgan har qanday oqilona adolatni va qobiliyatsizlikka bardoshlik talabini qondiradigan har bir jarayon uchun doimiy aloqa soniga ega algoritm mavjudmi (Lamport echimida n faktorial aloqa o'zgaruvchilari, Szimanski 5 ga nisbatan foydalanilgan).

Algoritm

Algoritm kirish va chiqish eshiklari bo'lgan kutish xonasida modellashtirilgan.[1] Dastlab kirish eshigi ochiq va chiqish eshigi yopiq. Muhim bo'limga kirishni talab qiladigan barcha jarayonlar taxminan bir vaqtning o'zida kutish xonasiga kiradi; ularning oxirgisi kirish eshigini yopadi va chiqish eshigini ochadi. Jarayonlar keyinchalik muhim bo'limga birma-bir kirib boradi (yoki muhim bo'lim bunga imkon beradigan bo'lsa, katta guruhlarda). Kritik qismni tark etgan so'nggi jarayon chiqish eshigini yopadi va kirish eshigini qayta ochadi, shuning uchun jarayonlarning keyingi partiyasi kirishi mumkin.

Amalga oshirish har bir jarayondan iborat bayroq Ushbu jarayon tomonidan yozilgan va boshqalar o'qigan o'zgaruvchi (ushbu bitta yozuvchi xususiyati samarali bo'lishi kerak kesh foydalanish). Kirish eshigining holati barcha jarayonlarning bayroqlarini o'qish orqali hisoblanadi. Psevdo-kod quyida keltirilgan:

# Kirish protokolibayroq[o'zini o'zi]  1                    # Kutish xonasi tashqarisida turibdikutmoq(barchasi bayroq[1..N]  {0, 1, 2}) # Ochiq eshikni kutingbayroq[o'zini o'zi]  3                    # Eshik oldida turibagar har qanday bayroq[1..N] = 1:            # Boshqa jarayon kirishni kutmoqda    bayroq[o'zini o'zi]  2                # Boshqa jarayonlarning kirib kelishini kutish    kutmoq(har qanday bayroq[1..N] = 4)     # Eshikning kirish va yopilish jarayonini kutingbayroq[o'zini o'zi]  4                    # Eshik yopiqkutmoq(barchasi bayroq[1..o'zini o'zi-1]  {0, 1})   # Identifikatori past bo'lganlarning barchasi chiqish protokolini tugatishini kuting# Muhim bo'lim# ...# Protokoldan chiqishkutmoq(barchasi bayroq[o'zini o'zi+1..N]  {0, 1, 4}) # Kutish zalida hamma borligini ta'minlang                                       # eshik yopilishi kerakligini tushundibayroq[o'zini o'zi]  0 # Qoldiring. Hali ham kutish xonasida hech kim bo'lmasa, eshikni oching

"Hammasi" va "har qanday" testlarning tartibi bir xil bo'lishi kerakligini unutmang. Shuningdek, "har qanday" testlar o'z-o'zidan tashqari, biron bir mavzu bilan qondirilishi kerak. Masalan, agar test har qanday bayroq bo'lsa [1..N] = 1 va faqat bayroq [o'zini] = 1 bo'lsa, u holda test muvaffaqiyatsiz tugadi / qaytdi deyiladi 0. Intuitiv tushuntirishga qaramay algoritmni bajarish oson bo'lmagan to'g'ri isbotlang Biroq, o'zining qulay xususiyatlari tufayli to'g'riligini isbotlash maqsadga muvofiq edi va bir nechta dalillar keltirilgan.[2][5]

Adabiyotlar

  1. ^ a b Syzamskiy, Boleslav K. (1988). "Lamportning chiziqli kutish bilan bir vaqtda dasturlash muammosiga oddiy echim". Supercomputing bo'yicha ikkinchi xalqaro konferentsiya materiallari - ICS '88. ICS '88: Superkompyuter bo'yicha 2-xalqaro konferentsiya materiallari. Sent-Malo, Frantsiya: ACM. 621-626 betlar. doi:10.1145/55364.55425. ISBN  978-0-89791-272-3. S2CID  18612278.
  2. ^ a b Manna, Zohar; Pnueli, Amir (1990). "Ko'p jarayonli dasturlarni tekshirishda mashq qilish.". Go'zallik - bu bizning biznesimiz: Edsger V.Daykstra uchun tug'ilgan kungi salom. Springer Verlag. 289-301 betlar. ISBN  978-0-387-97299-2.
  3. ^ Syzimskiy, Boleslav (1990). "O'zaro chiqarib tashlash qayta ko'rib chiqildi" (PDF). Axborot texnologiyalari bo'yicha Beshinchi Quddus konferentsiyasi. Quddus, Isroil: 110–117.
  4. ^ Lamport, Lesli (1986). "O'zaro chiqarib tashlash muammosi: II qism - bayonot va echimlar". ACM jurnali. 33 (2): 327–348. CiteSeerX  10.1.1.32.9808. doi:10.1145/5383.5385. S2CID  7387839.
  5. ^ de River, Villem-Pol; de Bur, Frank; Gannemann, Ulrix; Hooman, Jozef; Laxnech, Yassin; Poel, Mannes; Zwiers, Job (Noyabr 2002). Muvofiqlikni tekshirish. Nazariy kompyuter fanida Kembrij traktlarida 54-raqam. Kembrij universiteti matbuoti. doi:10.2277/0521806089 (harakatsiz 2020-09-10). ISBN  978-0-521-80608-4.CS1 maint: DOI 2020 yil sentyabr holatiga ko'ra faol emas (havola)

Shuningdek qarang