Birgalikda suratga olish moslamalari - Shared snapshot objects - Wikipedia

Yilda tarqatilgan hisoblash, a birgalikda suratga olish ob'ekti ning bir turi ma'lumotlar tuzilishi, bu bir nechta o'rtasida taqsimlanadi iplar yoki jarayonlar. Ko'p vazifalar uchun a bo'lishi muhimdir ma'lumotlar tuzilishi, bu xotira holatining izchil ko'rinishini ta'minlashi mumkin. Amalda, shunchaki biriga kirish orqali xotiraning bunday izchil holatini olish mumkin emas ekan umumiy registr ikkinchisidan keyin, chunki individual registrlarda saqlanadigan qiymatlar ushbu jarayonning istalgan vaqtida o'zgartirilishi mumkin. Ushbu muammoni hal qilish uchun oniy tasvir ob'ektlari vektorini saqlaydi n komponentlari va quyidagi ikkitasini taqdim eting atom operatsiyalar: yangilash (i, v) qiymatini o'zgartiradi menth komponent vva skanerlash () barchasida saqlangan qiymatlarni qaytaradi n komponentlar.[1][2]Suratga olish moslamalarini atomik bitta yozuvchi ko'p o'quvchi yordamida qurish mumkin umumiy registrlar.

Umuman olganda, bitta yozuvchili ko'p o'qiydigan (swmr) suratga olish moslamalari va ko'p yozuvchili ko'p o'quvchi (mwmr) suratga olish moslamalarini ajratib ko'rsatish mumkin. Swmr suratga olish ob'ektida tarkibiy qismlar soni jarayonlar soniga va faqat bitta jarayonga to'g'ri keladi Pmen xotira holatiga yozishga ruxsat beriladi men va boshqa barcha jarayonlarga xotirani o'qishga ruxsat beriladi. Aksincha, mwmr oniy tasvirdagi ob'ektda barcha jarayonlarga xotiraning barcha holatlariga yozish va xotirani o'qishga ruxsat beriladi.

Umumiy

A umumiy xotira bir nechta qismlarga bo'linadi. Ushbu qismlarning har biri bitta ma'lumot qiymatiga ega. Bitta yozuvchida ko'p o'quvchi holatida har bir jarayon Pmen xotira holatiga ega men tayinlangan va faqat shu jarayonga xotira holatiga yozishga ruxsat beriladi. Shu bilan birga, har qanday jarayon xotiradagi har qanday pozitsiyani o'qishga ruxsat beriladi. Ko'p yozuvchili ko'p o'quvchi holatida cheklash o'zgaradi va har qanday jarayon xotiraning istalgan o'rnini o'zgartirishi mumkin. Har qanday jarayon Pmen {1,...,n} ichida n-process tizimi oniy tasvir ob'ekti bo'yicha ikkita operatsiyani bajarishga qodir: skanerlash () va yangilash (i, v). The skanerlash operatsiyaning argumentlari yo'q va xotiraning izchil ko'rinishini qaytaradi. The yangilash (i, v) operatsiya xotiradagi holatni yangilaydi men qiymati bilan v.

Amaliyotlarning ikkala turi ham jarayon tomonidan chaqirilish va xotira qaytishi o'rtasida atomik ravishda sodir bo'ladi deb hisoblanadi. Umuman aytganda, ma'lumotlar vektorida har bir kirish dk oxirgi argumentga mos keladi chiziqli yangilash qismini yangilaydigan operatsiya k xotira.[1]

Birgalikdagi oniy tasvir ob'ektlaridan to'liq foyda olish uchun, tasdiqlash va tuzilmalarni soddalashtirish nuqtai nazaridan, oniy tasvir ob'ektlarini qurishda yana ikkita cheklov qo'shilgan.[1] Birinchi cheklash me'moriy cheklovdir, ya'ni har qanday oniy tasvir ob'ekti faqat bilan quriladi bitta yozuvchi ko'p o'quvchi registrlari asosiy element sifatida. Bu bitta yozuvchiga ega bo'lgan ko'p o'qiydigan suratlar uchun mumkin. Ko'p yozuvchili ko'p o'quvchi oniy tasvir uchun moslamalardan foydalanish mumkin ko'p o'qiydigan ko'p yozuvchilik registrlari, bu o'z navbatida bitta yozuvchi ko'p o'quvchi registrlaridan tuzilishi mumkin.[1][3][4]

