العمارة الموزعة. مركز إدارة خدمات DIRECTUM


استنادًا إلى بيئة الحوسبة متعددة خطوط الأنابيب القابلة لإعادة التكوين L-Net

تتمثل إحدى المهام العاجلة في مجال أنظمة التحكم في تطوير برنامج لأنظمة التحكم الموزعة المتسامحة مع الأخطاء. الحلول الموجودة في هذا المجال اليوم مملوكة ، ونتيجة لذلك ، باهظة الثمن وليست فعالة دائمًا.

لا توفر هذه الحلول الاستخدام الفعال لموارد القواعد الزائدة عن الحاجة والتقنية والبرمجيات ، مما يؤثر سلبًا على كل من التسامح مع الأخطاء وقابلية التوسع في مثل هذه الحلول. في حالة انتهاك بنية الشبكة ، لا توجد إمكانية لإعادة التكوين الديناميكي لكل من عمليات معالجة المعلومات ونقل تدفقات البيانات (كل من التحكم والمعلومات). استخدام متحكمات محددة ، واستخدام DCS / SCADA يعقد تطوير ودعم الأنظمة ، وتوسيع وظائفها.

هندسة نظام التحكم الموزع

تشتمل العمارة النموذجية المعممة لنظام التحكم الموزع (DCS) على ثلاثة مستويات مترابطة تراتبيًا: مستوى المشغل ومستوى التحكم ومستوى الإدخال / الإخراج (انظر الشكل 1).

تتمثل المهمة الرئيسية لمستوى المشغل في توفير واجهة بين الإنسان والآلة (HMI) لضمان التكوين والتحكم في عمل النظام بأكمله. مستوى التحكم مسؤول عن تلقي ومعالجة البيانات من أجهزة الاستشعار ، ونقل البيانات إلى مستوى المشغل وتوليد إجراءات التحكم على المشغلات. يمثل مستوى الإدخال / الإخراج أجهزة الاستشعار والمشغلات المتصلة مباشرة بجسم التحكم.

تتمثل مهمة البرنامج ، في إطار الهيكل المعمم لـ DCS ، في ضمان عمل مستوى المشغل واتصاله بمستوى التحكم في النظام. وبالتالي ، فإن المستوى الأساسي في تصميم البرمجيات وحل مشكلات تفاعلها مع الأجهزة هو مستوى المشغل. يجب أن يحقق البرنامج أقصى استفادة من موارد الأجهزة المتاحة للنظام بينما يكون مستقلاً عن البنية الداخلية للجهاز قدر الإمكان.

توفر الأجهزة موارد الحوسبة والذاكرة ووسائط الاتصال بين العقد في النظام. عند تصميم البنية العامة للنظام ، لا يتم اعتبار العقد المحددة لمستوى الإدخال / الإخراج التي سيتم توصيلها بها في تنفيذ معين ، وبالتالي ، يتم النظر في مستوى المشغل ومستوى التحكم في العمارة العامة. يجب أن تكون الأجهزة منتشرة ومتوافقة مع المعايير الحديثة وأن تتمتع بجميع الخصائص والإمكانيات اللازمة لتنفيذ الهندسة المعمارية.

متطلبات DCS

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

نظرة عامة على معماريات DCS

لمراجعة معمارية DCS ، تم اختيار Siemens SIMATIC PCS 7 DCS كواحد من أكثر الطلبات طلبًا في السوق و RTS S3 باعتباره DCS الذي تم تنفيذه على أساس QNX RTOS.

سيمنز SIMATIC PCS 7

تحتوي بنية النظام على جميع خصائص بنية DCS العامة. محطات المشغل هي أجهزة كمبيوتر تعتمد على بنية معالج x86 مع نظام التشغيل Windows وحزمة Siemens WinCC ، والتي توفر HMI. هناك خوادم مع قواعد البيانات. ترتبط محطات المشغل والمحطات الهندسية والخوادم بشبكة محلية قائمة على الإيثرنت. يرتبط مستوى المشغل بمستوى التحكم لشبكة Ethernet الصناعية الزائدة عن الحاجة. على مستوى التحكم ، توجد وحدات تحكم منطقية قابلة للبرمجة (PLCs) مع إمكانية التكرار بسبب ازدواجية الوظائف. من الممكن الاتصال بأنظمة وشبكات خارجية وتنظيم الوصول عن بعد إلى النظام.

RTS S3

تتكون هذه البنية بالمثل من طبقات الهيكل المعمم لـ DCS. تعتمد محطات المشغل على نفس النظام الأساسي للأجهزة كما في SIMATIC DCS ، ولكن يمكن تشغيلها تحت نظامي التشغيل Windows و Linux. يتم دمج المحطات الهندسية مع محطات المشغل. يوفر النظام بيئة تطوير تطبيقات موحدة. يربط Ethernet العقد داخل طبقة الناقل ومستوى المشغل نفسه بمستوى التحكم باستخدام مكدس بروتوكول TCP / IP. على مستوى التحكم ، هناك أجهزة كمبيوتر صناعية تعمل بنظام QNX OS مع قاعدة البيانات الخاصة بها وإمكانية التكرار عن طريق تكرار وظائف العقدة.

عيوب الأنظمة الموصوفة

تستخدم الأنظمة الموضحة أعلاه نظامًا أساسيًا مختلفًا للأجهزة / البرامج لمستوى المشغل ومستوى التحكم. ضمن مستوى المشغل ، يمكن استخدام بنية معالج واحدة فقط ، ويلزم وجود محطة هندسية خاصة لتكوين مستوى التحكم وتطويره. توفر وحدات تحكم المجال DC هذه تكرارًا للأجهزة مع تكرار وظائف العقدة الزائدة كطريقة لزيادة التسامح مع الخطأ ، وهو استخدام غير منطقي للأجهزة الزائدة عن الحاجة.

الخصائص والميزات الوظيفية لنظام L-Net

عند تطوير نظام L-Net ، كانت المهمة هي إنشاء نظام تحكم يتمتع بالخصائص التالية:

  • إعادة التكوين الديناميكي مع الاسترداد الكامل مع الحد الأدنى من الخسائر في حالة فشل المضيف أو اضطراب طوبولوجيا الشبكة.
  • توزيع فعال للمهام بين عقد الشبكة الفعالة المتاحة.
  • ازدواجية قنوات الاتصال بين العقد مع إعادة التشكيل الديناميكي لتدفقات نقل البيانات.
  • سهولة استخدام النظام وقابليته للتوسع.
  • قابلية وأداء النظام على أي منصة أجهزة مصممة لأنظمة التحكم في المباني والأنظمة المدمجة.

لبناء نظام بالخصائص المذكورة أعلاه ، يلزم وجود نظام تشغيل ، والذي يهدف في المقام الأول إلى إنشاء أنظمة تحكم وأنظمة مضمنة. أظهر تحليل أنظمة التشغيل الحالية أن أنسب نظام تشغيل هو QNX 6 (نيوترينو) ، الذي يتميز بكفاءة عالية في تخصيص الموارد وإمكانيات الشبكة. يتم توفير إمكانيات الشبكات الواسعة بواسطة بروتوكول شبكة Qnet. إنه يحل مشكلة الموثوقية وموازنة الحمل الديناميكي لقنوات الاتصال ، لكنه لا يحل مشكلة التسامح مع خطأ النظام ككل. نتيجة لذلك ، تم تطوير نظام تحكم مبتكر على أساس بيئة حوسبة متعددة خطوط الأنابيب وقابلة لإعادة التكوين الموزعة. يحتوي النظام المطور على معمارية من نظير إلى نظير تشتمل على ثلاث كتل منطقية: كتلة إدخال-إخراج ، وكتلة تبديل للأغراض العامة ، وكتلة بيئة حوسبة قابلة لإعادة التكوين (RCS) (انظر الشكل 2).

المزايا الرئيسية لهذه العمارة هي:

  • نوع الند للند
  • اللامركزية
  • قابلية التوسع
  • التوزيع المكاني

السمات الوظيفية لهذه العمارة:

  • معالجة بيانات خطوط الأنابيب
  • التكرار في الأجهزة
  • توزيع الحمولة
  • إعادة التشكيل أثناء الطيران

في المستوى الأول من العمارة ، توجد وحدة إدخال ومخرج (I / O) ، والتي تشمل: عقد الإدخال والإخراج ، ومفتاح عقد الإدخال والإخراج ، وواجهة الإدخال والإخراج ، وأجهزة الاستشعار والمحركات. الوحدة مسؤولة عن الآليات الأساسية لتوليد إجراءات التحكم بناءً على البيانات من أجهزة الاستشعار المحلية والبيانات الواردة من المستويات الأخرى لنظام التحكم. يتم توزيع المهام المعينة بين عقد الإدخال / الإخراج السليمة استنادًا إلى أدائها النسبي الحالي أو يدويًا بواسطة المشغل. يتم توصيل المستشعرات والمشغلات عبر ناقل بجميع عقد الإدخال / الإخراج في الكتلة ، مما يسمح لأي عقدة باستجواب أي مستشعر أو إحداث تأثير على أي مشغل. يوفر مفتاح عقدة الإدخال / الإخراج الاتصال بين جميع عقد الإدخال / الإخراج لتبادل البيانات بينها وبين المستويات الأخرى من بنية النظام للحصول على بيانات التحكم والمعلومات. مع إمكانيات الأجهزة المناسبة ، تتواصل العقد مع بعضها البعض ومع العقد والمفاتيح الموجودة في المستويات الأخرى من النظام مباشرةً ، مما يقلل من وقت الاستجابة في الشبكة. يسمح الاتصال المباشر بين العقد وحمل معين من العقد في وضع التشغيل الحالي لوحدة الإدخال / الإخراج بتنظيم حسابات خطوط الأنابيب في الوحدة ، والتي تعد ضرورية لتشغيل هذه الوحدة دون اللجوء إلى قوة الحوسبة الخارجية لنظام التحكم ( DCS) ، مما يجعل من الممكن الاستخدام الفعال للموارد المجانية المقدمة لعقد التكرار لوحدة الإدخال / الإخراج في وقت الفشل.

تقوم مجموعة المفاتيح ذات الأغراض العامة ، الموجودة في المستوى الثاني من العمارة ، بتنظيم خطوط الاتصال بين كتل الإدخال والإخراج و DCS والأنظمة الخارجية. يمكن لكل مفتاح ربط مختلف الروابط والمفاتيح عبر نظام التحكم. يتم تحديد عدد خطوط الاتصال من خلال قدرات الأجهزة الخاصة بالعقد والمفاتيح المضمنة في الكتل. نظرًا لأن شبكة Qnet تسمح لك بتوزيع تدفقات البيانات ديناميكيًا ، يتم تنفيذ قياس هذه الكتلة ببساطة عن طريق توصيل أجهزة جديدة ولا يتطلب تكوينًا ، وإذا فشل أحد المحولات ، فلن يتم مقاطعة نقل البيانات بين العقد إذا يوفر المحول الآخر اتصالًا مشابهًا بين العقد أو ترتبط ارتباطًا مباشرًا. في الوقت نفسه ، من الضروري الاهتمام بعرض النطاق الترددي الكافي للشبكة المطلوب لإجراء نسخ احتياطي لمحول فاشل.

