mach xabari (&message.header, // xabar MACH sarlavhasi YUBORISH MSG, // yuborish a xabar hajmi(xabar), // hajmi ning xabar yuborilgan
0, // qabul qilingan xabarning maksimal hajmi - keraksiz MACH PORT NULL , // nomi qabul qilish porti - keraksiz MACH MSG TAYM-AUT; TURIB QOLISH; TANAFFUS YO'Q, // yo'q vaqt chiqishlar
MACH PORT NULL // yo'q xabar bering port
);
/* Server Kod */
tuzilishi xabar xabar;
// qabul qilish the xabar
mach msg (&message.header, // xabar sarlavha MACH RCV MSG, // yuborish a xabar
0, // hajmi ning xabar yuborilgan
sizeof (xabar), // maksimal hajmi ning qabul qildi xabar server, // nomi ning qabul qilish port
MACH MSG TAYM-AUT; TURIB QOLISH; TANAFFUS YO'Q, // yo'q vaqt MACHni chiqaradi PORT NULL // yo'q xabar bering port
);
Rasm 3.18 Misol dastur tasvirlash xabar o'tish ichida Mach.
The yuborish va qabul qilish operatsiyalar o'zlari bor moslashuvchan. Uchun misol, qachon a xabar hisoblanadi yuborilgan uchun a port, uning navbat mumkin bo'l to'la. Agar the navbat hisoblanadi emas to'liq, xabar hisoblanadi nusxalangan uchun the navbat, va the yuborish vazifa davom etadi. Agar the
portning navbati to'lgan, jo'natuvchida bir nechta variant mavjud (mach.ga parametrlar orqali ko'rsatilgan msg() :
Kutmoq cheksiz muddatga qadar U yerda hisoblanadi xona ichida the navbat.
Kutmoq da eng n millisekundlar.
Do emas Kutmoq da hammasi lekin aksincha qaytish darhol.
Vaqtinchalik xabarni keshlash. Bu yerga, xabar hisoblanadi berilgan uchun the ushbu xabar yuborilayotgan navbat to'lgan bo'lsa ham, saqlash uchun operatsion tizim. Xabarni navbatga qo'yish mumkin bo'lganda, bildirishnoma xabari hisoblanadi yuborilgan orqaga uchun the jo'natuvchi. Faqat bitta xabar uchun a to'la navbat ma'lum bir jo'natuvchi ip uchun istalgan vaqtda kutilishi mumkin.
Yakuniy variant server vazifalari uchun mo'ljallangan. So'rovni tugatgandan so'ng, server topshirig'i so'ralgan vazifaga bir martalik javob yuborishi kerak bo'lishi mumkin xizmat, lekin bu kerak shuningdek davom eting bilan boshqa xizmat so'rovlar, hatto agar the javob bering port mijoz uchun to'la.
The mayor muammo bilan xabar tizimlari ega umuman bo'lgan kambag'al spektakl sabab bo'lgan tomonidan nusxa ko'chirish ning xabarlar dan the jo'natuvchi port uchun the qabul qiluvchi porti. Mach xabarlar tizimi virtual xotira boshqaruvi yordamida nusxa ko'chirish operatsiyalaridan qochishga harakat qiladi texnikalar (Bob 10). Asosan, Mach xaritalarini tuzadi manzil bo'sh joy o'z ichiga olgan the jo'natuvchi xabar ichiga the qabul qiluvchining manzil maydoni. Shuning uchun, the xabar o'zi hisoblanadi hech qachon aslida nusxa ko'chirildi, kabi ikkalasi ham the jo'natuvchi va qabul qiluvchi bir xil xotiraga kirishadi. Ushbu xabarni boshqarish texnikasi ta'minlaydi a katta ishlash oshirish lekin ishlaydi faqat uchun tizim ichidagi xabarlar.
Windows
The Windows faoliyat ko'rsatmoqda tizimi hisoblanadi a misol ning zamonaviy dizayn bu funksionallikni oshirish va yangi funksiyalarni amalga oshirish uchun zarur bo'lgan vaqtni qisqartirish uchun modullikdan foydalanadi. Windows bir nechta operatsion muhitlarni qo'llab-quvvatlaydi, yoki quyi tizimlar. Ilova dasturlari muloqot qilish bilan bular pastki tizimlar orqali a xabar o'tkazish mexanizmi. Shunday qilib, ariza dasturlari quyi tizim serverining mijozlari hisoblanishi mumkin .
The xabar o'tkazish qulaylik ichida Windows hisoblanadi chaqirdi the rivojlangan mahalliy protsedura _ qo'ng'iroq qiling ( ALPC ) qulaylik. Bu hisoblanadi ishlatilgan uchun aloqa orasida ikki jarayonlar yoqilgan the bir xil mashina. Bu hisoblanadi o'xshash uchun the standart masofaviy tartib qo'ng'iroq qiling ( RPC ) mexanizmi bu hisoblanadi keng ishlatilgan, lekin bu hisoblanadi optimallashtirilgan uchun va xos uchun Windows. (Masofadan tartib qo'ng'iroqlar bor qoplangan ichida tafsilot ichida Bo'lim 3.8.2.) Kabi Mach, Windows ikkita jarayon o'rtasida aloqa o'rnatish va qo'llab-quvvatlash uchun port ob'ektidan foydalanadi. Windows foydalanadi ikki turlari ning portlar: ulanish portlar va aloqa portlari .
Server jarayonlar nashr qilish ulanish porti ob'ektlar bu bor ko'rinadigan uchun hammasi jarayonlar. Qachon a mijoz istaydi xizmatlar dan a quyi tizim, bu ochiladi a tutqich uchun serverning ulanish-port ob'ekti va ushbu portga ulanish so'rovini yuboradi. The server keyin yaratadi a kanal va qaytadi a tutqich uchun the mijoz. The Kanal bir juft shaxsiy aloqa portlaridan iborat: biri mijoz uchun - server xabarlari, the boshqa uchun server - mijoz xabarlar. Bundan tashqari, aloqa kanallari mijoz va serverga odatda javob kutayotganda so'rovlarni qabul qilish imkonini beruvchi qayta qo'ng'iroq mexanizmini qo'llab-quvvatlaydi.
Server
Dostları ilə paylaş: |