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

تم إضافة 13 بايت ، ‏ قبل 7 سنوات
ط
لا يوجد ملخص تحرير
ط
ط
[[ملف:Process states.ru.svg|thumb|left|300px|Статусыحالات процессовعملية вحاسوبية في современных ОС.]]
 
في الحاسوبية، '''عملية''' {{إنك|process}} هي [[كائن (علوم الحاسوب)|كائن]] برنامج قيد التنفيذ بالإضافة إلى القيم الحالية لكل من عداد البرنامج والسجلات {{إنك|register}} والمتغيرات {{إنك|variable}}. أي أنه لا يحوي فقط الكود ولكن أيضا فعالية البرنامج الحالية. مبدئيا لكل عملية [[وحدة المعالجة المركزية|وحدة معالجة مركزية]] افتراضية. ولكن في الواقع ال CPU الفعلي يتقلب بين العمليات التي تحتاج إلى هذا ال- CPU.
# عملية "جديدة"، أي أن العملية قيد الانتاج.
# عملية "مُشغلة"، أي أن العملية تُنفذ.
# عملية "مُنتظرة"، أي أن العملية تنتظر ظهور حادثة مثل اكتمال المُدخلات,المُدخلات، أو وصول اشارة.
# عملية "جاهزة"، أي أن العملية جاهزة لتأخذ حيز في المعالج.
# عملية "منتهية"، أي أن العملية انهت عملها وتوقفت.
 
من الناحية المنطقية، الحالتان الثانية والرابعة هما نفس الامرالأمر اذ انأن كليهما قابلان للتشغيل ولكن الحالة الرابعة لا تستطيع العمل لانلأن المعالج المركزي ليس متفرغا للعملية وهي تكون دوما جاهزة حتى يتفرغ لها المعالج المركزي. أما الحالة الأولى ففيها تكون العملية فقط عندما تنتج وقبل ولوجها في الحالة الرابعة,الرابعة، وعندما العملية تأخذ حيز في المعالج المركزي ويُنفذ أوامرها تكون في الحالة الثانية يمكن أن تُقطع وذلك لأن المُجدول اختار عملية أخرى لينفذها المعالج المركزي,المركزي، وفي حالة أنها تريد مُدخل من المستخدم فانها تنتقل للحالة الثالثة وعند اتمام الادخال تعود لتكون جاهزة، لربما اخذت عملية اخرى حيزها ولما يحين دورها. وحين انتهاء العملية من تنفيذ البرنامج وتنهي عملها تنتقل للحالة الأخيرة.
===كتلة التحكم بالعملية===
[[File:المنشور3.jpg|thumb|كتلة التحكم بالعملية (PCB)]]
* سجلات المعالج المركزي {{إنك | CPU registers}}: السجلات تختلف وكذا عددها وهذا يتعلق ببنية الحاسوب. ومن ضمنها : المُراكمات، سجلات الاستدلال، مؤشر المكدس، سجلات متعددة الاستخدامات بالاضافة لسجل الأعلام {{إنك | flag register }}. بالاضافة لعداد البرنامج معلومات الحالة هذه يجب حفظها عند ظهور مقاطعة وذلك للسماح لاحقا بأن تعمل العملية بشكل ملائم.
* معلومات لمُجدول المعالج المركزي : هذه المعلومات من ضمنها اولوية العملية، مؤشرات لطوابير الجدولة واية معلومات اخرى متعلقة بالجدولة.
* معولومات لادارة الذاكرة : قد تحوي على معلومات مثل سجلات القاعدة والحد {{إنك|base and limit registers}},، جدول الصفحات أو جدول الاقسام حسب نظام الذاكرة المُستخدم في نظام التشغيل.
* معلومات حسابية : هذه المعلومات من ضمنها كمية وقت استخدام المعالج المركزي وايضا كمية وقت استخدام وقت الحقيقة، حدود الوقت، ارقام الحسابات، رقم العملية او العمل، وهكذا...
* معلومات عن حالة المدخلات/المخرجات (I/O) : هذه المعلومات من ضمنها قائمة اجهزة المدخلات/المخرجات التي خُصصت للعملية، قائمة الملفات المفتوحة وهكذا.
باختصار,باختصار، كتلة التحكم بالعملية هو مستودع ايَّة معلومة التي قد تختلف من عملية الى اخرى.
===خطوط===
{{Main|خيط (حاسوب)}}
ثانيا، بالاضافة الى العملية التي أُنتجت في وقت الاقلاع عمليات جديدة يمكن أن تُنتج لاحقا. بشكل عام يمكن للعملية الواحدة طلب انتاج عمليات اخرى من شأنها ان تعين العملية على قضاء عملها، وهذا في خصوصا في حالة أنَّ العمل الذي على العملية فعله يمكن أن ينفذ بواسطة عمليات مرتبطة ومستقلة.
 
