إدارة عملية (حوسبة)

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

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

لكي يستطيع نظام التشغيل من إدارة العمليات فانة يخصص لكل عملية ما يلي:
* مساحة عنونة "Address Space ":
عبارة عن المساحة المحجوزة بالذاكرة الرئيسية للعملية الحالية.
* شفرة البرنامج "Program Code ":
عبارة عن الايعازات المطلوب تنفيذها.
* مؤشر التكديس Stack Pointer.
* عداد البرامج Program Counter.
* السجل Register
* الكومة«النثريات» Heap
## حالات العملية
وهي الحالات التي يمكن ان تمر بها العملية
* جديدة New:
هي مجموعة الانشطة والوظائف التي لا زالت في الذاكرة الثانوية والتي يراد تنفيذها عن طريق تحميلها إلى الذاكرة الرئيسية.
* مستعدة للتنفيذReady:
هي عبارة عن العمليات التي تنتضر في طابور الانتظار Ready Queue في الذاكرة الرئيسية.
* قيد التنفيذRunning:
هي العمليات التي تكون تحت سيطرة المعالج ولا يمكن ان تكون هناك أكثر من عملية تحت سيطرة معالج احادي النواة في نفس الوقت.
* انتظار Waiting :
هي العمليات التي تنتضر حدوث امر معين لاتمام تنفيذها.
* انتهاءTerminat or Halt :
هي العمليات التي انتهى تنفيذها سواء بشكل طبيعي وا اجهاضي «في حالة حدوث خطاء».

تبدء مراحل تنفيذ العملبات بأن يقوم المستخدم بالنفر على على الوضائق أو البرامج فيقوم نظام التشغيل أو بشكل أكثر دقة يقوم المجدول طويل المدى "Long Term Scheduler" بنسخها إلى الذاكرة الرئيسية، ثم يقوم المجدول قصير المدى«Short Term جدول أعمال» باختيارها ويامر المنفذ «مرسل» بنقلها إلى المعالج، وفي حالة حدوث أي مقاطعة أو طلب ادخال أو إخراج من المستخدم يقوم المجدول متوسط المدى "Med Term Scheduler" بنقلها من حالة التنفيذ إلى الانتظار.
## جدولة العمليات
هي وضع خطة لترتيب دخول العمليات إلى المعالج يقوم بتنفيذ هذه الخطة ثلاثة مجدولات:
# المجدول قصير المدى STS
# المجدول متوسط المدى MTS
# المجدول طويل المدى LTS

## أنواع العمليات
* بحسب موقع التنفيذ:
1- عمليات نمط المعالجة CPU Bound Process :
 وهي العمليات التي تقضي معظم وقتها في المعالج
2- عمليات نمط الإدخال والإخراج I/O Bound Process:
 وهي العمليات التي تقضي معضم وقتها في عمليات الإدخال والإخراج

يجب أن تقوم المجدولات باختيار عملبات تكون خليط من النوعين السابقين لكي يتم استغلال المعالج بشكل مثالي.
* بحسب التعاونية: نهتم بهذا التصنيف عند دراسة الاتصال بين العملياتIPC
1-عمليات غير متعاونة «مستفلة»:
 وهي العمليات التي لا تؤثر ولا تتاثر بتنفيذ العمليات الأخرى. 
2- عمليات متعاونة:
 وهي العمليات التي تؤثر وتتأثر بتنفيذ العمليات الأخرى، 
فوائد العمليات المتعاونة:
* مشاركة المعلومات.
* تسريع انجاز العمليات: عن طريق تقسيم المهمة إلى مهام فرعية تنفذ بالتوازي
* استغلال أسلوب بناء أنظمة تشغيل الوحدات.
* تمكن المستخدم من عمل أكثر من عملية بشكل متزامن «كأن يقوم بطباعة مستند والتعديل في نفس هذا المستند».
وهناك نوعين من الاتصال بين العمليات المتعاونة:
1- الذاكرة المشتركة Shared Memory:
 عملية تحديد ذاكرة افتراضية مشتركة لنقل وتبادل البيانات بين العمليات. ولها نوعين 
* ذاكرة محدودة الحجم:
في هذا النوع يتوجب على أي عملية تريد ان تضيف معلومات إلى الذاكرة التأكد اولاً من إمكانية استيعابها للبيانات المراد اضافتها.
* ذاكرة غير محدودة الحجم:
في هذا النوع لكل عملية الحرية الكاملة في إضافة أي مقدار من البيانات.
2- تمرير الرسائل Message Passing:
في هذا النوع يتم تراسل البيانات بين العمليات بحيث تحدد العملية المرسلة عنوان العملية المستقبلة أيضا يجب على العملية المستقبلة تحديد عنوان العملية المرسلة، ويتوجب ان يكون هناك وسط للربط بين العملينبن ويمكن ان يكون الإرسال بواسطة الاسم أو بواسطة صندوق بريد مشترك.

## اقرأ أيضا
* الخيوط
* جدولة المعالج
* هندسة البرامج
* تطوير نظم التشغيل

## المصادر

Operating System Concepts 7th Ed ,Abraham Sliberchatz

تصنيف:تقنيات نظم التشغيل
تصنيف:حواسيب
تصنيف:عمليات (حوسبة)