مجموعة العمل

مجموعة العمل هي مفهوم في علوم الحاسوب يحدد مقدار الذاكرة التي تتطلبها عملية ما في فترة زمنية معينة. [ 1 ]

تعريف

يُعرّف بيتر دينينغ (1968) "مجموعة المعلومات العاملة"دبليو(ت،τ){\displaystyle W(t,\tau )}عملية في وقتت{\displaystyle t}أن تكون مجموعة المعلومات التي يشير إليها النظام خلال الفترة الزمنية للنظام(ت-τ،ت){\displaystyle (t-\tau ,t)}[ 2 ] عادةً ما تُعتبر وحدات المعلومات المعنية صفحات ذاكرة . ويُقترح أن يكون هذا تقريبًا لمجموعة الصفحات التي سيصل إليها البرنامج في المستقبل (على سبيل المثال، خلال العملية التالية) .τ{\displaystyle \tau }(وحدات زمنية)، وبشكل أكثر تحديدًا، يُقترح أن يكون مؤشرًا على الصفحات التي يجب الاحتفاظ بها في الذاكرة الرئيسية للسماح بتحقيق أكبر قدر من التقدم في تنفيذ تلك العملية.

الأساس المنطقي

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

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

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

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

بمعنى آخر، تمنع استراتيجية مجموعة العمل حدوث خلل في المعالجة مع الحفاظ على أعلى مستوى ممكن من تعدد البرامج. وبالتالي، فإنها تُحسّن استخدام وحدة المعالجة المركزية وإنتاجيتها.

تطبيق

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

لتجنب عبء الاحتفاظ بقائمة بآخر k صفحة تمت الإشارة إليها، غالبًا ما يتم تنفيذ مجموعة العمل من خلال تتبع الوقت t لآخر إشارة، واعتبار مجموعة العمل هي جميع الصفحات التي تمت الإشارة إليها خلال فترة زمنية معينة.

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

المتغيرات

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

توجد نظائر لمجموعة العمل لموارد محدودة أخرى، وأهمها العمليات . إذا تطلبت مجموعة من العمليات تفاعلاً متكرراً بين عمليات متعددة، فإنها تمتلكمجموعة عمليات العمل التي يجب جدولتهابشكل مشتركمن أجل التقدم: [ 3 ]

تحتوي البرامج المتوازية على مجموعة عمليات يجب جدولتها بشكل مشترك (جدولة للتنفيذ في وقت واحد) حتى يحرز البرنامج المتوازي تقدماً.

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

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

انظر أيضاً

مراجع

  1. دينينغ، بيتر ج. (2021-02-02). "تحليلات مجموعة العمل". مجلة ACM Computing Surveys . 53 (6). رابطة آلات الحوسبة (ACM): 1-36 . doi : 10.1145/3399709 . ISSN 0360-0300 . 
  2. دينينغ، بيتر ج. (1968). "نموذج مجموعة العمل لسلوك البرنامج" (ملف PDF) . اتصالات رابطة مكائن ​​الحوسبة . 11 (5): 323-333 . doi : 10.1145/363095.363141 . S2CID 207669410 . 
  3. أوسترهوت، جيه كيه (1982). "تقنيات الجدولة للأنظمة المتزامنة" (ملف PDF) . وقائع المؤتمر الدولي الثالث حول أنظمة الحوسبة الموزعة : 22-30 .

للمزيد من القراءة

  • تانينباوم، أندرو (2009). أنظمة التشغيل الحديثة، الطبعة الثالثة. الصفحات 209-210
  • دينينج، بي جيه (1980). مجموعات العمل في الماضي والحاضر. معاملات IEEE في هندسة البرمجيات، 1/1980، المجلد SE-6، الصفحات 64-84.
  • سيلبرشاتز، أ.، جالفين، ب.ب.، وجاجن، ج. (2005). مفاهيم أنظمة التشغيل، الطبعة السابعة. بالاتينو: وايلي. ص 346.