عملية (حوسبة): الفرق بين النسختين

تم إزالة 2 بايت ، ‏ قبل سنة واحدة
لا يوجد ملخص تحرير
ط (بوت:إضافة وصلة أرشيفية.)
[[ملف:Process modes.jpg|350px|thumb|الصورة توضح العلاقة بين حالات العملية]]
بينما العملية تُنفذ تُغير حالاتها، وحالة العملية مُعرفة جزئيا بأنها الفعالية الحالية للعملية. والعملية يمكن أن تكون في أحد الحالات التالية :
# عملية "جديدة"، أي أن العملية قيد الانتاجالإنتاج.
# عملية "مُشغلة"، أي أن العملية تُنفذ.
# عملية "مُنتظرة"، أي أن العملية تنتظر ظهور حادثة مثل اكتمال المُدخلات، أو وصول إشارة.
حين بدأ العملية في النظام، تُوضع في طابور عمل، ويحوي هذا الطابور كل العمليات في النظام. العمليات القاطنة في الذاكرة الرئيسية وهي جاهزة وتنتظر ان يتم تنفيذها يحفظها النظام في قائمة تُسمى طابور الجاهزين. بشكل عام هذه القائمة تُحفظ بشكل [[قائمة متصلة]]. رأس طابور الجاهزين مؤشر لل-PCB الأول والنهائي في القائمة. وكل PCB عنده مؤشر إلى ال PCB التالي في طابور الجاهزين. طوابير اخرى يستخدمها النظام وهي طابور الاجهزة، وطابور I\O وهو طابور للمُدخلات.
== أفعال على العملية ==
=== انتاجإنتاج العملية ===
تحتاج نُظم التشغيل ايجاد وسيلة بها تُنتج العمليات وتُنهيها حسب الحاجة ( يُستثنى من هذا بعض الاجهزة التي عندما تُشغل تكون كل عملياتها جاهزة ولا حاجة لانهائها او البدأ بجديدة مثل : المكرويف ) وما يلي هي الوسائل الرئيسية لانتاجلإنتاج العملية :
# ابتداء النظام.
# تنفيذ نداء النظام لانتاجلإنتاج العمليات بواسطة عملية قيد التنفيذ.
# طلب المستخدم لانتاجلإنتاج عملية جديدة.
# بدء عمل بالدفعات. (batch job)
في الحالة الاولى، عندما يُقلع النظام عادة ما يُنتج عدة عمليات، منها ما هو عمليات مُقدمة أي انها تتفاعل مع المُستخدم وتنفذ الاوامر من أجلهم، واخرى هي للخلفية وهي غير مرتبطة بمستخدم مُعين، ولكن عندها وظيفة مُعينة. هذه العمليات تُسمى أيضا شياطين{{إنج | deamons}}. في نظام [[يونكس|UNIX]] يمكن بواسطة برنامج ps رؤية كل العمليات الفعَّالة اما في [[مايكروسوفت ويندوز|Windows]] فهذا بمساعدة [[مدير مهام ويندوز]].
 
ثانيا، بالاضافة إلى العملية التي أُنتجت في وقت الاقلاع عمليات جديدة يمكن أن تُنتج لاحقا. بشكل عام يمكن للعملية الواحدة طلب انتاجإنتاج عمليات اخرى من شأنها ان تعين العملية على قضاء عملها، وهذا في خصوصا في حالة أنَّ العمل الذي على العملية فعله يمكن أن ينفذ بواسطة عمليات مرتبطة ومستقلة.
 
ثالثا، في الانظمة التفاعلية، يمكن للمستخدم ادخال امر به يبدأ عملية جديدة وكذا الامر بالنسبة لضغط ايقونة. وفي الحالتين العملية تبدأ وتنفيذ البرنامج في العملية يبدأ تنفيذه. في الانظمة التي تعتمد على الاوامر وشبيهة بنظام [[يونكس|UNIX]] تشغيل الامر X، يسمح للعملية بأن تستولي على الشباك الذي فيه بدأت. في [[مايكروسوفت ويندوز]] عند ابتداء عملية فانها لا تملك [[شباك(حاسوب)|شباكا]] ويمكنها انتاجإنتاج واحد كهذا والمعظم يفعل هذا. في النظامين يمكن للمستخدم أن يكون عنده عدة شبابيك مفتوحة وكل واحدة منها تشغل عملية مُختلفة. وبإستخدام [[فأرة (حاسوب)|الفأرة]] يمكن للمستخدم اختيار شباك والتفاعل معه مثلا ادخال مُعطيات اذا لزم الامر.
 
الحالة الاخيرة لانتاجلإنتاج العمليات هي عمل بالدفعات وهي تختص بانظمة الدفعات {{إنج|batch systems}} المتواجدة في [[حاسوب كبير|الحواسيب الكبيرة]]. في هذه الانظمة يمكن للمستخدم ادخال دفعات العمل (ربما من بعيد). عندما يقرر النظام انه يحوي الموارد الكافية لتشغيل عمل جديد، تُنتج عملية جديدة لانتاجلإنتاج العملية وتشغل العمل التالي في طابور المُدخلات.
 
عمليا في كل هذه الحالات انتاجإنتاج العملية يكون بواسطة وجود عملية فعالة التي تطلب من النظام بواسطة أمر نظام لانتاجلإنتاج عملية جديدة. وأمر النظام هذا يقول للنظام أن أنتج عملية جديدة ويومأ، بشكل مباشر او غير مباشر، أي برنامج يشغل.
 
في نظام [[يونكس|UNIX]] هنالك أمر نظام واحد لانتاجلإنتاج العمليات وهو fork. أمر النظام هذا يستنسخ العملية التي أستدعته. بعدما استدعاء fork للعمليتين الابن والاب يوجد نفس صورة الذاكرة، نفس البيئة (وهي مجموعة من المتغيرات التي تحوي [[سلسلة (علم الحاسوب)|سلاسل]] وهي مُتاحة لكل العمليات ) ونفس الملفات المفتوحة. عادة ما يقوم الابن باستدعاء execve او امر مشابه ليغير صورة الذاكرة ويشغل برنامج جديد. ونقيضها نجده في نظام windows حيث أنه يوجد أمر واحد،CreateProcess، يقوم بالاهتمام بانتاجبإنتاج البرنامج وايضا تحميل البرنامج الصحيح، ولهذا الامر 10 عوامل (مُعطيات او مُدخلات) ومن ضمنها البرنامج الذي يجب تشغيله.
=== إنهاء العملية ===
العملية تنتهي عندما تنهي تنفيذ اخر أوامرها وتطلب من نظام التشغيل أن تتوقف. هنالك عدة حالات يمكن أن تسبب انهاء العملية اهمها :