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

تم إضافة 3٬868 بايت ، ‏ قبل 7 سنوات
لا يوجد ملخص تحرير
# طلب المستخدم لانتاج عملية جديدة .
# بدء عمل بالدفعات . (batch job)
في الحالة الاولى , عندما يُقلع النظام عادة ما يُنتج عدة عمليات , منها ما هو عمليات مُقدمة أي انها تتفاعل مع المُستخدم وتنفذ الاوامر من أجلهم , واخرى هي للخلفية وهي غير مرتبطة بمستخدم مُعين , ولكن عندها وظيفة مُعينة . هذه العمليات تُسمى أيضا شياطين{{إنك | deamons}} . في نظام [[يونكس|UNIX]] يمكن بواسطة برنامج ps رؤية كل العمليات الفعَّالة اما في [[مايكروسوفت ويندوز|Windows]] فهذا بمساعدة [[مدير مهام ويندوز]] .
 
ثانيا , بالاضافة الى العملية التي أُنتجت في وقت الاقلاع عمليات جديدة يمكن أن تُنتج لاحقا . بشكل عام يمكن للعملية الواحدة طلب انتاج عمليات اخرى من شأنها ان تعين العملية على قضاء عملها , وهذا في خصوصا في حالة أنَّ العمل الذي على العملية فعله يمكن أن ينفذ بواسطة عمليات مرتبطة ومستقلة .
 
ثالثا, في الانظمة التفاعلية , يمكن للمستخدم ادخال امر به يبدأ عملية جديدة وكذا الامر بالنسبة لضغط ايقونة . وفي الحالتين العملية تبدأ وتنفيذ البرنامج في العملية يبدأ تنفيذه . في الانظمة التي تعتمد على الاوامر وشبيهة بنظام [[يونكس|UNIX]] تشغيل الامر X , يسمح للعملية بأن تستولي على الشباك الذي فيه بدأت . في [[مايكروسوفت ويندوز]] عند ابتداء عملية فانها لا تملك [[شباك(حاسوب)|شباكا]] ويمكنها انتاج واحد كهذا والمعظم يفعل هذا . في النظامين يمكن للمستخدم أن يكون عنده عدة شبابيك مفتوحة وكل واحدة منها تشغل عملية مُختلفة . وبإستخدام [[فأرة (حاسوب)|الفأرة]] يمكن للمستخدم اختيار شباك والتفاعل معه مثلا ادخال مُعطيات اذا لزم الامر .
 
الحالة الاخيرة لانتاج العمليات هي عمل بالدفعات وهي تختص بانظمة الدفعات {{إنك|batch systems}} المتواجدة في [[حاسوب كبير|الحواسيب الكبيرة]] . في هذه الانظمة يمكن للمستخدم ادخال دفعات العمل (ربما من بعيد) . عندما يقرر النظام انه يحوي الموارد الكافية لتشغيل عمل جديد , تُنتج عملية جديدة لانتاج العملية وتشغل العمل التالي في طابور المُدخلات .
 
عمليا في كل هذه الحالات انتاج العملية يكون بواسطة وجود عملية فعالة التي تطلب من النظام بواسطة أمر نظام لانتاج عملية جديدة . وأمر النظام هذا يقول للنظام أن أنتج عملية جديدة ويومأ , بشكل مباشر او غير مباشر , أي برنامج يشغل .
 
في نظام [[يونكس|UNIX]] هنالك أمر نظام واحد لانتاج العمليات وهو fork . أمر النظام هذا يستنسخ العملية التي أستدعته . بعدما استدعاء fork للعمليتين الابن والاب يوجد نفس صورة الذاكرة , نفس البيئة (وهي مجموعة من المتغيرات التي تحوي [[سلسلة (علم الحاسوب)|سلاسل]] وهي مُتاحة لكل العمليات ) ونفس الملفات المفتوحة . عادة ما يقوم الابن باستدعاء execve او امر مشابه ليغير صورة الذاكرة ويشغل برنامج جديد . ونقيضها نجده في نظام windows حيث أنه يوجد أمر واحد ,CreateProcess, يقوم بالاهتمام بانتاج البرنامج وايضا تحميل البرنامج الصحيح , ولهذا الامر 10 عوامل (مُعطيات او مُدخلات) ومن ضمنها البرنامج الذي يجب تشغيله .
===إنهاء العملية===
العملية تنتهي عندما تنهي تنفيذ اخر أوامرها وتطلب من نظام التشغيل أن تتوقف . هنالك عدة حالات يمكن أن تسبب انهاء العملية اهمها :
الحالتين الاوليين الانهاء فيهما يكون تطوعي , اما الاخيرين ففيهما الانهاء اجباري .
 
اغلب الاحيان تنتهي العملية لانها قد انهت تنفيذ برنامجها . في نظام [[يونكس|UNIX]] الانهاء يكون بواسطة الامر exit اما في [[مايكروسوفت ويندوز|windows]] بواسطة ExitProcess . السبب الثاني للانهاء هو خطأ قاتل مثلا عدم وجود الملف المرغوب بالوصول اليه وما الى ذلك من الاخطاء التي قد يقع بها بعض المستخدمين . السبب الثالث هو وجود خطأ في العملية مثلا محاولة تنفيذ عملية غير قانونية ومحاولة الوصول الى معلومات غير موجودة او محاولة القسمة على 0 . في بعض الانظمة العملية تخبر النظام انها تريد الاهتمام بالخطأ بنفسها , وهذا يسبب توقف العملية بدل انهائها عند حدوث هذا الخطأ . والسبب الرابع للانهاء هو أن العملية تنفذ أمرا فيه على النظام ان ينهي عملية اخرى . في نظام [[يونكس|UNIX]] هذه الامر هو kill , وفي [[مايكروسوفت ويندوز|Windows]] هو TerminateProcess وفي كلتا الحالتين على القاتل ان يملك الصلاحية الملائمة لتنفيذ عملية القتل . في بعض الانظمة , عند انتهاء العملية ينتهي معها كل عملية انتجتها هذه العملية ولكن لا يعمل أيا من [[يونكس|UNIX]] و [[مايكروسوفت ويندوز|windows]] بهذه الطريقة .
 
[[تصنيف:حوسبة متزامنة]]
667

تعديل