خروج نظام التشغيل Python

Khrwj Nzam Altshghyl Python



توفر وحدة أنظمة تشغيل Python مجموعة متنوعة من الأدوات للإرسال باستخدام نظام التشغيل. تقدم هذه الوحدة طريقة معيارية لاستخدام الميزة التي تعتمد على نظام التشغيل. تُستخدم طرق مختلفة في لغة برمجة Python ، ومن بينها 'Python os exit'. باستخدام هذه الوظيفة ، يمكن للمرء إنهاء عملية Python بحالة معينة دون تشغيل معالجات التنظيف أو مخازن التنظيف المؤقتة ، على سبيل التوضيح ، باستخدام استدعاء نظام 'os fork ()' ، حيث يتم استخدام هذه الوظيفة عادةً في العملية الفرعية.

يمكن لوظيفة الكمبيوتر إنهاء تنفيذها عن طريق بدء استدعاء نظام الخروج على العديد من أنظمة تشغيل أجهزة الكمبيوتر. في نظام تعدد مؤشرات الترابط ، غالبًا ما يرمز الخروج إلى إيقاف الخيط التشغيلي. يسترد نظام التشغيل الموارد التي تتضمن الملفات والذاكرة لإدارة الموارد. ولكن ، إذا تحدثنا عن الطريقة القياسية للخروج ، فمن المحتمل أن تكون طريقة 'sys.exit (n)'.







بناء الجملة

فيما يلي صيغة طريقة خروج Python os:




يحدد بناء جملة طريقة Python os exit شيئين: الجزء الأول يمثل حالة خروج العملية ، ولن تُرجع هذه الوحدة أي قيمة.



المثال رقم 1: استخدام طريقة 'os._exit ()' للخروج من عمليات متعددة دون استدعاء أي معالج تنظيف

يمكن تشغيل طريقة الخروج في أي نظام تشغيل ، وبشكل أساسي في أنظمة التشغيل 'Windows' أو 'Linux'. في مثالنا الأول ، سننظر في العمليات المتعددة التي تحدث كعملية أصلية وعملية فرعية ، حيث تؤدي المعالجة دون استدعاء معالج التنظيف في الوظيفة أو البرنامج. ستعمل هذه الوحدة بشكل أكثر كفاءة في نظام التشغيل 'Linux'. يؤدي تنظيف مؤشر الترابط 'pop ()' بقيمة غير صفرية لمعامل التنفيذ إلى استدعاء معالج التنظيف. يتم إخراج جميع إجراءات التنظيف التي تم دفعها ولكن لم يتم تحريرها بعد من مكدس الصرف الصحي ويتم تنفيذها في ترتيب الوارد والصادر أولاً (LIFO) عندما يتوقف مؤشر الترابط ، ولكن لن تكون هناك حاجة لاستدعائه في هذا المثال.






يتم شرح مقتطف الشفرة الخاص بمثالنا الأول لمخرج Python os أدناه:

بدأ البرنامج عن طريق استيراد مكتبة 'os' لأننا نشعر بالقلق حيال تنفيذ الشروط والأحكام للربط مع نظام التشغيل الخاص بجهازنا. ثم أنشأنا 'PID' وربطنا 'Python' بمكتبة 'نظام التشغيل'. نستخدم الآن العبارة الشرطية حيث يكون شرط 'if' هو 'PID أكبر من 0'.



بعد ذلك ، استخدمنا وظيفة 'print ()' ، والتي يجب أن تطبع العبارة '\ n المعالجة في الأصل' ، حيث يتم استخدام '\ n' لنقل المؤشر إلى السطر الجديد ضمن شرط 'if'. تتم تهيئة المتغير 'info' لاستدعاء 'os.waitpid (pid ، 0)' ، حيث يبدأ 'PID' من الفاصل '0'. لمزيد من المتابعة ، طبقنا شرط 'if' آخر على 'os.WIFEXITED ()' حيث منحناه وصف المعلومات '1' لمعالجته. يخزن معلومات المعالجة الخاصة به في الوظيفة المعرفة من قبل المستخدم 'python_code' ، والتي تحمل بيان الطباعة لـ 'Child Code to Be Exit' ويمنحها قيمة 'python_code' داخل وظيفة 'print ()'.

الآن ، نصل إلى شرط 'آخر' ، والذي يحتوي على أربع بيانات مطبوعة. العبارة في أول وظيفة 'print ()' هي 'Processing in Child'. بيان الطباعة الثاني هو 'ID of Processing:' ومع ذلك ، فإنه يحمل قيمة 'os.getpid ()' ، الوظيفة التي تحتوي على ملف كود Python للمعالجة الفرعية. العبارة المطبوعة الثالثة المستخدمة هنا هي 'Hey Python !!' وبيان الطباعة الرابع هو 'معالجة الطفل موجودة!' أخيرًا ، طبقنا الوحدة الرئيسية لدينا للخروج من معالجة تنفيذ البرنامج للملف الحالي وهو 'os._exit ()' وحيث يتم تعيين المتغير 'os.EX_OK' دون إعادة أي وظيفة للمعالجة.