Taqsimlangan hisoblashda tizimni qurish maqsadi butun tizim bajarilish jarayonida rivojlanib borishi bilan bog'liq. Shunday qilib, jarayonning harakati butun tizimni to'xtatishga olib kelmasligi kerak (Qulf erkinligi ). Buning kuchliroq versiyasi - ning xususiyati kutish erkinligi, shuni anglatadiki, hech qanday jarayon boshqa jarayonning o'z faoliyatini to'xtatishiga to'sqinlik qila olmaydi. Umuman olganda, bu shuni anglatadiki, har qanday operatsiya boshqa jarayonlarning xatti-harakatlaridan qat'i nazar, cheklangan sonli bosqichlardan so'ng tugashi kerak. Suratga olishning juda oddiy algoritmi tizim bo'ylab rivojlanishni kafolatlaydi, lekin faqat qulfsizdir. Ushbu algoritmni kengaytirish oson, shunda u kutishsiz bo'ladi. Afek va boshqalarning algoritmi,[1] bo'limda keltirilgan Amalga oshirish ushbu xususiyatga ega.

Amalga oshirish

Birgalikda suratga olish moslamalarini amalga oshirish uchun bir nechta usullar mavjud. Birinchi taqdim etilgan algoritm oniy tasvir ob'ektlarining printsipial bajarilishini ta'minlaydi. Biroq, ushbu dastur faqat ning xususiyatini beradi qulf erkinligi. Afek va boshqalar tomonidan taklif qilingan ikkinchi taqdim etilgan dastur.[1] deb nomlangan kuchli xususiyatga ega kutish erkinligi. Boshqa dasturlarning umumiy ko'rinishi Fich tomonidan berilgan.[2]

Asosiy swmr suratga olish algoritmi

Ushbu algoritmning asosiy g'oyasi shundan iboratki, har bir jarayon skanerlash () operatsiyalar, barcha xotira qiymatlarini ikki marta o'qiydi. Agar algoritm aynan bir xil xotira tarkibini ikki marta o'qisa, boshqa hech qanday jarayon orasidagi qiymatni o'zgartirmagan va natijani qaytarishi mumkin. Bajaradigan jarayon yangilash (i, v) operatsiya, faqat uning qiymatini xotirada yangilang.

funktsiya skanerlash () esa to'g'ri        a [1..n]: = yig'ish; b [1..n]: = yig'ish; agar (∀i∈ {1, .., n} i joylashuvi, ikki to'plam davomida o'qishlar orasida o'zgargani yo'q)) keyin            qaytish b; // er-xotin yig'ish muvaffaqiyatli pastadiroxiri
funktsiya yangilash (i, v) M [i]: = v;oxiri
1-rasm: Bir jarayon har doim boshqa jarayonni ikki marta yig'ish paytida xotirani yangilaydi. Shunday qilib, skanerlash jarayoni hech qachon tugatilmaydi.

Ushbu algoritm oniy tasvir ob'ektlarini juda oddiy bajarilishini ta'minlaydi. Bu tizimning rivojlanishini kafolatlaydi, individual iplar esa individual jarayonlarning xatti-harakatlari tufayli och qolishi mumkin. Jarayon Pmen boshqa jarayonni oldini olish mumkin Pj tugatishdan a skanerlash () har doim o'z qiymatini o'zgartirib, ikkita xotira o'rtasida ishlaydi. Shunday qilib, algoritm qulfsiz, lekin emas kutmasdan. Bu xususiyatni kuchliroq ushlab turish uchun boshqa jarayonlarning xatti-harakatlari tufayli hech qanday jarayon och qolishiga yo'l qo'yilmaydi. 1-rasm muammoni aks ettiradi. Esa P1 ni bajarishga harakat qiladi skanerlash () operatsiya, ikkinchi jarayon P2 har doim "ikki marta yig'ish" ni bezovta qiladi. Shunday qilib, skanerlash jarayoni har doim operatsiyani qayta boshlashi kerak va hech qachon tugamaydi va och qolmaydi.

Afek va boshqalar tomonidan bitta yozuvchidan ko'p o'qiydigan dastur.

