Rasm 3.19 Murakkab mahalliy tartib qo'ng'iroqlar ichida Windows.
Qachon a ALPC kanali hisoblanadi yaratilgan, bitta ning uch xabar o'tkazish texnikasi tanlanadi:
Kichik xabarlar uchun (256 baytgacha) portning xabarlar navbati sifatida ishlatiladi oraliq saqlash, va the xabarlar bor nusxalangan dan bitta jarayon boshqasiga.
bo'lim ob'ekti orqali uzatilishi kerak , bu kanal bilan bog'langan umumiy xotira hududi.
Qachon the miqdori ning ma'lumotlar hisoblanadi ham katta uchun mos ichiga a Bo'lim ob'ekt, a API mavjud bu imkon beradi server jarayonlar uchun o'qing va yozish bevosita ichiga mijozning manzil maydoni.
Mijoz kanalni qachon o'rnatishi, unga katta xabar yuborish kerakmi yoki yo'qligini hal qilishi kerak. Agar mijoz katta hajmdagi jo'natishni xohlayotganini aniqlasa xabarlar, bu so'radi uchun a Bo'lim ob'ekt uchun bo'l yaratilgan. Xuddi shunday, agar the server qaror qiladi bu javob beradi bo'ladi bo'l katta, bu yaratadi a Bo'lim ob'ekt. Shunday qilib bu the bo'lim ob'ektidan foydalanish mumkin, ko'rsatgich va o'lcham ma'lumotlarini o'z ichiga olgan kichik xabar yuboriladi haqida the Bo'lim ob'ekt. Bu usuli hisoblanadi Ko'proq murakkab dan birinchi usuli sanab o'tilgan yuqorida, lekin bu oldini oladi ma'lumotlar nusxa ko'chirish. The tuzilishi ning Windows-da rivojlangan mahalliy protsedura chaqiruvlari 3.19-rasmda ko'rsatilgan.
Bu uchun muhim Eslatma ALPC inshooti _ Windows uning bir qismi emas ning Windows API va shuning uchun hisoblanadi emas ko'rinadigan uchun the ilova dasturchi. Aksincha, ilovalar foydalanish the Windows API chaqiruvi standart masofaviy tartib qo'ng'iroqlar. RPC xuddi shu tizimdagi jarayonda chaqirilganda , RPC ishlanadi bilvosita orqali a ALPC tartib qo'ng'iroq qiling. Bundan tashqari, ko'p yadro xizmatlari mijoz jarayonlari bilan bog'lanish uchun ALPC dan foydalanadi.
Quvurlar
A quvur ikki jarayonni bog'lash imkonini beruvchi o'tkazgich vazifasini bajaradi. Quvurlar UNIX-ning dastlabki tizimlarida birinchi IPC mexanizmlaridan biri edi . Ular odatda ta'minlaydi bitta ning the oddiyroq yo'llari uchun jarayonlar uchun muloqot qilish bilan bitta boshqa, garchi ular shuningdek bor biroz cheklovlar. In amalga oshirish a quvur, to'rtta masalalarni ko'rib chiqish kerak:
Quvur ikki tomonlama aloqaga ruxsat beradimi yoki aloqa bir tomonlamami?
Agar ikki tomonlama aloqaga ruxsat berilsa, u yarim dupleksmi (ma'lumotlar faqat sayohat qilishi mumkin). bitta yo'l da a vaqt) yoki to'la dupleks (ma'lumotlar mumkin sayohat ichida ikkalasi ham bir vaqtning o'zida yo'nalishlar)?
kerak a munosabat (masalan, ota-ona - bola ) muloqot jarayonlari o'rtasida mavjudmi?
mumkin the quvurlar muloqot qilish ustida a tarmoq, yoki kerak the aloqa jarayonlari bir xil mashinada joylashganmi?
In the ergashish bo'limlar, biz kashf qiling ikki umumiy turlari ning quvurlar ishlatilgan yoqilgan ikkalasi ham
UNIX va Windows tizimlari: oddiy quvurlar va nomli quvurlar.
Oddiy Quvurlar
Oddiy quvurlar ikkita jarayonni standart ishlab chiqaruvchi - iste'molchi uslubida bog'lash imkonini beradi: ishlab chiqaruvchi trubaning bir uchiga (yozuv uchi ) yozadi va the iste'molchi o'qiydi dan the boshqa oxiri ( o'qing oxiri ). Sifatida a natija, oddiy quvurlar bir tomonlama bo'lib, faqat bir tomonlama aloqani ta'minlaydi. Ikki tomonlama aloqa zarur bo'lsa, ikkita quvurdan foydalanish kerak, har bir quvur ma'lumotlarni boshqa yo'nalishda yuboradi. Keyinchalik oddiy quvurlarni qurishni tasvirlaymiz yoqilgan ikkalasi ham UNIX va Windows tizimlari. In ikkalasi ham dastur misollar, bitta jarayon quvurga salomlar xabarini yozadi , boshqa jarayon esa bu xabarni quvurdan o'qiydi.
Yoniq UNIX tizimlari, oddiy quvurlar bor qurilgan foydalanish the funktsiyasi
quvur (int fd[])
int orqali kirish mumkin bo'lgan quvur yaratadi fd[] fayl tavsiflovchilari: fd[0] hisoblanadi o'qish oxiri ning quvur, va fd [1] hisoblanadi yozish oxiri. UNIX davolaydi quvur kabi a maxsus turi ning fayl. Shunday qilib, quvurlar mumkin bo'l kirgan foydalanish oddiy read() va write() tizim chaqiruvlari.
An oddiy quvur mumkin emas bo'l kirgan dan tashqarida the jarayon bu yaratdi. Odatda, ota-ona jarayoni quvur yaratadi va undan fork() orqali yaratgan bola jarayoni bilan bog'lanish uchun foydalanadi . 3.3.1-bo'limni eslaylikki, bola jarayoni ochiq fayllarni ota-onasidan meros qilib oladi. Quvurning maxsus turi bo'lgani uchun fayl, the bola meros oladi the quvur dan uning ota-ona jarayon. Rasm 3.20 tasvirlaydi
Ota- bola
Dostları ilə paylaş: |