Xotira. Bu o'zaro bog'liqlik tarmog'ida trafikning oshishiga olib keladi.
Sinxronizatsiya: qulflar. Kritik bo'lim muammosining har qanday yechimi qulfni talab qiladi [40] . Aslida qulf umumiy resursga kirishni ketma-ketlashtiradi, shunda faqat bitta jarayon yoki oqim o'qiydi va o'zgaruvchini istalgan vaqtda o'zgartiradi. Ushbu bo'limning boshida aytib o'tganimizdek, muhim bo'limga kirishga ruxsat berishdan oldin jarayon qulfni olishi kerak 4.6-rasmda ko'rsatilgan. Dasturni ishlab chiqishni soddalashtirish uchun apparatda qulf mavjud va qayta ishlash yukining bir qismini operatsion tizimdan ko'chirish uchun. Muhim bo'lim bitta protsessorda umumiy o`zgaruv-chida jarayon ishlayotganida uzilishning oldini olish yorda-mida ishlov berilishi mumkin. Bu yechim emas ko'p protses-sorli tizimda amaliy, chunki barcha protsessorlar bu haqda xabardor bo'lishi kerak uzilishni o'chirish. Bu xabar o'rtasida efirga uzatilayotganda vaqt behuda ketadi protsessorlar.
Qulflash apparatda maxsus atom TestAndSet () ko'rsat-masi bilan ta'minlanadi. Ushbu ko'rsatma qulfning qiymatini (sinov qismi) qaytaradi va keyin uni o'rnatadi tugallangandan so'ng qulfning qiymati 1 ga teng.
Bloklash - bu xotiradagi qiymat, unda operatsiya o'qiladi - o'zgartiriladi – yoziladi bu ko'rsatma yordamida atomik tarzda bajariladi. Atom TestAndSet () funktsiya apparatda amalga oshiriladi, ammo psevdokod quyidagicha tasvirlangan
1: boolean TestAndSet (boolean * lock)
2: {
3: boolean v = * lock; // Test (read) operation
4: * lock = TRUE; // Modify (set) and Write operations
5: return v;
6: }
1-qator funktsiyani e'lon qiladi va uning tanasini belgilaydi.
3-qator qiymatni o'qish orqali atom ko'rsatmasining sinov qismini bajaradi qulfdan.
4-qator qulfni o'zgartiradi va qulfning qiymatini yangilaydi. Agar qulf bo'lsa asli TRUE, yana TRUE yozish bilan hech qanday zarar bo'lmaydi. Biroq, agar qulf bo'lsa FALSE, keyin qulf mavjud bo'ladi va jarayon bu fakt haqida xabardor qilinadi v o'zgaruvchisi orqali. Jarayon, shuningdek, atomik tarzda qulfni TRUE ga o'rnatadi u boshqa jarayonlar uchun mavjud emas.
5-qator qaror qabul qilish jarayoni tomonidan ishlatiladigan qulfning asl qiymatini qaytaradi tanqidiy bo'limga kirish kerakmi yoki yo'qmi.
TestAndSet () funksiyasidan endi jarayonni boshqarish uchun foydalanish mumkin qulf mavjud bo'lganda yoki qulfni kutayotganda muhim bo'limga kirish quyidagicha mavjud bo'lish:
1: Code before critical section
2:
3: // Attempt to acquire lock
4: while (TestAndSet ( & lock))
5: ; // no action and continue testing lock
6:
7: // Start of critical section
8: critical section code
9: // End of critical section
10: lock = FALSE; // release lock
11:
12: Code after critical section
1-qator kritik qismdan oldingi oddiy kodni ifodalaydi.
4-qatorda jarayon blokirovka qiymatini cheksiz WHILE ichida sinab ko'radi halqa. Agar blokirovka qiymati FALSE bo'lsa va jarayon qulfni qo'lga kiritsa, tsikl tugaydi va uning muhim qismini bajarishga kirishadi. 8-qator kritik qismni ifodalaydi.
10-qator muhim qismning oxirida qulfni chiqaradi. 12-qator koddir
tanqidiy qismdan keyin.
Qulf va vositani olishga urinish jarayonlarining o'xshashligi
kompyuter aloqasi yoki tarmoqlarida kirishni boshqarish (MAC) muammosi bo'lishi kerak bu yerda qayd etilgan. 4.4-jadvalda o'zaro istisno va o'rtasidagi o'xshashliklar jamlangan telekommunikatsiya sohasida MAC.\