Afek va boshqalarning swmr oniy tasvir algoritmining asosiy g'oyasi. bu jarayon boshqa jarayonning xotiraning o'rnini o'zgartirganligini yoki jarayonlarning bir-biriga yordam berishini aniqlay olishidir. Boshqa bir jarayon o'z qiymatini o'zgartirganligini aniqlash uchun har bir registrga hisoblagich ilova qilinadi va jarayon har bir yangilanishda hisoblagichni oshiradi. Ikkinchi g'oya shundan iboratki, xotira holatini yangilaydigan har bir jarayon a skanerlash () operatsiyani bajaradi va uning registridagi "xotiraning ko'rinishini" boshqa jarayonlarga taqdim etadi. Skanerlash jarayoni buni qarzga olishi mumkin skanerlash natija va uni qaytaring.

Cheksiz xotiraga asoslangan

Ushbu g'oyadan foydalanib, a tuzilishi mumkin kutmasdan cheksiz kattalikdagi registrlardan foydalanadigan algoritm. Yangilash operatsiyasini bajaradigan jarayon, skanerlashni yakunlash uchun jarayonga yordam beradi. Asosiy g'oya shundan iboratki, agar protsess xotira o'rnini ikki marta yangilaydigan boshqa jarayonni ko'rsa, bu jarayon to'liq bajarilgan bo'lishi kerak, chiziqli, orasidagi operatsiyani yangilang. Buni amalga oshirish uchun har bir yangilash operatsiya avval bajaradi a skanerlash xotirani tanlang va keyin yangi qiymat bilan birga oniy tasvir qiymatini atomik ravishda yozing v va tartib raqami. Agar jarayon xotirani skanerlashni amalga oshirayotgan bo'lsa va protsess xotira qismini ikki marta yangilaganligini aniqlasa, u yangilanishning "ko'milgan" skanerlashini "qarz" qilib olishi mumkin. skanerlash operatsiya.[1]

funktsiya scan () // xotiraning izchil ko'rinishini qaytaradi uchun j = 1 ga n qil ko'chirildi [j]: = 0 oxiri    esa to'g'ri qil        a [1..n]: = yig'ish; // yig'adi (ma'lumotlar, ketma-ketlik, ko'rinish) uch baravar b [1..n]: = yig'ish; // uch marta (ma'lumotlar, ketma-ketlik, ko'rinish) to'playdi agar (∀j∈ {1, ..., n}) (a [j] .seq = b [j] .seq) keyin            qaytish (b [1] .data, ..., b [n] .data) // hech qanday jarayon xotirani o'zgartirmagan boshqa uchun  j = 1 ga n qil            agar a [j] .seq ≠ b [j] .seq keyin                 // jarayon ko'chirildi agar ko'chirildi [j] = 1 keyin                    // jarayon allaqachon ilgari ko'chirilgan qaytish b [j] .view; boshqa ko'chirilgan [j]: = ko'chirilgan [j] + 1; oxiri    oxiritugatish funktsiyasi
protsedura yangilash (men,v) // registrlarni ma'lumotlar-qiymatlari bilan yangilaydi, tartib raqamini yangilaydi, o'rnatilgan skanerlash s [1..n]: = skanerlash; // o'rnatilgan skaner rmen : = (v, rmen.seq = rmen.seq + 1, s [1..n]);tugatish tartibi
Shakl 2: Bitta yozuvchi ko'p o'qiydigan suratga olish ob'ekti uchun namunaviy chiziqlashtirish tartibi. Birinchi skanerlash () ikki marta yig'ishni muvaffaqiyatli bajarishi mumkin, ikkinchi skanerlashning "ikki marta yig'ilishi" ikkinchi jarayon bilan ikki marta uzilib qoladi. Shunday qilib, jarayon ko'milgan skanerni oladi.

Har bir registr ma'lumotlar qiymati uchun maydon, tartib raqami va oxirgi yangilanishdan oldin to'plangan so'nggi ko'milgan skanerlash natijasi maydonidan iborat. Har bir skanerlash jarayonida jarayon Pmen tartib raqamidan foydalanib, jarayon o'z xotirasini o'zgartiradimi yoki yo'qligini hal qilishi mumkin. Agar er-xotin yig'ish paytida xotirada o'zgarish bo'lmasa, Pmen ikkinchi skanerlash natijasini qaytarishi mumkin. Jarayon boshqa jarayon o'rtasida xotirani yangilaganini ko'rgandan so'ng, bu ma'lumotlarni ko'chirilgan maydonda saqlaydi. Agar jarayon bo'lsa Pj skanerlash (), skanerlash jarayoni bajarilganda xotirasini ikki marta o'zgartirdi Pmen yangilash jarayonida o'rnatilgan ro'yxatdan o'tishni qaytarishi mumkin, uni yangilash jarayonida o'z registrida saqlagan.

