68
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.
69
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.