Linux ½ø³Ì¹ÜÀíÆÊÎö
ÎÄÕÂÀ´Ô´£ºhttp://www.ibm.com/developerworks/cn/linux/l-linux-process-management/
¼¶±ð£º Öм¶
M. Tim Jones, ¹ËÎʹ¤³Ìʦ, Emulex Corp.
2009 Äê 1 ÔÂ 20 ÈÕ
Linux® µÄÓû§¿Õ¼ä½ø³ÌµÄ´´½¨ºÍ¹ÜÀíËùÉæ¼°µÄÔÀíÓë UNIX® Óкܶ๲ͬµã£¬µ«Ò²ÓÐÒ»Ð©ÌØ¶¨ÓÚ Linux µÄ¶ÀÌØÖ®´¦¡£ÔÚ±¾ÎÄÖУ¬Á˽â Linux ½ø³ÌµÄÉúÃüÖÜÆÚ£¬Ì½Ë÷Óû§½ø³Ì´´½¨¡¢ÄÚ´æ¹ÜÀí¡¢µ÷¶ÈºÍÏú»ÙµÄÄÚºËÄÚÄ»¡£
Linux ÊÇÒ»ÖÖ¶¯Ì¬ÏµÍ³£¬Äܹ»ÊÊÓ¦²»¶Ï±ä»¯µÄ¼ÆËãÐèÇó¡£Linux ¼ÆËãÐèÇóµÄ±íÏÖÊÇÒÔ½ø³Ì µÄͨÓóéÏóΪÖÐÐĵġ£½ø³Ì¿ÉÒÔÊÇ¶ÌÆÚµÄ£¨´ÓÃüÁîÐÐÖ´ÐеÄÒ»¸öÃüÁ£¬Ò²¿ÉÒÔÊdz¤ÆÚµÄ£¨Ò»ÖÖÍøÂç·þÎñ£©¡£Òò´Ë£¬¶Ô½ø³Ì¼°Æäµ÷¶È½øÐÐÒ»°ã¹ÜÀí¾ÍÏԵü«ÎªÖØÒª¡£
ÔÚÓû§¿Õ¼ä£¬½ø³ÌÊÇÓɽø³Ì±êʶ·û£¨PID£©±íʾµÄ¡£´ÓÓû§µÄ½Ç¶ÈÀ´¿´£¬Ò»¸ö PID ÊÇÒ»¸öÊý×ÖÖµ£¬¿ÉΩһ±êʶһ¸ö½ø³Ì¡£Ò»¸ö PID ÔÚ½ø³ÌµÄÕû¸öÉúÃüÆÚ¼ä²»»á¸ü¸Ä£¬µ« PID ¿ÉÒÔÔÚ½ø³ÌÏú»Ùºó±»ÖØÐÂʹÓã¬ËùÒÔ¶ÔËüÃǽøÐлº´æ²¢²»¼ûµÃ×ÜÊÇÀíÏëµÄ¡£
ÔÚÓû§¿Õ¼ä£¬´´½¨½ø³Ì¿ÉÒÔ²ÉÓü¸ÖÖ·½Ê½¡£¿ÉÒÔÖ´ÐÐÒ»¸ö³ÌÐò£¨Õâ»áµ¼ÖÂнø³ÌµÄ´´½¨£©£¬Ò²¿ÉÒÔÔÚ³ÌÐòÄÚ£¬µ÷ÓÃÒ»¸ö fork »ò exec ϵͳµ÷Óá£fork µ÷ÓûᵼÖ´´½¨Ò»¸ö×Ó½ø³Ì£¬¶ø exec µ÷ÓÃÔò»áÓÃгÌÐò´úÌæµ±Ç°½ø³ÌÉÏÏÂÎÄ¡£½ÓÏÂÀ´£¬ÎÒ½«¶ÔÕ⼸ÖÖ·½·¨½øÐÐÌÖÂÛÒÔ±ãÄúÄܺܺõØÀí½âËüÃǵŤ×÷ÔÀí¡£
ÔÚ±¾ÎÄÖУ¬ÎÒ½«°´ÕÕÏÂÃæµÄ˳ÐòÕ¹¿ª¶Ô½ø³ÌµÄ½éÉÜ£¬Ê×ÏÈչʾ½ø³ÌµÄÄں˱íʾÒÔ¼°ËüÃÇÊÇÈçºÎÔÚÄÚºËÄÚ±»¹ÜÀíµÄ£¬È»ºóÀ´¿´¿´½ø³Ì´´½¨ºÍµ÷¶ÈµÄ¸÷ÖÖ·½Ê½£¨ÔÚÒ»¸ö»ò¶à¸ö´¦ÀíÆ÷ÉÏ£©£¬×îºó½éÉܽø³ÌµÄÏú»Ù¡£
½ø³Ì±íʾ
ÔĶÁ developerWorks ÉÏ Tim Jones Ëù׫дµÄ¸ü¶àÎÄÕÂ
Tim µÄÆÊÎö…… ϵÁÐÎÄÕÂ
ÔÚ Linux ÄÚºËÄÚ£¬½ø³ÌÊÇÓÉÏ൱´óµÄÒ»¸ö³ÆÎª task_struct µÄ½á¹¹±íʾµÄ¡£´Ë½á¹¹°üº¬ËùÓбíʾ´Ë½ø³ÌËù±ØÐèµÄÊý¾Ý£¬´ËÍ⣬»¹°üº¬ÁË´óÁ¿µÄÆäËûÊý¾ÝÓÃÀ´Í³¼Æ£¨accounting£©ºÍά»¤ÓëÆäËû½ø³ÌµÄ¹ØÏµ£¨¸¸ºÍ×Ó£©¡£¶Ô task_struct µÄÍêÕû½éÉܳ¬³öÁ˱¾Îĵķ¶Î§£¬Çåµ¥ 1 ¸ø³öÁË task_struct µÄһС²¿·Ö¡£ÕâЩ´úÂë°üº¬Á˱¾ÎÄËùҪ̽Ë÷µÄÕâÐ©ÌØ¶¨ÔªËØ¡£task_struct λÓÚ ./linux/include/linux/sched.h¡£
Çåµ¥ 1. task_struct µÄһС²¿·Ö
struct task_struct {
volatile long state;
void *stack;
unsigned int flags;
int prio, static_prio;
struct list_head tasks;
struct mm_struct *mm, *active_mm;
pid_t pid;
pid_t tgid;
struct task_struct *real_parent;
char comm[TASK_
Ïà¹ØÎĵµ£º
´´½¨linux·þÎñ£¬Ê¹µÃtest client¿ÉÒÔ¿ª»úÆô¶¯£¬²½ÖèÈçÏ£º
1.´´½¨Ä¿Â¼/usr/local/test/
2.¸´ÖÆtestcµ½/usr/local/test/
3.±àдÎļþ/etc/init.d/testc.sh
testc.sh
--------------------begin(not included)-----------------------
#! /bin/sh
#
### BEGIN INIT INFO
# Provides: &nbs ......
Ò».°²×°
1.µ½ÍøÉÏÏÂÔØrar for linux
2.tar zxvf rarlinux-3.7.b1.tar.gz
3.make
¶þ.ʹÓÃ
1. rar e test.rar ½âѹRARµµ
2. rar a ѹËõºóµÄÎļþÃû.rar ´ýѹÎļþ»òĿ¼
Èý.ÎÊÌâ
ÈôÔËÐÐRARÌáʾÈçÏÂ:
rar: /lib/tls/libc.so.6: version `GLIBC_2.4' not found (required by rar)
ÔòÓÃÀïÃæÌṩµÄ rar_stati ......
ѧϰ²Ù×÷ϵͳʱÎÒÃǶ¼Á˽⵽ÎļþϵͳÊDzÙ×÷ϵͳµÄÖØÒª×é³É²¿·ÖÖ®Ò»¡£ÎļþϵͳÓкܶàÖÖÀàÐÍ£¬±ÈWindowsµÄfat¡¢fat32£»LinuxµÄext¡¢ext2»òext3£»FreeBSDµÄufsµÈµÈ¡£ÔÚʹÓÃLinuxµÄ¹ý³Ì£¬Ò²³£³£Linux²Ù×÷ϵͳʹÓÃÐéÄâÎļþϵͳVFS£¬Í¨¹ýVFS¿ÉÒÔÖ±½Ó´æÈ¡ÆäËüÒѱ»ÄÚºËÖ§³ÖµÄ¸÷ÖÖÎļþϵͳ£¬ÓÃÆðÀ´¾ÍÏñÊÇÔÚÆÕͨµÄ LinuxµÄextϵÁÐÎÄ ......
ÔÚlinuxµÄÇý¶¯³ÌÐòÖУ¬¶¼»áʹÓôóÁ¿µÄoutb¡¢outw¡¢inb¡¢inwµÈµÈºêÀ´·ÃÎÊÓ²¼þ»ò¼Ä´æÆ÷¡£ÕâЩºêµÄ¶¨Òå¶¼ÔÚÏàÓ¦´¦ÀíÆ÷ÌåϵϵÄinclude\asmĿ¼ÏµÄio.hÖж¨Òå¡£×·¾¿ÏÂÈ¥£¬ÕâЩºê×îÖÕ¾ÍÊÇÒ»¸övolatile±äÁ¿µÄµÄ¸³Öµ£º
#define __arch_putb(v,a) (*(volatile unsi ......
³É¹¦µØ¹ÜÀíÈκÎϵͳµÄ¹Ø¼üÖ®Ò»£¬ÊÇÒªÖªµÀϵͳÖÐÕýÔÚ·¢ÉúʲôÊ¡£Linux ÖÐÌṩÁËÒì³£ÈÕÖ¾£¬²¢ÇÒÈÕÖ¾µÄϸ½ÚÊÇ¿ÉÅäÖõġ£Linux ÈÕÖ¾¶¼ÒÔÃ÷ÎÄÐÎʽ ´æ´¢£¬ËùÒÔÓû§²»ÐèÒªÌØÊâµÄ¹¤¾ß¾Í¿ÉÒÔËÑË÷ºÍÔĶÁËüÃÇ¡£»¹¿ÉÒÔ±àд½Å±¾£¬À´É¨ÃèÕâЩÈÕÖ¾£¬²¢»ùÓÚËüÃǵÄÄÚÈÝÈ¥×Ô¶¯Ö´ÐÐijЩ¹¦ÄÜ¡£Linux ÈÕÖ¾´æ´¢ÔÚ /var/log Ŀ¼ÖС£ÕâÀïÓм¸¸öÓ ......