Samarqand filliali


Download 24.86 Kb.
Sana21.01.2023
Hajmi24.86 Kb.
#1105552
Bog'liq
Operatsion tizimlar

O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI

SAMARQAND FILLIALI





MUSTAQIL ISH

“OPERATSION TIZIMLAR” fanidan

Guruh: KI-204-20-guruh
Tayyorladi :Bekmurodov K

Samarqand 2022




Mavzu: Jarayonlar o‘zaro bog‘lanishi algoritmlari (sinxronlashtirish)
Reja:

  1. Sinxronlashtirish mexanizmlari.

  2. Jarayonlarni boshqarishda semaforlar tushunchasi

Semafor 1965 yilda Dijkstra tomonidan taklif qilingan bo'lib, bu semafor sifatida tanilgan oddiy butun son qiymatidan foydalangan holda bir vaqtda jarayonlarni boshqarishning juda muhim usuli hisoblanadi. Semafor shunchaki iplar o'rtasida taqsimlanadigan butun son o'zgaruvchisidir. Ushbu o'zgaruvchi muhim bo'lim muammosini hal qilish va ko'p ishlov berish muhitida jarayonni sinxronlashtirishga erishish uchun ishlatiladi.Semaforlar ikki xil:
Ikkilik semafor -
Bu mutex blokirovkasi sifatida ham tanilgan. U faqat ikkita qiymatga ega bo'lishi mumkin - 0 va 1. Uning qiymati 1 ga ishga tushiriladi. U bir nechta jarayonlar bilan muhim bo'lim muammolarini hal qilishni amalga oshirish uchun ishlatiladi.
Semaforni hisoblash –
Uning qiymati cheklanmagan domenda o'zgarishi mumkin. U bir nechta misolga ega bo'lgan manbaga kirishni boshqarish uchun ishlatiladi.
Keling, buni qanday qilishini ko'rib chiqaylik.
Birinchidan, semafor o'zgaruvchisiga kirish va qiymatini o'zgartirish uchun ishlatilishi mumkin bo'lgan ikkita operatsiyani ko'rib chiqing.

P va V operatsiyalari bilan bog'liq ba'zi fikrlar:
1. P operatsiyasi kutish, uyqu yoki pastga operatsiya deb ham ataladi va V operatsiyasi signal, uyg'onish yoki uyg'onish deb ham ataladi.
2. Ikkala operatsiya ham atomik va semafor(lar) har doim bittaga ishga tushiriladi. Bu erda atomik degani, o'qilishi, o'zgartirilishi va yangilanishi bir vaqtning o'zida/lahzada hech qanday imtiyozsiz sodir bo'ladigan o'zgaruvchini anglatadi, ya'ni o'qish, o'zgartirish va yangilash o'rtasida o'zgaruvchini o'zgartirishi mumkin bo'lgan boshqa operatsiya bajarilmaydi.
3. Jarayon sinxronizatsiyasini amalga oshirish uchun muhim bo'lim ikkala operatsiya bilan o'ralgan. Quyidagi rasmga qarang. P jarayonining muhim qismi P va V operatsiyalari o'rtasida joylashgan.

Keling, o'zaro istisno qilishni qanday amalga oshirishini ko'rib chiqaylik. Ikkita P1 va P2 jarayonlari bo'lsin va s semafori 1 sifatida ishga tushiriladi. Endi P1 o'zining kritik qismiga kirsa, s semaning qiymati 0 ga aylanadi. Endi P2 o'zining kritik qismiga kirmoqchi bo'lsa, u s ga qadar kutadi. > 0 bo'lsa, bu faqat P1 o'zining muhim qismini tugatib, semaforda V operatsiyasini chaqirganda sodir bo'lishi mumkin.

Shu tarzda o'zaro istisnoga erishiladi. Ikkilik semafor haqida tafsilotlar uchun quyidagi rasmga qarang.
struct semaphore {
enum value(0, 1);
// q contains all Process Control Blocks (PCBs)
// corresponding to processes got blocked
// while performing down operation.
Queue
q;
} P(semaphore s)
{
if (s.value == 1) {
s.value = 0;
}
else {
// add the process to the waiting queue
q.push(P)
sleep();
}
}
V(Semaphore s)
{
if (s.q is empty) {
s.value = 1;
}
else {
// select a process from waiting queue
Process p=q.pop();
wakeup(p);
}
}
Poyga holati
Agar bir nechta jarayonlar bir xil kodni bajarayotgan bo'lsa yoki bir xil xotiraga yoki umumiy o'zgaruvchiga ushbu holatda kirishsa, umumiy o'zgaruvchining chiqishi yoki qiymati noto'g'ri bo'lishi mumkin, shuning uchun barcha jarayonlar buni aytish uchun kurashmoqda. mening chiqishim to'g'ri, bu shart poyga sharti deb nomlanadi. Bir nechta jarayonlar bir vaqtning o'zida bir xil ma'lumotlarga kirish va manipulyatsiyalarni qayta ishlash, keyin natija kirishning aniq tartibiga bog'liq.
Poyga holati - bu tanqidiy qism ichida yuzaga kelishi mumkin bo'lgan vaziyat. Bu tanqidiy bo'limda bir nechta ish zarrachalarini bajarish natijasi iplarning bajarilish tartibiga qarab farq qilganda sodir bo'ladi.

