Мавзу: Жараён ва оқимларни бошқаришни синхронлаш


Soprotsess (coprocess, coroutine)


Download 0.73 Mb.
bet6/8
Sana30.12.2022
Hajmi0.73 Mb.
#1072742
1   2   3   4   5   6   7   8
Bog'liq
OT-05 Control Process&Algoritms

Soprotsess (coprocess, coroutine)

Jarayonlar o’zaro bog’liqlik shabloni (paradigma): ishlab chiquvchi - iste’molchi

  • Jarayonlarning o'zaro ta'sirini amalga oshirish dasturlashning o'nlab yillar davomida rivojlangan klassik paradigmalaridan (shablonlaridan) biriga asoslanishi mumkin.
  • Jarayonlarning o’zaro ta’sir paradigmalaridan eng ko’p tarqalganlaridan biri – ishlab chiquvchi – iste’molchi shabloni.
  • Ishlab chiquvchi-jarayon (producer) iste’molchi-jarayonlar (consumer) foydalanadigan ba’zi ma’lumotlar buferini yaratadi.
  • Ushbu paradigmani amalga oshirishda ikkita jarayonni bog’lash uchun cheklanmagan va cheklangan buferdan foydalanishi mumkin.
  • Cheklanmagan bufer (unlimited buffer) sxemasida foydalaniladigan bufer o’lchamida nazariy jihatdan chegara yo’qligi taxmin qilinadi.
  • Cheklangan bufer (bounded buffer) sxemasida esa aniq cheklangan bufer o’lchamidan foydalaniladi, masalan, BUFFER_SIZE konstantasidan.

Buferni taqdim etish C dasturlash tilida quyidagicha ko’rinishda bo’lishi mumkin:

Ishlab chiqaruvchi algoritmi sxemasi:

Mos ravishda iste’molchi-jarayonni amalga oshirish:


Ushbu kodlardan ixtiyoriy tizimda ishlab chiquvchi – iste’molchi sxemasini amalga oshirish uchun shablon (pattern) sifatida qo’llash mumkin.

Jarayonlar aloqasi

  • Jarayonlarning bevosita aloqasi va ular harakatini sinxronlash uchun mumkin bo’lgan mexanizmlari. Bulardan eng ko’p tarqalgani – xabarlar tizimi; buning uchun jarayonlar o’zaro umumiy o’zgaruvchilarga murojaat qilmasdan aloqa qiladi.
  • Jarayonlar o’rtasida aloqa vositasini quyidagi ikkita amal ta’minlaydi:
    • send (message ) – message xabarini uzatish; xabar o’lchami o’zgarmas yoki o’zgaruvchan bo’lishi mumkin;
    • receive (message ) – message buferiga xabar qabul qilish.
  • Agar P va Q jarayonlar o’zaro aloqani talab qilsa, ularga quyidagilar zarur bo’ladi:
    • Bir biri bilan aloqa o’rnatish (communication link)
    • Xabarlarni send/receive ko’rinishda almashish.
  • Aloqani amalga oshirish fizik (umumiy xotira, shina qurilmasi) yoki mantiqiy (mantiqiy xususiyatli) bo’lishi mumkin.

Download 0.73 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8




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