نقاش:جدولة (حاسوب)/أرشيف 1

أرشيف هذه الصفحة صفحة أرشيف. من فضلك لا تعدلها. لإضافة تعليقات جديدة عدل صفحة النقاش الأصيلة.
أرشيف 1


غير معنون

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

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

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

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

أنواع جدولة نظام التشغيل

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

جدولة العمليات

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

جدولة طويلة الأجل

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

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

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

الجدولة متوسطة الأجل

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

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

جدولة على المدى القصير

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

يعتمد المجدول الوقائي على جهاز توقيت فاصل قابل للبرمجة يستدعي معالج المقاطعة الذي يعمل في وضع kernel ويقوم بتنفيذ وظيفة الجدولة.

المرسل

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

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

جدولة التخصصات

______________________________________________________________________________________________________________________________________

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

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

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

إن أبسط خوارزميات الجدولة ذات الجهد الأفضل هي round-robin و queuing (خوارزمية جدولة عادلة بحد أقصى min max min min compuling algorithm) و جدولة معقولة نسبياً و أقصى إنتاجية. إذا تم تقديم نوعية خدمة متميزة أو مضمونة ، في مقابل الاتصال الأفضل جهدًا ، فيمكن استخدام قوائم الانتظار العادلة المرجحة.

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

من يأتي اولا، يخدم اولا

لمقال الرئيسي: FIFO (الحوسبة والإلكترونيات)

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

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

أقصر وقت متبقي أولاً

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

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

جدولة أولوية وقائية ثابتة

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

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

جدولة Round-robin

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

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

جدولة طوابير متعددة المستويات

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

جدولة الحفاظ على العمل

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

جدولة مشاكل التحسين

ناك العديد من مشاكل الجدولة التي يكون فيها الهدف هو تحديد الوظيفة التي تذهب إلى أي محطة في أي وقت ، بحيث يتم تقليل الحد الأدنى الكلي:

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

جدولة يدوية

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

  • أي مشاكل تجويع الموارد
  • القدرة على التنبؤ عالية جدا. يسمح بتنفيذ النظم في الوقت الحقيقي الثابت
  • تقريبا لا النفقات العامة
  • قد لا يكون الأمثل لجميع التطبيقات
  • الفعالية تعتمد بشكل كامل على التنفيذ

اختيار خوارزمية الجدولة

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

على سبيل المثال ، يستخدم Windows NT / XP / Vista قائمة انتظار الملاحظات متعددة المستويات ، وهي عبارة عن مجموعة من الجدولة الوقائية ذات الأولوية الثابتة ، و round-robin ، والخوارزميات لأول مرة. في هذا النظام ، يمكن للخيوط أن تزيد أو تنقص بشكل حيوي في الأولوية اعتمادًا على ما إذا كانت قد تمت صيانتها بالفعل ، أو إذا كانت تنتظر على نطاق واسع. يتم تمثيل كل مستوى أولوية من خلال قائمة الانتظار الخاصة به ، مع جدولة round-robin بين مؤشرات الترابط ذات الأولوية العليا و FIFO بين الأفضليات ذات الأولوية المنخفضة. وبهذا المعنى ، يكون وقت الاستجابة قصيرًا لمعظم مؤشرات الترابط ، ويتم إكمال مؤشرات النظام القصيرة ولكن الحرجة بسرعة كبيرة. بما أن مؤشرات الترابط لا يمكن أن تستخدم سوى وحدة زمنية واحدة من round-robin في قائمة الانتظار ذات الأولوية الأعلى ، فإن التجويع يمكن أن يكون مشكلة في سلاسل رسائل ذات أولوية عليا أطول.

عمليات جدولة عملية نظام التشغيل

________________________________________________________________________________________________________________________________________ قد تكون الخوارزمية المستخدمة بسيطة مثل round-robin حيث تعطى كل عملية وقتًا متساوًا (على سبيل المثال ms 1 ، عادة بين 1 ms و 100 ms) في قائمة بالدراجات. لذا ، تنفذ العملية A لمدة 1 مللي ثانية ، ثم تتم معالجة B ، ثم تتم معالجة C ، ثم العودة إلى العملية A.

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

