عملية (حوسبة)

في مجال الحوسبة ، تُعرَّف العملية بأنها نسخة من برنامج حاسوبي يتم تنفيذها بواسطة خيط واحد أو أكثر . توجد نماذج عمليات متنوعة، بعضها خفيف الوزن، ولكن جميع العمليات تقريبًا (حتى الآلات الافتراضية بأكملها ) تستند إلى عملية نظام التشغيل التي تتضمن رمز البرنامج، وموارد النظام المخصصة، وصلاحيات الوصول المادية والمنطقية، وهياكل البيانات اللازمة لبدء عملية التنفيذ والتحكم فيها وتنسيقها. وبحسب نظام التشغيل، قد تتكون العملية من خيوط تنفيذ متعددة تُنفِّذ التعليمات بشكل متزامن . [ 1 ] [ 2 ]
بينما يُعدّ برنامج الحاسوب مجموعةً من التعليمات المخزنة عادةً في ملف على القرص، فإنّ العملية هي تنفيذ تلك التعليمات بعد تحميلها من القرص إلى الذاكرة. وقد ترتبط عدة عمليات بالبرنامج نفسه؛ فعلى سبيل المثال، يؤدي فتح عدة نسخ من البرنامج نفسه غالبًا إلى تنفيذ أكثر من عملية.
تعدد المهام هو أسلوب يسمح لعدة عمليات بمشاركة المعالجات (وحدات المعالجة المركزية) وموارد النظام الأخرى. تُنفذ كل وحدة معالجة مركزية (نواة) عملية واحدة في كل مرة. مع ذلك، يسمح تعدد المهام لكل معالج بالتبديل بين المهام قيد التنفيذ دون الحاجة إلى انتظار انتهاء كل مهمة ( المقاطعة ). اعتمادًا على نظام التشغيل، يمكن إجراء عمليات التبديل عند بدء المهام وانتظار اكتمال عمليات الإدخال/الإخراج ، أو عندما تتنازل مهمة طواعيةً عن وحدة المعالجة المركزية، أو عند حدوث مقاطعات في الأجهزة ، أو عندما يقرر مُجدول نظام التشغيل أن عملية ما قد استنفدت حصتها العادلة من وقت وحدة المعالجة المركزية (على سبيل المثال، بواسطة مُجدول العمليات العادلة تمامًا في نواة لينكس ).
يُعدّ تقاسم الوقت في وحدة المعالجة المركزية (CPU) أحد أشكال تعدد المهام الشائعة ، وهو أسلوب لدمج تنفيذ عمليات المستخدمين وخيوطهم، وحتى مهام النواة المستقلة - مع العلم أن هذه الميزة الأخيرة لا تُتاح إلا في أنظمة النواة الاستباقية مثل لينكس . وللاستباق أثر جانبي هام على العمليات التفاعلية، حيث تُمنح أولوية أعلى مقارنةً بالعمليات التي تستهلك موارد وحدة المعالجة المركزية؛ وبالتالي، يُخصّص للمستخدمين موارد حاسوبية فورًا بمجرد الضغط على مفتاح أو تحريك الفأرة. علاوة على ذلك، تُمنح تطبيقات مثل تشغيل الفيديو والموسيقى نوعًا من الأولوية الآنية، مما يُوقف أي عملية أخرى ذات أولوية أقل. في أنظمة تقاسم الوقت، يتم تبديل السياق بسرعة، مما يُوحي بتنفيذ عمليات متعددة في وقت واحد على نفس المعالج. يُطلق على هذا التنفيذ المتزامن الظاهري للعمليات المتعددة اسم التزامن .
لأسباب تتعلق بالأمان والموثوقية، تمنع معظم أنظمة التشغيل الحديثة الاتصال المباشر بين العمليات المستقلة، مما يوفر اتصالاً بين العمليات يتم التحكم فيه ومراقبته بشكل صارم.
التمثيل


