linux 2.6Ô´´úÂëÇé¾°·ÖÎö±Ê¼ÇÖ®½ø³Ì3
ΪÄÚºËÑ°ÕÒнø³ÌÔÚcpuÉÏÔËÐÐʱ£¬±ØÐëÖ»¿¼ÂÇ¿ÉÔËÐнø³Ì£¨TASK_RUNNING£©¡£
Ìá¸ßµ÷¶È³ÌÐòÔËÐÐËٶȵľ÷ÇÏÊǽ¨Á¢¶à¸ö¿ÉÔËÐнø³ÌÁ´±í£¬Ã¿ÖÖ½ø³ÌÓÅÏÈȨ¶ÔÓ¦Ò»¸ö²»Í¬µÄÁ´±í¡£Ã¿¸ötask_structÃèÊö·û°üº¬Ò»¸ölist_headÀàÐ͵Ä×Ö¶Îrun_list¡£Èç¹û½ø³ÌµÄÓÅÏÈȨµÈÓÚk(0-139)£¬run_list×ֶΰѸýø³ÌÁ´ÈëÓÅÏÈȨΪkµÄ¿ÉÔËÐнø³ÌµÄÁ´±íÖС£
Äں˱ØÐëΪϵͳÖÐÿ¸öÔËÐжÓÁб£´æ´óÁ¿µÄÊý¾Ý£¬²»¹ýÔËÐжÓÁеÄÖ÷Òª½á¹¹»¹ÊÇ×é³ÉÔËÐжÓÁеĽø³ÌÃèÊö·û±í£¬ËùÓÐÕâЩÁ´±í¶¼ÓÉÒ»¸öµ¥¶ÀµÄprio_array_tÊý¾Ý½á¹¹À´ÊµÏÖ¡£
185 struct prio_array {
186 unsigned int nr_active; Á´±íÖнø³ÌÃèÊö·ûµÄÊýÁ¿
187 unsigned long bitmap[BITMAP_SIZE]; ÓÅÏÈȨλͼ£ºµ±ÇÒ½öµ±Ä³¸öÓÅÏÈȨµÄ½ø³ÌÁ´±í²»Îª¿ÕʱÉèÖÃÏàÓ¦µÄλ±êÖ¾
188 struct list_head queue[MAX_PRIO]; 140¸öÓÅÏÈȨ¶ÓÁеÄÍ·½áµã
189 };
static void enqueue_task(struct task_struct *p, prio_array_t *array)
{
sched_info_queued(p);
list_add_tail(&p->run_list, array->queue + p->prio);
__set_bit(p->prio, array->bitmap);
array->nr_active++;
p->array = array;
}
´Ëº¯Êý½«½ø³ÌÃèÊö·û²åÈëij¸öÔËÐжÓÁÐÁ´±í¡£Óڴ˺¯Êý¶ÔÓ¦µÄÊÇdequeue_task(p,array)
½ø³ÌÃèÊö·ûµÄprio×ֶδæ·Å½ø³ÌµÄ¶¯Ì¬ÓÅÏÈȨ£¬¶øarray×Ö¶ÎÔòÊÇÒ»¸öÖ¸Õ룬ָÏòµ±Ç°ÔËÐжÓÁеÄprio_array_tÊý¾Ý½á¹¹¡£
³ÌÐò´´½¨µÄ½ø³Ì¾ßÓи¸/×Ó¹Øϵ¡£Èç¹ûÒ»¸ö½ø³Ì´´½¨¶à¸ö×Ó½ø³Ìʱ£¬Ôò×Ó½ø³ÌÖ®¼ä¾ßÓÐÐֵܹØϵ¡£½ø³Ì0ºÍ½ø³Ì1ÊÇÓÉÄں˴´½¨µÄ¡£½ø³Ì1£¨init£©ÊÇËùÓнø³ÌµÄ×æÏÈ¡£
real_parent:Ö¸Ïò´´½¨ÁËp½ø³ÌµÄÃèÊö·û£¬Èç¹ûpµÄ¸¸½ø³Ì²»ÔÙ´æÔÚ£¬¾ÍÖ¸Ïò½ø³Ì1£¨init£©µÄÃèÊö·û£¨Èç¹ûÓû§ÔËÐÐÒ»¸öºǫ́½ø³Ì¶øÇÒÍ˳öÁËshell,ºǫ́½ø³Ì¾Í»á³ÉΪinitµÄ×Ó½ø³Ì£©
parent£ºÖ¸ÏòpµÄµ±Ç°¸¸½ø³Ì£¨ÕâÖÖ½ø³ÌµÄ×Ó½ø³ÌÖÕֹʱ£¬±ØÐëÏò¸¸½ø³Ì·¢Ðźţ©¡£ËüµÄֵͨ³£Óëreal_par
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌṩÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
1¡¢½«Îļþcheckoutµ½±¾µØĿ¼
svn checkout path£¨pathÊÇ·þÎñÆ÷ÉϵÄĿ¼£©
ÀýÈ磺svn checkout svn://192.168.1.1/pro/domain
¼òд£ºsvn co
2¡¢Íù°æ±¾¿âÖÐÌí¼ÓеÄÎļþ
svn add file
ÀýÈ磺svn add test.php(Ìí¼Ótest.php)
svn add *.php(Ìí¼Óµ±Ç°Ä¿Â¼ÏÂËùÓеÄphpÎÄ ......
I/O ¶Ë¿ÚºÍ I/O ÄÚ´æ
ÿÖÖÍâÉ趼ÊÇͨ¹ý¶Áд¼Ä´æÆ÷À´½øÐпØÖÆ¡£
ÔÚÓ²¼þ²ã£¬ÄÚ´æÇøºÍ I/O ÇøÓòûÓиÅÄîÉϵÄÇø±ð: ËüÃǶ¼ÊÇͨ¹ýÏòÔÚµØÖ·×ÜÏߺͿØÖÆ×ÜÏß·¢³öµçƽÐźÅÀ´½øÐзÃÎÊ£¬ÔÙͨ¹ýÊý¾Ý×ÜÏ߶ÁдÊý¾Ý¡£
ÒòΪÍâÉèÒªÓëI\O×ÜÏßÆ¥Å䣬¶ø´ó²¿·ÖÁ÷ÐÐµÄ I/O ×ÜÏßÊÇ»ùÓÚ¸öÈ˼ÆËã»úÄ£ÐÍ£¨Ö÷ÒªÊÇ x86 ¼Ò×壺ËüΪ¶ÁºÍд I/O ¶Ë¿ÚÌá¹ ......
linuxĿ¼¼Ü¹¹
/ ¸ùĿ¼
/bin ³£ÓõÄÃüÁî binary file µÄÄ¿錄
/boot ´æ·ÅϵͳÆô¶¯Ê±±ØÐë¶ÁÈ¡µÄµµ°¸£¬°üÀ¨ºËÐÄ (kernel) ÔÚÄÚ
/boot/grub/menu.lst GRUBÉèÖÃ
/boot/vmlinuz ÄÚºË
& ......
#apt-get install gcc (±àÒëÆ÷)
#apt-get install gdb (µ÷ÊÔ)
#apt-get install libc6-dev (¿ª·¢¿â)
Èç¹ûûÓпª·¢¿â£¬gccµÄʱºò¾Í»á´íÎó
gcc h.c
h.c: In function ‘main’:
h.c:1: warning: incompatible implicit declaration of built-in function ‘prin ......