التواصل المحلي بين العمليات

تُعدّ آلية الاتصال المحلي بين العمليات [ 1 ] ( LPC ، والتي يُشار إليها غالبًا باسم استدعاء الإجراء المحلي أو استدعاء الإجراء الخفيف ) آلية اتصال داخلية غير موثقة بين العمليات ، توفرها نواة نظام التشغيل مايكروسوفت ويندوز NT للاتصال الخفيف بين العمليات على نفس الحاسوب. ابتداءً من ويندوز فيستا ، أُعيدت كتابة LPC لتصبح آلية الاتصال المحلي غير المتزامن بين العمليات [ 1 ] ( ALPC ، والتي يُشار إليها غالبًا باسم استدعاء الإجراء المحلي المتقدم ) لتوفير آلية اتصال عالية السرعة وقابلة للتوسع، وهي ضرورية لتنفيذ إطار عمل برنامج تشغيل وضع المستخدم (UMDF) بكفاءة، حيث تتطلب أجزاء وضع المستخدم قناة اتصال فعالة مع مكونات UMDF في النظام التنفيذي . [ 2 ]

تُعد واجهة (A)LPC جزءًا من واجهة برمجة التطبيقات الأصلية غير الموثقة لنظام التشغيل Windows NT ، وبالتالي فهي غير متاحة للتطبيقات للاستخدام المباشر. ومع ذلك، يمكن استخدامها بشكل غير مباشر في الحالات التالية:

  • عند استخدام واجهة برمجة تطبيقات Microsoft RPC للتواصل محليًا، أي بين العمليات على نفس الجهاز
  • عن طريق استدعاء واجهات برمجة تطبيقات ويندوز التي تم تنفيذها باستخدام (A)LPC (انظر أدناه)

تطبيق

يُنفَّذ بروتوكول (A)LPC باستخدام كائنات "المنفذ" في نواة النظام، وهي كائنات قابلة للتأمين (باستخدام قوائم التحكم بالوصول ، مما يسمح، على سبيل المثال، لمعرفات أمان محددة فقط باستخدامها) وتتيح تحديد العملية على الجانب الآخر من الاتصال. كما أن الرسائل الفردية قابلة للتأمين أيضًا: إذ يمكن للتطبيقات تعيين معرفات أمان لكل رسالة، وكذلك اختبار تغييرات سياق الأمان في الرمز المميز المرتبط برسالة (A)LPC.

سيناريو الاتصال النموذجي بين الخادم والعميل هو كما يلي:

  1. تقوم عملية الخادم أولاً بإنشاء كائن منفذ اتصال خادم مسمى ، وتنتظر اتصال العملاء.
  2. يطلب العميل الاتصال بهذا المنفذ المحدد عن طريق إرسال رسالة اتصال.
  3. إذا قبل الخادم الاتصال، فسيتم إنشاء منفذين غير مسمّيين :
    • منفذ اتصال العميل - يستخدمه سلاسل عمليات العميل للتواصل مع خادم معين
    • منفذ اتصال الخادم - يستخدمه الخادم للتواصل مع عميل معين؛ يتم إنشاء منفذ واحد من هذا النوع لكل عميل
  4. يتلقى العميل مقبضًا لمنفذ اتصال العميل، ويتلقى الخادم مقبضًا لمنفذ اتصال الخادم، ويتم إنشاء قناة اتصال بين العمليات.

يدعم بروتوكول (A)LPC الأوضاع الثلاثة التالية لتبادل الرسائل بين الخادم والعميل: [ 3 ]

  • بالنسبة للرسائل القصيرة (أقل من 256 بايت) تقوم النواة بنسخ مخازن الرسائل بين العمليات، من مساحة عنوان العملية المرسلة إلى مساحة عنوان النظام، ومن هناك إلى مساحة عنوان العملية المستقبلة.
  • بالنسبة للرسائل التي يزيد حجمها عن 256 بايت، يجب استخدام قسم من الذاكرة المشتركة لنقل البيانات، حيث تقوم خدمة (A)LPC بربط هذا القسم بين عمليتي الإرسال والاستقبال. في البداية، يضع المرسل البيانات في الذاكرة المشتركة، ثم يرسل إشعارًا (مثل رسالة قصيرة، باستخدام الطريقة الأولى من (A)LPC) إلى عملية الاستقبال يشير إلى البيانات المرسلة في قسم الذاكرة المشتركة.
  • يمكن للخادم قراءة وكتابة البيانات مباشرة من مساحة عنوان العميل، عندما يكون حجم البيانات كبيرًا جدًا بحيث لا يمكن وضعه في قسم مشترك.

يتميز بروتوكول ALPC بأداء أفضل من واجهة LPC السابقة، إذ يمكن تهيئته لاستخدام منافذ إكمال الإدخال/الإخراج بدلاً من آلية الطلب/الاستجابة المتزامنة التي يستخدمها LPC حصريًا. [ 4 ] وهذا يُمكّن منافذ ALPC من الاتصال عالي السرعة، مما يُوازن تلقائيًا عدد الرسائل والخيوط. إضافةً إلى ذلك، يمكن تجميع رسائل ALPC معًا لتقليل عمليات التبديل بين وضع المستخدم ووضع النواة.

الاستخدام المعروف

يُستخدم بروتوكول (A)LPC بكثافة في التواصل بين الأنظمة الفرعية الداخلية في نظام التشغيل Windows NT. ويستخدم النظام الفرعي Win32 بروتوكول (A)LPC بكثافة للتواصل بين العميل وخادم النظام الفرعي ( CSRSS ). وقد تم تقديم بروتوكول Quick LPC في الإصدار 3.51 من Windows NT لتسريع هذه العمليات. إلا أن هذه الطريقة تم التخلي عنها إلى حد كبير في الإصدار 4.0 لصالح نقل أجزاء الخادم الحساسة للأداء إلى وضع النواة (win32k.sys).

تستخدم كل من خدمة نظام سلطة الأمان المحلية ( LSASS) ومدير الجلسات (SMSS) ومدير التحكم بالخدمات منافذ (A)LPC مباشرةً للتواصل مع عمليات العميل. ويستخدمها كل من Winlogon ومراقب مرجع الأمان للتواصل مع عملية LSASS.

كما ذُكر، يمكن لبروتوكول Microsoft RPC استخدام بروتوكول (A)LPC كوسيلة نقل عندما يكون كل من العميل والخادم على نفس الجهاز. تستخدم العديد من الخدمات المصممة للتواصل على الحاسوب المحلي فقط بروتوكول (A)LPC كوسيلة النقل الوحيدة عبر RPC. وفي كثير من الحالات، يستخدم تطبيق OLE و DCOM عن بُعد بروتوكول (A)LPC للتواصل المحلي أيضًا.

انظر أيضاً

ملحوظات

مراجع