Agar tanqidiy qism atom ko'rsatmasi sifatida ko'rib chiqilsa, tanqidiy qismlardagi poyga sharoitlaridan qochish mumkin. Bundan tashqari, qulflar yoki atom o'zgaruvchilari yordamida to'g'ri ip sinxronizatsiyasi poyga sharoitlarini oldini oladi.


Kritik bo'lim muammosi
Kritik bo'lim - bu bir vaqtning o'zida faqat bitta jarayon orqali kirish mumkin bo'lgan kod segmenti. Kritik bo'limda ma'lumotlar o'zgaruvchilari izchilligini ta'minlash uchun sinxronlashtirilishi kerak bo'lgan umumiy o'zgaruvchilar mavjud.
muhim bo'lim muammosi
Kirish bo'limida jarayon muhim bo'limga kirishni so'raydi.
Muhim bo'lim muammosining har qanday yechimi uchta talabga javob berishi kerak:
O'zaro istisno: Agar jarayon o'zining muhim qismida bajarilayotgan bo'lsa, u holda muhim bo'limda boshqa hech qanday jarayonni bajarishga ruxsat berilmaydi.
Rivojlanish : Agar muhim bo'limda hech qanday jarayon bajarilmasa va boshqa jarayonlar kritik bo'limdan tashqarida kutilsa, u holda faqat qolgan qismida bajarilmaydigan jarayonlar keyingi muhim bo'limga qaysi biri kirishini hal qilishda ishtirok etishi mumkin va tanlov cheksiz muddatga qoldirilmaydi.
Chegaralangan kutish: jarayon oʻzining muhim boʻlimiga kirish soʻrovini berganidan keyin va bu soʻrov bajarilgunga qadar boshqa jarayonlarga oʻzlarining muhim boʻlimlariga kirishiga ruxsat berilgan soni boʻyicha chegara mavjud boʻlishi kerak.
Peterson yechimi
Peterson's Solution - bu muhim bo'lim muammosiga dasturiy ta'minotga asoslangan klassik yechim.
Petersonning yechimida bizda ikkita umumiy o'zgaruvchi mavjud mantiqiy bayroq[i] : FALSE deb ishga tushirildi, dastlab hech kim muhim bo'limga kirishga qiziqmaydi
int turn :
Kritik bo'limga kirish navbati bo'lgan jarayon.

Peterson yechimi uchta shartni ham saqlaydi:
O'zaro istisno kafolatlangan, chunki faqat bitta jarayon istalgan vaqtda muhim bo'limga kirishi mumkin.
Taraqqiyot ham ta'minlanadi, chunki tanqidiy bo'limdan tashqaridagi jarayon boshqa jarayonlarning muhim bo'limga kirishiga to'sqinlik qilmaydi.
Chegaralangan kutish saqlanib qoladi, chunki har bir jarayon adolatli imkoniyatga ega bo'ladi.
Peterson yechimining kamchiliklari
Bu band kutishni o'z ichiga oladi
U 2 ta jarayon bilan cheklangan.
TestAndSet
TestAndSet - sinxronizatsiya muammosining apparat yechimi. TestAndSet-da bizda ikkita qiymatdan birini, 0 yoki 1 ni olishi mumkin bo'lgan umumiy blokirovka o'zgaruvchisi mavjud.
Semaforlar

Ikkilik semaforlar: Ular faqat 0 yoki 1 bo'lishi mumkin. Ular mutex qulflari sifatida ham tanilgan, chunki qulflar o'zaro istisno bo'lishi mumkin. Barcha jarayonlar 1 ga ishga tushirilgan bir xil mutex semaforini baham ko'rishi mumkin. Keyin jarayon qulf 0 ga aylanguncha kutishi kerak. Keyin jarayon mutex semaforini 1 ga aylantirishi va uning muhim qismini boshlashi mumkin. U o'zining muhim qismini tugatgandan so'ng, u mutex semaforining qiymatini 0 ga o'rnatishi mumkin va boshqa jarayon uning muhim qismiga kirishi mumkin.


Semaforlarni hisoblash: Ular har qanday qiymatga ega bo'lishi mumkin va ma'lum bir domenda cheklanmagan. Ular bir vaqtning o'zida kirishlar soni bo'yicha cheklovga ega bo'lgan resursga kirishni boshqarish uchun ishlatilishi mumkin. Semaforni resurs nusxalari soniga moslashtirish mumkin. Jarayon har doim ushbu resursdan foydalanmoqchi bo'lsa, u qolgan misollar soni noldan ortiq yoki yo'qligini tekshiradi, ya'ni jarayonda mavjud misol bor. Keyin jarayon o'zining kritik qismiga kirishi mumkin va shu bilan hisoblash semaforining qiymatini 1 ga kamaytiradi. Resurs misolidan foydalanish bilan jarayon tugagach, u muhim bo'limni tark etishi mumkin va shu bilan mavjud misollar soniga 1 ni qo'shishi mumkin. resursdan.
rost
Download 24.86 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling