تغييرات

اذهب إلى التنقل اذهب إلى البحث
العمليات والوظائف processes and jibs
=العمليات والوظائف processes and jibs=

==أهداف الجلسة==
* التعرف علي العمليات والوظائف processes and jobs
* اكتساب المعارف المرتبطة بطريقة تعامل العتاد ونظام التشغيل مع العمليات processes
* إكتساب المعارف والمهارات المرتبطة عرض وإدارة العمليات والوظائف في لينكس

==محتوي الجلسة==
# تعريف العملية process
# تعامل المعالج والذاكرة مع العمليات
# تعامل نظام التشغيل مع العمليات
# بدأ العملية
# بعض أوامر لينكس للعمليات
# تعريف الوظائف
# الوظائف التي تعمل في الخلفية والمقدمة background and foreground processes
# بعض أوامر لينكس للوظائف

==طريقة التقديم==

===تعريف العملية process===
يذكر الميسر المتدربين بما تم شرحة في الجلسة الأولي "نموذج تنفيذ البرنامج program execution model ويستنبط المتدربون من هذا النموذج تعريف العملية وهو ( الجزء قيد التشغيل من برنامج؟؟؟؟؟!!!!!!!)(instance of program)
<br>
ويسأل الميسر المتدربين ان كان البرنامج يمكن ان يتكون من عملية أو أكثر

===تعامل المعالج والذاكرة مع العمليات===
يشير الميسر لما تم ذكرة في الجلسة الأولي "نموذج تنفيذ البرنامج program execution model ويستفيض في شرح النموذج
<br>
يسأل الميسر ماذا يحتاج الحاسوب لأجراء العملية ( حجز مساحة في الذاكرة وإستقطاع وقت من المعالج)

===تعامل نظام التشغيل مع العمليات===
يسأل الميسر ما هو الجزء المسئول عن نقل البرنامج من وسيط التخزين HD للذاكرة المؤقتة RAM ؟ program loader
<br>
يسأل الميسر اذا كان نظام التشغيل يقوم بتحميل البرنامج بالكامل في الذاكرة لبدء تنفيذ العملية؟
<br>
ما الحل في حجم الذاكرة اذا كان اصغر من حجم البرنامج؟ paging, memory mapping table التصحيف و جدول ربط مساحات العمليات في الذاكرة
<br>
ماذا يفعل نظام التشغيل عند انتهاء الوقت المخصص لعملية ما (context switching (memory management unit loads the new mapping table )) تبديل السياق (تقوم وحدة إدارة الذاكرة بتحميل جدول ربط المساحات المحجوزة للعمليات في الذاكرة)

===الصلاحيات===
كيف يفتح أي ملف ؟
<br>
هل ينجح البرنامج في فتح الملف في كل الاحوال ؟



===العملية الأم Parent process===
من المسئول عن بدأ اي عملية ؟ (كل عملية مسئول عن بدئها عملية أم حتي الوصول الي العملية init العملية المسئولة عن بدأ نظام التشغيل؟؟؟؟؟!!!!!)

===معرف العملية process id===
كيف يميز نظام التشغيل العمليات ؟
ما هي البيانات التي يحتاج نظام التشغيل لتخزينها عن العمليات
<br>
(معرف العملية process id, مالك العملية process owner, مجموعة العملية process group, العملية الأم parent process, الأولوية priority)
<br>
اين تحفظ بيانات العمليات ؟ process table

===بعض أوامر لينكس للعمليات===
ps (options) يطلب الميسر من المتدربين فتح man ps وكل متدرب يشرح خيار من خيارات الامر ps
pstree
<br>
kill (options - signals)

===تعريف الوظيفة job===
معرف العملية داخل الباش شيل process identifier inside bash shell
<br>
المستخدم هو من ينلك الوظيفة job في حين ان نظام التشغيل هو من يملك العملية process
<br>
يناقش الميسر اهمية امتلاك المستخدم للوظيفة

===الوظائف التي تعمل في الخلفية والمقدمة background and foreground processes===

يتم تشغيل برنامج فايرفوكس من داخل الشل واحاول تنفيذ بعض الاوامر علي الشل بعد التأكد من ان الاوامر لا تعمل نسأل عن السبب,
<br>
يتم توضيح ان الأوامر ترسل الي Stdin الخاص ببرنامج فايرفوكس وبهذا فان هذة الاوامر لا تصل الي ال shell
<br>
في هذا الوضع يسمي ان برنامج فايرفوكس يعمل في المقدمة forground
<br>
نستعرض عملية قتل برنامج الفايرفوكس عن طريق ctrl-c
<br>
نعيد تشغيل برنامج فايرفوكس لكن هذة المره باستخام & لتشغيلة في الخلفية backgound
<br>
نعيد كتابة الاوامر السابقة ونري انها تعمل علي ال shell

<br>
نستعرض الفرق بين ctl-c و ctl-d و ctl-z

===بعض أوامر لينكس للوظائف===
jobs
<br>
fg
<br>
ctrl-z (stopped no processor time consumed)

<br>
عرض الوظائف بالامر jobs وملاحظة انه لا يوجد عمليات مصنفة كعمليات معطلة
<br>
نستخدم ctl-z لتعطيل برنامج مستعرض نصوص رسومي GUI ونستعرض انه لا يستجيب
<br>
نعيد عرض الوظائف بالامر jobs ونلاحظ انه تم تصنيفة كعملية معطلة
<br>
ونستنبط ان نظام التشغيل سحب ال stdin و ال stdout الخاصين بالبرنامج


[[تصنيف:منهج نواة تقنية]]
staff
53

تعديل

قائمة التصفح