نظرًا لأن المعالجة الفرعية هي الأولوية للتشغيل أولاً والخروج من البرنامج من المعالجة الأصلية لأنها تتطلب مزيدًا من الوقت. لذا ، فإن لقطة الإخراج تعرض ببساطة عبارات الطباعة التي قدمناها في الكود السابق ، لكن الملف الذي أنشأناه في النظام يعرض معرف المعالجة الخاص به ، '78695' ، والذي يمكننا رؤيته في اللقطة الأخيرة. وبعد ذلك ، ستكون معالجة خروج الوالدين '0' لأنها لا تخضع حتى للمعالجة الشاملة لأنها تتطلب المعالج.

المثال رقم 2: استخدام طريقة 'os._exit ()' للخروج من عملية عامة بدون تفريغ المخازن المؤقتة

في هذا المثال ، سنلقي نظرة على ظاهرة الخروج من تنفيذ المعالجة العامة البسيطة بعد تشغيل فتراتها من قراءتها من خلال النظام. هنا ، نحن أيضًا لا نستخدم مخازن التنظيف المؤقتة لأنها غير مطلوبة للمعالجة. بعد كل شيء ، سيعمل 'os._exit' بكفاءة أكبر للخروج من العملية.


دعونا نلقي نظرة على الكود حيث قمنا باستيراد مكتبة Python “os”. يبدأ البرنامج بحلقة for-loop حيث نستخدم المتغير 'p' للاحتفاظ ببعض البيانات وتعيين مداها على '6'. بعد ذلك ، طبقنا شرط 'if' على المتغير 'p' ، والذي يساوي إجمالي الفترات الزمنية إلى '4'. نظرًا لأن نظام المعالجة يبدأ من الفهرس '0' ، فسيتم تشغيل العملية من '0' إلى '4'. حالما يتم مطابقة الشرط ، وهي قيمة 'p' تصبح مساوية لـ 4 ، سيقوم البرنامج بتنفيذ العبارة التالية ، وهي وظيفة 'print ()' ، وتوفير وحدة المعالجة 'exit'. في السطر الأخير ، استخدمنا وظيفة 'os._exit ()' للخروج من الوظيفة بعد البدء من '0' ثم إنهاء المعالجة. في النهاية ، ستتم طباعة جميع القيم التي تم تخزينها في المتغير 'p' بعد المعالجة على شاشة الإخراج حيث استخدمنا وظيفة 'print ()' من خلال تخصيص المتغير 'p' لها.


سيعرض عرض الإخراج فقط الأرقام '0' و '1' و '2' و '3' ، حيث أن هذه هي الأرقام الأربعة التي تم الوصول إليها بعد المعالجة ، وبعد ذلك ، ستكون المعالجة بمثابة خروج.

المثال رقم 3: استخدام طريقة “os._exit ()” للخروج من عملية غير موجودة في المخزن المؤقت

في بعض الأحيان ، نحاول اجتياز بعض العمليات التي لم يكن من السهل على النظام إجراء المعالجة أو التوقف عنها لأي سبب - غالبًا عندما تكون المعالجة غائبة لبرنامج معين بسبب وجود أي مادة أو مكتبة أو تخصيص ملف معين .


دعونا نلقي نظرة على مقتطف الشفرة الخاص بنا حيث استخدمنا 'الأرقام' كمتغير وقمنا بتعيينه على النطاق من '0' إلى '7'. الآن ، قمنا بتطبيق شرط 'if' حيث تتساوى 'Numbers' مع فهارس '5' ، ثم استخدمنا العبارة 'print ()' لطباعة قيمة 'exit'. بعد ذلك ، استخدمنا وحدة معينة من 'رفع SystemExit' للخروج من المعالجة مثل 'os._exit' واستخدمنا وظيفة 'print ()' مرة أخرى لعرض الأرقام المخزنة في المتغير 'Numbers' بعد إنهاء العملية.


لقطة الإخراج ستوضح بوضوح أنها لن تعرض قيم 'الأرقام' بعد وحدة استخدام الخروج. نظرًا لعدم وجود مادة رئيسية ، مثل المكتبة والتهيئة ، فإنها ستعود 'فارغة' في عرض الإخراج بعد معالجة البرنامج والعودة دون قراءة أي قيمة ، أو قد يكون البرنامج لا يتم تنفيذه.

استنتاج

في هذه المقالة ، ناقشنا ثلاثة أمثلة تتعلق بطريقة خروج Python os. في المثال الأول ، استخدمنا وحدة خروج Python os للخروج من العملية الفرعية دون استخدام أي معالج للتنظيف والتنظيف. في المثال الثاني ، استخدمنا وحدة الخروج من نظام التشغيل في عملية الخروج في برنامج عام واحد من التعليمات البرمجية دون مسح المخزن المؤقت. يتعلق المثال الثالث بإنهاء العملية الغائبة غير الموجودة حاليًا أو المخزنة في النظام.