توفر كتلة شبكة الكمبيوتر القابلة لإعادة التكوين (RCN) ، الموجودة في المستوى الثالث من العمارة ، نظامًا عاليًا لإدارة طاقة الحوسبة لحل المشكلات المعقدة المتعلقة بمعالجة المعلومات ، واتخاذ القرار ، والتعرف ، وما إلى ذلك. الكتلة مسؤولة عن تهيئة نظام التحكم بالكامل: التحقق من قابلية تشغيل المفاتيح والعقد ، وسلامة الشبكة ، وبناء الرسوم البيانية للشبكة للنظام بأكمله ، وتحديد معلمات البداية لتشغيل كتل الإدخال والإخراج. توفر عقد هذه الكتلة أرشفة بياناتها وبياناتها من كتل الإدخال / الإخراج. يمكن لكل عقدة في هذه الكتلة أن تلعب دور آلة المشغل المصممة لمراقبة تشغيل النظام وإجراء تعديلات على برامج العمل لكل من هذه العقدة وجميع عقد النظام ، وإجراء إعادة التكوين عند الطلب.

توزيع الحمولة

تتمثل إحدى المهام الرئيسية لنظام L-Net في توزيع الحمل الحسابي على عقد الشبكة. يعتمد حل هذه المشكلة على إنشاء خطوط أنابيب حسابية. لبناء خط أنابيب حسابي ، يتم إنشاء رسم بياني للمهمة بشكل أولي - مخطط لتبادل تدفقات البيانات من المصدر إلى جهاز الاستقبال. تعمل المستشعرات كمصدر ، وتعمل المشغلات كمستقبل. إن خط الأنابيب الحسابي نفسه عبارة عن تخطيط للرسم البياني للمهمة (انظر الشكل 3) على الرسم البياني لشبكة الكمبيوتر (انظر الشكل 4) ، مع مراعاة متطلبات المهمة للموارد الحسابية للنظام وحالته الحالية.

الحل هو استخدام خدمة تزود المستلم بمعلومات شاملة حول الأجهزة الحالية وحالتها ومصادر البيانات المتاحة ، والتي تؤدي العمل مع الرسوم البيانية للشبكة والمهام. نتيجة لذلك ، يزداد الأداء بسبب تدفق الحسابات ويتم تنظيم الاستخدام الرشيد لجميع الموارد الحسابية المتاحة للنظام.

التسامح مع الخطأ

تتمثل المشكلة الرئيسية لعمل مثل هذا النظام في حدوث خلل كامل في خطوط الأنابيب الحسابية في حالة فشل أي عقدة في هذا الناقل أو انتهاك نقل البيانات بينها. تحقق الوسائل الأساسية لبروتوكول Qnet استعادة الاتصالات بين العقد في حالة انتهاكها الجزئي بسبب الخطوط الاحتياطية التي توفرها البنية. يحل نظام L-Net مشكلة استعادة قابلية التشغيل في حالة حدوث فشل كامل لمضيف نظام الحوسبة عن طريق إعادة تكوين خط أنابيب الحوسبة ديناميكيًا ، أي استخدام موارد العمل لاستبدال الكتلة التالفة. يوفر النظام ثلاثة سيناريوهات استرداد (إعادة التكوين) تختلف في وقت الاستجابة للفشل ، ووقت الاسترداد ، وموارد الأجهزة المستخدمة: عند الفشل ، مع الاستعداد السلبي ، والاستعداد النشط.

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

نتيجة لذلك ، يوفر النظام استعدادًا مرنًا للفشل على مستوى البرامج والأجهزة ، والقدرة على تغيير تكوين العقد دون مقاطعة العمل وفقدان الأداء بغض النظر عن تنفيذ الشبكة وخط الأنابيب الحسابي والعقدة.

استنتاج

يفترض نظام L-Net المطور ، على عكس نظائره الحالية ، استخدام مجموعة واسعة من خصائص الأجهزة لعقد DCS مع توافق برامجها الكامل. عندما تعمل العقد تحت سيطرة نظام تشغيل واحد (QNX Neutrino) ، فمن الممكن بناؤها على بنى معالجات مختلفة (x86 ، ARM ، MIPS ، إلخ) مع مجموعة متنوعة من الواجهات والأجهزة الطرفية. يمكن تنفيذ العقد في شكل أجهزة كمبيوتر سطح المكتب وأجهزة كمبيوتر صناعية وأجهزة كمبيوتر يمكن ارتداؤها وأجهزة كمبيوتر أحادية اللوحة. يمكن تشغيل جميع مكونات مجمع البرامج الخاص بـ DCS المطور على أي من عقده مع نظام تشغيل QNX ، بينما يظل من الممكن استخدام العقد مع نظام تشغيل مختلف. يسمح هذا الأسلوب باستخدام كل عقدة لحل كل من المهام على مستوى المشغل والتحكم. وبالتالي ، هناك نظام مرن للتفاعل بين الأقران دون تسلسل هرمي صارم للمستويات المتأصلة في بنية وأنظمة DCS المعممة التي تستخدم هذه البنية كقاعدة. تعمل شبكة نظير إلى نظير على تبسيط عمليات نشر النظام وتشغيله وتوسيع نطاقه وتصحيح أخطائه.

لتحقيق الإمكانات الحسابية للأجهزة الزائدة في النظام المطور ، تم اقتراح خوارزميات التكوين الديناميكي وإعادة التكوين بناءً على بروتوكول شبكة Qnet وبرنامج شبكة L-Net. تعتمد خوارزمية التكوين الديناميكي على توزيع الحمل الحسابي عبر جميع العقد عن طريق خطوط الأنابيب وموازاة المهام والموازنة الديناميكية للحمل على قنوات نقل البيانات بين العقد. تفترض خوارزمية إعادة تكوين النظام وجود ثلاثة سيناريوهات لاستعادة قابلية التشغيل في حالة الفشل ، اعتمادًا على الأجهزة المتوفرة والأولويات والمهام المخصصة للنظام: عند الفشل ، مع الاستعداد السلبي (تخصيص الموارد) والاستعداد النشط (استخدام الموارد) . تعمل خوارزميات التكوين وإعادة التكوين الديناميكية على تحسين الأداء والموثوقية باستخدام احتياطيات الأجهزة في النظام.

من المزايا المهمة للنظام أقصى قدر من الشفافية لكل من تقنيات الأجهزة والبرامج المستخدمة فيه ، مما يجعل من الممكن تبسيط الدعم الفني للنظام بشكل جدي وتطوير وحدات جديدة له.

استنتاج

تتيح الحلول المعمارية المطورة تحسين مؤشرات أنظمة التحكم الموزعة مثل الموثوقية والأداء والتكلفة وقابلية التوسع والبساطة بسبب إمكانية استخدام مجموعة واسعة من الأجهزة ، وتنفيذ خوارزميات التكوين الديناميكي والاستخدام الرشيد لموارد النظام.

  1. http://kazanets.narod.ru/DCSIntro.htm.
  2. http://kazanets.narod.ru/PCS7Overview.htm.
  3. http://www.rts.ua/rus/news/678/0/409.
  4. Zyl S. QNX Momentics: أساسيات التطبيق. - SPb: BHV-Petersburg ، 2005.
  5. Krten R. مقدمة إلى QNX Neutrino. دليل لتطوير التطبيقات في الوقت الفعلي. - SPb: BHV-Petersburg، 2011.

الكلمات الدالة:نظام التحكم الموزع ، دعم المعلومات لأنظمة التحكم ، الأنظمة الموزعة القابلة لإعادة التشكيل.

بنية نظام التحكم الموزع على أساس بيئة الحوسبة متعددة خطوط الأنابيب القابلة لإعادة التكوين L-Net

سيرجي يو. بوتومسكي ، أستاذ مساعد في جامعة الأبحاث الوطنية "المدرسة العليا للاقتصاد".

نيكيتا أ. بولويكو ، طالب في السنة الخامسة بجامعة الأبحاث الوطنية "المدرسة العليا للاقتصاد". مساعد دراسة. مبرمج. مجال التدريب: "التحكم والمعلوماتية في الأنظمة الفنية".

نبذة مختصرة.المقالة مخصصة لنظام تحكم موزع يعتمد على بيئة حوسبة متعددة خطوط الأنابيب قابلة لإعادة التكوين. يتم إعطاء بنية النظام. أيضًا ، يتم تقديم الخصائص الأساسية والخصائص الوظيفية للنظام أيضًا. تقدم المقالة الأساس المنطقي لاختيار نظام التشغيل. يتم عرض المزايا الأساسية للنظام مقارنة بالتطورات المماثلة الحالية في المقالة.

الكلمات الدالة:نظام التحكم الموزع ، دعم برامج النظم ، الموزع القابل لإعادة التشكيل.


في تواصل مع

أنظمة الحواسيب المتعددة غير المتجانسة

تم بناء أكبر عدد من الأنظمة الموزعة الموجودة حاليًا وفقًا لمخطط الأنظمة متعددة الحواسيب غير المتجانسة. هذا يعني أن أجهزة الكمبيوتر التي تعد جزءًا من هذا النظام يمكن أن تكون متنوعة للغاية ، على سبيل المثال ، في نوع المعالج وحجم الذاكرة وأداء الإدخال / الإخراج. من الناحية العملية ، يمكن لعب دور بعض هذه الحواسيب بواسطة أنظمة متوازية عالية الأداء ، على سبيل المثال ، أنظمة متعددة المعالجات أو أنظمة حواسيب متعددة متجانسة.

يمكن أن تكون الشبكة التي تربطهم أيضًا غير متجانسة إلى حد كبير.

مثال على عدم التجانس هو إنشاء أنظمة كبيرة متعددة الحواسيب باستخدام الشبكات والقنوات الموجودة. لذلك ، على سبيل المثال ، ليس من غير المألوف وجود أنظمة جامعية موزعة ، تتكون من شبكات محلية لكليات مختلفة ، مترابطة بقنوات عالية السرعة. في الأنظمة العالمية ، قد يتم توصيل المحطات المختلفة بدورها بواسطة شبكات عامة ، مثل خدمات الشبكة التي تقدمها شركات الاتصالات التجارية ، مثل SMDSأو ترحيل الإطار.

على عكس الأنظمة التي تمت مناقشتها في الفقرات السابقة ، تتطلب العديد من أنظمة الحواسيب المتعددة غير المتجانسة واسعة النطاق نهجًا عالميًا. هذا يعني أن التطبيق لا يمكنه افتراض أن أداءً معينًا أو خدمات معينة ستكون متاحة له طوال الوقت.

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

أقدم وأهم بنية موزعة أساسية هي خادم العميل ، حيث يبدأ أحد الأطراف (العميل) تبادل البيانات عن طريق إرسال طلب إلى الطرف الآخر (الخادم). يعالج الخادم الطلب ، وإذا لزم الأمر ، يرسل ردًا إلى العميل (الشكل 2.7).

أرز. 2.7. نموذج التفاعل بين العميل والخادم

يمكن أن يكون التفاعل ضمن إطار عمل نموذج العميل - الخادم إما متزامنًا ، عندما ينتظر العميل أن يقوم الخادم بمعالجة طلبه ، أو غير متزامن ، حيث يرسل العميل طلبًا إلى الخادم ويستمر في تنفيذه دون انتظار الخادم استجابة. يمكن استخدام نموذج العميل والخادم كأساس لوصف التفاعلات المختلفة. ضع في اعتبارك تفاعل مكونات البرنامج الذي يشكل نظامًا موزعًا.



أرز. 2.8 مستويات منطق التطبيق

