TTlarda sinxronizatsiya masalalari
Jarayonlar tomonidan resurslarni, ya’ni fayllarni, vositalarni hamda ma’lumot uzatilishini birgalikda foydalanishlarini tashkil etishda sinxronlash usullari muhim ahamiyat kasb etadi.
Bitta protsessorli tizimlarda qo‘llaniladigan sinxronlash usullarini (semafor, monitor usullari) taqsimlangan tizimlarga qo‘llash juda ham to‘g‘ri natija bermaydi.
Chunki TT larda bo‘lingan tezkor xotira asosida ish yuritiladi. Agarda ikki jarayon bir protsessorda bajarilayotgan bo‘lsa, ular kompyuter «yadro» sidai bitta semaforga murojaat qilishlari mumkin, lekin jarayonlar boshqa - kompyuterlarda bajarilgan taqdirda bunday yondoshuv to‘g‘ri natija bermaydi. Bunda boshqacha yo‘l tutiladi.
TT larda sinxronlashning ahamiyatini quyidagi misolda ko‘rish mumkin.
TT larda har bir protsessor o‘zini soatiga ega va u kompyuterda o‘rnatilgan aniqlik bilan «yuradi». Bunday xolatda kompyuterlardagi vaqtga bog‘liq dasturlarning ishlash vaqti, qaysi kompyuterning soatiga qarab ishlashiga bog‘liq bo‘lib qoladi.
74
TT kompyuterlarining soatlarini sinxronlash katta muammo, ammo ko‘p hollarda jarayonlar uchun bunday sinxronlashni keragi yo‘q, ya’ni kompyuterlardagi soatlar to‘g‘ri «yurishi» muhim emas, ular uchun muhimi kompyuterlardagi soatlar bir xil vaqtni ko‘rsatishi yoki undan ham soddaroq bir xil jarayonlar uchun sodir bo‘ladigan hodisalarning to‘g‘ri tartibini o‘rnatilishi muhim. Bu holda foydalanuvchi «mantiqiy soatlar» asosida ish yuritadi [16].
Ikki tasodif hodisalar uchun «undan oldin paydo bo‘lgan» munosabat kiritiladi, ya’ni
a < b ifodasi ««a» «b» dan oldin sodir bo‘ldi»,
deb o‘qiladi va TT dagi hamma jarayonlar oldin «a» hodisasi, undan keyin esa «b» hodisasi sodir bo‘lgan deb hisoblaydi.
«Undan oldin paydo bo‘lgan» munosabat tranzitivlik xususiyatiga ega,
ya’ni:
agar a < b va b < c munosabatlari to‘g‘ri bo‘lsa, u holda a < s munosabati ham to‘g‘ri bo‘ladi.
Bitta jarayonning ikki hodisasi uchun har doim «undan oldin paydo bo‘lgan» munosabatni o‘rnatish mumkin.
Ushbu munosabatni bitta jarayonning axborotlarini jo‘natish hodisasi va boshqa jarayonning qabul qilish hodisasi uchun o‘rnatish mumkin, chunki qabul jo‘natishdan oldin ro‘y bera olmaydi.
Misol tariqasida quyidagi masalani ko‘rib chiqamiz.
TT larda vaqt yuritilishining shunday mexanizmini yaratish kerak bo‘lsinki, u har bir hodisa bajarilishi uchun ketgan vaqtning qiymati T(a) bilan tizimdagi hamma jarayonlar rozi bo‘lishligini ta’minlasin. Bu holda quyidagi shart bajarilishi kerak bo‘ladi, ya’ni:
“agar a < b , u holda T(a) < T(b)”
Bundan tashqari, har qanday vaqtning korrektirovkasi faqat musbat qiymatlar qo‘shilgani bilan bajarilishi mumkin bo‘lsin.
Masalani yechish uchun tuzilgan algoritmda vaqt o‘tishining belgilari sifatida hodisalar ketma-ketligi ishlatiladi.
75
1.23 - rasmda har xil kompyuterda bajariladigan uchta jarayon keltirilgan. Har bir jarayon o‘zining soatiga ega. Soatlar o‘zining tezligi bilan yuradi. Rasmdan shuni ko‘rish mumkin: 1 jarayonning soati 6 ni ko‘rsatganda, 2-nchi jarayonda soat 8 ni ko‘rsatayapti, 3-nchi jarayonda esa soat 10 ni. Hamma o‘sha soatlar o‘zlari uchun o‘zgarmas tezlik bilan yurishi belgilangan.
Vaqtning qiymati 6 ga teng bo‘lganida 1-chi jarayon 2-nchi jarayonga “A” axborotini uzatadi. Bu axborot 2-nchi jarayonga, uning soati bo‘yicha vaqtning qiymati 16 ga teng bo‘lganida keladi. Mantiqan, bunday xolat bo‘lishi mumkin, chunki 6 < 16.
Shuningdek, 2- nchi jarayondan uning soati bo‘yicha vaqtning qiymati 24 ga teng bo‘lganida uzatilgan “B” axboroti, 3- nchi jarayonga uning soati bo‘yicha vaqtning qiymati 40 ga teng bo‘lganida yetib keladi, ya’ni “B” axborotini uzatish uchun 16 vaqt birligi ketgan, bunday xolat ham haqiqatga to‘g‘ri, chunki 16<40.
“S” axboroti 3-nchi jarayondan 2-nchi jarayonga vaqtning qiymati 64 ga teng bo‘lganida uzatilgan, lekin tayinlangan joyiga (ya’ni, 2-nchi jarayonga), uning soati bo‘yicha vaqtning qiymati 54 ga teng bo‘lganida kelgan. Shubhasiz, buning imkoni yo‘q.
Masalaning yechimi bevosita «undan oldin paydo bo‘lgan» munosabatidan kelib chikadi. Ushbu shart bajarilishi uchun “S” axborotni uzatish vaqtining qiymati 60 ga teng bo‘lgani sababli, u tayinlangan joyiga vaqtning qiymati uning soati bo‘yicha 61 ga teng bo‘lganida yoki undan ham kechroq kelishi kerak.
Shunday qilib, har bir axborot o‘zining tarkibida uzatgan jarayon soatining axborot uzatgan vaqtini mujassamlashi kerak. Agar qabul qiluvchi kompyuterda soatlar uzatilgan vaqtdan kamroq vaqtni ko‘rsatsa, bunda bu soat axborot uzatish vaqtining ko‘proq vaqt ko‘rsatilgunicha oldinga surib to‘g‘rilanadi.
76
Do'stlaringiz bilan baham: |