بشكل عام، تتكون عملية نظام الكمبيوتر من الموارد التالية (أو يقال إنها تمتلكها ):
- صورة لرمز الآلة القابل للتنفيذ المرتبط ببرنامج ما .
- الذاكرة (عادةً ما تكون منطقة ما من الذاكرة الافتراضية )؛ والتي تتضمن التعليمات البرمجية القابلة للتنفيذ، والبيانات الخاصة بالعملية (الإدخال والإخراج)، ومكدس الاستدعاءات (لتتبع الإجراءات الفرعية النشطة و/أو الأحداث الأخرى)، وكومة لحفظ بيانات الحساب الوسيطة التي يتم إنشاؤها أثناء وقت التشغيل.
- واصفات نظام التشغيل للموارد المخصصة للعملية، مثل واصفات الملفات ( مصطلحات يونكس ) أو المقابض ( ويندوز )، ومصادر البيانات ومستقبلاتها.
- سمات الأمان ، مثل مالك العملية ومجموعة أذونات العملية (العمليات المسموح بها).
- حالة المعالج ( السياق )، مثل محتوى السجلات وعناوين الذاكرة الفعلية. تُخزن الحالة عادةً في سجلات الحاسوب عندما تكون العملية قيد التنفيذ، وفي الذاكرة في غير ذلك. [ 1 ]
يحتفظ نظام التشغيل بمعظم هذه المعلومات حول العمليات النشطة في هياكل بيانات تُسمى كتل التحكم في العمليات . ويمكن ربط أي مجموعة فرعية من الموارد، وعادةً ما تكون حالة المعالج على الأقل، بكل خيط من خيوط العملية في أنظمة التشغيل التي تدعم الخيوط أو العمليات الفرعية .
يُبقي نظام التشغيل عملياته منفصلة ويُخصّص لها الموارد اللازمة، مما يقلل من احتمالية تداخلها وتسببها في أعطال النظام (مثل حالات الجمود أو التذبذب ). كما قد يُوفّر نظام التشغيل آليات للتواصل بين العمليات لتمكينها من التفاعل بطرق آمنة وقابلة للتنبؤ.
إدارة المهام المتعددة والعمليات
قد يقوم نظام التشغيل متعدد المهام بالتبديل بين العمليات لإعطاء انطباع بتنفيذ العديد من العمليات في وقت واحد (أي بالتوازي )، مع أنه في الواقع لا يمكن تنفيذ سوى عملية واحدة في أي وقت على وحدة معالجة مركزية واحدة (إلا إذا كانت وحدة المعالجة المركزية تحتوي على أنوية متعددة، فحينها يمكن استخدام تعدد الخيوط أو تقنيات أخرى مماثلة). [ أ ]
من المعتاد ربط عملية واحدة ببرنامج رئيسي، والعمليات الفرعية بأي عمليات متوازية متفرعة، والتي تعمل كبرامج فرعية غير متزامنة . يُقال إن العملية تمتلك موارد، ومنها صورة برنامجها (في الذاكرة). مع ذلك، في أنظمة المعالجة المتعددة، قد تعمل عمليات عديدة على نفس البرنامج القابل لإعادة الدخول ، أو تتشاركه، في نفس الموقع في الذاكرة، ولكن يُقال إن كل عملية تمتلك صورتها الخاصة من البرنامج.
تُسمى العمليات غالبًا "مهامًا" في أنظمة التشغيل المدمجة . ويُقصد بكلمة "عملية" (أو مهمة) "شيئًا يستغرق وقتًا"، على عكس "الذاكرة" التي تعني "شيئًا يشغل مساحة". [ ب ]
ينطبق الوصف أعلاه على كل من العمليات التي يديرها نظام التشغيل، والعمليات كما هو محدد بواسطة حسابات العمليات .
إذا طلب أحد العمليات شيئًا يتطلب انتظارًا، فسيتم حظره. عندما تكون العملية في حالة الحظر ، يُمكن نقل بياناتها إلى القرص، ولكن هذا يحدث بشكل غير مرئي في نظام الذاكرة الافتراضية ، حيث قد تكون أجزاء من ذاكرة العملية موجودة فعليًا على القرص وليس في الذاكرة الرئيسية في أي وقت. حتى أجزاء العمليات/المهام النشطة (البرامج قيد التنفيذ) يُمكن نقلها إلى القرص، إذا لم تُستخدم مؤخرًا. ليس من الضروري أن تكون جميع أجزاء البرنامج قيد التنفيذ وبياناته موجودة في الذاكرة الفعلية لكي تكون العملية المرتبطة به نشطة.
حالات العملية