Ushbu operatsiyalar bo'lishi mumkin chiziqli har bir yangilash () operatsiyasini registrga yozishda chiziqli qilib. Skanerlash jarayoni chiziqlash uchun murakkabroq. Agar skanerlash operatsiyasining ikki qavatli to'plami muvaffaqiyatli bo'lsa, skanerlash jarayoni ikkinchi skanerlashning oxirida chiziqli bo'lishi mumkin. Boshqa holatda, bitta jarayon o'z registrini ikki marta yangilagan - operatsiyani yangilash jarayonida uning ko'milgan skanerini yig'ish paytida uning qiymatini registrga yozishdan oldin chiziqlash mumkin.[1]

Cheklangan xotiraga asoslangan

Taqdim etilgan algoritmning cheklovlaridan biri shundaki, u cheksiz xotira chunki tartib raqami doimiy ravishda oshib boradi. Ushbu cheklovni bartaraf etish uchun jarayon o'rtasida xotira holatini ikki marta o'zgartirganligini aniqlashning boshqa usulini joriy qilish kerak. Jarayonlarning har bir juftligi ikkita bitta bitli bitta o'qiydigan (swsr) registrdan foydalangan holda, ikkita atom bitini o'z ichiga olgan holda aloqa o'rnatadi. Jarayon "ikki marta yig'ish" ni boshlashdan oldin, sheriklik jarayonining qiymatini o'z registriga ko'chiradi. Agar skaner jarayoni bo'lsa Pmen "ikki marta yig'ish" ni amalga oshirgandan so'ng, sheriklik jarayonining qiymatini kuzatadi Pj o'rtasida o'zgargan bo'lsa, bu jarayon xotirada yangilanish operatsiyasini bajarganligini ko'rsatadi.[1]

funktsiya skanerlash () // xotiraning izchil ko'rinishini qaytaradi    uchun j = 1 ga n qil ko'chirildi [j]: = 0 oxiri    esa to'g'ri qil        uchun j = 1 ga n qil qmen, j : = rj.pj, men oxiri        a [1..n]: = yig'ish; // uch marta yig'iladi (ma'lumotlar, bit-vektor, almashtirish, ko'rish)        b [1..n]: = yig'ish; // uch baravar yig'adi (ma'lumotlar, bit-vektor, almashtirish, ko'rish)        agar (∀j∈ {1, ..., n}) (a [j] .pj, men = b [j] .pj, men = qmen, j) va a [j] .toggle = b [j] .toggle keyin            qaytish (b [1] .data, ..., b [n] .data) // hech qanday jarayon xotirani o'zgartirmadi        boshqa uchun  j = 1 ga n qil            agar (a [j] .pj, men ≠ qmen, j) yoki (b [j] .pj, men ≠ qmen, j) yoki (a [j] .toggle ≠ b [j] .toggle) keyin // jarayoni j yangilanishni amalga oshirdi                agar ko'chirildi [j] = 2 keyin                   // jarayon allaqachon ilgari ko'chirilgan                    qaytish b [j] .view; boshqa ko'chirilgan [j]: = ko'chirilgan [j] + 1; oxiri    oxiritugatish funktsiyasi
protsedura yangilash (men,v)                        // barcha registrlarning "yozish holati" ma'lumotlar qiymati bilan registrlarni yangilaydi, almashtirish bitini va o'rnatilgan skanerni teskari yo'naltiradi    uchun j = 1 ga n qil f [j]: = ¬qj, men oxiri    s [1..n]: = skanerlash; // o'rnatilgan skanerlash    rmen : = (v, f [1..n], ¬rmen.toggle, s [1..n]);tugatish tartibi

