عملية (حوسبة): الفرق بين النسختين
[نسخة منشورة] | [نسخة منشورة] |
تم حذف المحتوى تمت إضافة المحتوى
محمد مختاري (نقاش | مساهمات) طلا ملخص تعديل |
محمد مختاري (نقاش | مساهمات) طلا ملخص تعديل |
||
سطر 1:
[[ملف:Process states.ru.svg|thumb|left|300px|
في الحاسوبية، '''عملية''' {{إنك|process}} هي [[كائن (علوم الحاسوب)|كائن]] برنامج قيد التنفيذ بالإضافة إلى القيم الحالية لكل من عداد البرنامج والسجلات {{إنك|register}} والمتغيرات {{إنك|variable}}. أي أنه لا يحوي فقط الكود ولكن أيضا فعالية البرنامج الحالية. مبدئيا لكل عملية [[وحدة المعالجة المركزية|وحدة معالجة مركزية]] افتراضية. ولكن في الواقع ال CPU الفعلي يتقلب بين العمليات التي تحتاج إلى هذا ال- CPU.
سطر 11:
# عملية "جديدة"، أي أن العملية قيد الانتاج.
# عملية "مُشغلة"، أي أن العملية تُنفذ.
# عملية "مُنتظرة"، أي أن العملية تنتظر ظهور حادثة مثل اكتمال
# عملية "جاهزة"، أي أن العملية جاهزة لتأخذ حيز في المعالج.
# عملية "منتهية"، أي أن العملية انهت عملها وتوقفت.
من الناحية المنطقية، الحالتان الثانية والرابعة هما نفس
===كتلة التحكم بالعملية===
[[File:المنشور3.jpg|thumb|كتلة التحكم بالعملية (PCB)]]
سطر 23:
* سجلات المعالج المركزي {{إنك | CPU registers}}: السجلات تختلف وكذا عددها وهذا يتعلق ببنية الحاسوب. ومن ضمنها : المُراكمات، سجلات الاستدلال، مؤشر المكدس، سجلات متعددة الاستخدامات بالاضافة لسجل الأعلام {{إنك | flag register }}. بالاضافة لعداد البرنامج معلومات الحالة هذه يجب حفظها عند ظهور مقاطعة وذلك للسماح لاحقا بأن تعمل العملية بشكل ملائم.
* معلومات لمُجدول المعالج المركزي : هذه المعلومات من ضمنها اولوية العملية، مؤشرات لطوابير الجدولة واية معلومات اخرى متعلقة بالجدولة.
* معولومات لادارة الذاكرة : قد تحوي على معلومات مثل سجلات القاعدة والحد {{إنك|base and limit registers}}
* معلومات حسابية : هذه المعلومات من ضمنها كمية وقت استخدام المعالج المركزي وايضا كمية وقت استخدام وقت الحقيقة، حدود الوقت، ارقام الحسابات، رقم العملية او العمل، وهكذا...
* معلومات عن حالة المدخلات/المخرجات (I/O) : هذه المعلومات من ضمنها قائمة اجهزة المدخلات/المخرجات التي خُصصت للعملية، قائمة الملفات المفتوحة وهكذا.
===خطوط===
{{Main|خيط (حاسوب)}}
سطر 46:
ثانيا، بالاضافة الى العملية التي أُنتجت في وقت الاقلاع عمليات جديدة يمكن أن تُنتج لاحقا. بشكل عام يمكن للعملية الواحدة طلب انتاج عمليات اخرى من شأنها ان تعين العملية على قضاء عملها، وهذا في خصوصا في حالة أنَّ العمل الذي على العملية فعله يمكن أن ينفذ بواسطة عمليات مرتبطة ومستقلة.
الحالة الاخيرة لانتاج العمليات هي عمل بالدفعات وهي تختص بانظمة الدفعات {{إنك|batch systems}} المتواجدة في [[حاسوب كبير|الحواسيب الكبيرة]]. في هذه الانظمة يمكن للمستخدم ادخال دفعات العمل (ربما من بعيد). عندما يقرر النظام انه يحوي الموارد الكافية لتشغيل عمل جديد، تُنتج عملية جديدة لانتاج العملية وتشغل العمل التالي في طابور المُدخلات.
سطر 52:
عمليا في كل هذه الحالات انتاج العملية يكون بواسطة وجود عملية فعالة التي تطلب من النظام بواسطة أمر نظام لانتاج عملية جديدة. وأمر النظام هذا يقول للنظام أن أنتج عملية جديدة ويومأ، بشكل مباشر او غير مباشر، أي برنامج يشغل.
في نظام [[يونكس|UNIX]] هنالك أمر نظام واحد لانتاج العمليات وهو fork. أمر النظام هذا يستنسخ العملية التي أستدعته. بعدما استدعاء fork للعمليتين الابن والاب يوجد نفس صورة الذاكرة، نفس البيئة (وهي مجموعة من المتغيرات التي تحوي [[سلسلة (علم الحاسوب)|سلاسل]] وهي مُتاحة لكل العمليات ) ونفس الملفات المفتوحة. عادة ما يقوم الابن باستدعاء execve او امر مشابه ليغير صورة الذاكرة ويشغل برنامج جديد. ونقيضها نجده في نظام windows حيث أنه يوجد أمر
===إنهاء العملية===
العملية تنتهي عندما تنهي تنفيذ اخر أوامرها وتطلب من نظام التشغيل أن تتوقف. هنالك عدة حالات يمكن أن تسبب انهاء العملية اهمها :
سطر 64:
==مصادر==
<div dir="ltr">
* Abraham
* [[أندرو تانينباوم|Andrew S. Tanenbaum]]. "Modern Operating Systems".
</div>
|