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

linux 2.6Ô´´úÂëÇé¾°·ÖÎö±Ê¼ÇÖ®½ø³Ì4


É¢ÁУ¨hash£©º¯Êý²¢²»×ÜÄÜÈ·±£pidÓë±íË÷ÒýÒ»Ò»¶ÔÓ¦¡£Á½¸ö²»Í¬µÄpidÉ¢Áе½ÏàͬµÄ±íË÷Òý³ÆÎª³åÍ»£¨colliding£©,linuxÀûÓÃÁ´±íÀ´´¦Àí³åÍ»µÄpid,ÿһ¸ö±íÏîÊÇÓɳåÍ»µÄ½ø³ÌÃèÊö·û×é³ÉµÄË«ÏòÁ´±í¡£
pidÉ¢ÁбíµÄÊý¾Ý½á¹¹½â¾öÁËËùÓÐÕâЩÄÑÌ⣬ËûÃÇ¿ÉÒÔΪ°üº¬ÔÚÒ»¸öÉ¢ÁбíÖеÄÈκÎpidºÅ¶¨Òå½ø³ÌÁ´±í¡£×îÖ÷ÒªµÄÊý¾Ý½á¹¹ÊÇËĸöpid½á¹¹µÄÊý×飬ËüÔÚ½ø³ÌÃèÊö·ûµÄpid×Ö¶ÎÖС£
struct pid
{
        /* Try to keep pid_chain in the same cacheline as nr for find_pid */
        int nr;pidµÄÊýÖµ
        struct hlist_node pid_chain;/* list of pids with the same nr, only one of them is in the hash */Á´½ÓÉ¢ÁÐÁ´±íµÄÏÂÒ»¸öºÍǰһ¸öÔªËØ
        struct list_head pid_list;ÿ¸öpidµÄ½ø³ÌÁ´±íÍ·
};
»ù±¾ÔË×÷£ºpid_hashÖеÄËĸö»ù±¾ÀàÐͱíÍ·ÕÒµ½tgid¹þÏ£±í£¬È»ºóÕÒµ½¶ÔÓ¦±íÏîÔÙ½øÒ»²½ÕÒµ½½ø³ÌÃèÊö·ûÖеÄpid_chain×ֶΣ¬È»ºó½øÒ»²½ÕÒµ½process descriptorÖеÄpid_chain±íÏȻºóÕÒµ½¹þÏ£±í¡£
´¦ÀípidÉ¢ÁбíµÄº¯ÊýºÍºê£º
#define do_each_task_pid(who, type, task)                               \
        if ((task = find_task_by_pid_type(type, who))) {                \
                prefetch((task)->pids[type].pid_list.next);             \
                do {
#define while_each_task_pid(who, type, task)                            \
           &n


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨ËÄ£© L2CAP²ã±à³Ì

£¨L2CAPЭÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPЭÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼­Á¬½Ó¿ØÖƺÍÊÊÅäЭÒé (L2CAP) ΪÉϲãЭÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àЭÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãЭÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......

LINUXÆÚÄ©¸´Ï° ½ø³ÌÓë½ø³Ì¹ÜÀí

Ò»¡¢LINUXµÄ½ø³Ì״̬ ½©ËÀ̬£ºµ±¸¸½ø³Ì»¹Ã»ÓнáÊøÇ°£¬×Ó½ø³Ì¾ÍÒѾ­ÏȽáÊøÁË£¬Õâʱ×Ó½ø³ÌµÄ×ÊԴûÓÐÈËÀ´»ØÊÕ¡£Í¨³£¸¸½ø³ÌÐèÒªÓÃwaitÀ´µÈ´ý×Ó½ø³ÌµÄ½áÊø¡£
½ø³ÌµÄģʽ£ºÓû§Ä£Ê½(Ö´ÐÐÓû§³ÌÐò)£¬ÄÚºËģʽ(Ö´ÐвÙ×÷ϵͳ´úÂë)
½ø³ÌµÄÀàÐÍ£ºÏµÍ³½ø³Ì£¬Óû§½ø³Ì ¶þ¡¢½ø³Ì¹ÜÀí ¢Ùforkº¯Êý
¹¦ÄÜ£º´´½¨Ò»¸öÈ«Ð嵀 ......

ACEÖеÄThread MutexÔÚlinuxϵÄʹÓÃ

ACE¿âÖÐרÃŶÔÏß³Ìͬ²½ÌṩÁËÁ½¸öÀ࣬һ¸öÊÇACE_Thread_MutexÁíÒ»¸öÊÇACE_REcursive_Thread_Mutex¡£ ÔÚÎÒ¿´ À´£¬ÔÚlinuxϽøÐÐÏß³Ìͬ²½£¬²»ÒªÊ¹ÓÃACE_Thread_Mutex£¬ÓÃACE_REcursive_Thread_Mutex¾Í¿ÉÒÔÁË¡£Ô­ÒòºÜ ¼òµ¥£¬ÒòΪACE_Thread_Mutex²»Ö§³ÖÏß³ÌÖØÈë¡£Ò»µ©ÖØÈë(ͬһ¸öÏ̵߳÷ÓÃÁ½´ÎACE_Thread_Mutex: ......

ÇÉÓÃcfengine¹ÜÀílinux·þÎñÆ÷(ת)

cfengine£¨ÅäÖÃÒýÇæ£©ÊÇÒ»ÖÖ UNIX ¹ÜÀí¹¤¾ß£¬ÆäÄ¿µÄÊÇʹ¼òµ¥µÄ¹ÜÀíµÄÈÎÎñ×Ô¶¯»¯£¬Ê¹À§ÄѵÄÈÎÎñ±äµÃ½ÏÈÝÒס£Cfengine
ÊÊÓÃÓÚ¹ÜÀí¸÷ÖÖ»·¾³£¬´Óһ̨Ö÷»úµ½ÉÏÍǫ̀Ö÷»úµÄ»úȺ¾ù¿ÉʹÓᣵ½2.2 °æ±¾ÎªÖ¹£¬ÎÒÃÇÏÖÔÚËùÖªµÄÓÃÓÚÒ»°ãÐÔ¹ÜÀíµÄ×î´ó°²×°»úȺԼΪ20£¬000 ̨¡£
  Í¼-1 ÊÇCfengine µÄ×é³É²¿·ÖµÄ¹ØÏµÍ¼ ¡£
  ......

°²×°linux³öÏÖ¡°²»ÄÜ»®²¦Ëù·ÖÅäµÄ·ÖÇø¡±½â¾ö

MBR£¨Master Boot Recorder£©Ö÷Òª¿ª»úÉÈÇø,·ÅÖÃÓ²Å̵ÄÐÅÏ¢¡£MBR ¿ÉÒÔ˵ÊÇÕû¸öÓ²ÅÌ×îÖØ
ÒªµÄµØ·½ÁË£¬ÒòΪÔÚ MBR ÀïÃæ¼Ç¼ÁËÁ½¸öÖØÒªµÄ¶«Î÷£¬·Ö±ðÊÇ£º¿ª»ú¹ÜÀí³ÌÐò£¬Óë´ÅÅÌ·Ö>Çø±í ( partition table )¡£ËùÒÔÎÒÃÇËù×öµÄÓ²ÅÌ·ÖÇø£¬Ò²¾ÍÊÇÔÚÐÞ¸Äpartition table¡£
ÓÉÓÚÕâ¸ö MBR Çø¿éµÄÈÝÁ¿ÓÐÏÞ£¬ËùÒÔ£¬µ±³õÉè¼ÆµÄʱºò£¬¾ÍÖ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