لتشغيل أجزاء العمليات التي في مستوى المستخدم(user-level) على الوحدة المركزية (CPU) يجب أن يوضع لها جدولة وتحويل لأجزائها في مستوى لب النظام (level-kernel) ويمكن أن يكون هذا التحويل غير مباشر كما انه يمكن أن يكون عن طريق الـ ( (LWP.
في الجدولة كل جزء (thread) يسند إليه معاملات((attributes
وهذه المعاملات قد تسند بـ :-
استخدام خصائص هذا الجزء (thread) قبل عمل خلق لهذا الجزء.
وقد تكون بشكل ديناميكي أثناء تنفيذ هذا الجزء (thread).
واحدة من الفروق بين في مستوى المستخدم(user-level) و مستوى لب النظام
(level-kernel) هي الجدولة.
أنواع الجدولة:-
(1) في الأنظمة التي تعالج موديل (نوع) الأجزاء التي تكون مرتبطة بلب نظام واحد Many-to-One)) والأجزاء التي تكون مرتبطة بأكثر من لب نظام واحد تكون الجدولة فيها بالاعتماد على مكتبه الأجزاء (thread library ) فهي تجدول أجزاء مستوى المستخدم(user-level)لكي تعمل على الـ ( (LWP وهذه الطريقة توصف ب (PCS: Process Contention Scope)
عندما نقول أن مكتبه الأجزاء (thread library ) قامت بجدولة أجزاء مستوى المستخدم(threads user-level) إلى ( (LWP فنحن لا نعني أن الجزء فعليا يعمل على الوحدة المركزية (CPU) فهذا يتطلب نظام التشغيل إن يجدول جزء مستوى لب النظام (thread level-kernel) إلى الوحدة المركزية (CPU) الفعلية الملموسة <أي بشكل ملموس>
(2)ولتقرير أي جزء من مستوى لب النظام (thread level-kernel) سوف يجدول إلى الوحدة المركزية (CPU) يُستخدم (SCS: System Contention Scope)
مع نظام الـ(SCS: System Contention Scope) الجدولة تكون لكل الأجزاء بالنظام
الأنظمة التي تستخدم موديل الجزء الذي يكون مرتبط بلب نظام واحد One-to-One)) مثل Solaris9 ,and Linux widows XP ,ٍ تجدول أجزائها فقط باستخدام نظام الـ(SCS: System Contention Scope).
السياسات المتّبعة للجدولة:-
التطبيقات يجب أن تستخدم سياسة الجدولة الافتراضية, ما عدا إذا كان هنالك تطبيق خاص يحتاج استخدام سياسة جدوله ذات أولوية معينة
(1)فلو كنا نستخدم الـ Round Robin RR) جولة روبين (فالأجزاء كلها بنفس الأولوية أي ستجدول بالتساوي حسب نشاطها .
(1)ولو كنا نستخدم الـ First-come First-served FCFS_FIFO)من يأتي أولا يخدم أولا) فسياستها أن الجزء يجب أن ينفذ بعناية أكثر فالجزء يعمل حتى انتهاءه ماعدا حظره عن طريق مناداة ما كعمليه إدخال أو إخراج والجزء الذي له أولوية عاليه لا يمكن مقاطعته ويمكن أن يؤثر على أداء النظام ككل .
الـ (PCS: Process Contention Scope) يعمل على حسب الأولوية فالمجدول يختار الأجزاء الأعلى أولوية لتنفيذها والأولوية في مستوى المستخدم (user-level) توضع عن طريق المبرمج وليست عن طريق مكتبه الأجزاء (thread library ) ولا ننسى أن نقول أن بعض المكتبات تسمح بتعديل الأولويات للأجزاء فيها وذلك عن طريق المبرمج
وفي هذا النظام يجب أن نلاحظ أيضا انه يقاطع الجزء الذي يعمل إذا جاء جزء أعلى منه أولوية
جدولة الـ -:Pthread
هناك طريقتين أو مجالين كما هو موضح بالرسم التالي:-
المصادر:-
http://www.unet.univie.ac.at/aix/aixprggd/genprogc/threads_sched.htm
Operating Systems Concepts, 7th Edition Silbershatz, Galvin, Gagne
كتبته سماح المطلق
Comments (2)
Anonymous said
at 10:54 pm on Nov 30, 2007
الموضوع جميل شكلا ومضمونا
مرة فادني في فهم هذي الجزئية في الامتحان
شكرا
Anonymous said
at 12:39 am on Dec 13, 2007
الشرح شامل وبسيط تسلم يدينك
You don't have permission to comment on this page.