Cheklanmagan tartib raqami ikkitasi bilan almashtiriladi qo'l siqish bitlar har bir juft jarayon uchun. Ushbu qo'l siqish bitlari swsr registrlariga asoslangan va ularni matritsa bilan ifodalash mumkin M, qaerda jarayon Pmen qatorga yozishga ruxsat berilgan men va ustunda qo'l siqish bitlarini o'qishga ruxsat beriladi men. Skanerlash jarayoni dubl-kolleksiyani amalga oshirishdan oldin, barcha registrlardagi o'zaro bog'lanish bitlarini o'z ustunini o'qib yig'adi. Keyinchalik, jarayon ikki barobar qiymat davomida o'z qiymatini o'zgartiradimi yoki yo'qmi, qaror qabul qilishi mumkin. Shuning uchun, jarayon faqat ustunni yana o'qilgan qo'l siqish bitlari bilan taqqoslashi kerak. Agar bitta jarayon bo'lsa Pj to'plami davomida ikki marta yozgan Pmen skanerlash paytida qo'l siqish bitlari o'zgarmasligi mumkin. Shunday qilib, "o'tish biti" deb nomlangan boshqa bitni kiritish kerak, bu bit har bir yozuvda o'zgaradi. Bu ketma-ket ikkita yozuvni ajratib olishga imkon beradi, garchi boshqa biron bir jarayon o'z registrini yangilamagan bo'lsa ham. Ushbu yondashuv, skanerlash protsedurasida boshqa hech narsani o'zgartirmasdan, cheksiz ketma-ketlik raqamlarini qo'l siqish bitlari bilan almashtirishga imkon beradi.

Skanerlash jarayonida Pmen uning ikki qavatli to'plamidan foydalanishi yoki olmasligini aniqlash uchun qo'l siqish bitidan foydalanadi, boshqa jarayonlar ham yangilanish operatsiyalarini bajarishi mumkin. Birinchi qadam sifatida ular boshqa jarayonlar tomonidan taqdim etilgan qo'l siqish bitlarini yana o'qiydilar va ularni to'ldiradi. Keyinchalik, ushbu jarayonlar yana o'rnatilgan skanerni hosil qiladi va yangilangan ma'lumotlar qiymatini, yig'ilgan - to'ldirilgan - qo'l siqish bitlarini, to'ldirilgan o'tish bitini va o'rnatilgan skanerni registrga saqlaydi.

Uchrashuv bitlari ketma-ketlik raqamlarini teng ravishda almashtirganligi sababli, chiziqlash cheklanmagan xotira qutisidagi kabi.

Afek va boshqalarning ko'p yozuvchili ko'p o'qiydigan dasturlari.

Ko'p yozuvchili ko'p o'qiydigan suratga olish moslamasini qurish shuni nazarda tutadi n jarayonlardan iborat bo'lgan xotiraning istalgan joyiga yozishga ruxsat beriladi m registrlar. Shunday qilib, endi jarayon identifikatori va xotira joylashuvi o'rtasida hech qanday bog'liqlik yo'q. Shuning uchun, endi ma'lumotlar maydonlari bilan qo'l siqish bitlarini yoki o'rnatilgan skanerni birlashtirish mumkin emas. Shunday qilib, qo'l siqish bitlari, ma'lumotlar xotirasi va o'rnatilgan skaner bir xil registrda saqlanishi mumkin emas va xotiraga yozish endi atomik operatsiya emas.

Shakl 3: Ko'p yozuvchili ko'p o'quvchi oniy tasvir uchun ob'ekt uchun namunaviy chiziqli chiziqni ko'rsatadi

Shuning uchun yangilash () jarayon uch xil registrni mustaqil ravishda yangilashi kerak. Dastlab u o'qigan qo'l siqish bitlarini saqlashi kerak, so'ngra ko'milgan skanerlashni amalga oshirishi va nihoyat uning qiymatini belgilangan xotira holatiga saqlashi kerak. Har bir yozish mustaqil ravishda atomik tarzda amalga oshiriladi, ammo ular birgalikda emas. Yangi yangilash () protsedura ba'zi bir o'zgarishlarga olib keladi skanerlash () funktsiya. Endi qo'l siqish bitlarini o'qish va xotira tarkibini ikki marta yig'ish etarli emas. Boshlanishni aniqlash uchun yangilash jarayon, xotira tarkibini yig'gandan so'ng, jarayon ikkinchi marta qo'l siqish bitlarini to'plashi kerak.