ضع في اعتبارك تطبيقًا نموذجيًا معينًا ، والذي ، وفقًا للمفاهيم الحديثة ، يمكن تقسيمه إلى المستويات المنطقية التالية (الشكل 2.8): واجهة المستخدم (UI) ، ومنطق التطبيق (LP) والوصول إلى البيانات (DD) ، والعمل مع قاعدة بيانات (ديسيبل) ... يتفاعل مستخدم النظام معه من خلال واجهة المستخدم ، وتخزن قاعدة البيانات البيانات التي تصف مجال التطبيق ، وتنفذ طبقة منطق التطبيق جميع الخوارزميات المتعلقة بالمجال.

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

أرز. 2.9 هيكل من مستويين

تسمى بنية التطبيقات المبنية على هذا المبدأ خادم العميل أو اثنين من الارتباط... في الممارسة العملية ، غالبًا لا يتم تصنيف هذه الأنظمة على أنها موزعة ، ولكن رسميًا يمكن اعتبارها أبسط ممثلي الأنظمة الموزعة.

تطوير بنية خادم العميل هو ثلاثة مستويات العمارة، حيث يتم فصل واجهة المستخدم ومنطق التطبيق والوصول إلى البيانات إلى مكونات مستقلة للنظام يمكن تشغيلها على أجهزة كمبيوتر مستقلة (الشكل 2.10).

أرز. 2.10. ثلاثة مستويات العمارة

تتم معالجة طلب المستخدم في مثل هذه الأنظمة بشكل تسلسلي بواسطة جزء العميل في النظام وخادم منطق التطبيق وخادم قاعدة البيانات. ومع ذلك ، عادةً ما يُفهم النظام الموزع على أنه نظام بهيكل أكثر تعقيدًا من نظام ثلاثي المستويات.

أرز. 2.11. نظام البيع بالتجزئة الموزع

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

مثال آخر على النظام الموزع هو الشبكات تبادل البيانات المباشر بين العملاء (شبكات الند للند)... إذا كان المثال السابق يحتوي على بنية "شجرة" ، فإن شبكات التبادل المباشر يتم تنظيمها بطريقة أكثر تعقيدًا ، الشكل 2.12. تعد هذه الأنظمة حاليًا ، على الأرجح ، واحدة من أكبر الأنظمة الموزعة الموجودة ، حيث توحد ملايين أجهزة الكمبيوتر.

أرز. 2.12. نظام تبادل البيانات المباشر بين العملاء

