إدارة العمليات والخيوط
إدارة العمليات والخيوط هي الكيفية التي يقوم بها نظام التشغيل بإنشاء وجدولة وتفكيك وحدات التنفيذ — العمليات التي لها مساحات عناوين خاصة بها والخيوط التي تشترك في مساحة واحدة — والتبديل بينها في المعالج.
Definition
تتضمن إدارة العمليات والخيوط آليات نظام التشغيل التي تمثل البرامج قيد التشغيل كعمليات وخيوط، وتحافظ على حالة تنفيذها، وتنشئها وتنهيها، وتبدل المعالج بينها مع الحفاظ على سياقاتها واستعادتها.
Scope
يغطي هذا الموضوع تجريد العملية ودورة حياتها، وكتلة التحكم في العملية، وإنشاء العمليات وإنهائها، والخيوط ونماذج تعدد الخيوط، وتبديل السياق، والاتصال بين العمليات. يستثني هذا الموضوع سياسة تحديد المهمة الجاهزة التي ستُشغل تاليًا (جدولة وحدة المعالجة المركزية) وتنسيق البيانات المشتركة (التزامن، الذي يُعالج ضمن أنظمة التشغيل بشكل عام)، مع التركيز على الهياكل التي تمثل وتدير التنفيذ.
Core questions
- ما هي الحالة التي يجب أن يحتفظ بها نظام التشغيل لكل عملية وخيط؟
- كيف تُنشأ العمليات، وكيف تختلف الخيوط عن العمليات؟
- ماذا يحدث أثناء تبديل السياق، وما هي تكلفته؟
- كيف تتواصل العمليات وتنسق عبر مساحات العناوين؟
Key concepts
- العملية وكتلة التحكم في العملية
- حالات العملية ودورة حياتها
- الخيط وتعدد الخيوط
- خيوط مستوى المستخدم مقابل خيوط مستوى النواة
- تبديل السياق
- fork و exec
- الاتصال بين العمليات
- عزل العمليات
Key theories
- تجريد العملية
- يمثل نظام التشغيل كل برنامج قيد التشغيل كعملية ذات مساحة عنوان خاصة بها وسياق تنفيذ مخزن في كتلة تحكم في العملية، مما يتيح العزل والجدولة والمشاركة المتحكم فيها للمعالج.
Mechanisms
تُوصَف كل عملية بواسطة كتلة تحكم في العملية تحتوي على سجلاتها، وتعيينات الذاكرة، والملفات المفتوحة، وحالة الجدولة. ينشئ النظام العمليات (على سبيل المثال عبر fork و exec)، وينقلها عبر حالات (جديدة، جاهزة، قيد التشغيل، منتظرة، منتهية)، ويبدل بينها عن طريق حفظ سياق واستعادة آخر. تشترك الخيوط في مساحة عنوان عمليتها، مما يجعل التبديل أرخص ولكنه يتطلب المزامنة؛ يستخدم الاتصال بين العمليات الأنابيب أو الرسائل أو الذاكرة المشتركة.
Clinical relevance
تكمن إدارة العمليات والخيوط وراء تعدد المهام في كل نظام حديث. يُعد عزل العمليات حجر الزاوية في الأمن والاستقرار، وتتيح الخيوط تطبيقات سريعة الاستجابة ومتوازية، وتُشكل تكلفة تبديل السياق والاتصال بين العمليات تصميم الخوادم وبيئات التشغيل والبرمجيات المتزامنة.
History
نضج مفهوم العملية مع أنظمة تعدد البرامج وتقسيم الوقت في الستينيات، وأرسى UNIX نموذج fork/exec وتجريد العملية المستخدم على نطاق واسع اليوم. أُضيفت الخيوط لاستغلال المعالجات المتعددة وتحسين الاستجابة، مع معايير مثل خيوط POSIX التي أضفت الطابع الرسمي على تعدد الخيوط المرئي للمستخدم.
Debates
- خيوط مستوى المستخدم مقابل خيوط مستوى النواة
- تُعد خيوط مستوى المستخدم رخيصة الإدارة ولكن لا يمكن جدولتها عبر النوى بشكل مستقل وتحظر العملية بأكملها عند استدعاء حظر، بينما تندمج خيوط مستوى النواة مع المجدول بتكلفة أعلى؛ تحاول النماذج الهجينة الجمع بين الفوائد.
Key figures
- Ken Thompson
- Dennis Ritchie
- Per Brinch Hansen
- Abraham Silberschatz
- Andrew S. Tanenbaum
Related topics
Seminal works
- silberschatz2018
- tanenbaum2014os
Frequently asked questions
- ما هي المعلومات التي يحتفظ بها نظام التشغيل لكل عملية؟
- يحتفظ بكتلة تحكم في العملية تسجل سجلات العملية المحفوظة وعداد البرنامج، وتعيينات الذاكرة، وحالة الجدولة والأولوية، والملفات المفتوحة، ومعلومات المحاسبة والهوية — كل ما يلزم لتعليق العملية واستئنافها لاحقًا تمامًا من حيث توقفت.
- لماذا يكون التبديل بين الخيوط أرخص من التبديل بين العمليات؟
- تشترك الخيوط داخل العملية في نفس مساحة العنوان والموارد، لذا فإن التبديل بينها لا يتطلب تغيير تعيينات الذاكرة. يتطلب التبديل بين العمليات بالإضافة إلى ذلك تغيير مساحات العناوين وقد يؤدي إلى مسح ذاكرات التخزين المؤقت للترجمة، مما يجعله أكثر تكلفة.