|
-rasm Monolit OT ni oddiy strukturalashtirish
Jarayon sinxronizatsiyasi
|
bet | 4/4 | Sana | 23.05.2024 | Hajmi | 92,96 Kb. | | #251692 |
Bog'liq Jarayonlar o‘zaro bog‘lanishi algoritmlari sinxronlashtirish K2-rasm Monolit OT ni oddiy strukturalashtirish
Jarayon sinxronizatsiyasi - bu jarayonlarning bajarilishini bir-biridan ikkala jarayon bir xil umumiy ma'lumotlar va manbalarga kirish huquqiga ega bo'lmaydigan tarzda muvofiqlashtirish vazifasidir. Bu bir nechta jarayonlar birgalikda ishlayotganda ko'p jarayonli tizimda juda zarur va bir nechta jarayonlar bir vaqtning o'zida bir xil umumiy manbaga yoki ma'lumotlarga kirishga harakat qilishadi. Bu umumiy ma'lumotlarning nomuvofiqligiga olib kelishi mumkin. Shunday qilib, bitta jarayon tomonidan amalga oshirilgan o'zgarish boshqa jarayonlar bir xil umumiy ma'lumotlarga kirganda aks etishi shart emas. Ma'lumotlarning ushbu xilma-xilligini oldini olish uchun jarayonlarni bir-biri bilan sinxronlashtirish kerak.
Jarayon sinxronizatsiyasi qanday ishlaydi?
Masalan, A jarayoni xotira joyidagi ma'lumotlarni o'zgartirganda, boshqa B jarayoni bir xil xotira joyidan ma'lumotlarni o'qishga harakat qilmoqda. Ikkinchi jarayon tomonidan o'qilgan ma'lumotlarning xato bo'lish ehtimoli katta.
Sinxronizatsiya apparati
Ba'zida muhim bo'lim muammolari qo'shimcha qurilmalar tomonidan hal qilinadi. Ba'zi operatsion tizimlar qulflash funktsiyasini taklif qiladi, bu erda Jarayon muhim bo'limga kirishda qulfni oladi va undan chiqib ketgandan keyin qulfni chiqaradi. Shunday qilib, boshqa jarayon muhim bo'limga kirishga urinayotganda, u qulflanganligi sababli kira olmaydi. Buni faqat qulfni sotib olish orqali bepul bo'lsa amalga oshirishi mumkin. Mutex qulflari Sinxronizatsiya apparati hamma uchun amalga oshiriladigan oddiy usul emas, shuning uchun Mutex Locks deb nomlangan qat'iy dasturiy ta'minot usuli ham joriy qilingan. Ushbu yondashuvda kodning kirish qismida muhim bo'lim ichida ishlatiladigan muhim manbalar bo'yicha LOCK olinadi. Chiqish qismida qulf qo'yiladi.
Semafor Qarori
Semafor - bu shunchaki salbiy bo'lmagan va ish zarrachalari o'rtasida taqsimlanadigan o'zgaruvchidir. Bu muhim bo'lim muammosining yana bir algoritmi yoki echimi. Bu semaforda kutib turgan signal beruvchi mexanizm va ip, uni boshqa ip bilan signal berish mumkin. Bu jarayonni sinxronlashtirish uchun ikkita atom operatsiyasidan foydalanadi: 1) kutish va 2) signal.
Misol
KUTISH (S):
esa (S <= 0);
S = S - 1;
SIGNAL (S):
S = S + 1;
Jarayonni sinxronizatsiya qilish - bu jarayonlarning bajarilishini bir-biridan ikkala jarayon bir xil umumiy ma'lumotlar va manbalarga kirish huquqiga ega bo'lmaydigan tarzda muvofiqlashtirish vazifasidir.
Muhim qismning to'rtta elementi 1) Kirish qismi 2) Muhim bo'lim 3) Chiqish qismi 4) Eslatish bo'limi
Muhim bo'lim - bu ma'lum bir vaqtda signal jarayoni orqali kirish mumkin bo'lgan kod segmenti.
Muhim bo'lim tomonidan bajarilishi kerak bo'lgan uchta qoidalar quyidagilardir: 1) O'zaro chiqarib tashlash 2) Jarayon echimi 3) Cheklovni kutish
O'zaro istisno - bu umumiy resursga kirishni boshqarish uchun ishlatiladigan ikkilik semaforning maxsus turi.
Jarayon echimi hech kim muhim bo'limda bo'lmaganida va kimdir xohlaganida ishlatiladi.
Bog'langan kutish echimi, jarayon o'zining muhim qismiga kirish uchun so'rov yuborganidan so'ng, ularning tanqidiy qismiga qancha boshqa jarayonlarning kirish chegarasi mavjud.
Petersonning echimi bo'limning muhim muammolarini hal qilishda keng qo'llaniladi.
Muhim bo'lim muammolari, shuningdek, apparatni sinxronizatsiya qilish yo'li bilan hal qilinadi
Sinxronizatsiya apparati hamma uchun amalga oshiriladigan oddiy usul emas, shuning uchun Mutex Locks deb nomlanuvchi qat'iy dasturiy ta'minot usuli ham joriy qilingan.
Semafor - bu muhim bo'lim muammosining yana bir algoritmi yoki echimi.
Jarayonni sinxronlashtirishda Dekker algoritmi
Old shart - Jarayonlarni sinxronlashtirish, Inter Interaction Communication
Bunday o'zaro istisno, cheklangan kutish va taraqqiyotni olish uchun bir nechta algoritmlar amalga oshirildi, ulardan biri Dekker algoritmi. Algoritmni tushunish uchun avval muhim bo'lim muammosining echimini tushunaylik.
Jarayon odatda quyidagicha ifodalanadi:
do {
//entry section
critical section
//exit section
remainder section
} while (TRUE);
Muhim bo'lim muammosini hal qilish quyidagi uchta shartni ta'minlashi kerak:
O'zaro istisno
Taraqqiyot
Cheklangan kutish
Barcha omillarni ta'minlash uchun echimlardan biri bu Petersonning echimi.
Yana biri Dekkerning Qarori. Dekkerning algoritmi muhim bo'lim muammosining birinchi ishonchli va to'g'ri echimi edi. Bu ikkita oqimga aloqa uchun faqat umumiy xotiradan foydalanib, mojarolarsiz bitta foydalaniladigan resursni bo'lishishga imkon beradi. Bu sodda burilish algoritmining qat'iy almashinuvidan qochadi va ixtiro qilingan birinchi o'zaro chiqarib tashlash algoritmlaridan biri edi. Dekker-ning echimining ko'plab versiyalari mavjud bo'lsa-da, oxirgi yoki 5-versiyasi yuqoridagi shartlarning barchasini qondiradigan va ularning barchasida eng samarali hisoblanadi. Izoh - Dekkerning Qarori, bu erda aytib o'tilganidek, faqat ikkita jarayon o'rtasida o'zaro istisno qilishni ta'minlaydi, massivlar va o'zgaruvchilarni to'g'ri ishlatish bilan ikkitadan ortiq jarayonga kengaytirilishi mumkin. Algoritm - Bu mantiqiy qiymatlar qatorini va butun son o'zgaruvchisini talab qiladi:
var flag: array [0..1] of boolean;
turn: 0..1;
repeat
flag[i] := true;
while flag[j] do
if turn = j then
begin
flag[i] := false;
while turn = j do no-op;
flag[i] := true;
end;
critical section
turn := j;
flag[i] := false;
remainder section
until false
Xulosa
Xulosa qilib aytadigan bo’lsam men ushbu menga berilgan mustaqil mavzusini tayyorlash davomida juda ko’p ma’lumotlarga ega bo’ldim. Shuningdek meni bu fanga bo’lgan qiziqishim yanada oshdi. Mavzu bo’yicha bugungi kunda operatsion tizimlar algoritmlashgan jarayonlarga talab katta. Xamma rejalashtirish parametrlarini ikkita katta guruxlarga bo`lishi mumkin Jarayonni sinxronizatsiya qilish - bu jarayonlarning bajarilishini bir-biridan ikkala jarayon bir xil umumiy ma'lumotlar va manbalarga kirish huquqiga ega bo'lmaydigan tarzda muvofiqlashtirish vazifasidir. Muhim qismning to'rtta elementi 1) Kirish qismi 2) Muhim bo'lim 3) Chiqish qismi 4) Eslatish bo'limi Muhim bo'lim - bu ma'lum bir vaqtda signal jarayoni orqali kirish mumkin bo'lgan kod segmenti.
FOYDALANILGAN ADABIYOTLAR RO`YHATI:
Nazirov Sh. C++ da dasturlash asoslari.
Mardanova N.S. C++ tilida dasturlash
J.Liberti. Osvoy samostoyatelno C++ za 21 den.-SPb.2003.-815 s.
Informatika. Bazaviykurs. 2-izdanie. Uchebnikdlya VUZOV/Pod red. S.V.Simonovicha.-SPb.: Piter, 2009.-640 s.
Рахмокулова С.И. IBMPCшахсийкомпьютердаишлаш. 1999.
Бобровский С. , Delphi 7. Учебный курс. 2003, - 736 с.
О.А.Акулов, Н.В.Медведев Информатика базовый курс. Учебник.Москва 2007г. 555 стр.
|
| |