(مادة الموقع http://se.math.spbu.ru)

مقدمة.

في الوقت الحاضر ، يتم توزيع جميع أنظمة البرامج الكبيرة تقريبًا. توزيع منفصل- نظام تتركز فيه معالجة المعلومات ليس على جهاز كمبيوتر واحد ، بل يتم توزيعها على عدة أجهزة كمبيوتر. عند تصميم الأنظمة الموزعة ، التي لها الكثير من القواسم المشتركة مع تصميم البرامج بشكل عام ، لا تزال هناك بعض التفاصيل التي يجب مراعاتها.

هناك ست خصائص رئيسية للأنظمة الموزعة.

  1. تقاسم الموارد. تسمح الأنظمة الموزعة بمشاركة موارد الأجهزة (محركات الأقراص الثابتة والطابعات) والبرامج (الملفات والمجمعات).
  2. الانفتاح.إنها القدرة على توسيع النظام عن طريق إضافة موارد جديدة.
  3. تماثل.في الأنظمة الموزعة ، يمكن تشغيل عمليات متعددة بشكل متزامن على أجهزة كمبيوتر مختلفة على الشبكة. يمكن أن تتفاعل هذه العمليات أثناء تشغيلها.
  4. قابلية التوسع . تحت قابلية التوسعفهم إمكانية إضافة خصائص وطرق جديدة.
  5. التسامح مع الخطأ. يسمح وجود أجهزة كمبيوتر متعددة بتكرار المعلومات ومقاومة بعض أخطاء الأجهزة والبرامج. يمكن للأنظمة الموزعة دعم الوظائف الجزئية في حالة حدوث خطأ. يحدث الفشل الكامل للنظام فقط مع أخطاء الشبكة.
  6. الشفافية.يتم تزويد المستخدمين بإمكانية الوصول الكامل إلى الموارد الموجودة في النظام ، بينما يتم إخفاء المعلومات حول توزيع الموارد في جميع أنحاء النظام عنهم في نفس الوقت.

الأنظمة الموزعة لها أيضًا عدد من العيوب.

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

من خلال هذه العيوب ، يمكنك أن ترى أنه عند تصميم الأنظمة الموزعة ، هناك عدد من المشكلات التي يحتاج المطورون إلى أخذها في الاعتبار.

  1. تحديد الموارد ... توجد الموارد في الأنظمة الموزعة على أجهزة كمبيوتر مختلفة ، لذلك يجب التفكير في نظام تسمية الموارد بحيث يمكن للمستخدمين الوصول بسهولة إلى الموارد التي يحتاجون إليها والارتباط بها. مثال على ذلك هو نظام URL (محدد موقع المعلومات) ، الذي يحدد أسماء صفحات الويب.
  2. تواصل... تعد قابلية التشغيل العالمية للإنترنت والتنفيذ الفعال لبروتوكولات TCP / IP في الإنترنت لمعظم الأنظمة الموزعة أمثلة على أكثر الطرق فعالية لتنظيم الاتصال بين أجهزة الكمبيوتر. ومع ذلك ، في بعض الحالات التي تتطلب أداءً خاصًا أو موثوقية ، من الممكن استخدام أدوات متخصصة.
  3. جودة خدمة النظام ... تعكس هذه المعلمة الأداء والصحة والموثوقية. هناك عدد من العوامل التي تؤثر على جودة الخدمة: توزيع العمليات ، والموارد ، والأجهزة ، وإمكانية تكييف النظام.
  4. هيكلة البرمجيات ... تصف بنية البرنامج توزيع وظائف النظام بين مكونات النظام ، وكذلك توزيع هذه المكونات بين المعالجات. إذا كنت بحاجة إلى الحفاظ على خدمة نظام عالية الجودة ، فإن اختيار البنية المناسبة أمر بالغ الأهمية.

التحدي الذي يواجه مصممي الأنظمة الموزعة هو تصميم البرامج والأجهزة لتوفير جميع الخصائص المطلوبة للنظام الموزع. يتطلب هذا معرفة مزايا وعيوب مختلف هياكل الأنظمة الموزعة. هناك ثلاثة أنواع من معماريات النظام الموزعة.

  1. هيكل العميل / الخادم ... في هذا النموذج ، يمكن اعتبار النظام على أنه مجموعة من الخدمات التي تقدمها الخوادم للعملاء. في مثل هذه الأنظمة ، تختلف الخوادم والعملاء بشكل كبير عن بعضهم البعض.
  2. ثلاثة مستويات العمارة ... في هذا النموذج ، لا يقدم الخادم خدمات للعملاء بشكل مباشر ، ولكن من خلال خادم منطق الأعمال.

لقد تم بالفعل ذكر النموذجين الأولين أكثر من مرة ، دعنا نتحدث عن النموذج الثالث بمزيد من التفصيل.

  1. هندسة الكائنات الموزعة ... في هذه الحالة ، لا توجد اختلافات بين الخوادم والعملاء ، ويمكن اعتبار النظام على أنه مجموعة من الكائنات المتفاعلة ، ولا يهم موقعها حقًا. لا يوجد تمييز بين مقدم الخدمة ومستخدميه.

تستخدم هذه العمارة على نطاق واسع اليوم وتسمى أيضًا هندسة خدمات الويب.خدمة الويب هي تطبيق يمكن الوصول إليه عبر الإنترنت ويوفر بعض الخدمات ، ويكون شكلها مستقلاً عن المزود (نظرًا لاستخدام تنسيق البيانات العالمي - يتم استخدام XML) ومنصة التشغيل. حاليًا ، هناك ثلاث تقنيات مختلفة تدعم مفهوم أنظمة الكائنات الموزعة. هذه هي تقنيات EJB و CORBA و DCOM.

أولاً ، بضع كلمات حول ماهية XML بشكل عام. XML هو تنسيق بيانات عام يستخدم لتوفير خدمات الويب. تعتمد خدمات الويب على معايير وبروتوكولات مفتوحة: SOAP و UDDI و WSDL.

  1. صابون ( يحدد بروتوكول الوصول إلى الكائنات البسيط ، الذي طوره W3C ، تنسيقًا لطلبات خدمات الويب. يتم تجميع الرسائل بين خدمة الويب ومستخدمها في حزم تسمى مغلفات SOAP (تسمى أحيانًا مغلفات XML). يمكن أن تحتوي الرسالة نفسها إما على طلب لتنفيذ إجراء أو استجابة - نتيجة هذا الإجراء.
  2. WSDL (لغة وصف خدمة الويب).يتم وصف واجهة خدمة الويب في وثائق WSDL (و WSDL هي مجموعة فرعية من XML). قبل نشر الخدمة ، يقوم المطور بتكوين وصفه بلغة WSDL ، ويحدد عنوان خدمة الويب ، والبروتوكولات المدعومة ، وقائمة بالعمليات المسموح بها ، وتنسيقات الطلب والاستجابة.
  3. UDDI (الوصف العالمي والاكتشاف والتكامل) -بروتوكول بحث خدمات الويب على الإنترنت ( http://www.uddi.org/). إنه سجل أعمال حيث يقوم مزودو خدمات الويب بتسجيل الخدمات ويجد المطورون الخدمات التي يحتاجون إليها لتضمينها في تطبيقاتهم.

من التقرير ، قد يبدو أن خدمات الويب هي الحل الأفضل الذي لا جدال فيه ، والسؤال الوحيد هو اختيار أدوات التطوير. ومع ذلك ، فهي ليست كذلك. هناك بديل لخدمات الويب ، وهو الويب الدلالي ، والذي تحدث عنه مبتكر WWW تيم بيرنرز-لي قبل خمس سنوات.

إذا كان الهدف من خدمات الويب هو تسهيل الاتصال بين التطبيقات ، فإن الويب الدلالي مصمم لحل مشكلة أكثر تعقيدًا - باستخدام آليات البيانات الوصفية لزيادة كفاءة قيمة المعلومات التي يمكن العثور عليها على الويب. يمكن القيام بذلك عن طريق التخلي عن النهج الموجه للمستندات لصالح النهج الموجه للكائنات.

فهرس

  1. سومرفيلI. هندسة البرمجيات.
  2. Dranitsa A. Java مقابل .NET. - "Computerra" رقم 516.
  3. موارد الإنترنت.

في الفصل السابق ، نظرنا في الأنظمة متعددة المعالجات المقترنة بإحكام مع الذاكرة المشتركة ، وهياكل بيانات النواة المشتركة ، ومجمع مشترك يتم من خلاله استدعاء العمليات. في كثير من الأحيان ، ومع ذلك ، فمن المستحسن تخصيص المعالجات بطريقة تكون مستقلة عن بيئة التشغيل وظروف التشغيل لأغراض مشاركة الموارد. لنفترض ، على سبيل المثال ، أن مستخدم الكمبيوتر الشخصي يحتاج إلى الوصول إلى الملفات الموجودة على جهاز أكبر ، ولكن في نفس الوقت يحتفظ بالسيطرة على الكمبيوتر الشخصي. على الرغم من أن بعض البرامج ، مثل uucp ، تدعم نقل ملفات الشبكة ووظائف الشبكة الأخرى ، لن يتم إخفاء استخدامها عن المستخدم ، لأن المستخدم يدرك أنه يستخدم الشبكة. بالإضافة إلى ذلك ، تجدر الإشارة إلى أن برامج مثل برامج تحرير النصوص لا تعمل مع الملفات المحذوفة ، كما هو الحال مع البرامج العادية. يجب أن يكون لدى المستخدمين المجموعة القياسية من وظائف نظام UNIX ، وبغض النظر عن عنق الزجاجة المحتمل في الأداء ، يجب ألا يشعروا بتجاوز حدود الماكينة. لذلك ، على سبيل المثال ، يجب ألا يختلف عمل وظائف النظام المفتوحة والقراءة مع الملفات الموجودة على الأجهزة البعيدة عن عملها مع الملفات التي تنتمي إلى الأنظمة المحلية.

تظهر بنية النظام الموزعة في الشكل 13.1. كل كمبيوتر موضح في الشكل عبارة عن وحدة قائمة بذاتها تتكون من وحدة المعالجة المركزية والذاكرة والأجهزة الطرفية. النموذج لا ينكسر على الرغم من أن الكمبيوتر لا يحتوي على نظام ملفات محلي: يجب أن يحتوي على أجهزة طرفية للتواصل مع الأجهزة الأخرى ، ويمكن أن توجد جميع الملفات التي تنتمي إليه على كمبيوتر آخر. الذاكرة الفعلية المتاحة لكل جهاز مستقلة عن العمليات التي تعمل على الأجهزة الأخرى. في هذا الصدد ، تختلف الأنظمة الموزعة عن الأنظمة متعددة المعالجات المزدوجة بإحكام التي تمت مناقشتها في الفصل السابق. وفقًا لذلك ، يعمل جوهر النظام في كل جهاز بشكل مستقل عن ظروف التشغيل الخارجية للبيئة الموزعة.

الشكل 13.1. نموذج نظام العمارة الموزعة


الأنظمة الموزعة ، الموصوفة جيدًا في الأدبيات ، تندرج تقليديًا في الفئات التالية:

الأنظمة الطرفية ، وهي مجموعات من الآلات لها قواسم مشتركة مميزة وترتبط بآلة واحدة (عادة أكبر). تشترك المعالجات الطرفية في حملها مع المعالج المركزي وتعيد توجيه جميع المكالمات إلى نظام التشغيل إليه. الهدف من النظام المحيطي هو زيادة الأداء الكلي للشبكة وتوفير القدرة على تخصيص معالج لعملية واحدة في بيئة تشغيل UNIX. يبدأ النظام كوحدة منفصلة ؛ على عكس النماذج الأخرى للأنظمة الموزعة ، لا تتمتع الأنظمة الطرفية باستقلالية حقيقية ، إلا في الحالات المتعلقة بإرسال العمليات وتخصيص الذاكرة المحلية.

أنظمة موزعة مثل "نيوكاسل" تسمح بالاتصال عن بعد بأسماء الملفات البعيدة في المكتبة (الاسم مأخوذ من مقال "اتصال نيوكاسل" - انظر). تحتوي الملفات المحذوفة على BOM (اسم مميز) يحتوي ، في مسار البحث ، على أحرف خاصة أو مكون اسم اختياري يسبق جذر نظام الملفات. لا يتضمن تنفيذ هذه الطريقة تغييرات في نواة النظام ، وبالتالي فهي أبسط من الطرق الأخرى التي تمت مناقشتها في هذا الفصل ، ولكنها أقل مرونة.

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

في هذا الفصل ، سوف نلقي نظرة على بنية كل نموذج ؛ جميع المعلومات المقدمة لا تستند إلى نتائج تطورات محددة ، ولكن على المعلومات المنشورة في مقالات فنية مختلفة. يفترض هذا أن وحدات البروتوكول وبرامج تشغيل الأجهزة مسؤولة عن العنونة والتوجيه والتحكم في التدفق واكتشاف الأخطاء وتصحيحها ، وبعبارة أخرى ، أن كل نموذج مستقل عن الشبكة المستخدمة. تعمل أمثلة استخدام وظائف النظام الموضحة في القسم التالي للأنظمة الطرفية بطريقة مماثلة لأنظمة مثل Newcastle والأنظمة الشفافة تمامًا ، والتي سيتم مناقشتها لاحقًا ؛ لذلك ، سننظر فيها بالتفصيل مرة واحدة ، وفي الأقسام المخصصة لأنواع الأنظمة الأخرى ، سنركز بشكل أساسي على الميزات التي تميز هذه النماذج عن غيرها.

13.1 المعالجات الثنائية

تظهر بنية النظام المحيطي في الشكل 13.2. الهدف من هذا التكوين هو تحسين الأداء الكلي للشبكة عن طريق إعادة توزيع العمليات الجارية بين وحدة المعالجة المركزية والمعالجات الطرفية. لا يحتوي كل من المعالجات الطرفية على أي أجهزة طرفية محلية أخرى تحت تصرفه بخلاف تلك التي يحتاجها للتواصل مع وحدة المعالجة المركزية. نظام الملفات وجميع الأجهزة تحت تصرف المعالج المركزي. افترض أن جميع عمليات المستخدم يتم تنفيذها على المعالج المحيطي ولا تنتقل بين المعالجات الطرفية ؛ بمجرد نقلها إلى المعالج ، فإنها تظل عليها حتى الانتهاء. يحتوي المعالج المحيطي على نسخة خفيفة من نظام التشغيل مصمم للتعامل مع المكالمات المحلية للنظام ، وإدارة المقاطعة ، وتخصيص الذاكرة ، والعمل مع بروتوكولات الشبكة ومع برنامج تشغيل الجهاز للاتصال بالمعالج المركزي.

عند تهيئة النظام على المعالج المركزي ، يقوم النواة بتحميل نظام التشغيل المحلي على كل من المعالجات الطرفية عبر خطوط الاتصال. ترتبط أي عملية تجري على الأطراف بعملية ساتلية تنتمي إلى المعالج المركزي (انظر) ؛ عندما تستدعي عملية تعمل على معالج طرفي وظيفة نظام تتطلب خدمات المعالج المركزي فقط ، تتواصل العملية الطرفية مع القمر الصناعي الخاص بها ويتم إرسال الطلب إلى المعالج المركزي للمعالجة. تؤدي عملية القمر الصناعي وظيفة نظام وترسل النتائج مرة أخرى إلى المعالج المحيطي. العلاقة بين العملية الطرفية والقمر الصناعي الخاص بها تشبه العلاقة بين العميل والخادم التي ناقشناها بالتفصيل في الفصل 11: تعمل العملية الطرفية كعميل للقمر الصناعي الخاص بها ، مما يدعم وظائف العمل مع نظام الملفات. في هذه الحالة ، يكون لعملية الخادم البعيد عميل واحد فقط. في القسم 13.4 ، سننظر في عمليات الخادم مع العديد من العملاء.


الشكل 13.2. تكوين النظام المحيطي


الشكل 13.3. تنسيقات الرسائل

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

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

لشرح كيفية عمل النظام المحيطي ، ضع في اعتبارك عددًا من الوظائف: getppid ، و open ، و write ، و fork ، و exit ، و signal. تعد وظيفة getppid واضحة جدًا لأنها تتعامل مع نماذج الطلب والاستجابة البسيطة التي يتم تبادلها بين الجهاز المحيطي ووحدة المعالجة المركزية. يولد جوهر المعالج المحيطي رسالة تحتوي على علامة ، ويترتب على ذلك أن الوظيفة المطلوبة هي وظيفة getppid ، وترسل الطلب إلى المعالج المركزي. تقرأ عملية الأقمار الصناعية على المعالج المركزي الرسالة من المعالج المحيطي ، وتفك تشفير نوع وظيفة النظام ، وتنفذها ، وتحصل على معرف الأصل الخاص بها. ثم يولد استجابة ويمررها إلى عملية محيطية معلقة في الطرف الآخر من خط الاتصال. عندما يتلقى المعالج الطرفي استجابة ، فإنه يمررها إلى العملية التي تسمى وظيفة نظام getppid. إذا كانت العملية الطرفية تخزن البيانات (مثل معرف العملية للوالد) في الذاكرة المحلية ، فلا يتعين عليها الاتصال بمرافقها على الإطلاق.

إذا تم استدعاء وظيفة النظام المفتوح ، فإن العملية الطرفية ترسل رسالة مناسبة إلى مرافقها ، والتي تتضمن اسم الملف والمعلمات الأخرى. في حالة نجاحها ، تخصص العملية المصاحبة فهرسًا ونقطة دخول إلى جدول الملفات ، وتخصص مدخلاً في جدول واصف ملف المستخدم في مساحته ، وتعيد واصف الملف إلى العملية الطرفية. طوال هذا الوقت ، في الطرف الآخر من خط الاتصال ، تنتظر العملية الطرفية استجابة. ليس لديه أي هياكل تحت تصرفه من شأنها تخزين معلومات حول الملف الجاري فتحه ؛ المقبض الذي تم إرجاعه بواسطة open هو مؤشر إلى إدخال في جدول واصف ملف المستخدم الذي تملكه العملية المصاحبة. تظهر نتائج تنفيذ الوظيفة في الشكل 13.4.


الشكل 13.4. استدعاء الوظيفة المفتوحة من عملية هامشية

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

الوظيفة الوحيدة التي تحتاج إلى تغيير أثناء التشغيل على وحدة المعالجة المركزية هي وظيفة نظام الشوكة. عندما تقوم إحدى العمليات بتنفيذ هذه الوظيفة على وحدة المعالجة المركزية ، تختار النواة معالجًا طرفيًا لها وترسل رسالة إلى عملية خاصة - الخادم ، لإعلام الأخير بأنه سيبدأ في تفريغ العملية الحالية. بافتراض قبول الخادم للطلب ، تستخدم النواة fork لإنشاء عملية طرفية جديدة ، وتخصيص إدخال جدول العملية ومساحة العنوان. يقوم المعالج المركزي بإلغاء تحميل نسخة من العملية التي تسمى وظيفة الشوكة إلى المعالج المحيطي ، والكتابة فوق مساحة العنوان المخصصة حديثًا ، وتوليد قمر صناعي محلي للتواصل مع العملية الطرفية الجديدة ، وإرسال رسالة إلى الجهاز الطرفي لتهيئة عداد البرنامج للعملية الجديدة. عملية القمر الصناعي (على وحدة المعالجة المركزية) هي سليل العملية التي تسمى فورك ؛ تعتبر العملية الطرفية من الناحية الفنية سليلة لعملية الخادم ، لكنها منطقية تابعة للعملية التي تسمى وظيفة التفرع. ليس لعملية الخادم اتصال منطقي مع الطفل عند اكتمال الانقسام ؛ وظيفة الخادم الوحيدة هي المساعدة في تفريغ الطفل. بسبب الاتصال القوي بين مكونات النظام (المعالجات الطرفية لا تتمتع بالاستقلالية) ، فإن العملية الطرفية وعملية القمر الصناعي لها نفس كود التعريف. تظهر العلاقة بين العمليات في الشكل 13.5: يُظهر الخط المستمر العلاقة بين الوالدين والطفل ، ويظهر الخط المنقط العلاقة بين الأقران.


الشكل 13.5. تنفيذ وظيفة الشوكة على وحدة المعالجة المركزية

عندما تقوم إحدى العمليات بتنفيذ وظيفة fork على المعالج المحيطي ، فإنها ترسل رسالة إلى القمر الصناعي الخاص بها على وحدة المعالجة المركزية ، والتي تقوم بعد ذلك بتنفيذ التسلسل الكامل للإجراءات الموضحة أعلاه. يختار القمر الصناعي معالجًا طرفيًا جديدًا ويقوم بالاستعدادات اللازمة لتفريغ صورة العملية القديمة: يرسل العملية الطرفية الأصلية طلبًا لقراءة صورتها ، استجابةً لذلك يبدأ نقل البيانات المطلوبة على الطرف الآخر من قناة الاتصال. يقرأ القمر الصناعي الصورة المرسلة ويكتبها إلى السليل المحيطي. عند الانتهاء من تفريغ الصورة ، تقوم عملية شوكة القمر الصناعي ، بإنشاء طفلها على وحدة المعالجة المركزية ، وتمرير قيمة عداد البرنامج إلى الطفل المحيطي بحيث يعرف الأخير مكان بدء التنفيذ. من الواضح أنه سيكون من الأفضل أن يتم تعيين طفل العملية المصاحبة للطفل المحيطي كوالد ، ولكن في حالتنا ، فإن العمليات التي تم إنشاؤها تكون قادرة على العمل على معالجات محيطية أخرى ، وليس فقط التي تم إنشاؤها عليها. يوضح الشكل 13.6 العلاقة بين العمليات في نهاية دالة الشوكة. عندما تنتهي العملية الطرفية من عملها ، فإنها ترسل رسالة مقابلة إلى عملية القمر الصناعي ، وهذا ينتهي أيضًا. لا يمكن للعملية المصاحبة بدء إيقاف التشغيل.


الشكل 13.6. تنفيذ وظيفة شوكة على معالج طرفي

في كل من الأنظمة متعددة المعالجات وحيدة المعالجات ، يجب أن تستجيب العملية للإشارات بنفس الطريقة: إما أن تكمل العملية تنفيذ وظيفة النظام قبل التحقق من الإشارات ، أو على العكس من ذلك ، عند تلقي الإشارة ، تخرج فورًا من الحالة المعلقة و يقطع فجأة عمل وظيفة النظام ، إذا كان هذا يتفق مع الأولوية التي تم إيقافه بها. نظرًا لأن عملية القمر الصناعي تؤدي وظائف النظام نيابة عن العملية المحيطية ، فيجب أن تستجيب للإشارات بالتنسيق مع الأخيرة. إذا تسببت إشارة في نظام أحادي المعالج في إجهاض العملية للوظيفة ، فيجب أن تتصرف العملية المصاحبة في نظام متعدد المعالجات بنفس الطريقة. يمكن قول الشيء نفسه عن الحالة التي تدفع فيها الإشارة العملية إلى إنهاء عملها باستخدام وظيفة الخروج: تنتهي العملية الطرفية وترسل الرسالة المقابلة إلى عملية القمر الصناعي ، والتي ، بالطبع ، تنتهي أيضًا.

عندما تستدعي العملية الطرفية وظيفة نظام الإشارة ، فإنها تخزن المعلومات الحالية في الجداول المحلية وترسل رسالة إلى القمر الصناعي الخاص بها لإعلامها بما إذا كان ينبغي استقبال الإشارة المحددة أو تجاهلها. لا فرق في عملية القمر الصناعي سواء اعتراض الإشارة أو الإجراء الافتراضي. يعتمد رد فعل العملية على إشارة على ثلاثة عوامل (الشكل 13.7): ما إذا كانت الإشارة قد تم تلقيها أثناء تنفيذ العملية لوظيفة النظام ، وما إذا كان هناك مؤشر باستخدام وظيفة الإشارة لتجاهل الإشارة ، وما إذا كانت الإشارة تحدث في نفس المعالج المحيطي أو على البعض الآخر. دعنا ننتقل إلى النظر في الاحتمالات المختلفة.


خوارزمية sighandle / * خوارزمية معالجة الإشارات * /
إذا (العملية الحالية هي رفيق شخص ما أو لديها نموذج أولي)
إذا (تم تجاهل الإشارة)
إذا (جاءت الإشارة أثناء تنفيذ وظيفة النظام)
ضع إشارة أمام عملية القمر الصناعي ؛
إرسال رسالة إشارة إلى عملية محيطية ؛
آخر (/ * عملية طرفية * /
/ * ما إذا تم استلام إشارة أثناء تنفيذ وظيفة النظام أم لا * /
إرسال إشارة إلى عملية القمر الصناعي ؛
algorithm satellite_end_of_syscall / * إنهاء وظيفة نظام استدعت بواسطة عملية محيطية * /
معلومات الإدخال: غائب
معلومات الإخراج: لا شيء
إذا (تم تلقي مقاطعة أثناء تنفيذ وظيفة النظام)
إرسال رسالة مقاطعة ، إشارة إلى العملية الطرفية ؛
آخر / * لم يتم مقاطعة تنفيذ وظيفة النظام * /
إرسال رد: تمكين العلم الذي يشير إلى وصول الإشارة ؛

الشكل 13.7. معالجة الإشارات في النظام المحيطي


لنفترض أن العملية الطرفية قد أوقفت عملها بينما تؤدي عملية القمر الصناعي وظيفة نظام نيابة عنها. إذا حدثت الإشارة في مكان آخر ، فإن عملية القمر الصناعي تكتشفها قبل العملية الطرفية. ثلاث حالات ممكنة.

1. إذا لم تدخل عملية القمر الصناعي ، أثناء انتظار حدث ما ، في الحالة المعلقة ، والتي ستخرج منها عند تلقي إشارة ، فإنها تؤدي وظيفة النظام حتى النهاية ، وترسل نتائج التنفيذ إلى العملية الطرفية ويظهر التي تلقت الإشارة.

2. إذا طلبت العملية تجاهل هذا النوع من الإشارات ، يستمر الساتل في اتباع خوارزمية تنفيذ وظيفة النظام دون مغادرة الحالة المعلقة بواسطة longjmp. في الاستجابة المرسلة إلى العملية الطرفية ، لن تكون هناك رسالة مستلمة للإشارة.

3. إذا قطعت عملية القمر الصناعي ، عند تلقي إشارة ، تنفيذ وظيفة النظام (عن طريق longjmp) ، فإنها تُعلم العملية الطرفية بهذا الأمر وتُعلمها برقم الإشارة.

تبحث العملية الطرفية عن معلومات حول استلام الإشارات في الاستجابة المستقبلة ، وإن وجدت ، تعالج الإشارات قبل الخروج من وظيفة النظام. وبالتالي ، فإن سلوك عملية في نظام متعدد المعالجات يتوافق تمامًا مع سلوكها في نظام أحادي المعالجات: إما أنه يخرج دون الخروج من وضع النواة ، أو يستدعي وظيفة معالجة إشارة مخصصة ، أو يتجاهل الإشارة ويكمل وظيفة النظام بنجاح.


الشكل 13.8. المقاطعة أثناء تنفيذ وظيفة النظام

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

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

بالإشارة إلى المثال المقروء ، تجدر الإشارة إلى أن العملية الطرفية ليس لديها فكرة عما إذا كان رفيقها ينتظر مدخلات من الجهاز أو يقوم بإجراءات أخرى. ترسل العملية الطرفية رسالة إشارة إلى القمر الصناعي: إذا كان القمر الصناعي في حالة تعليق مع أولوية قابلة للمقاطعة ، فإنه يخرج على الفور من هذه الحالة وينهي وظيفة النظام ؛ خلاف ذلك ، يتم إكمال الوظيفة بنجاح.

أخيرًا ، ضع في اعتبارك حالة وصول الإشارة في وقت لا يتعلق بتنفيذ وظيفة النظام. إذا نشأت إشارة من معالج آخر ، يستقبلها القمر الصناعي أولاً ويرسل رسالة إشارة إلى العملية الطرفية ، بغض النظر عما إذا كانت الإشارة تتعلق بالعملية الطرفية أم لا. يقوم القلب المحيطي بفك تشفير الرسالة وإرسال إشارة إلى العملية ، والتي تتفاعل معها بالطريقة المعتادة. إذا نشأت الإشارة على المعالج المحيطي ، فإن العملية تؤدي إجراءات قياسية دون اللجوء إلى خدمات قمرها الصناعي.

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

13.2 اتصالات NEWCASTLE

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

تستخدم هذه الأنظمة أحد المسارين التاليين لتحديد الملفات المحذوفة. في بعض الأنظمة ، تتم إضافة حرف خاص إلى اسم الملف المركب: يحدد مكون الاسم الذي يسبق هذا الحرف الجهاز ، وبقية الاسم هو الملف الموجود على ذلك الجهاز. لذلك ، على سبيل المثال ، الاسم المميز


"sftig! / fs1 / mjb / rje"


يحدد الملف "/ fs1 / mjb / rje" على الجهاز "sftig". يتبع مخطط تعريف الملف هذا اصطلاح uucp لنقل الملفات بين أنظمة UNIX. في مخطط آخر ، يتم تحديد الملفات المحذوفة عن طريق إضافة بادئة خاصة إلى الاسم ، على سبيل المثال:


/../sftig/fs1/mjb/rje


حيث "/../" هي بادئة تشير إلى حذف الملف ؛ المكون الثاني من اسم الملف هو اسم الآلة البعيدة. يستخدم هذا النظام بنية اسم ملف UNIX المألوفة ، لذلك على عكس المخطط الأول ، لا تحتاج برامج المستخدم إلى التكيف مع استخدام الأسماء ذات الإنشاء غير المعتاد (انظر).


الشكل 13.9. صياغة الطلبات إلى خادم الملفات (المعالج)


سنخصص باقي هذا القسم لنموذج نظام يستخدم ارتباط Newcastle ، حيث لا تهتم النواة بالتعرف على الملفات المحذوفة ؛ يتم تعيين هذه الوظيفة بالكامل إلى الإجراءات الفرعية من مكتبة C القياسية ، والتي تلعب في هذه الحالة دور واجهة النظام. تعمل هذه الإجراءات الفرعية على تحليل المكون الأول لاسم الملف ، والذي يحتوي في كل من طريقتي التعريف الموصوفين على علامة على بُعد الملف. هذا خروج عن الروتين الذي لا تقوم فيه إجراءات المكتبة بتحليل أسماء الملفات. يوضح الشكل 13.9 كيفية صياغة الطلبات إلى خادم الملفات. إذا كان الملف محليًا ، فإن kernel النظام المحلي يعالج الطلب بشكل طبيعي. تأمل الحالة المعاكسة:


فتح ("/../ sftig / fs1 / mjb / rje / file" ، O_RDONLY) ؛


يوزع الروتين الفرعي المفتوح من مكتبة C أول مكونين من اسم الملف ويعرف أنه يبحث عن الملف على الجهاز البعيد "sftig". من أجل الحصول على معلومات حول ما إذا كان للعملية اتصال سابق بجهاز معين ، يبدأ الروتين الفرعي بنية خاصة يتذكر فيها هذه الحقيقة ، وفي حالة وجود إجابة سلبية ، ينشئ اتصالاً بخادم الملفات الذي يعمل على آلة بعيدة. عندما تصوغ العملية طلبها الأول للمعالجة عن بُعد ، يؤكد الخادم البعيد الطلب ، إذا لزم الأمر ، السجلات في حقول رموز تعريف المستخدم والمجموعة وينشئ عملية ساتلية تعمل نيابة عن عملية العميل.

لتلبية طلبات العميل ، يجب أن يكون للقمر الصناعي نفس أذونات الملفات على الجهاز البعيد مثل العميل. بمعنى آخر ، يجب أن يمتلك المستخدم "mjb" نفس حقوق الوصول إلى كل من الملفات المحلية والبعيدة. لسوء الحظ ، من الممكن أن يتطابق رمز تعريف العميل "mjb" مع رمز تعريف عميل آخر على الجهاز البعيد. وبالتالي ، يجب على مسؤولي النظام على الأجهزة التي تعمل على شبكة إما التأكد من تعيين رمز تعريف فريد للشبكة بأكملها لكل مستخدم ، أو إجراء تحويل الكود في وقت طلب خدمة الشبكة. إذا لم يتم ذلك ، فستكون للعملية المصاحبة حقوق عميل آخر على الجهاز البعيد.

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

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

تعد آلية إجراء العمليات على الدليل الحالي أكثر تعقيدًا. عندما تختار العملية دليلاً بعيدًا كدليل حالي ، يرسل روتين المكتبة رسالة إلى القمر الصناعي ، مما يغير الدليل الحالي ، ويتذكر الروتين أن الدليل قد تم حذفه. في جميع الحالات التي يبدأ فيها اسم مسار البحث بحرف آخر غير الشرطة المائلة للأمام (/) ، يرسل الروتين الفرعي الاسم إلى الجهاز البعيد ، حيث يتم توجيه عملية القمر الصناعي من الدليل الحالي. إذا كان الدليل الحالي محليًا ، فإن الإجراء يمرر ببساطة اسم مسار البحث إلى نواة النظام المحلي. تتشابه وظيفة chroot للنظام في دليل بعيد ، ولكنها تمر دون أن يلاحظها أحد للنواة المحلية ؛ بالمعنى الدقيق للكلمة ، يمكن للعملية تجاهل هذه العملية ، لأن المكتبة فقط تسجل تنفيذها.

عندما تستدعي العملية فورك ، فإن روتين المكتبة المناسب يرسل رسائل إلى كل قمر صناعي. تتفرع عمليات الأقمار الصناعية وترسل هويات الأطفال إلى العميل الأصل. تقوم عملية العميل بتشغيل وظيفة نظام fork ، والتي تنقل التحكم إلى الطفل الذي يولده ؛ الطفل المحلي في حوار مع طفل القمر الصناعي البعيد الذي يتم تخزين عناوينه بواسطة روتين المكتبة. هذا التفسير لوظيفة الشوكة يجعل من السهل على عمليات الأقمار الصناعية التحكم في الملفات المفتوحة والأدلة الحالية. عند إنهاء عملية العمل مع الملفات البعيدة (عن طريق استدعاء وظيفة الخروج) ، يرسل الروتين الفرعي رسائل إلى جميع الأقمار الصناعية البعيدة حتى يفعلوا الشيء نفسه عندما يتلقون الرسالة. تتم مناقشة جوانب معينة من تنفيذ وظائف نظام exec و Exec في التمارين.

ميزة ارتباط Newcastle هي أن وصول العملية إلى الملفات البعيدة يصبح "شفافًا" (غير مرئي للمستخدم) ، ولا يلزم إجراء أي تغييرات على نواة النظام. ومع ذلك ، فإن هذا التطور له عدد من العيوب. بادئ ذي بدء ، أثناء تنفيذه ، من الممكن حدوث انخفاض في أداء النظام. نظرًا لاستخدام مكتبة C الموسعة ، يزداد حجم الذاكرة المستخدمة في كل عملية ، حتى لو لم تصل العملية إلى الملفات البعيدة ؛ المكتبة تكرر وظائف kernel وتتطلب مساحة ذاكرة أكبر لنفسها. تؤدي زيادة حجم العمليات إلى إطالة فترة بدء التشغيل ويمكن أن تخلق مزيدًا من التنافس على موارد الذاكرة ، مما يخلق ظروفًا لتفريغ المهام وترتيبها بشكل متكرر. سيتم تنفيذ الطلبات المحلية بشكل أبطأ بسبب الزيادة في مدة كل مكالمة إلى kernel ، ويمكن أيضًا إبطاء معالجة الطلبات عن بُعد ، وزيادة تكلفة إرسالها عبر الشبكة. تؤدي المعالجة الإضافية للطلبات عن بُعد على مستوى المستخدم إلى زيادة عدد مفاتيح تبديل السياق وعمليات التفريغ والتبديل. أخيرًا ، من أجل الوصول إلى الملفات البعيدة ، يجب إعادة ترجمة البرامج باستخدام المكتبات الجديدة ؛ لن تتمكن البرامج القديمة ووحدات الكائن التي تم تسليمها من العمل مع الملفات البعيدة بدونها. كل هذه العيوب غائبة عن النظام الموصوف في القسم التالي.

13.3 أنظمة الملفات الموزعة "شفافة"

يعني مصطلح "التخصيص الشفاف" أن المستخدمين على جهاز واحد يمكنهم الوصول إلى الملفات الموجودة على جهاز آخر دون إدراك أنهم يتجاوزون حدود الجهاز ، تمامًا كما هو الحال على أجهزتهم عندما ينتقلون من نظام ملفات إلى آخر ، ويتخطون نقاط التحميل. تشبه الأسماء التي تشير بها العمليات إلى الملفات الموجودة على الأجهزة البعيدة أسماء الملفات المحلية: لا توجد أحرف مميزة فيها. في التكوين الموضح في الشكل 13.10 ، الدليل "/ usr / src" الذي ينتمي إلى الجهاز B "مُثبت" في الدليل "/ usr / src" الذي ينتمي إلى الجهاز A. نفس رمز مصدر النظام ، الموجود تقليديًا في "/ usr / src ". يمكن للمستخدمين الذين يعملون على الجهاز A الوصول إلى الملفات الموجودة على الجهاز B باستخدام الصيغة المعتادة لكتابة أسماء الملفات (على سبيل المثال: "/usr/src/cmd/login.c") ، وتقرر النواة نفسها ما إذا كان الملف بعيدًا أم محليًا . يتمتع المستخدمون الذين يعملون على الجهاز B بإمكانية الوصول إلى ملفاتهم المحلية (غير مدركين أن مستخدمي الجهاز A يمكنهم الوصول إلى نفس الملفات) ، ولكن ، بدورهم ، لا يمكنهم الوصول إلى الملفات الموجودة على الجهاز A. بالطبع ، هناك خيارات أخرى ممكنة ، في على وجه الخصوص ، تلك التي يتم فيها تثبيت جميع الأنظمة البعيدة في جذر النظام المحلي ، بحيث يتمكن المستخدمون من الوصول إلى جميع الملفات الموجودة على جميع الأنظمة.


الشكل 13.10. أنظمة الملفات بعد التثبيت عن بعد

دفعت أوجه التشابه بين تركيب أنظمة الملفات المحلية والسماح بالوصول إلى أنظمة الملفات البعيدة إلى تكييف وظيفة التركيب مع أنظمة الملفات البعيدة. في هذه الحالة ، يحتوي kernel على جدول تحميل تنسيق ممتد تحت تصرفه. من خلال تنفيذ وظيفة التحميل ، ينظم kernel اتصالاً بالشبكة بجهاز بعيد ويخزن المعلومات التي تميز هذا الاتصال في جدول التحميل.

هناك مشكلة مثيرة للاهتمام تتعلق بأسماء المسارات التي تتضمن "..". إذا كانت العملية تجعل المجلد الحالي من نظام ملفات بعيد ، فمن المرجح أن يؤدي استخدام أحرف ".." في الاسم إلى إرجاع العملية إلى نظام الملفات المحلي بدلاً من الوصول إلى الملفات الموجودة أعلى الدليل الحالي. بالعودة مرة أخرى إلى الشكل 13.10 ، لاحظ أنه عند إجراء عملية تنتمي إلى الجهاز A ، بعد تحديد الدليل الحالي مسبقًا "/ usr / src / cmd" الموجود في نظام الملفات البعيد ، سيتم تنفيذ الأمر



سيكون الدليل الحالي هو الدليل الجذر للجهاز A ، وليس الجهاز B. خوارزمية namei التي تعمل في نواة النظام البعيد ، بعد تلقي تسلسل الأحرف ".." ، تتحقق مما إذا كانت عملية الاستدعاء وكيلًا للعميل إذا كان الأمر كذلك ، يحدد ، ما إذا كان العميل يتعامل مع دليل العمل الحالي باعتباره جذر نظام الملفات البعيد.

يتخذ الاتصال بجهاز بعيد أحد شكلين: مكالمة إجراء عن بُعد أو مكالمة وظيفة نظام بعيد. في النموذج الأول ، يتحقق كل إجراء kernel يتعامل مع الفهارس لمعرفة ما إذا كان الفهرس يشير إلى ملف بعيد ، وإذا كان الأمر كذلك ، يرسل طلبًا إلى الآلة البعيدة لإجراء العملية المحددة. يتناسب هذا المخطط بشكل طبيعي مع البنية المجردة لدعم أنظمة الملفات من أنواع مختلفة ، الموضحة في الجزء الأخير من الفصل 5. وبالتالي ، يمكن أن يؤدي الوصول إلى ملف بعيد إلى بدء نقل العديد من الرسائل عبر الشبكة ، والتي يتم تحديد عددها من خلال عدد العمليات الضمنية على الملف ، مع زيادة مقابلة في وقت الاستجابة للطلب ، مع مراعاة وقت الانتظار المقبول في الشبكة. تتضمن كل مجموعة من العمليات عن بُعد إجراءات على الأقل لقفل الفهرس ، وحساب المرجع ، وما إلى ذلك. من أجل تحسين النموذج ، تم اقتراح حلول تحسين متنوعة تتعلق بدمج العديد من العمليات في استعلام واحد (رسالة) وتخزين البيانات الأكثر أهمية مؤقتًا (سم. ).


الشكل 13.11. فتح ملف بعيد


ضع في اعتبارك عملية تفتح ملفًا بعيدًا "/usr/src/cmd/login.c" ، حيث "src" هي نقطة التحميل. من خلال تحليل اسم الملف (باستخدام مخطط namei-iget) ، تكتشف النواة أن الملف قد تم حذفه وترسل طلبًا إلى الجهاز المضيف للحصول على الفهرس المقفل. بعد تلقي الإجابة المطلوبة ، تنشئ النواة المحلية نسخة من الفهرس في الذاكرة يتوافق مع الملف البعيد. ثم يتحقق kernel من حقوق الوصول الضرورية إلى الملف (للقراءة ، على سبيل المثال) عن طريق إرسال رسالة أخرى إلى الجهاز البعيد. تستمر الخوارزمية المفتوحة بالتوافق التام مع الخطة الموضحة في الفصل 5 ، وإرسال الرسائل إلى الآلة البعيدة حسب الحاجة ، حتى تكتمل الخوارزمية ويتم تحرير الفهرس. العلاقة بين هياكل بيانات kernel عند الانتهاء من الخوارزمية المفتوحة موضحة في الشكل 13.11.

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

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

في حالة وظيفة النظام المفتوح ، يشتمل طلب تنفيذ الوظيفة المرسلة إلى الجهاز البعيد على جزء من اسم الملف المتبقي بعد استبعاد مكونات اسم مسار البحث التي تميز الملف البعيد ، بالإضافة إلى العديد من العلامات. في المثال السابق لفتح الملف "/usr/src/cmd/login.c" ، ترسل النواة الاسم "cmd / login.c" إلى الآلة البعيدة. تتضمن الرسالة أيضًا بيانات اعتماد مثل رموز تعريف المستخدم والمجموعة ، والتي تكون مطلوبة للتحقق من أذونات الملف على جهاز بعيد. إذا تم تلقي استجابة من الجهاز البعيد تشير إلى وظيفة مفتوحة ناجحة ، فإن النواة المحلية تجلب فهرسًا مجانيًا في ذاكرة الجهاز المحلي وتضع علامة عليها كفهرس ملف بعيد ، وتخزن معلومات حول الجهاز البعيد والفهرس البعيد ، وتخصص بشكل روتيني إدخال جديد في جدول الملفات. بالمقارنة مع الفهرس الحقيقي على الجهاز البعيد ، فإن الفهرس الذي تملكه الآلة المحلية رسمي ولا ينتهك تكوين النموذج ، والذي يشبه إلى حد كبير التكوين المستخدم عند استدعاء الإجراء البعيد (الشكل 13.11). إذا وصلت دالة تستدعيها إحدى العمليات إلى ملف بعيد بواسطة واصفها ، فإن النواة المحلية تعرف من الفهرس (المحلي) أن الملف بعيد ، وتقوم بصياغة طلب يتضمن الوظيفة المطلوبة ، وإرسالها إلى الجهاز البعيد. يحتوي الطلب على مؤشر إلى الفهرس البعيد والذي من خلاله يمكن للعملية الساتلية تحديد الملف البعيد نفسه.

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

13.4 النموذج الموزع بدون عمليات النقل

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

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

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

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

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

على الرغم من المزايا التي يوفرها استخدام العمليات الساتلية ، فإن الحاجة إلى إدخالات مجانية في جدول العمليات في الممارسة العملية تصبح شديدة للغاية لدرجة أنه في معظم الحالات ، لا تزال خدمات عمليات الخادم تُستخدم لمعالجة الطلبات عن بُعد.


الشكل 13.12. رسم تخطيطي مفاهيمي للتفاعل مع الملفات البعيدة على مستوى النواة

13.5 الاستنتاجات

في هذا الفصل ، درسنا ثلاثة أنظمة للعمل مع الملفات الموجودة على الأجهزة البعيدة ، والتعامل مع أنظمة الملفات البعيدة على أنها امتداد للأنظمة المحلية. تظهر الاختلافات المعمارية بين هذه التخطيطات في الشكل 13.12. تختلف جميعها بدورها عن الأنظمة متعددة المعالجات الموضحة في الفصل السابق من حيث أن المعالجات هنا لا تشترك في الذاكرة الفعلية. يتكون نظام المعالج المحيطي من مجموعة مترابطة بإحكام من المعالجات تشترك في موارد الملفات الخاصة بالمعالج المركزي. يوفر الاتصال من نوع Newcastle وصولاً مخفيًا ("شفافًا") إلى الملفات البعيدة ، ولكن ليس عن طريق نواة نظام التشغيل ، ولكن من خلال استخدام مكتبة C خاصة. لهذا السبب ، يجب إعادة ترجمة جميع البرامج التي تنوي استخدام هذا النوع من الارتباط ، وهو ما يعد ، بشكل عام ، عيبًا خطيرًا في هذا المخطط. يشار إلى بُعد الملف باستخدام تسلسل خاص من الأحرف التي تصف الجهاز الذي يوجد عليه الملف ، وهذا عامل آخر يحد من إمكانية نقل البرامج.

في الأنظمة الموزعة الشفافة ، يتم استخدام تعديل لوظيفة نظام التحميل للوصول إلى الملفات البعيدة. يتم تمييز الفهارس الموجودة على النظام المحلي كملفات بعيدة ، وترسل النواة المحلية رسالة إلى النظام البعيد تصف وظيفة النظام المطلوبة ، ومعلماتها ، والفهرس البعيد. يتم دعم الاتصال في نظام موزع "شفاف" في شكلين: في شكل مكالمة إلى إجراء بعيد (يتم إرسال رسالة إلى الجهاز البعيد تحتوي على قائمة بالعمليات المرتبطة بالفهرس) وفي شكل مكالمة إلى وظيفة نظام بعيد (تصف الرسالة الوظيفة المطلوبة). الجزء الأخير من الفصل يناقش القضايا المتعلقة بمعالجة الطلبات عن بعد باستخدام عمليات وخوادم الأقمار الصناعية.

13.6 تمارين

*واحد. وصف تنفيذ وظيفة نظام الخروج في نظام مع المعالجات الطرفية. ما الفرق بين هذه الحالة ووقت خروج العملية عند استقبال إشارة غير معلومة؟ كيف يجب على النواة تفريغ محتويات الذاكرة؟

2. لا يمكن للعمليات تجاهل إشارات SIGKILL ؛ اشرح ما يحدث في النظام المحيطي عندما تتلقى العملية مثل هذه الإشارة.

* 3. وصف تنفيذ وظيفة نظام exec على نظام به معالجات محيطية.

* 4. كيف يجب أن يوزع المعالج المركزي العمليات بين المعالجات الطرفية من أجل موازنة الحمل الكلي؟

*خمسة. ماذا يحدث إذا لم يكن لدى المعالج المحيطي ذاكرة كافية لاستيعاب جميع العمليات التي تم إلغاء تحميلها عليه؟ كيف يتم تفريغ وتبديل العمليات في الشبكة؟

6. ضع في اعتبارك نظامًا يتم فيه إرسال الطلبات إلى خادم ملفات بعيد إذا تم العثور على بادئة خاصة في اسم الملف. دع العملية تستدعي execl ("/../ sftig / bin / sh"، "sh"، 0)؛ الملف التنفيذي موجود على جهاز بعيد ، ولكن يجب أن يعمل على النظام المحلي. اشرح كيف يتم ترحيل الوحدة البعيدة إلى النظام المحلي.

7. إذا احتاج المسؤول إلى إضافة آلات جديدة إلى نظام موجود باتصال مثل Newcastle ، فما هي أفضل طريقة لإبلاغ وحدات مكتبة C بهذا الأمر؟

*ثمانية. أثناء تنفيذ وظيفة exec ، تقوم النواة بالكتابة فوق مساحة العنوان للعملية ، بما في ذلك جداول المكتبة المستخدمة بواسطة ارتباط Newcastle لتتبع الارتباطات إلى الملفات البعيدة. بعد تنفيذ الوظيفة ، يجب أن تحتفظ العملية بالقدرة على الوصول إلى هذه الملفات من خلال واصفاتها القديمة. صف تنفيذ هذه النقطة.

*تسع. كما هو مبين في القسم 13.2 ، يؤدي استدعاء وظيفة نظام الخروج على الأنظمة التي بها اتصال نيوكاسل إلى إرسال رسالة إلى العملية المصاحبة ، مما يجبر الأخير على الإنهاء. يتم ذلك على مستوى إجراءات المكتبة. ماذا يحدث عندما تتلقى عملية محلية إشارة تخبرها بالخروج في وضع النواة؟

* 10. في نظام به ارتباط Newcastle ، حيث يتم تحديد الملفات البعيدة عن طريق إضافة بادئة خاصة للاسم ، كيف يمكن للمستخدم ، بتحديد ".." (الدليل الأصل) كمكون اسم الملف ، اجتياز نقطة التحميل عن بُعد؟

11. نعلم من الفصل السابع أن الإشارات المختلفة تتسبب في عملية تفريغ محتويات الذاكرة في الدليل الحالي. ماذا يجب أن يحدث إذا كان الدليل الحالي من نظام الملفات البعيد؟ ما الإجابة التي ستعطيها إذا كان النظام يستخدم علاقة مثل نيوكاسل؟

* 12. ما هي الآثار المترتبة على العمليات المحلية إذا تمت إزالة جميع عمليات الأقمار الصناعية أو الخادم من النظام؟

* 13. ضع في اعتبارك كيفية تنفيذ خوارزمية الارتباط في نظام موزع شفاف ، يمكن أن تكون معلماته اسمين للملفات البعيدة ، بالإضافة إلى خوارزمية exec ، المرتبطة بتنفيذ العديد من عمليات القراءة الداخلية. ضع في اعتبارك شكلين من أشكال الاتصال: مكالمة إجراء عن بُعد واستدعاء وظيفة نظام بعيد.

*أربعة عشرة. عند الوصول إلى الجهاز ، يمكن أن تدخل عملية الخادم في حالة التعليق ، والتي سيتم إخراجها منها بواسطة برنامج تشغيل الجهاز. بطبيعة الحال ، إذا كان عدد الخوادم محدودًا ، فلن يكون النظام قادرًا على تلبية طلبات الجهاز المحلي. ابتكر مخططًا موثوقًا به لا يتم تعليق جميع عمليات الخادم أثناء انتظار اكتمال الإدخال / الإخراج المرتبط بالجهاز. لن تنتهي وظيفة النظام عندما تكون جميع الخوادم مشغولة.


الشكل 13.13. تكوين الخادم الطرفي

*خمسة عشر. عندما يقوم المستخدم بتسجيل الدخول إلى النظام ، يقوم نظام خط المحطة الطرفية بتخزين المعلومات التي تفيد بأن الجهاز هو محطة طرفية للمشغل تقود مجموعة من العمليات. لهذا السبب ، عندما يضغط المستخدم على مفتاح "break" على لوحة المفاتيح الطرفية ، تتلقى جميع العمليات في المجموعة إشارة المقاطعة. ضع في اعتبارك تكوين النظام حيث يتم توصيل جميع المحطات فعليًا بجهاز واحد ، ولكن يتم تنفيذ تسجيل المستخدم منطقيًا على أجهزة أخرى (الشكل 13.13). في كل حالة ، يقوم النظام بإنشاء عملية getty للمحطة البعيدة. إذا تمت معالجة الطلبات إلى نظام بعيد بواسطة مجموعة من عمليات الخادم ، فلاحظ أنه عند تنفيذ إجراء الفتح ، يتوقف الخادم عن انتظار الاتصال. عند اكتمال وظيفة الفتح ، يعود الخادم إلى تجمع الخوادم ، ويقطع اتصاله بالمحطة. كيف يتم إرسال إشارة المقاطعة بالضغط على مفتاح "كسر" إلى عناوين العمليات المدرجة في نفس المجموعة؟

*السادس عشر. تعد مشاركة الذاكرة ميزة متأصلة في الأجهزة المحلية. من وجهة نظر منطقية ، يمكن تخصيص مساحة مشتركة من الذاكرة الفعلية (محلية أو بعيدة) للعمليات التي تنتمي إلى أجهزة مختلفة. صف تنفيذ هذه النقطة.

* 17. تفترض خوارزميات الترحيل والترحيل التي تمت مناقشتها في الفصل 9 استخدام جهاز استدعاء محلي. ما هي التغييرات التي يجب إجراؤها على هذه الخوارزميات من أجل التمكن من دعم أجهزة التفريغ عن بُعد؟

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

*تسعة عشر. عندما تصل إحدى العمليات إلى ملف بعيد ، فمن الممكن أن تجتاز العملية عدة أجهزة بحثًا عن الملف. خذ الاسم "/ usr / src / uts / 3b2 / os" كمثال ، حيث "/ usr" هو الدليل الذي ينتمي إلى الجهاز A ، "/ usr / src" هو نقطة التحميل لجذر الجهاز B ، " / usr / src / uts / 3b2 "هي نقطة تحميل جذر الآلة ج. السير عبر عدة آلات إلى وجهتها النهائية يسمى" متجر متعدد ". ومع ذلك ، إذا كان هناك اتصال شبكة مباشر بين الأجهزة A و C ، فإن إرسال البيانات عبر الجهاز B سيكون غير فعال. وصف ميزات تنفيذ "التسوق المتعدد" في نظام متصل بنيوكاسل وفي نظام موزع "شفاف".

في الوقت الحاضر ، يتم توزيع جميع أنظمة البرامج الكبيرة تقريبًا. النظام الموزع هو نظام تتركز فيه معالجة المعلومات ليس على جهاز كمبيوتر واحد ، ولكن يتم توزيعها بين عدة أجهزة كمبيوتر. عند تصميم الأنظمة الموزعة ، التي تشترك كثيرًا مع تصميم أي برنامج آخر ، لا يزال هناك عدد من الميزات المحددة التي يجب مراعاتها. تم ذكر بعض منها بالفعل في مقدمة الفصل 10 عندما نظرنا إلى بنية العميل / الخادم ، وتمت مناقشتها بمزيد من التفاصيل هنا.

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

يمكن تقسيم جميع أنظمة البرامج الحديثة إلى ثلاث فئات واسعة.

1. أنظمة برمجيات التطبيقات مصممة للعمل فقط على جهاز كمبيوتر شخصي واحد أو محطة عمل واحدة. يتضمن ذلك معالجات الكلمات وجداول البيانات وأنظمة الرسومات وما إلى ذلك.

2. الأنظمة المدمجة المصممة للعمل على معالج واحد أو على مجموعة متكاملة من المعالجات. وتشمل هذه أنظمة التحكم في الأجهزة المنزلية ، والأجهزة المختلفة ، وما إلى ذلك.

3. الأنظمة الموزعة التي تعمل فيها البرامج على مجموعة متكاملة بشكل فضفاض من المعالجات المتوازية المرتبطة عبر شبكة. وتشمل أنظمة الصراف الآلي المملوكة للبنك وأنظمة النشر وأنظمة البرامج المشتركة وما إلى ذلك.

في الوقت الحالي ، هناك حدود واضحة بين الفئات المدرجة لأنظمة البرمجيات ، والتي ستزداد ضبابية في المستقبل. بمرور الوقت ، مع توفر الشبكات اللاسلكية عالية السرعة على نطاق واسع ، سيكون من الممكن دمج الأجهزة ديناميكيًا مع أنظمة البرامج المضمنة ، مثل المنظمين الإلكترونيين بأنظمة أكثر عمومية.

هناك ست خصائص رئيسية للأنظمة الموزعة.

1. تقاسم الموارد.تسمح الأنظمة الموزعة بمشاركة موارد الأجهزة والبرامج مثل محركات الأقراص الثابتة والطابعات والملفات والمترجمات وما شابه ذلك المرتبطة عبر شبكة. من الواضح أن مشاركة الموارد ممكنة أيضًا في أنظمة متعددة المستخدمين ، ولكن في هذه الحالة ، يجب أن يكون الكمبيوتر المركزي مسؤولاً عن توفير الموارد وإدارتها.

2. الانفتاح.هذه هي القدرة على توسيع النظام عن طريق إضافة موارد جديدة. الأنظمة الموزعة هي أنظمة مفتوحة تربط الأجهزة والبرامج من مختلف الصانعين.

3. تماثل.في الأنظمة الموزعة ، يمكن تشغيل عمليات متعددة بشكل متزامن على أجهزة كمبيوتر مختلفة على الشبكة. يمكن (ولكن ليس من الضروري) أن تتفاعل هذه العمليات مع بعضها البعض أثناء تشغيلها.

4. قابلية التوسع.من حيث المبدأ ، جميع الأنظمة الموزعة قابلة للتطوير: من أجل تلبية المتطلبات الجديدة ، يمكن توسيع النظام عن طريق إضافة موارد حوسبة جديدة. ولكن من الناحية العملية ، يمكن أن يقتصر التراكم على الشبكة التي تربط أجهزة الكمبيوتر الفردية في النظام. إذا تم توصيل العديد من الأجهزة الجديدة ، فقد لا يكون النطاق الترددي للشبكة كافياً.

5. التسامح مع الخطأ.يعني وجود أجهزة كمبيوتر متعددة والقدرة على تكرار المعلومات أن الأنظمة الموزعة تقاوم بعض أخطاء الأجهزة والبرامج. يمكن أن تدعم معظم الأنظمة الموزعة ، في حالة حدوث خطأ ، وظائف جزئية على الأقل. يحدث الفشل الكامل للنظام فقط في حالة حدوث أخطاء في الشبكة.

6. الشفافية.تعني هذه الخاصية أنه يتم منح المستخدمين وصولاً شفافًا تمامًا إلى الموارد وفي نفس الوقت يتم إخفاء المعلومات حول توزيع الموارد في النظام عنهم. ومع ذلك ، في كثير من الحالات ، تساعد المعرفة المحددة لتنظيم النظام المستخدم على استخدام الموارد بشكل أفضل.

بالطبع ، الأنظمة الموزعة لها عدد من العيوب.

تعقيد.الأنظمة الموزعة أكثر تعقيدًا من الأنظمة المركزية. من الصعب فهم وتقييم خصائص الأنظمة الموزعة بشكل عام ، وكذلك اختبار هذه الأنظمة. على سبيل المثال ، لا يعتمد أداء النظام هنا على سرعة معالج واحد ، ولكن على النطاق الترددي للشبكة وسرعة المعالجات المختلفة. يمكن أن يؤثر نقل الموارد من جزء من النظام إلى جزء آخر بشكل كبير في أداء النظام.

أمان.عادة ، يمكن الوصول إلى النظام من عدة أجهزة مختلفة ، ويمكن عرض الرسائل الموجودة على الشبكة أو اعتراضها. لذلك ، في النظام الموزع ، يكون الحفاظ على الأمن أكثر صعوبة.

القدرة على التحكم.يمكن أن يتكون النظام من أجهزة كمبيوتر من أنواع مختلفة ، حيث يمكن تثبيت إصدارات مختلفة من أنظمة التشغيل. يمكن أن تنتشر الأخطاء على جهاز واحد إلى أجهزة أخرى مع عواقب غير متوقعة. لذلك ، هناك حاجة إلى مزيد من الجهد لإدارة وصيانة النظام في حالة عمل.

عدم القدرة على التنبؤ.كما يعلم جميع مستخدمي الويب ، فإن استجابة الأنظمة الموزعة لأحداث معينة لا يمكن التنبؤ بها وتعتمد على الحمل الكامل للنظام والتنظيم وحمل الشبكة. نظرًا لأن كل هذه المعلمات يمكن أن تتغير باستمرار ، فإن الوقت الذي يقضيه في تنفيذ طلب المستخدم في وقت أو آخر يمكن أن يختلف بشكل كبير.

عند مناقشة مزايا وعيوب الأنظمة الموزعة ، يتم تحديد عدد من مشاكل التصميم الحرجة لهذه الأنظمة (الجدول 9.1).

الجدول 9.1. مشاكل تصميم النظم الموزعة

مشكلة التصميم وصف
تحديد الموارد توجد الموارد في النظام الموزع على أجهزة كمبيوتر مختلفة ، لذلك يجب التفكير في نظام تسمية الموارد بحيث يمكن للمستخدمين الوصول بسهولة والرجوع إلى الموارد التي يحتاجون إليها. مثال على ذلك هو نظام محدد موقع المعلومات (URL) ، والذي يحدد عناوين صفحات الويب. بدون نظام تعريف يسهل إدراكه وشامله ، لن يتمكن مستخدمو النظام من الوصول إلى معظم الموارد.
مجال الاتصالات تعد قابلية التشغيل العالمية للإنترنت والتنفيذ الفعال لبروتوكولات TCP / IP في الإنترنت لمعظم الأنظمة الموزعة أمثلة على أكثر الطرق فعالية لتنظيم الاتصال بين أجهزة الكمبيوتر. ومع ذلك ، عندما يتم فرض متطلبات خاصة على الأداء والموثوقية وما إلى ذلك ، يمكن استخدام طرق بديلة للاتصال بالنظام.
جودة خدمة النظام تعكس جودة الخدمة التي يقدمها النظام أدائه وقابلية تشغيله وموثوقيته. تتأثر جودة الخدمة بعدد من العوامل: توزيع عمليات النظام ، وتخصيص الموارد ، وأجهزة النظام والشبكة ، وإمكانية تكيف النظام.
هيكلة البرمجيات تصف هندسة البرمجيات توزيع وظائف النظام بين مكونات النظام ، وكذلك توزيع هذه المكونات عبر المعالجات. إذا كنت بحاجة إلى الحفاظ على خدمة نظام عالية الجودة ، فإن اختيار البنية المناسبة يصبح عاملاً حاسمًا.

التحدي الذي يواجه مصممي الأنظمة الموزعة هو تصميم البرامج أو الأجهزة لتوفير جميع الخصائص المطلوبة للنظام الموزع. يتطلب هذا معرفة مزايا وعيوب مختلف هياكل الأنظمة الموزعة. يبرز هنا نوعان مرتبطان من معماريات النظام الموزع.

1. هيكل العميل / الخادم.في هذا النموذج ، يمكن اعتبار النظام على أنه مجموعة من الخدمات التي تقدمها الخوادم للعملاء. في مثل هذه الأنظمة ، تختلف الخوادم والعملاء بشكل كبير عن بعضهم البعض.

2. هندسة الكائنات الموزعة.في هذه الحالة ، لا توجد اختلافات بين الخوادم والعملاء ، ويمكن اعتبار النظام على أنه مجموعة من الكائنات المتفاعلة ، ولا يهم موقعها حقًا. لا يوجد تمييز بين مقدم الخدمة ومستخدميه.

في النظام الموزع ، يمكن تنفيذ مكونات النظام المختلفة بلغات برمجة مختلفة وتشغيلها على أنواع مختلفة من المعالجات. نماذج البيانات وعرض المعلومات وبروتوكولات الاتصال ليست بالضرورة من نفس النوع في نظام موزع. وبالتالي ، تتطلب الأنظمة الموزعة برامج يمكنها إدارة هذه الأجزاء غير المتجانسة وتضمن التفاعل وتبادل البيانات فيما بينها. الوسيطةيشير تحديدًا إلى هذه الفئة من البرامج. إنه ، كما كان ، في المنتصف بين أجزاء مختلفة من المكونات الموزعة للنظام.

عادة ما يتم تصميم الأنظمة الموزعة بنهج موجه للكائنات. يتم إنشاء هذه الأنظمة من أجزاء غير محكمة التكامل ، يمكن لكل منها التفاعل مباشرة مع كل من المستخدم والأجزاء الأخرى من النظام. يجب أن تستجيب هذه الأجزاء ، كلما أمكن ذلك ، للأحداث المستقلة. كائنات البرامج القائمة على هذه المبادئ هي مكونات طبيعية للأنظمة الموزعة. إذا لم تكن بالفعل على دراية بمفهوم الأشياء.