نظام التشغيل / 360 والخلفاء

كان نظام IBM OS / 360 متاحًا مع ثلاثة برامج جدولة مختلفة. كانت الاختلافات إلى حد أن المتغيرات كانت تُعتبر في كثير من الأحيان ثلاثة أنظمة تشغيل مختلفة:

  • يوفر خيار جدولة Single Sequential ، المعروف أيضًا باسم برنامج التحكم الأولي (PCP) تنفيذًا متسلسلًا لمجموعة واحدة من المهام.
  • يوفر خيار جدولة التسلسل المتعدد ، المعروف باسم Multiprogramming مع عدد ثابت من المهام (MFT) تنفيذ مهام متزامنة متعددة. كان التنفيذ محكومًا بأولوية كان لها تقصير لكل تيار أو يمكن طلبه بشكل منفصل لكل وظيفة. أضاف MFT الإصدار II المهام الفرعية (مؤشرات الترابط) التي تم تنفيذها في أولوية استناداً إلى مهمة الأصل. حدّد كل مسار عمل الحد الأقصى لمقدار الذاكرة التي يمكن استخدامها بواسطة أي مهمة في هذا الدفق.
  • أظهر الخيار "جدولة الأولوية المتعددة" أو "البرمجة المتعددة مع عدد متغير من المهام" (MVT) ، المهام الفرعية منذ البداية ؛ طلبت كل وظيفة الأولوية والذاكرة المطلوبة قبل التنفيذ.

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

شبابيك

نظم MS-DOS و Microsoft Windows الأوائل جدًا لم تكن تعدد المهام ، وعلى هذا النحو لم تبرز جدولة. يستخدم Windows 3.1 x جدولة غير وقائية ، وهذا يعني أنه لم مقاطعة البرامج. وقد اعتمد البرنامج على إنهاء أو إخبار نظام التشغيل بأنه لا يحتاج إلى المعالج حتى يمكنه الانتقال إلى عملية أخرى. وهذا ما يسمى عادة تعدد المهام التعاونية. قدم نظام التشغيل Windows 95 جدولة وقائية بدائية. ومع ذلك ، بالنسبة إلى الدعم القديم الذي تم اختياره للسماح بتشغيل التطبيقات ذات 16 بت بدون إجراء استباقي. تستخدم أنظمة التشغيل المستندة إلى Windows NT قائمة انتظار ردود الفعل متعددة المستويات. يتم تحديد مستويات الأولوية 32 ، من 0 إلى 31 ، مع الأولويات من 0 إلى 15 "الأولويات" والأولويات من 16 إلى 31 الأولويات في الوقت الحقيقي لينة ، تتطلب امتيازات لتعيين. 0 محجوز لنظام التشغيل. يمكن للمستخدمين اختيار 5 من هذه الأولويات لتعيين تطبيق قيد التشغيل من تطبيق إدارة المهام ، أو من خلال واجهات برمجة التطبيقات لإدارة سلاسل المحادثات. قد يغيّر النواة مستوى الأولوية لمؤشر الترابط اعتمادًا على استخدام I / O واستخدام وحدة المعالجة المركزية (CPU) وما إذا كان تفاعلياً (أي يقبل ويستجيب إلى مدخلات من البشر) ، مما يرفع أولوية العمليات التفاعلية والضوابط I / O ويقلل من عمليات ربط وحدة المعالجة المركزية (CPU) ، لزيادة استجابة التطبيقات التفاعلية. تم تعديل المجدول في نظام التشغيل Windows Vista لاستخدام سجل عداد دورة المعالجات الحديثة لتتبع عدد دورات وحدة المعالجة المركزية (CPU) بالضبط التي تم تنفيذها ، بدلاً من مجرد استخدام فاصل زمني يقطع routine.Vista أيضاً جدولة الأولوية لقائمة انتظار I / O بحيث لا تتداخل defragmenters القرص والبرامج الأخرى مثل مع عمليات المقدمة.

Classic Mac OS و MacOS

