أساسيات مشاركة الموارد

مكتمل

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

  • توافر التوازي في التطبيق
  • إمكانية التطبيق لتغيير الحجم بشكل جيد مع المزيد من المعالجات

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

مشاركة الموارد في المساحة والوقت

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

Round-robin scheduling. (a) A queue of processes, with the process at the head. Process A is currently scheduled at a CPU, and the one next to it, B, is ready to get running once A is context-switched. (b) The queue when A uses up its quantum, gets context-switched, and B gets scheduled.

الشكل 7: جدولة الترتيب الدوري. (A) قائمة انتظار من العمليات، تتواجد العملية على رأسها. تتم حاليًا جدولة العملية A في CPU، والعملية المجاورة لها، B، جاهزة للبدء في التشغيل بمجرد تبديل السياق A. (b) قائمة الانتظار، عندما يستخدم A المقدار الخاص به، تقوم بتبديل السياق، وتتم جدولة B.

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

‏‫اختبر معلوماتك

1.

يمكن مشاركة مكون نظام:

2.

صواب أم خطأ؟ تسمح مشاركة الوقت للعمليات بمشاركة مورد في نفس الوقت.