Agar er-xotin yig'ish muvaffaqiyatsiz tugasa, endi ichki o'rnatilgan skanerdan qarz olishdan oldin boshqa jarayon uch marta harakatlanayotganini ko'rish kerak. 3-rasm muammoni aks ettiradi. Birinchi juft yig'ish muvaffaqiyatsiz tugadi, chunki an yangilash jarayon skanerlash jarayoni birinchi marta ikki marta yig'ish paytida xotirani yozishni tugatishidan oldin boshlandi. Biroq, ushbu yozuvni ko'milgan skanerlash amalga oshiriladi va saqlanadi P1 xotirani skanerlashni boshlaydi va shuning uchun to'g'ri Lineerizatsiya nuqtasi yo'q. Ikkinchi yig'ish muvaffaqiyatsiz tugadi, chunki jarayon P2 ikkinchi yozishni boshlaydi va qo'l siqish bitlarini yangilaydi. Swmr stsenariysida biz endi o'rnatilgan skanerdan qarz olamiz va uni qaytarib beramiz. Mwmr stsenariysida buning iloji yo'q, chunki ko'milgan skaner ikkinchisidan yozmoq skanerlash oralig'ida hali ham lineerlashtirilmagan (ishning boshlanishi va tugashi). Shunday qilib, jarayon boshqa jarayondan uchinchi o'zgarishlarni ko'rishi kerak, chunki skanerlash oralig'i davomida kamida bitta ko'milgan skanerlash liniyalanganligiga ishonch hosil qilish kerak. Bitta jarayon bo'yicha uchinchi o'zgarishlardan so'ng skanerlash jarayoni chiziqlash mezonini buzmasdan eski xotira qiymatini olishi mumkin.

Murakkablik

Afek va boshqalarning birgalikda suratga olish moslamalarini taqdim etgan asosiy taqdimoti. ehtiyojlar xotira operatsiyalari.[1] Anderson tomonidan mustaqil ravishda ishlab chiqilgan yana bir dastur eksponent sonli operatsiyalarga muhtoj .[5] Bundan tashqari, swmr registrlari asosida suratga olish moslamalarini tasodifiy bajarilishi mavjud operatsiyalar.[6] Cheksiz xotiradan foydalangan holda Isroil va Sheroziy tomonidan amalga oshiriladigan yana bir tadbir talab etiladi xotiradagi operatsiyalar.[7][8] Isroil va boshq. har qanday yangilash operatsiyasi uchun past darajadagi operatsiyalarning pastki chegarasini boshqa ishda ko'rsatish. Pastki chegara , qayerda w yangilanuvchilar soni va r brauzerlarning soni. Attiya va Rachman foydalanadigan swmr registrlari asosida aniqlangan tezkor algoritmni taqdim etadilar yangilash va skanerlash bo'yicha operatsiyalar.[8] Isroil, Shaxam va Sheroziy tomonidan umumiy usulni qo'llash [9] buni faqat kerak bo'lgan cheksiz oniy tasvir algoritmiga oshirish mumkin skanerlash bo'yicha operatsiyalar va yangilanish bo'yicha operatsiyalar. Inoue va boshqalar tomonidan ishlab chiqilgan qo'shimcha yaxshilanishlar mavjud.[10] faqat o'qish va yozish operatsiyalarining chiziqli soni yordamida. Boshqa taqdim etilgan usullardan farqli o'laroq, ushbu yondashuvda swmr registrlari emas, balki mwmr registrlari qo'llaniladi.

Ilovalar

Bir nechtasi bor algoritmlar yilda tarqatilgan hisoblash birgalikda suratga olish moslamalari yordamida dizayn va / yoki tekshirishda soddalashtirilishi mumkin.[1] Bunga misol qilib chiqarib tashlash muammolari,[11][12][13] bir vaqtning o'zida shtamplash tizimlari,[14] taxminiy kelishuv,[15] tasodifiy konsensus[16][17] va boshqa ma'lumotlar tuzilmalarini kutishsiz amalga oshirish.[18] Mwmr suratga olish moslamalari yordamida atomik ko'p yozuvchili ko'p o'quvchini yaratish ham mumkin registrlar.

Shuningdek qarang