يستخدم نظام التشغيل Mac OS 9 جدولة تعاونية للخيوط ، حيث تتحكم إحدى العمليات في عدة خيوط تعاونية ، كما توفر جدولة استباقية لمهام المعالجة المتعددة. النواة جداول المهام المتعددة المعالجة باستخدام خوارزمية جدولة وقائية. يتم تشغيل جميع عمليات مدير العمليات ضمن مهمة معالجة متعددة خاصة ، تسمى "المهمة الزرقاء". ومن المقرر أن تكون هذه العمليات متعاونة ، باستخدام خوارزمية جدولة round-robin ؛ عملية تعطي تحكم المعالج إلى عملية أخرى بشكل صريح استدعاء دالة حظر مثل WaitNextEvent. كل عملية لها نسخة خاصة بها من مدير سلاسل العمليات التي تقوم بجدولة سلاسل العمليات الخاصة بهذه العملية بشكل تعاوني ؛ مؤشر ترابط يؤدي إلى التحكم في المعالج إلى مؤشر ترابط آخر عن طريق استدعاء YieldToAnyThread أو YieldToThread.

تستخدم macOS قائمة انتظار متعددة المستويات من ردود الفعل ، مع أربعة نطاقات أولوية للخيوط - الأسبقية العادية ، أولوية النظام ، وضع kernel فقط ، ووقت حقيقي. يتم جدولة المواضيع بشكل استباقي ؛ كما يدعم macOS خيوط مجدولة تعاونية في تنفيذها لإدارة الخيط في الكربون.

AIX

في AIX الإصدار 4 ، هناك ثلاث قيم ممكنة لسياسة جدولة الخواتم:

  • First In، First Out: بمجرد جدولة موضوع مع هذه السياسة ، فإنه يتم تشغيله حتى اكتماله ما لم يتم حظره ، فإنه سيؤدي طواعية إلى التحكم في وحدة المعالجة المركزية (CPU) ، أو يصبح مؤشر ترابط ذو أولوية أعلى. فقط مؤشرات الترابط ذات الأولوية الثابتة يمكن أن تحتوي على نهج جدولة FIFO.
  • Round Robin: هذا مشابه للمخطط round-robin المجدول AIX الإصدار 3 استناداً إلى شرائح الوقت 10ms. عندما يتحكم مؤشر الترابط RR في نهاية شريحة الوقت ، فإنه ينتقل إلى ذيل قائمة انتظار مؤشرات الترابط للأولوية الخاصة به. فقط مؤشرات الترابط ذات الأولوية الثابتة يمكن أن يكون لها نهج جدولة Round Robin.
  • أخرى: يتم تعريف هذه السياسة بواسطة POSIX1003.4a على أنها محددة بالتطبيق. في AIX الإصدار 4 ، يتم تعريف هذه السياسة لتكون مكافئة لوائح الراديو ، فيما عدا أنها تنطبق على الخيوط ذات الأولوية غير الثابتة. إعادة حساب قيمة الأولوية لمؤشر الترابط قيد التشغيل في كل ساعة المقاطعة يعني أن مؤشر ترابط قد يفقد التحكم بسبب ارتفاع قيمة الأولوية الخاصة به أعلى من مؤشر ترابط dispatchable آخر. هذا هو سلوك AIX الإصدار 3.

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

لينكس

Linux 2.4

في Linux 2.4 ، تم استخدام جدولة O (n) مع قائمة انتظار متعددة المستويات للملاحظات ذات مستويات أولوية تتراوح من 0 إلى 140 ؛ يتم حجز 0-99 لمهام في الوقت الحقيقي و100-140 تعتبر مستويات مهمة لطيفة. بالنسبة للمهام في الوقت الفعلي ، كان مقدار الوقت لعمليات التحويل 200 ميلي ثانية تقريبًا ، وللمهام الجميلة حوالي 10 مللي ثانية. [بحاجة لمصدر] تم تشغيل الجدولة عبر طابور التشغيل لجميع العمليات الجاهزة ، مما يتيح بدء العمليات ذات الأولوية القصوى أولاً وتشغيلها من خلال شرائح وقتهم ، وبعد ذلك سيتم وضعها في صف منتهي الصلاحية منتهي الصلاحية. عندما تكون قائمة الانتظار النشطة فارغة ، ستصبح قائمة الانتظار المنتهية الصلاحية قائمة انتظار نشطة والعكس صحيح.

