Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

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µÄ·þÎñ³ÌÐò

´´½¨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 ......

Linuxϵͳ»ù´¡ÖªÊ¶£¨¶þ£©

Linux½ø³ÌÔõÑù²ÅÄÜ»ñÈ¡ÊôÓÚËü×Ô¼ºµÄÏßÐÔµØÖ·¿Õ¼äÄØ£¬±ÈÈç 0x08048000µ½0x0804c000Õâ¶ÎÏßÐÔµØÖ·¿Õ¼ä±»·ÖÅ䏸ÁËÒ»¸ö½ø³Ì£¬½ø³Ì¾Í¿ÉÒÔ·ÃÎÊÕâ¶ÎµØÖ·¿Õ¼ä£¬ÏßÐÔµØÖ·¿Õ¼äµÄ¿ªÊ¼ºÍ½áÊø¶¼±ØÐëÒÔ4KB¶ÔÆë
ÕâÀïÓÐÒÔϼ¸ÖÖÇé¿ö£º
1.¸Õ¸Õ´´½¨µÄнø³Ì£»
2.ʹÓÃexecϵͳµ÷ÓÃ×°ÔØÒ»¸öеijÌÐòÔËÐУ»
3.½«Ò»¸öÎļþ£¨»ò²¿£©Ó³Éäµ½½ø³ÌµØÖ ......

linuxϵͳÐÅÏ¢²é¿´ »ù±¾ÃüÁî

×î½ü¿´ÁËһЩLinuxÃüÁîÐеÄÎÄÕ£¬ÔÚϵͳÐÅÏ¢²é¿´·½ÃæÑ§µ½²»ÉÙÃüÁî¡£ÏëÆðÒÔǰд¹ýµÄһƪÆäʵLinuxÕâÑùÓøü¼òµ¥£¬·¢ÏÖÕâЩϵͳÐÅÏ¢²é¿´ÃüÁîÒ²¿ÉÒÔ×ܽá³öһƪССµÄ¶«Î÷À´ÁË¡£
ÁíÍâÕâÀﻹÓзdz£¶àµÄÃüÁ¿ÉÒÔ×÷Ϊ²Î¿¼¡£
ϵͳ
# uname -a             &n ......

linuxÖеÄoutb¡¢outw¡¢inb¡¢inw

ÔÚlinuxµÄÇý¶¯³ÌÐòÖУ¬¶¼»áʹÓôóÁ¿µÄoutb¡¢outw¡¢inb¡¢inwµÈµÈºêÀ´·ÃÎÊÓ²¼þ»ò¼Ä´æÆ÷¡£ÕâЩºêµÄ¶¨Òå¶¼ÔÚÏàÓ¦´¦ÀíÆ÷ÌåϵϵÄinclude\asmĿ¼ÏµÄio.hÖж¨Òå¡£×·¾¿ÏÂÈ¥£¬ÕâЩºê×îÖÕ¾ÍÊÇÒ»¸övolatile±äÁ¿µÄµÄ¸³Öµ£º
      #define __arch_putb(v,a)      (*(volatile unsi ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