ثالثا,ثالثا، في الانظمة التفاعلية، يمكن للمستخدم ادخال امر به يبدأ عملية جديدة وكذا الامر بالنسبة لضغط ايقونة. وفي الحالتين العملية تبدأ وتنفيذ البرنامج في العملية يبدأ تنفيذه. في الانظمة التي تعتمد على الاوامر وشبيهة بنظام [[يونكس|UNIX]] تشغيل الامر X، يسمح للعملية بأن تستولي على الشباك الذي فيه بدأت. في [[مايكروسوفت ويندوز]] عند ابتداء عملية فانها لا تملك [[شباك(حاسوب)|شباكا]] ويمكنها انتاج واحد كهذا والمعظم يفعل هذا. في النظامين يمكن للمستخدم أن يكون عنده عدة شبابيك مفتوحة وكل واحدة منها تشغل عملية مُختلفة. وبإستخدام [[فأرة (حاسوب)|الفأرة]] يمكن للمستخدم اختيار شباك والتفاعل معه مثلا ادخال مُعطيات اذا لزم الامر.
 
الحالة الاخيرة لانتاج العمليات هي عمل بالدفعات وهي تختص بانظمة الدفعات {{إنك|batch systems}} المتواجدة في [[حاسوب كبير|الحواسيب الكبيرة]]. في هذه الانظمة يمكن للمستخدم ادخال دفعات العمل (ربما من بعيد). عندما يقرر النظام انه يحوي الموارد الكافية لتشغيل عمل جديد، تُنتج عملية جديدة لانتاج العملية وتشغل العمل التالي في طابور المُدخلات.
عمليا في كل هذه الحالات انتاج العملية يكون بواسطة وجود عملية فعالة التي تطلب من النظام بواسطة أمر نظام لانتاج عملية جديدة. وأمر النظام هذا يقول للنظام أن أنتج عملية جديدة ويومأ، بشكل مباشر او غير مباشر، أي برنامج يشغل.
 
في نظام [[يونكس|UNIX]] هنالك أمر نظام واحد لانتاج العمليات وهو fork. أمر النظام هذا يستنسخ العملية التي أستدعته. بعدما استدعاء fork للعمليتين الابن والاب يوجد نفس صورة الذاكرة، نفس البيئة (وهي مجموعة من المتغيرات التي تحوي [[سلسلة (علم الحاسوب)|سلاسل]] وهي مُتاحة لكل العمليات ) ونفس الملفات المفتوحة. عادة ما يقوم الابن باستدعاء execve او امر مشابه ليغير صورة الذاكرة ويشغل برنامج جديد. ونقيضها نجده في نظام windows حيث أنه يوجد أمر واحد،CreateProcess,واحد،CreateProcess، يقوم بالاهتمام بانتاج البرنامج وايضا تحميل البرنامج الصحيح، ولهذا الامر 10 عوامل (مُعطيات او مُدخلات) ومن ضمنها البرنامج الذي يجب تشغيله.
===إنهاء العملية===
العملية تنتهي عندما تنهي تنفيذ اخر أوامرها وتطلب من نظام التشغيل أن تتوقف. هنالك عدة حالات يمكن أن تسبب انهاء العملية اهمها :
==مصادر==
<div dir="ltr">
* Abraham Silberschatz,PeterSilberschatz،Peter Baer Galvin، Greg Gagne. "Operating system Concepts".
* [[أندرو تانينباوم|Andrew S. Tanenbaum]]. "Modern Operating Systems".
</div>