Adabiyotlar

  1. ^ a b v d e f g h men j k Afek, Yuda; Attiya, Xagit; Dolev, Denni; Gafni, Eli; Merritt, Maykl; Shavit, Nir (1993 yil sentyabr). "Umumiy xotiraning atomik suratlari". J. ACM. 40 (4): 873–890. doi:10.1145/153724.153741.
  2. ^ a b Fich, Faith Ellen (2005). "Suratga olish qanchalik qiyin?". SOFSEM 2005: Informatika nazariyasi va amaliyoti. Kompyuter fanidan ma'ruza matnlari. 3381 (SOFSEM 2005: Informatika nazariyasi va amaliyoti tahr.). Springer Berlin Heidelberg. 28-37 betlar. doi:10.1007/978-3-540-30577-4_3. ISBN  978-3-540-24302-1.
  3. ^ Li, Ming; Tromp, Jon; Vitanyi, Pol M. B. (1996 yil iyul). "Bir vaqtning o'zida kutishsiz o'zgaruvchilarni qanday ulashish mumkin". J. ACM. 43 (4): 723–746. CiteSeerX  10.1.1.56.3236. doi:10.1145/234533.234556.
  4. ^ Peterson, Gari L; Berns, Jeyms E. (1987). "II yozish paytida bir vaqtning o'zida o'qish: ko'p yozuvchi ishi". Kompyuter fanlari asoslari, 1987., 28-yillik simpozium. 383-392 betlar.
  5. ^ Anderson, Jeyms H (1993). "Kompozit registrlar". Tarqatilgan hisoblash. 6 (3): 141–154. doi:10.1007 / BF02242703.
  6. ^ Attiya, Xagit; Helihy, Moris; Raxman, Ophir (1995). "Panjara kelishuvidan foydalangan holda atomik suratlar". Tarqatilgan hisoblash. 8 (3): 121–132. doi:10.1007 / BF02242714.
  7. ^ Isroil, Amos; Sheroziy, Asaf (1992). "2-panjara kelishuvidan foydalangan holda samarali suratga olish protokoli". Qo'lyozmasi.
  8. ^ a b Attiya, Xagit; Raxman, Ophir (1998 yil aprel). "O (n log n) operatsiyalaridagi atom rasmlari". Hisoblash bo'yicha SIAM jurnali. 27 (2): 319–340. doi:10.1145/164051.164055.
  9. ^ Isroil, Amos; Shaxam, Amnon; Sheroziy, Asaf (1993). "Balanssiz tizimlar uchun chiziqli vaqtda suratga olish protokollari". Tarqatilgan algoritmlar. Springer. 26-38 betlar. doi:10.1007/3-540-57271-6_25. ISBN  978-3-540-57271-8.
  10. ^ Inoue, Michiko; Masuzava, Toshimitsu; Chen, Vey; Tokura, Nobuki (1994). Ko'p yozuvchili ko'p o'quvchi registrlaridan foydalangan holda chiziqli vaqt surati. Tarqatilgan algoritmlar. 857. Springer. 130-140 betlar. doi:10.1007 / BFb0020429. ISBN  978-3-540-58449-0.
  11. ^ Dolev, Denni; Gafni, Eli; Shavit, Nir (1988). "Atom bo'lmagan davrga to'g'ri keladi: sinov holati sifatida l-istisno". Hisoblash nazariyasi bo'yicha yigirmanchi yillik ACM simpoziumi materiallari. 78-92 betlar.
  12. ^ Katseff, Xovard P (1978). "Muhim bo'lim muammosiga yangi echim". Hisoblash nazariyasi bo'yicha o'ninchi yillik ACM simpoziumi materiallari. 86-88 betlar.
  13. ^ Lamport, Lesli (1988). "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.
  14. ^ Dolev, Denni; Shavit, Nir (1989). "Vaqt tamg'asi cheklangan tizimlari konstruktivdir". Hisoblash nazariyasi bo'yicha yigirma birinchi yillik ACM simpoziumi materiallari. ACM. 454-466 betlar.
  15. ^ Attiya, Xagit; Linch, Nensi; Shavit, Nir (1990). "Kutishsiz algoritmlar tezmi?". Kompyuter fanlari asoslari, 1990. Ishlar to'plami., 31-yillik simpozium on. 55-64 betlar.
  16. ^ Abrahamson, Karl (1988). "Umumiy xotiradan foydalangan holda konsensusga erishish to'g'risida". Taqsimlangan hisoblash printsiplari bo'yicha ettinchi yillik ACM simpoziumi materiallari. 291-302 betlar.
  17. ^ Attiya, Xagit; Dolev, Denni; Shavit, Nir (1989). Chegaralangan polinomial randomize konsensus. Sakkizinchi yillik taqsimlangan hisoblash printsiplari bo'yicha ACM simpoziumi materiallari. 281-293 betlar.
  18. ^ Aspnes, Jeyms; Herlihy, Moris (1990). "Asenkron PRAM modelidagi kutishsiz ma'lumotlar tuzilmalari". Parallel algoritmlar va arxitektura bo'yicha ikkinchi yillik ACM simpoziumi materiallari. ACM. 340-349 betlar.