ومع ذلك ، قامت بعض توزيعات Linux في المؤسسة مثل SUSE Linux Enterprise Server باستبدال هذا المجدول مع backport من جدولة O (1) (التي تم صيانتها بواسطة Alan Cox في سلسلة Linux 2.4-kernel الخاصة به) إلى نواة Linux 2.4 المستخدمة في التوزيع .

Linux 2.6.0 to Linux 2.6.22

في الإصدارات 2.6.0 إلى 2.6.22 ، استخدمت النواة جدولة O (1) تم تطويرها بواسطة Ingo Molnar والعديد من مطوري النواة الآخرين أثناء تطوير Linux 2.5. بالنسبة للكثير من النواة في الإطار الزمني ، طور Con Kolivas مجموعة من التحسينات التي ساعدت على تحسين التفاعل مع هذا المجدول أو حتى استبداله ببرامج جدولة خاصة به.

منذ Linux 2.6.23

عمل كون كوليفاز ، وأهمها تنفيذ "جدولة عادلة" المسمى "الدور النهائي للدوران المتتالي" ، ألهم Ingo Molnár لتطوير المجدول العادل تماما كبديل لجدولة سابقة لـ O (1) ، معتمدا Kolivas في إعلانه. [15] يعد CFS أول تطبيق لجدولة عملية الانتظار المنتظرة والمستخدمة على نطاق واسع في نظام التشغيل للأغراض العامة. [16]

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

يعتبر Brain Fuck Scheduler (BFS) ، الذي تم إنشاؤه أيضًا بواسطة Con Kolivas ، بديلاً عن CFS.

FreeBSD

يستخدم FreeBSD قائمة انتظار الملاحظات متعددة المستويات بأولويات تتراوح من 0-255. يتم حجز 0-63 للمقاطعات ، و64-127 للنصف الأعلى من النواة ، و 128–159 لخيوط المستخدم في الوقت الحقيقي ، و 160-223 لخيوط المستخدم المشتركة للوقت ، و 224-255 لخيوط المستخدم الخاملة. أيضا ، مثل لينكس ، فإنه يستخدم إعداد قائمة الانتظار النشطة ، ولكن لديه أيضا طابور خمول.

NetBSD

يستخدم NetBSD قائمة انتظار الملاحظات متعددة المستويات بأولويات تتراوح من 0 إلى 223. يتم حجز 0-63 للخيوط المشتركة للوقت (افتراضي ، سياسة SCHED_OTHER) ، 64-95 لخيوط المستخدم التي دخلت حيز النواة ، 96-128 لخيوط النواة ، 128-191 لخيوط الوقت الحقيقي للمستخدم (سياسات SCHED_FIFO و SCHED_RR) و 192–223 لمقاطعات البرامج.

Solaris

تستخدم Solaris قائمة انتظار الملاحظات متعددة المستويات بأولويات تتراوح بين 0 و 169. يتم حفظ الأولويات من 0 إلى 59 للخيوط المشتركة للوقت ، 60-99 لخيوط النظام ، 100–159 لخيوط الوقت الحقيقي ، و 160–169 للقاطعات ذات الأولوية المنخفضة . على عكس لينكس ، [17] عندما تتم العملية باستخدام وقتها الكمومي ، تعطى أولوية جديدة وتعيد في قائمة الانتظار. قدمت Solaris 9 فئتين جديدتين للجدولة ، وهما فئة الأولوية الثابتة ودرجة المشاركة العادلة. تشتمل سلاسل العمليات ذات الأولوية الثابتة على نطاق الأولوية نفسه الذي تنتمي إليه فئة مشاركة الوقت ، ولكن لا يتم ضبط أولوياتها ديناميكيًا. تستخدم فئة جدولة المعرض مشاركات وحدة المعالجة المركزية لتحديد أولويات مؤشرات الترابط لجدولة القرارات. تشير مشاركات وحدة المعالجة المركزية إلى استحقاق موارد وحدة المعالجة المركزية. يتم تخصيصها لمجموعة من العمليات ، والتي تعرف مجتمعة كمشروع.

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

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

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

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

عُد إلى صفحة "جدولة (حاسوب)/أرشيف 1".