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

في علوم الحاسوب ، يُعرف الاتصال بين العمليات ( IPC ) بأنه تبادل البيانات بين العمليات الجارية في نظام حاسوبي واحد، أو بين أنظمة حاسوبية متعددة. وقد يوفر نظام التشغيل آليات الاتصال بين العمليات . تُصنف التطبيقات التي تستخدم الاتصال بين العمليات عادةً إلى عملاء وخوادم ، حيث يطلب العميل البيانات ويستجيب الخادم لطلبات العميل. [ 1 ] العديد من التطبيقات تجمع بين وظيفتي العميل والخادم، كما هو شائع في الحوسبة الموزعة .
يُعدّ الاتصال بين العمليات (IPC) بالغ الأهمية في عملية تصميم النوى المصغّرة والنوى النانوية ، التي تُقلّل من عدد الوظائف التي تُوفّرها النواة. وتُستَخدَم هذه الوظائف من خلال التواصل مع الخوادم عبر الاتصال بين العمليات، مما يؤدي إلى زيادة كبيرة في حجم الاتصال مقارنةً بالنواة المتجانسة التقليدية. وتتضمن واجهات الاتصال بين العمليات عادةً هياكل إطار تحليلي متغيرة. وتضمن هذه العمليات التوافق بين بروتوكولات المتجهات المتعددة التي تعتمد عليها نماذج الاتصال بين العمليات. [ 2 ]
تكون آلية الاتصال بين العمليات إما متزامنة أو غير متزامنة. ويمكن استخدام أدوات التزامن الأساسية لتحقيق سلوك متزامن مع آلية اتصال بين العمليات غير متزامنة.
العيوب
قد يؤدي دمج البيانات من عمليتين إلى تكاليف أعلى بكثير مقارنةً بمعالجة البيانات نفسها على خيط معالجة واحد، وقد تصل هذه التكاليف إلى ضعفين أو أكثر بسبب النفقات الإضافية مثل التواصل بين العمليات والمزامنة. [ 3 ] [ 4 ] [ 5 ]
الأساليب
تم تصميم مناهج مختلفة للاتصال بين العمليات (IPC) لتناسب متطلبات البرمجيات المختلفة ، مثل الأداء ، والنمطية ، وظروف النظام مثل عرض النطاق الترددي للشبكة وزمن الاستجابة . [ 1 ]
| طريقة | وصف مختصر | مقدمة من ( أنظمة التشغيل أو البيئات الأخرى) |
|---|---|---|
| ملف | سجل مخزن على القرص، أو سجل يتم إنشاؤه عند الطلب بواسطة خادم ملفات، والذي يمكن الوصول إليه بواسطة عمليات متعددة. | معظم أنظمة التشغيل |
| ملف الاتصالات | شكل فريد من نوعه من أشكال الاتصال بين الأجهزة في أواخر الستينيات، وهو يشبه إلى حد كبير بروتوكول 9P الخاص بخطة 9 | نظام دارتموث للمشاركة الزمنية |
| إشارة ؛ وأيضًا مصيدة النظام غير المتزامن | رسالة نظام يتم إرسالها من عملية إلى أخرى، ولا تستخدم عادة لنقل البيانات ولكن بدلاً من ذلك تستخدم للتحكم عن بعد في العملية الشريكة. | معظم أنظمة التشغيل |
| المقبس | البيانات المرسلة عبر واجهة الشبكة، إما إلى عملية مختلفة على نفس الحاسوب أو إلى حاسوب آخر على الشبكة. تكون هذه البيانات موجهة نحو التدفق (مثل TCP ؛ حيث تتطلب كتابة البيانات عبر مقبس تنسيقًا للحفاظ على حدود الرسائل) أو، في حالات نادرة، موجهة نحو الرسائل (مثل UDP و SCTP ). | معظم أنظمة التشغيل |
| مقبس نطاق يونكس | يشبه هذا النوع من الاتصال مقابس الإنترنت، لكن جميع الاتصالات تتم داخل نواة النظام. تستخدم مقابس النطاق نظام الملفات كمساحة عناوين لها. تشير العمليات إلى مقبس النطاق كعقدة بيانات (inode) ، ويمكن لعدة عمليات التواصل مع مقبس واحد. | جميع أنظمة التشغيل POSIX ونظام التشغيل Windows 10 [ 6 ] |
| قائمة انتظار الرسائل | تدفق بيانات مشابه للمقبس، ولكنه يحافظ عادةً على حدود الرسائل. يتم تنفيذه عادةً بواسطة نظام التشغيل، ويسمح لعمليات متعددة بقراءة وكتابة الرسائل في قائمة الانتظار دون أن تكون متصلة ببعضها البعض مباشرةً. | معظم أنظمة التشغيل |
| أنبوب مجهول | قناة بيانات أحادية الاتجاه تستخدم المدخلات والمخرجات القياسية . يقوم نظام التشغيل بتخزين البيانات المكتوبة إلى طرف الكتابة مؤقتًا حتى تتم قراءتها من طرف القراءة. يمكن تحقيق اتصال ثنائي الاتجاه بين العمليات باستخدام قناتين في اتجاهين متعاكسين. | جميع أنظمة POSIX ، ويندوز |
| أنبوب مسمى | أنبوب يُعامل كملف. بدلاً من استخدام المدخلات والمخرجات القياسية كما هو الحال مع الأنبوب المجهول، تكتب العمليات إلى الأنبوب المسمى وتقرأ منه، كما لو كان ملفًا عاديًا. | جميع أنظمة POSIX، وويندوز، وأميغا أو إس 2.0+ |
| الذاكرة المشتركة | يتم منح عمليات متعددة إمكانية الوصول إلى نفس كتلة الذاكرة ، مما يؤدي إلى إنشاء مخزن مؤقت مشترك للعمليات للتواصل مع بعضها البعض. | جميع أنظمة POSIX، ويندوز |
| تمرير الرسائل | يسمح هذا النظام لبرامج متعددة بالتواصل باستخدام قوائم انتظار الرسائل و/أو قنوات غير مُدارة من قِبل نظام التشغيل. ويُستخدم عادةً في نماذج التزامن. | تُستخدم في نماذج LPC و RPC و RMI و MPI ، و Java RMI و CORBA و COM و DDS و MSMQ و MailSlots و QNX وغيرها. |
| ملف مُرتبط بالذاكرة | ملف مُخزّن في ذاكرة الوصول العشوائي (RAM) ويمكن تعديله بتغيير عناوين الذاكرة مباشرةً بدلاً من إخراجه إلى دفق بيانات. وهذا يُوفر نفس مزايا الملف العادي . | جميع أنظمة POSIX، ويندوز |
التطبيقات
واجهات استدعاء الإجراءات عن بُعد
- استدعاء الأساليب عن بعد في جافا (RMI)
- ONC RPC
- XML-RPC أو SOAP
- JSON-RPC
- ناقل الرسائل (Mbus) (المحدد في RFC 3259) (لا ينبغي الخلط بينه وبين M-Bus )
- الاتصال عن بعد في .NET
- gRPC
مجموعة اتصالات المنصة
فيما يلي أنظمة المراسلة والمعلومات التي تستخدم آليات الاتصال بين العمليات ولكنها لا تنفذ هذه الآليات بنفسها:
- بروتوكول اتصالات سطح المكتب الخاص بـ KDE (DCOP) – تم إيقافه بواسطة D-Bus
- دي-باص
- يستخدم OpenWrt بنية ناقل ubus المصغر
- واجهة برمجة تطبيقات الاتصالات متعددة النوى MCAPI
- مشروع SIMPL ( مشروع المراسلة المتزامنة بين العمليات لنظام لينكس )
- 9P (بروتوكول نظام الملفات بلان 9)
- بيئة الحوسبة الموزعة (DCE)
- التوفير
- محرك اتصالات الإنترنت (ICE) الخاص بـ ZeroC
- ØMQ
- YAMI4
- يستخدم برنامج Enlightenment E16 (البرنامج) eesh كوحدة معالجة بين العمليات (IPC).
حزمة اتصالات نظام التشغيل
فيما يلي واجهات برمجة التطبيقات الخاصة بالمنصة أو لغة البرمجة:
- فعاليات شركة أبل للكمبيوتر ، والمعروفة سابقًا باسم اتصالات التطبيقات البينية (IAC).
- موانئ ARexx
- نظام لينكس من إينيا (مفتوح المصدر) ومعالجات الإشارات الرقمية ومعالجات الأغراض العامة المختلفة تحت نظام OSE
- منافذ ماخ في نواة ماخ
- Microsoft 's ActiveX ، ونموذج كائن المكون (COM)، وخادم معاملات Microsoft ( COM+ )، ونموذج كائن المكون الموزع (DCOM)، وتبادل البيانات الديناميكي (DDE)، وربط الكائنات وتضمينها (OLE)، والأنابيب المجهولة ، والأنابيب المسماة ، واستدعاء الإجراء المحلي ، وفتحات البريد ، وحلقة الرسائل ، و MSRPC ، و.NET Remoting ، و Windows Communication Foundation (WCF).
- SPX من نوفيل
- POSIX mmap ، وقوائم انتظار الرسائل ، والإشارات ، [ 7 ] والذاكرة المشتركة
- رسائل نظام التشغيل RISC OS
- أبواب سولاريس
- قوائم انتظار الرسائل، والإشارات، والذاكرة المشتركة في النظام الخامس
- نظام لينكس للاتصال الشفاف بين العمليات (TIPC)
- OpenBinder Open binder
- خدمة النشر/الاشتراك المستمر (PPS) من QNX
نماذج الكائنات الموزعة
فيما يلي واجهات برمجة التطبيقات الخاصة بالمنصة أو لغة البرمجة التي تستخدم الاتصال بين العمليات، ولكنها لا تقوم بتنفيذه بنفسها:
- جلسات PHP
- روبي الموزعة
- بنية وسيط طلب الكائنات المشتركة (CORBA)
- يقوم نظام الاتصال بين العمليات غير المتزامن في Electron بمشاركة كائنات JSON بين عملية رئيسية وعملية عرض [ 8 ]
انظر أيضاً
مراجع
- ستيفنز، ريتشارد (1999). برمجة شبكات يونكس . اتصالات بين العمليات. المجلد 2 ( الطبعة الثانية). برنتيس هول. ISBN 0-13-081081-9.
- راماشاندران، يو.؛ سولومون، إم.؛ فيرنون، إم. (1987). "دعم الأجهزة للاتصال بين العمليات". وقائع الندوة الدولية السنوية الرابعة عشرة حول هندسة الحاسوب . بيتسبرغ، بنسلفانيا، الولايات المتحدة. ص 178-188 . ISBN 0-8186-0776-9.
{{cite book}}: CS1 maint: موقع الناشر مفقود ( رابط ) - كروفيلا، م.؛ بيانشيني، ر.؛ لوبلان، ت.؛ ماركاتوس، إ.؛ فيسنيفسكي، ر. (1-4 ديسمبر 1992). استخدام نسبة الاتصال إلى الحساب في تصميم البرامج المتوازية والتنبؤ بالأداء . الصفحات 238-245 . ISBN 0-8186-3200-3.
- 1 2 "الاتصالات بين العمليات" . مايكروسوفت.
- ↑ كاموراتي، ب (1993). "الاتصالات بين العمليات لتصميم مستوى النظام". ورشة العمل الدولية حول التصميم المشترك للأجهزة/البرمجيات .
- ↑ مفاهيم أنظمة التشغيل . ISBN 978-0470128725.
- ↑ تنظيم وتصميم الحاسوب، إصدار MIPS: واجهة الأجهزة/البرمجيات (سلسلة مورغان كوفمان في هندسة وتصميم الحاسوب) . مورغان كوفمان. ISBN 978-0124077263.
- ↑ البرمجة المتوازية: تقنيات وتطبيقات باستخدام محطات العمل الشبكية والحواسيب المتوازية . بيرسون. ISBN 978-0131405639.
- ↑ "التوافق بين Windows/WSL مع AF_UNIX" . مايكروسوفت. 7 فبراير 2018. تم الاطلاع عليه بتاريخ 25 مايو 2018 .
- ↑ " البرمجة المتزامنة - التواصل بين العمليات "
- ↑ "IpcMain | Electron" .
روابط خارجية
- التواصل بين العمليات
