أجهزة الكمبيوتر شبابيك إنترنت

الهندسة المعمارية الموزعة المُدارة. بنية نظام التحكم الموزع على أساس بيئة الحوسبة متعددة خطوط الأنابيب القابلة لإعادة التكوين L-Net أنظمة الملفات الموزعة "الشفافة"

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

بدأ تطبيق معماريات الهاتف المحمول في الممارسة العملية. هذا ينطبق على كل من أنظمة قواعد البيانات وتطبيقات الويب.

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

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

تم إنشاء معيار بروتوكول التطبيقات اللاسلكية (WAP) وهو مدعوم بالفعل من قبل بعض طرازات الهواتف المحمولة. استنادًا إلى WAP و XML ، طور W3C لغة ترميز للاتصالات اللاسلكية ، WML (لغة التوصيف اللاسلكية).

في تطوير AIS ، بدأ إيلاء المزيد من الاهتمام للبيانات الوصفية. هنا ، يتم اتخاذ خطوات في اتجاهين - توحيد عرض البيانات الوصفية وضمان دعمها في النظام.

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

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

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

بعد ذلك ، يجب الإشارة إلى معيار نموذج المستودع المشترك (CWM) لتمثيل البيانات الوصفية لمستودع البيانات التي طورها اتحاد OMG ، استنادًا إلى معيار OIM (نموذج المعلومات المفتوحة) الذي تم إنشاؤه مسبقًا لأغراض أوسع من قبل اتحاد MDC (Meta Data Coalition). .

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

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

تم تطوير معيار لغة النمذجة الموحدة (UML) ، الذي يوفر تمثيل البيانات الوصفية لتحليل الكائن المرئي CASE وأدوات التصميم ، بواسطة اتحاد OMG. هذه اللغة مدعومة في العديد من منتجات برامج CASE. كما أنشأت OMG أيضًا معيار XML Metadata Interchange (XMI) لتبادل البيانات الأولية بين أدوات CASE باستخدام UML.

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

يتواصل العمل على تطوير المعايير الحالية وإنشاء معايير جديدة لعرض البيانات الوصفية لنظام AIS. يمكن العثور على مزيد من المعلومات التفصيلية حول المعايير المعنية في الموسوعة.

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

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

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

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


أرز. 1.1

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


أرز. 1.2

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

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


أرز. 1.3

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

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


أرز. 1.4

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

في الفصل السابق ، نظرنا إلى الأنظمة متعددة المعالجات المقترنة بإحكام مع الذاكرة المشتركة ، وهياكل بيانات النواة المشتركة ، ومجمع مشترك يتم من خلاله استدعاء العمليات. في كثير من الأحيان ، ومع ذلك ، فمن المستحسن تخصيص المعالجات بطريقة تكون مستقلة عن بيئة التشغيل وظروف التشغيل لأغراض مشاركة الموارد. لنفترض ، على سبيل المثال ، أن مستخدم الكمبيوتر الشخصي يحتاج إلى الوصول إلى الملفات الموجودة على جهاز أكبر ، ولكن في نفس الوقت يحتفظ بالسيطرة على الكمبيوتر الشخصي. على الرغم من أن بعض البرامج ، مثل 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 نيو كاسل نوع الاتصال

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

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


"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 ، والتي تنقل التحكم إلى الطفل الذي يولده ؛ الطفل المحلي في حوار مع طفل القمر الصناعي البعيد الذي يتم تخزين عناوينه بواسطة روتين المكتبة. هذا التفسير لوظيفة 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 تمارين

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


يمكن تخيل يتكون من المكونات التالية (الشكل III-16)

ثالثا 03.2. تطبيقات خادم الملفات.

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


الايجابيات:

إيجابيات بنية خادم الملفات:

سهولة التنظيم

لا يتعارض مع المتطلبات اللازمة لقاعدة البيانات للحفاظ على سلامتها وموثوقيتها.

ازدحام الشبكة؛

استجابة غير متوقعة لطلب.

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

ثالثا 03.2. ب تطبيقات الخادم العميل.

في هذه الحالة ، هناك توزيع للمسؤوليات بين الخادم والعميل. اعتمادا على كيفية فصلها تميز سمينو عميل رفيع.


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

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

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

ثالثا 03.2. ج بنية خادم العميل ثنائية وثلاثية المستويات.

جميع البنى التي تمت مناقشتها أعلاه من مستويين. أنها تفرق بين مستوى العميل ومستوى الخادم. بالمعنى الدقيق للكلمة ، يتكون IC من ثلاثة مستويات منطقية:

· مستوى المستخدم؛

مستوى التطبيق:

· طبقة البيانات.

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

خادم البيانات

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

الجدول III-5 تطبيق أنواع مختلفة من البنى

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

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

ثالثا 03.2. د معمارية الكائن الموزعة.

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

مدير برنامج تشغيل ODBC
سائق 1
سائق ك
DB 1
دي بي ك
العمل مع SQL

تتضمن بنية ODBC المكونات:

1. التطبيق (مثل IS). يقوم بتنفيذ المهام: يطلب الاتصال بمصدر البيانات ، ويرسل استعلامات SQL إلى مصدر البيانات ، ويصف مساحة التخزين وتنسيق استعلامات SQL ، ويتعامل مع الأخطاء ويخطر المستخدم بها ، ويقوم بتنفيذ المعاملات أو يتراجع عنها ، ويطلب الاتصال بـ مصدر البيانات.

2. إدارة الأجهزة. يقوم بتحميل برامج التشغيل عند الطلب ، ويوفر واجهة واحدة لجميع التطبيقات ، وواجهة مسؤول ODBC هي نفسها وبغض النظر عن نظام إدارة قواعد البيانات (DBMS) الذي سيتفاعل معه التطبيق. يعد Driver Manager الذي توفره Microsoft مكتبة تحميل ديناميكي (DLL).

3. يعتمد السائق على نظام إدارة قواعد البيانات. برنامج تشغيل ODBC هو مكتبة ارتباط ديناميكي (DLL) تقوم بتنفيذ وظائف ODBC وتتفاعل مع مصدر بيانات. السائق هو برنامج يعالج طلبًا لوظيفة محددة لـ DBMS (يمكنه تعديل الطلبات وفقًا لنظام DBMS) وإرجاع النتيجة إلى التطبيق. يجب أن يزود كل نظام DBMS يدعم تقنية ODBC مطوري التطبيقات ببرنامج تشغيل لنظام DBMS.

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

نموذج ديناميكي

يفترض هذا النموذج العديد من الجوانب ، حيث يتم استخدام 5 رسوم بيانية على الأقل في UML ، انظر ص. 2.04.2- 2.04.5.

النظر في الجانب الإداري. نموذج الحوكمة يكمل النماذج الهيكلية.

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

هناك نوعان رئيسيان من التحكم في أنظمة البرمجيات.

1. الإدارة المركزية.

2. الإدارة القائمة على الحدث.

يمكن أن تكون الإدارة المركزية:

· الهرمية- على أساس مبدأ "عودة الاتصال" (هذه هي الطريقة التي تعمل بها البرامج التعليمية في أغلب الأحيان)

· نموذج المرسلالذي يستخدم للأنظمة المتوازية.

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

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

مثال على هذه الإدارة هو تنظيم التطبيقات في Windows.

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

واجهة المستخدم

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

ثالثا 03.4. أ الخصائص النفسية الجسدية للشخص المرتبطة بإدراك المعلومات ومعالجتها.

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

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

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

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

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

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

ثالثا 03.4. ب المعايير الأساسية لتقييم الواجهات

أظهرت العديد من الاستطلاعات والدراسات الاستقصائية التي أجرتها شركات تطوير البرمجيات الرائدة أن المستخدمين يقدرون في الواجهة:

1) سهولة الإتقان والحفظ - على وجه التحديد تقدير وقت الإتقان ومدة الحفاظ على المعلومات والذاكرة ؛

2) سرعة تحقيق النتائج عند استخدام النظام ، والتي يتم تحديدها من خلال عدد الأوامر والإعدادات التي يتم إدخالها أو تحديدها بواسطة الماوس ؛

3) الرضا الذاتي عن تشغيل النظام (سهولة الاستخدام ، التعب ، إلخ).

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

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

ثالثا 03.4. ج أنواع واجهات المستخدم

يتم تمييز الأنواع التالية من واجهات المستخدم:

بدائي

حرية الملاحة

التلاعب المباشر.

الواجهة بدائية

بدائيتسمى الواجهة التي تنظم التفاعل مع المستخدم وتستخدم في وضع وحدة التحكم. الانحراف الوحيد عن العملية المتسلسلة التي توفرها البيانات هو التنقل عبر مجموعات متعددة من البيانات.

واجهة القائمة.

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

(مادة الموقع 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. موارد الإنترنت.