ادارة المهمات -2- Processes
ما هو أكيد ومؤكد فيه حاجة زي Task Manager بتاعة الويندوز دية .... اللي بتعرفنا البرامج الشغالة واللي مش شغالة ... عشان الدنيا سودة جدا مع اﻷمر ps وغير ظريفة بالمرة
لمتابعة تفاصيل اﻷمر ps ... يجب مراجعة الجزء اﻷول من هذه المقالة
اﻷمر ده هو أمر top :
أداة Top ... أداة أكثر من رائعة وأفضل مليون مرة من Task Manager ... - على اﻷقل في نظري - ﻷنها بتسمحلك بترتيب المهمات تبعا لمعاملات كتيرة جدا ومهمة أيضا
أهم هذه المعاملات هي الذاكرة اﻷساسية والذاكرة اﻷفتراضية swap ومستوي التحميل على وحدة المعالجة المركزية Load Average وكمان أكتر المهمات اللي المستخدمة المعالج دلوقتي ... وغيره كتير
لو مش فاهم بعض هذه المعاملات .. مش أزمة كمل وانت ممكن تفهم ... لسه مفهمتش ... يبقى لازم تستخدم أمر man أو info
لسه مش فاهم برده ... حاول تتصفح مستندات التوثيق اﻷساسية الخاصة باﻷداة دية من على الموقع اﻷساسي لأداة top
لما تستخدم أداة top هيظهرلك شاشة قريبة من هذه الشاشة فيها أغلب المعلومات عن كل المهمة والمستخدم بتاعها والوقت والذاكرة وخلافه ... طبعا لمزيد من التفصيل يمكن الرجوع للجزء اﻷول
من ناحية مستوى التحميل Load Average ... كبداية هو بيعبر عن كون النظام كان مشغول بنسبة كام في خلال دقيقة وبعدين 5 دقائق فائتة ثم 15 دقيقة
وكلمة up بتوضح النظام شغال من امتى ... وهي نفسها المعلومات اللي بتظهر مع أمر uptime
أخيرا لو بتستخدم اﻷداة دية على نظام لينكس ... هتضغط q للخروج منها والحرف h ليظهر لك شاشة اختصارات بأهم الحروف المستخدمة للتعامل مع الخصائص المختلفة
طبعا فيه أداوت كتيرة جدا لذات الغرض بعيدة عن سطر اﻷوامر وتستخدم على الواجهة الرسومية ... وهذا يتوقف على التوزيعة المستخدمة
نظام ملفات proc/
هو ده المنبع لمعلومات كتيرة جدا عن المهمات وغير المهمات ... لكن ما يعنينا اﻵن هو المهمات طبعا ... في اﻷغلب المعلومات اللي موجودة هنا هي أصل اللي بيستخدما أمر زي ps أو أداة زي أداة top وبعدين تتعرض تبعا لكل أداة
وبالتالي المعلومات هنا ... وفيرة جدا وفي اﻷغلب بيتكون معلومات لغرض البرمجة وليس اﻷدارة لنظام اللينكس ... ولكن لا يوجد ما يمنع من اﻷطلاع
هنلاقى طبعا المعلومات اﻷساسية من رقم المهمة و اﻷمر والوقت والذاكرة مضافا إلى ذلك أولوية المهمة و الملفات المفتوحة بواسطة هذه المهمة ومتغيرات المهمة الحالية وهكذا دواليك ... طبعا لا غني عن أمر man في هذه اللحظة ﻷن الترجمات دية قد تكون غامضة نوعا ما
بمعنى إني المتغير $$ بيعبر عن رقم المهمة PID الخاص بسطر اﻷوامر المستخدم اﻵن ... ولتفصيل المتغيرات الخاصة ببيئة الباش يتوجب دليل آخر للتحدث عن أساسيات برمجة الباش .. وهي ليست برمجة بالمعنى الكامل للكلمة وإنما تسمى Bash Scripting
واتركك اﻵن مع كل المعلومات المتاحة عن المهمة اﻷولي init والتي تعتبر أب لكل المهمات ... وبتتبع جميع المهمات المرتبطة بها يمكن تكوين تصور ولو بسيط عن عملية بداية النظام Boot Sequence
لم ننتهي بعد من نظام المهمات ولنا وقفة أخيرة ... ستسكمل بإذن الله
سلامي
لمتابعة تفاصيل اﻷمر ps ... يجب مراجعة الجزء اﻷول من هذه المقالة
اﻷمر ده هو أمر top :
أداة Top ... أداة أكثر من رائعة وأفضل مليون مرة من Task Manager ... - على اﻷقل في نظري - ﻷنها بتسمحلك بترتيب المهمات تبعا لمعاملات كتيرة جدا ومهمة أيضا
أهم هذه المعاملات هي الذاكرة اﻷساسية والذاكرة اﻷفتراضية swap ومستوي التحميل على وحدة المعالجة المركزية Load Average وكمان أكتر المهمات اللي المستخدمة المعالج دلوقتي ... وغيره كتير
لو مش فاهم بعض هذه المعاملات .. مش أزمة كمل وانت ممكن تفهم ... لسه مفهمتش ... يبقى لازم تستخدم أمر man أو info
لسه مش فاهم برده ... حاول تتصفح مستندات التوثيق اﻷساسية الخاصة باﻷداة دية من على الموقع اﻷساسي لأداة top
لما تستخدم أداة top هيظهرلك شاشة قريبة من هذه الشاشة فيها أغلب المعلومات عن كل المهمة والمستخدم بتاعها والوقت والذاكرة وخلافه ... طبعا لمزيد من التفصيل يمكن الرجوع للجزء اﻷول
top - 00:39:04 up 3:24, 4 users, load average: 0.04, 0.24, 0.38
Tasks: 84 total, 3 running, 81 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.7%us, 1.3%sy, 0.0%ni, 96.4%id, 0.0%wa, 0.3%hi, 0.3%si, 0.0%st
Mem: 386176k total, 368116k used, 18060k free, 7128k buffers
Swap: 586332k total, 86860k used, 499472k free, 103768k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3236 root 15 0 99.3m 69m 3760 S 2.0 18.5 9:05.77 Xorg
3704 qasem 15 0 275m 132m 17m R 1.0 35.0 28:47.55 firefox-bin
3665 qasem 15 0 30268 13m 11m R 0.7 3.5 0:00.97 konsole
3664 qasem 15 0 79104 27m 17m S 0.3 7.3 1:40.83 konqueror
4659 qasem 15 0 2252 1008 764 R 0.3 0.3 0:00.05 top
1 root 15 0 740 72 44 S 0.0 0.0 0:01.28 init
2 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/0
4 root 10 -5 0 0 0 S 0.0 0.0 0:00.10 events/0
5 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khelper
6 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread
9 root 10 -5 0 0 0 S 0.0 0.0 0:00.02 kblockd/0
10 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid
85 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 cqueue/0
86 root 10 -5 0 0 0 S 0.0 0.0 0:00.02 kseriod
124 root 15 0 0 0 0 S 0.0 0.0 0:00.05 pdflush
125 root 15 0 0 0 0 S 0.0 0.0 0:00.03 pdflush
126 root 10 -5 0 0 0 S 0.0 0.0 0:01.16 kswapd0
127 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 aio/0
374 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 kpsmoused
792 root 10 -5 0 0 0 S 0.0 0.0 0:00.23 kjournald
840 root 20 -4 1968 304 304 S 0.0 0.1 0:00.88 udevd
1124 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khubd
1265 root 12 -5 0 0 0 S 0.0 0.0 0:00.02 kgameportd
2218 root 18 0 1588 400 400 S 0.0 0.1 0:00.00 acpid
2266 root 19 0 2108 520 396 S 0.0 0.1 0:00.03 syslog-ng
2269 messageb 15 0 3496 764 644 S 0.0 0.2 0:00.30 dbus-daemon
2277 root 25 0 1828 492 492 S 0.0 0.1 0:00.00 resmgrd
من ناحية مستوى التحميل Load Average ... كبداية هو بيعبر عن كون النظام كان مشغول بنسبة كام في خلال دقيقة وبعدين 5 دقائق فائتة ثم 15 دقيقة
وكلمة up بتوضح النظام شغال من امتى ... وهي نفسها المعلومات اللي بتظهر مع أمر uptime
أخيرا لو بتستخدم اﻷداة دية على نظام لينكس ... هتضغط q للخروج منها والحرف h ليظهر لك شاشة اختصارات بأهم الحروف المستخدمة للتعامل مع الخصائص المختلفة
طبعا فيه أداوت كتيرة جدا لذات الغرض بعيدة عن سطر اﻷوامر وتستخدم على الواجهة الرسومية ... وهذا يتوقف على التوزيعة المستخدمة
نظام ملفات proc/
هو ده المنبع لمعلومات كتيرة جدا عن المهمات وغير المهمات ... لكن ما يعنينا اﻵن هو المهمات طبعا ... في اﻷغلب المعلومات اللي موجودة هنا هي أصل اللي بيستخدما أمر زي ps أو أداة زي أداة top وبعدين تتعرض تبعا لكل أداة
وبالتالي المعلومات هنا ... وفيرة جدا وفي اﻷغلب بيتكون معلومات لغرض البرمجة وليس اﻷدارة لنظام اللينكس ... ولكن لا يوجد ما يمنع من اﻷطلاع
هنلاقى طبعا المعلومات اﻷساسية من رقم المهمة و اﻷمر والوقت والذاكرة مضافا إلى ذلك أولوية المهمة و الملفات المفتوحة بواسطة هذه المهمة ومتغيرات المهمة الحالية وهكذا دواليك ... طبعا لا غني عن أمر man في هذه اللحظة ﻷن الترجمات دية قد تكون غامضة نوعا ما
andalusy@linux-box : ~$ ps
PID TTY TIME CMD
3691 pts/1 00:00:00 bash
4871 pts/1 00:00:00 ps
andalusy@linux-box : ~$ ls -l /proc/3691
total 0
dr-xr-xr-x 2 qasem users 0 2008-01-16 01:57 attr
-r-------- 1 qasem users 0 2008-01-16 01:57 auxv
-r--r--r-- 1 qasem users 0 2008-01-16 01:57 cmdline
-r--r--r-- 1 qasem users 0 2008-01-16 01:57 cpuset
lrwxrwxrwx 1 qasem users 0 2008-01-16 01:57 cwd -> /home/mqotp
-r-------- 1 qasem users 0 2008-01-16 01:57 environ
lrwxrwxrwx 1 qasem users 0 2008-01-16 01:57 exe -> /bin/bash
dr-x------ 2 qasem users 0 2008-01-16 00:39 fd
-rw-r--r-- 1 qasem users 0 2008-01-16 01:57 loginuid
-r--r--r-- 1 qasem users 0 2008-01-16 01:57 maps
-rw------- 1 qasem users 0 2008-01-16 01:57 mem
-r--r--r-- 1 qasem users 0 2008-01-16 01:57 mounts
-r-------- 1 qasem users 0 2008-01-16 01:57 mountstats
-rw-r--r-- 1 qasem users 0 2008-01-16 01:57 oom_adj
-r--r--r-- 1 qasem users 0 2008-01-16 01:57 oom_score
lrwxrwxrwx 1 qasem users 0 2008-01-16 01:57 root -> /
-rw------- 1 qasem users 0 2008-01-16 01:57 seccomp
-r--r--r-- 1 qasem users 0 2008-01-16 01:57 smaps
-r--r--r-- 1 qasem users 0 2008-01-16 00:38 stat
-r--r--r-- 1 qasem users 0 2008-01-16 00:38 statm
-r--r--r-- 1 qasem users 0 2008-01-16 01:57 status
dr-xr-xr-x 3 qasem users 0 2008-01-16 01:57 task
-r--r--r-- 1 qasem users 0 2008-01-16 01:57 wchan
andalusy@linux-box : ~$
Directly we can use this command
andalusy@linux-box : ~$ ls -l /proc/$$
بمعنى إني المتغير $$ بيعبر عن رقم المهمة PID الخاص بسطر اﻷوامر المستخدم اﻵن ... ولتفصيل المتغيرات الخاصة ببيئة الباش يتوجب دليل آخر للتحدث عن أساسيات برمجة الباش .. وهي ليست برمجة بالمعنى الكامل للكلمة وإنما تسمى Bash Scripting
واتركك اﻵن مع كل المعلومات المتاحة عن المهمة اﻷولي init والتي تعتبر أب لكل المهمات ... وبتتبع جميع المهمات المرتبطة بها يمكن تكوين تصور ولو بسيط عن عملية بداية النظام Boot Sequence
andalusy@linux-box : ~$ sudo ls -l /proc/1
root's password:
total 0
dr-xr-xr-x 2 root root 0 Jan 16 02:09 attr
-r-------- 1 root root 0 Jan 16 02:09 auxv
-r--r--r-- 1 root root 0 Jan 16 02:09 cmdline
-r--r--r-- 1 root root 0 Jan 16 02:09 cpuset
lrwxrwxrwx 1 root root 0 Jan 16 02:09 cwd -> /
-r-------- 1 root root 0 Jan 16 02:09 environ
lrwxrwxrwx 1 root root 0 Jan 16 02:09 exe -> /sbin/init
dr-x------ 2 root root 0 Jan 16 02:09 fd
-rw-r--r-- 1 root root 0 Jan 16 02:09 loginuid
-r--r--r-- 1 root root 0 Jan 16 02:09 maps
-rw------- 1 root root 0 Jan 16 02:09 mem
-r--r--r-- 1 root root 0 Jan 16 02:09 mounts
-r-------- 1 root root 0 Jan 16 02:09 mountstats
-rw-r--r-- 1 root root 0 Jan 16 02:09 oom_adj
-r--r--r-- 1 root root 0 Jan 16 02:09 oom_score
lrwxrwxrwx 1 root root 0 Jan 16 02:09 root -> /
-rw------- 1 root root 0 Jan 16 02:09 seccomp
-r--r--r-- 1 root root 0 Jan 16 02:09 smaps
-r--r--r-- 1 root root 0 Jan 16 00:38 stat
-r--r--r-- 1 root root 0 Jan 16 00:38 statm
-r--r--r-- 1 root root 0 Jan 16 01:59 status
dr-xr-xr-x 3 root root 0 Jan 16 02:09 task
-r--r--r-- 1 root root 0 Jan 16 02:09 wchan
لم ننتهي بعد من نظام المهمات ولنا وقفة أخيرة ... ستسكمل بإذن الله
سلامي
- مدونة قاسم
- لُجأو سجل لتعلق
- قراءة(1207)
