Bir nashr bu illyustratsiya qiladi emas manzil xavotirlar the vaziyat ichida ishlab chiqaruvchi jarayoni ham, iste'molchi jarayoni ham birgalikda foydalanishga harakat qiladi bufer bir vaqtning o'zida. Bobda 6 va bob 7, biz muhokama qilish Sinxronizatsiya qanday orasida hamkorlik qilish jarayonlar mumkin bo'l amalga oshirildi samarali umumiy xotira muhitida.
keyingi iste'mol qilinadi = bufer[out]; tashqariga = (tashqariga + 1) % BUFFER O'lchami;
Jarayon tomonidan yuborilgan xabarlar o'zgarmas yoki o'zgaruvchan bo'lishi mumkin. Agar faqat qattiq o'lchamli bo'lsa xabarlar mumkin bo'l
yuborilgan, the tizim darajasida amalga oshirish hisoblanadi to'g'ri. Bu cheklash, ammo, qiladi the vazifa ning dasturlash Ko'proq qiyin .
Aksincha, o'zgaruvchan o'lchamli xabarlar talab qiladi a Ko'proq murakkab tizim darajasida amalga oshirish, lekin the dasturlash vazifa aylanadi oddiyroq. Bu hisoblanadi a operatsion tizimni loyihalashda ko'rinadigan umumiy savdo turi.
Agar
jarayonlar P va
Q istayman uchun muloqot qilish, ular kerak yuborish xabarlar uchun va bir-biridan xabarlar olish: ular o'rtasida
aloqa aloqasi mavjud bo'lishi kerak . Bu havola mumkin bo'l amalga oshirildi ichida a xilma-xillik ning yo'llari. Biz bor tashvish bu yerda emas bilan the havolalar jismoniy amalga oshirish (shunday kabi birgalikda xotira,
apparat shinasi yoki tarmoq, ular 19-bobda ko'rib chiqilgan) balki mantiqiy amalga oshirilishi bilan. Mantiqiy ravishda havola va send() / qabul qilish() operatsiyalarini amalga oshirishning bir necha usullari mavjud :
To'g'ridan-to'g'ri yoki bilvosita aloqa
Sinxron yoki asinxron aloqa
Avtomatik yoki aniq buferlash
Biz qarang da masalalar bog'liq uchun har biri ning bular Xususiyatlari Keyingisi.
Nomlash
Muloqot qilmoqchi bo'lgan jarayonlar bir-biriga murojaat qilish usuliga ega bo'lishi kerak. Ular to'g'ridan-to'g'ri yoki bilvosita aloqadan foydalanishlari mumkin.