منهج نواة تقنية الجلسة العاشرة
العمليات والوظائف processes and jobs
أهداف الجلسة
- التعرف علي العمليات والوظائف processes and jobs
- اكتساب المعارف المرتبطة بطريقة تعامل العتاد ونظام التشغيل مع العمليات processes
- إكتساب المعارف والمهارات المرتبطة عرض وإدارة العمليات والوظائف في لينكس
محتوي الجلسة
- تعريف العملية process
- تعامل العتاد (المعالج والذاكرة) ونظام التشغيل مع العمليات
- بدأ العملية
- بعض أوامر لينكس للعمليات
- تعريف الوظائف
- الوظائف التي تعمل في الخلفية والمقدمة background and foreground processes
- بعض أوامر لينكس للوظائف
طريقة التقديم
تعريف العملية process
يذكر الميسر المتدربين بما تم شرحة في الجلسة الأولي "نموذج تنفيذ البرنامج program execution model ويستنبط المتدربون من هذا النموذج تعريف العملية وهو (نسخة من البرنامج قيد التشغيل)(running instance of program)
ويسأل الميسر المتدربين ان كان البرنامج يمكن ان يتكون من عملية أو أكثر
تعامل العتاد (المعالج والذاكرة) ونظام التشغيل مع العمليات
يشير الميسر لما تم ذكرة في الجلسة الأولي "نموذج تنفيذ البرنامج program execution model ويستفيض في شرح النموذج
يسأل الميسر ماذا يحتاج الحاسوب لأجراء العملية ( حجز مساحة في الذاكرة وإستقطاع وقت من المعالج)
يسأل الميسر ما هو الجزء المسئول عن نقل البرنامج من وسيط التخزين HD للذاكرة المؤقتة RAM ؟ program loader
يسأل الميسر اذا كان نظام التشغيل يقوم بتحميل البرنامج بالكامل في الذاكرة لبدء تنفيذ العملية؟
ما الحل في حجم الذاكرة اذا كان اصغر من حجم البرنامج؟ paging, memory mapping table التصحيف و جدول ربط مساحات العمليات في الذاكرة
ماذا يفعل نظام التشغيل عند انتهاء الوقت المخصص لعملية ما (context switching (memory management unit loads the new mapping table )) تبديل السياق (تقوم وحدة إدارة الذاكرة بتحميل جدول ربط المساحات المحجوزة للعمليات في الذاكرة)
الصلاحيات
كيف يفتح أي ملف ؟
هل ينجح البرنامج في فتح الملف في كل الاحوال ؟
العملية الأم Parent process
من المسئول عن بدأ اي عملية ؟ (كل عملية مسئول عن بدئها عملية أم حتي الوصول الي العملية init العملية المسئولة عن بدأ نظام التشغيل؟؟؟؟؟!!!!!)
معرف العملية process id
كيف يميز نظام التشغيل العمليات ؟
ما هي البيانات التي يحتاج نظام التشغيل لتخزينها عن العمليات
(معرف العملية process id, مالك العملية process owner, مجموعة العملية process group, العملية الأم parent process, الأولوية priority)
اين تحفظ بيانات العمليات ؟ process table
بعض أوامر لينكس للعمليات
ps (options) يطلب الميسر من المتدربين فتح man ps وكل متدرب يشرح خيار من خيارات الامر ps
pstree
kill (options - signals)
تعريف الوظيفة job
معرف العملية داخل الباش شيل process identifier inside bash shell
المستخدم هو من ينلك الوظيفة job في حين ان نظام التشغيل هو من يملك العملية process
يناقش الميسر اهمية امتلاك المستخدم للوظيفة
الوظائف التي تعمل في الخلفية والمقدمة background and foreground processes
يتم تشغيل برنامج فايرفوكس من داخل الشل واحاول تنفيذ بعض الاوامر علي الشل بعد التأكد من ان الاوامر لا تعمل نسأل عن السبب,
يتم توضيح ان الأوامر ترسل الي Stdin الخاص ببرنامج فايرفوكس وبهذا فان هذة الاوامر لا تصل الي ال shell
في هذا الوضع يسمي ان برنامج فايرفوكس يعمل في المقدمة forground
نستعرض عملية قتل برنامج الفايرفوكس عن طريق ctrl-c
نعيد تشغيل برنامج فايرفوكس لكن هذة المره باستخام & لتشغيلة في الخلفية backgound
نعيد كتابة الاوامر السابقة ونري انها تعمل علي ال shell
نستعرض الفرق بين ctl-c و ctl-d و ctl-z
بعض أوامر لينكس للوظائف
jobs
fg
ctrl-z (stopped no processor time consumed)
عرض الوظائف بالامر jobs وملاحظة انه لا يوجد عمليات مصنفة كعمليات معطلة
نستخدم ctl-z لتعطيل برنامج مستعرض نصوص رسومي GUI ونستعرض انه لا يستجيب
نعيد عرض الوظائف بالامر jobs ونلاحظ انه تم تصنيفة كعملية معطلة
ونستنبط ان نظام التشغيل سحب ال stdin و ال stdout الخاصين بالبرنامج