تتطلب نواة نظام التشغيل التي تسمح بتعدد المهام أن تكون للعمليات حالات معينة . أسماء هذه الحالات غير موحدة، لكنها تؤدي وظائف متشابهة. [ 1 ]
- أولاً، يتم "إنشاء" العملية عن طريق تحميلها من جهاز تخزين ثانوي ( محرك أقراص صلبة ، قرص مضغوط ، إلخ) إلى الذاكرة الرئيسية . بعد ذلك، يقوم مُجدول العمليات بتعيين حالة "الانتظار" لها.
- أثناء "انتظار" العملية، فإنها تنتظر من المجدول إجراء ما يُسمى بتبديل السياق . يقوم تبديل السياق بتحميل العملية إلى المعالج وتغيير حالتها إلى "قيد التشغيل"، بينما تبقى العملية التي كانت "قيد التشغيل" سابقًا في حالة "انتظار".
- إذا احتاجت عملية في حالة "التشغيل" إلى انتظار مورد ما (كالانتظار لإدخال المستخدم أو فتح ملف، على سبيل المثال)، فإنها تُعيّن إلى حالة "الحظر". وتُعاد حالة العملية إلى "الانتظار" عندما لا تعود العملية بحاجة إلى الانتظار (في حالة الحظر).
- بمجرد انتهاء تنفيذ العملية، أو إنهاء نظام التشغيل لها، تصبح غير ضرورية. تُزال العملية فورًا أو تُنقل إلى حالة "الإنهاء". عند إزالتها، تنتظر فقط إزالتها من الذاكرة الرئيسية. [ 1 ] [ 3 ]
التواصل بين العمليات
عندما تحتاج العمليات إلى التواصل فيما بينها، يجب عليها مشاركة أجزاء من مساحات عناوينها أو استخدام أشكال أخرى من التواصل بين العمليات (IPC). على سبيل المثال، في مسار أوامر shell ، يجب أن يمر ناتج العملية الأولى إلى العملية الثانية، وهكذا. مثال آخر هو مهمة تم تقسيمها إلى عمليات متعاونة ولكنها مستقلة جزئيًا، ويمكن تشغيلها في وقت واحد (أي باستخدام التزامن، أو التوازي الحقيقي - النموذج الأخير هو حالة خاصة من التنفيذ المتزامن، وهو ممكن عندما تتوفر أنوية معالجة مركزية متعددة للعمليات الجاهزة للتنفيذ).
بل من الممكن أن تعمل عمليتان أو أكثر على أجهزة مختلفة قد تعمل بنظام تشغيل مختلف، لذلك هناك حاجة إلى بعض آليات الاتصال والمزامنة (تسمى بروتوكولات الاتصالات للحوسبة الموزعة) (على سبيل المثال، واجهة تمرير الرسائل {MPI}).
تاريخ
بحلول أوائل الستينيات، تطورت برامج التحكم الحاسوبية من برامج التحكم بالشاشات ، مثل IBSYS ، إلى برامج التحكم التنفيذي . ومع مرور الوقت، أصبحت الحواسيب أسرع، بينما كان وقت المعالجة لا يزال مكلفًا وغير مستغل بالكامل؛ مما جعل البرمجة المتعددة ممكنة وضرورية. تعني البرمجة المتعددة تشغيل عدة برامج في وقت واحد . في البداية، كان أكثر من برنامج يعمل على معالج واحد، نتيجةً لبنية الحاسوب أحادية المعالج ، وكانت هذه البرامج تتشارك موارد الأجهزة المحدودة والنادرة؛ وبالتالي، كان التزامن تسلسليًا . أما في الأنظمة اللاحقة متعددة المعالجات ، فيمكن تشغيل عدة برامج بالتوازي .
تتكون البرامج من تسلسلات من التعليمات للمعالجات. لا يستطيع المعالج الواحد تنفيذ سوى تعليمة واحدة في كل مرة، إذ يستحيل تشغيل أكثر من برنامج في الوقت نفسه. قد يحتاج البرنامج إلى مورد ما ، كجهاز إدخال مثلاً، والذي يتطلب تأخيراً كبيراً، أو قد يبدأ عملية بطيئة، كإرسال مخرجات إلى طابعة. يؤدي هذا إلى بقاء المعالج في وضع "الخمول" (غير مستخدم). ولإبقاء المعالج مشغولاً باستمرار، يتوقف تنفيذ هذا البرنامج، ويقوم نظام التشغيل بتحويل المعالج لتشغيل برنامج آخر. بالنسبة للمستخدم، سيبدو أن البرامج تعمل في الوقت نفسه (ومن هنا جاء مصطلح "التوازي").
بعد ذلك بوقت قصير، توسع مفهوم "البرنامج" ليشمل مفهوم "البرنامج قيد التنفيذ وسياقه". ونشأ مفهوم العملية، الذي أصبح ضروريًا أيضًا مع اختراع الشيفرة القابلة لإعادة الدخول . وظهرت الخيوط لاحقًا. ومع ذلك، مع ظهور مفاهيم مثل المشاركة الزمنية ، وشبكات الحاسوب ، والحواسيب متعددة المعالجات ذات الذاكرة المشتركة ، أفسحت "البرمجة المتعددة" القديمة المجال أمام تعدد المهام الحقيقي ، والمعالجة المتعددة ، ولاحقًا، تعدد الخيوط .
انظر أيضاً
ملحوظات
- ↑ تجمع بعض وحدات المعالجة المركزية الحديثة بين معالجين مستقلين أو أكثر في تكوين متعدد النوى ، ويمكنها تنفيذ عدة عمليات في وقت واحد. وهناك تقنية أخرى تُسمى تعدد الخيوط المتزامن (المستخدمة في تقنية Hyper-threading من إنتل ) تُحاكي التنفيذ المتزامن لعدة عمليات أو خيوط.
- ↑ تشير المهام والعمليات أساسًا إلى الكيان نفسه. وعلى الرغم من اختلاف تاريخهما المصطلحي نوعًا ما، فقد أصبحا يُستخدمان كمترادفين. اليوم، يُفضّل عمومًا استخدام مصطلح "العملية" على "المهمة"، باستثناء الإشارة إلى "تعدد المهام"، لأن المصطلح البديل "المعالجة المتعددة" يسهل الخلط بينه وبين "المعالج المتعدد" (وهو جهاز كمبيوتر مزود بوحدتي معالجة مركزية أو أكثر).
مراجع
- 1 2 3 4 سيلبرشاتز، أبراهام ؛ كاجن، جريج؛ جالفين، بيتر باير (2004). "الفصل 4. العمليات". مفاهيم نظام التشغيل مع جافا ( الطبعة السادسة). جون وايلي وأولاده . ISBN 0-471-48905-0.
- ↑ فاهاليا، أوريش (1996). "الفصل الثاني: العملية والنواة". أساسيات يونكس: آفاق جديدة . برنتيس هول. ISBN 0-13-101908-2.
- ↑ ستالينغز، ويليام (2005). أنظمة التشغيل: المكونات الداخلية ومبادئ التصميم ( الطبعة الخامسة). برنتيس هول. ISBN 0-13-127837-1.(وخاصة الفصل 3، القسم 3.2، "حالات العملية"، بما في ذلك الشكل 3.9 "انتقال حالة العملية مع حالات التعليق").
للمزيد من القراءة
- لاور، هيو؛ نيدهام، روجر (أكتوبر 1978). "حول ازدواجية هياكل أنظمة التشغيل" . وقائع الندوة الدولية الثانية حول أنظمة التشغيل . IRIA.[ورقة بحثية تاريخية تصنف بنى أنظمة التشغيل متعددة العمليات إلى فئتين مزدوجتين.]
- رمزي ح. أرباتشي-دوسو وأندريا س. أرباتشي-دوسو (2014). " أنظمة التشغيل: ثلاثة أجزاء سهلة ". منشورات أرباتشي-دوسو. الفصول ذات الصلة: التجريد: العملية، واجهة برمجة التطبيقات (API) للعملية
- غاري د. نوت (1974) اقتراح لبعض أساسيات إدارة العمليات والتواصل البيني ، مجلة ACM SIGOPS لأنظمة التشغيل، المجلد 8، العدد 4 (أكتوبر 1974)، الصفحات 7-44
روابط خارجية
الوسائط المتعلقة بـ Process (الحوسبة) على ويكيميديا كومنز- مصادر إلكترونية لمعلومات العملية
- قاعدة بيانات ومنتدى معلومات عمليات الحاسوب
- نماذج العمليات مع طرق إنشاء العمليات وإنهائها، مؤرشفة بتاريخ 6 فبراير 2021 على موقع Wayback Machine
- عملية (حوسبة)
- الحوسبة المتزامنة
- تقنية نظام التشغيل
