Abdul Malik Essa نشر 29 سبتمبر 2021 أرسل تقرير نشر 29 سبتمبر 2021 (معدل) يعطيكم العافية.. كيف يتم إنهاء الاجرائيات في ال OS ؟ تم التعديل في 29 سبتمبر 2021 بواسطة Hassan Hedr توضيح السؤال 2 اقتباس
0 شرف الدين حفني نشر 29 سبتمبر 2021 أرسل تقرير نشر 29 سبتمبر 2021 بتاريخ الآن قال Abdul Malik Essa: يعطيكم العافية.. كيف يتم إنهاء الاجرائيات في ال OS ؟ عذراً ولكن لا أفهم قصدك بإنهاء الإجرائيات, هل ممكن التوضيح بشكل أكبر؟ اقتباس
1 Ali Haidar Ahmad نشر 29 سبتمبر 2021 أرسل تقرير نشر 29 سبتمبر 2021 بشكل عام ضمن أنظمة التشغيل، نصادف أحيانا ثلاث حالات للإنهاء: - الحالة الطبيعية: عندما تنتهي الاجرائية من تنفيذ آخر تعليمة لها تطلب من نظام التشغيل أن يقوم بحذفها عن طريق استدعاء نظام يدعى exit بالتالي في هذه النقطة بعد استدعاء النظام exit فإنه يتم تحرير deallocate كل الموارد التي كانت تحجزها هذه الإجرائية لتعود إلى نظام التشغيل ويتم تحرير flush كل الملفات المفتوحة وإغلاقها. - الحالة الخاصة: قد تطلب الإجرائية أن يتم إنهائها قبل تنفيذ كل التعليمات وذلك عن طريق استدعاء النظام exit (هو تابع يرد قيمة وقد يختلف اسمه من نظام لآخر) الذي يرد قيمة صحيحة integer هذا العدد الصحيح int يمرر passed إلى الإجرائية الأب parent في حال كان الأب قد استدعى wait ويرد الإجرائية exit إحدى القيمتين: •يرد zero في حال إن إنهاء الإجرائية تم بشكل صحيح. •يرد non-zero (رقم عشوائي صحيح) فيحال تم حدوث مشاكل قبل الإنهاء. - الحالة القسرية: في حال أرادت الإجرائية الأب أن تقوم بإنهاء الإجرائيات الأبناء تستخدم استدعاء النظام يدعى abort وهذه بعض الاسباب للقيام بذلك: 1. الإجرائية البنت child تخطت الاستخدام المسموح به لبعض الموارد التي خصصت لها. 2. المهمة task التي اعطت للإجرائية البنت لم تعد مهمة (لاحاجة لها بعد الآن no required ). 3. الإجرائية الأب انتهت (تنفذ exit) ولكن نظام التشغيل لايسمح بإنهاء الأب قبل البنت وبالتالي سوف تنهي الإجرائية البنت لتستطيع أن تنهي نفسها. ملاحظة: إذا انتهى الأب فإن نظام التشغيل قد وقد لا يسمح بوجود الابن بدون أبيه (يختلف الأمر من نظام تشغيل لآخر). 1 اقتباس
1 Hassan Hedr نشر 29 سبتمبر 2021 أرسل تقرير نشر 29 سبتمبر 2021 يمكنك إرسال إشارة إلى الإجرائية تعلمها برغبتك في انهاء عملها، وهي بدورها تقوم بالاعمال اللازمة والانهاء، أو أن تقوم بإنهائها قسرا عن طريق نظام التشغيل في لينكس تستخدم الأمر kill لإرسال الاشارات الى الاجرائيات ومنها اشارات انهاء العمل: SIGTERM اشارة للطلب من الاجرائية الخروج، سيتم تلقي الاشارة من الاجرائية والمباشرة بعمليات الانهاء kill -15 PID SIGKILL اشارة انهاء الاجرائية قسرا حيث يقوم نظام التشغيل بايقاف عمل الاجرائية فورا kill -9 PID حيث PID هو معرف الاجرائية يمكن الحصول عليه من خرج تنفيذ التعليمة التالية ps 1 اقتباس
السؤال
Abdul Malik Essa
يعطيكم العافية..
كيف يتم إنهاء الاجرائيات في ال OS ؟
تم التعديل في بواسطة Hassan Hedrتوضيح السؤال
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.