×ªÔØ linux 2.6Äں˽ø³Ì¹ÜÀí
linux 2.6Äں˽ø³Ì¹ÜÀí
linuxÿ¸ö½ø³Ì¶ÔÓ¦Ò»¸ötask_structÀàÐͽṹ¡£¸Ã½á¹¹°üº¬½ø³ÌÏà¹ØµÄËùÓÐÐÅÏ¢¡£linux½ø³Ìͨ¹ýlist_head×é֯˫ÏòÁ´±í£¬Ã¿Ò»¸ö½áµã¾ÍÊÇÒ»¸ö½ø³ÌÃèÊö·û¡£½ø³ÌÃèÊö·ûÀïÃæ°üº¬Á˽ø³ÌËùÓеÄÐÅÏ¢£º½ø³ÌËù´ò¿ªµÄÎļþ¡¢½ø³ÌµÄµØÖ·¿Õ¼ä¡¢¹ÒÆðÐźš¢½ø³Ì״̬ºÍÆäËû¸ü¶àµÄÐÅÏ¢¡£ÒÔÏÂÊǽø³ÌÃèÊö·ûµÄ²¿·Ö¶¨Ò壺
shruct task_struct
{
unsigned long state; //½ø³ÌµÄ״̬£¬ÔÚ2.6.23ÒѾÓÐ9¸ö״̬
unsigned long policy; //ÃèÊö½ø³Ìµ÷¶È²ßÂÔ.ÅжÏÊÇʵʱ½ø³Ì»¹ÊÇ·Çʵʱ½ø³Ì
struct task_struct *parent; //×éÖ¯½ø³ÌµÄ²ã´Î¹ØÏµ£¬Ö¸Ïò¸¸½ø³Ì
struct list_head tasks; //ͨ¹ýlist_head×éÖ¯³ÉË«ÏòÁ´±í
pid_t pid; //ÿ¸ö½ø³ÌΨһµÄ±êºÅ
......
};
½ø³ÌÃèÊö·ûÀïÃæÓÐÒ»¸öpid£¬Ëü¾ÍÊǽø³Ì¼äÇø±ð±êÖ¾¡£Ëüʵ¼ÊÉÏÊÇÒ»¸ö¶ÌÕûÐÍÊý¾Ý£¬Ò²¾ÍÊÇ˵Ëü×î´óֵΪ32767¡£
linuxͨ¹ýslab·ÖÅäÆ÷·ÖÅätask-struct½á¹¹¡£ÕâÑùÄÜ×öµ½¶ÔÏó¸´Ó㬼õÉÙ¶¯Ì¬·ÖÅäºÍÊÍ·Å´øÀ´µÄ×ÊÔ´ÏûºÄ¡£
linux ͨ¹ýcurrentºê²éÕÒµ±Ç°ÕýÔÚÔËÐеĽø³ÌÃèÊö·û¡£²»Í¬µÄÓ²¼þÌåϵ£¬ÓеÄÓ²¼þÄóöרÃŵļĴæÆ÷´æ·Åµ±Ç°½ø³Ì¡£X86ÔÚÄÚºËÕ»µÄβ¶Ë´´½¨thread_info½á¹¹£¬¸Ã½á¹¹ÖÐtaskÓòÖ¸Ïò¸Ã¸ÃÈÎÎñtask_struct¡£Í¨¹ý¼ÆËãÆ«ÒÆ¼ÆËã³öµ±Ç°µÄ½ø³Ì¡£
currentºê²Î¿¼£ºhttp://blog.chinaunix.net/u1/55599/showart_1080763.html
linux½ø³ÌµÄ״̬£º
·ÔËÐУ¨TASK_RUNNING£©:
¾ÍÐ÷״̬(Ö¸½ø³ÌËæÊ±¿ÉÒÔͶÈëÔËÐÐ) ÔËÐÐ״̬(Ö¸½ø³ÌÕýÔÚÔËÐÐ)¡£
×¢£ºlinuxûÓоÍÐ÷¶ÓÁУ¬ÒѾÍÐ÷½ø³ÌºÍµ±Ç°ÕýÔÚÔËÐеĽø³Ìstate¶¼ÎªTASK_RUNNING
·¿ÉÖжϣ¨TASK_INTERUPTIBLE£©:
¸Ã״̬µÄ½ø³ÌÄ
Ïà¹ØÎĵµ£º
дÕâÆªblog²ÎÕÕÁËO'Reilly µÄ¡¶Understanding the Linux Kernel¡·£¬»òÕß˵ÊǴ󲿷ֲÎÕÕ£¬Êµ¼ÊÉÏÕâ±¾Ê鹨ÓÚÕâÕÂдµÃȷʵºÜ¾µä¡£¾¡¹ÜÈç´Ë£¬ÔÚ¿´´úÂëµÄ¹ý³ÌÖÐÎÒÈÔÈ»Óöµ½Á˺ܶàÀ§»ó£¬ÒÔÖÁÓÚ¿´¹ýÁ½±éÖ®ºóÄÔ×ÓÀﻹÊÇһ͎¬ºý¡£ËùÒÔ»¹µÃ¸Ðл´åÒ¯°ïÎÒÀíÇå³þÁË˼·£¬²»¸Òµ¡Âý£¬¸Ï½ôдÏÂÀ´·ÀÖ¹Íü¼Ç¡£(ÒÔÏ´úÂë¼°½âÊ;ùÒÔ2.4.18°æ±¾Îª ......
Ëæ×ÅLinuxµÄÓ¦ÓÃÈÕÒæ¹ã·º£¬ÌرðÊÇÔÚÍøÂçÓ¦Ó÷½Ã棬ÓдóÁ¿µÄÍøÂç·þÎñÆ÷ʹÓÃLinux²Ù×÷ϵͳ¡£ÓÉÓÚLinuxµÄ×ÀÃæÓ¦ÓúÍWindowsÏà±È»¹ÓÐÒ»¶¨µÄ²î¾à£¬ËùÒÔÔÚÆóÒµÓ¦ÓÃÖÐÍùÍùÊÇLinuxºÍWindows²Ù×÷ϵͳ¹²´æÐγÉÒì¹¹ÍøÂç¡£ÔÚ·þÎñÆ÷¶Ë´ó¶àʹÓÃLinuxºÍUnixµÄ£¬Ä¿Ç°LinuxµÄÉó¤Ó¦ÓÃÁìÓòÊǵ¥Ò»Ó¦ÓõĻù´¡·þÎñÆ÷Ó¦Óã¬Æ©ÈçDNSºÍDHCP·þÎñÆ÷¡¢W ......
FTP> ! ´Ó ftp ×ÓϵͳÍ˳öµ½Íâ¿Ç¡£
¡¡¡¡FTP> ? ÏÔʾ ftp ÃüÁî˵Ã÷¡£? Óë help Ïàͬ¡£
¡¡¡¡¸ñʽ£º? [command]
¡¡¡¡ËµÃ÷£º[command]Ö¸¶¨ÐèÒª°ïÖúµÄÃüÁîÃû³Æ¡£Èç¹ûûÓÐÖ¸¶¨ command£¬ftp ½«ÏÔʾȫ²¿ÃüÁîµÄÁÐ±í¡£
¡¡¡¡FTP> append ʹÓõ±Ç°ÎļþÀàÐÍÉèÖý«±¾µØÎļþ¸½¼Óµ½Ô¶³Ì¼ÆËã»úÉϵÄÎļþ¡£
¡¡¡¡¸ñʽ£ºappend ......
ÎÒÃÇÖªµÀ£¬ÔÚlinuxÏ£¬ÎÒÃÇÓÃerrnoÀ´²é¿´API·µ»ØµÄ´íÎóÂ룬²¢ÓÃstrerror(errno)À´»ñµÃ´íÎóÐÅÏ¢¡£
¶øÔÚwindowsÏÂÒ²ÓÐÕâµÄ´íÎóÂ룬¿ÉÒÔÓÃGetLastError
À´»ñµÃ£¬ÔÚwindowsÏ£¬Òª»ñµÃ´íÎóÂë¶ÔÓ¦µÄÐÅÏ¢¾ÍûÓÐlinuxÏÂÄÇô·½±ãÁË¡£
Æä»ñµÃ·½Ê½¿ÉÒԲο¼¡¶windowsºËÐıà³Ì¡·¡£
µ«ÎÒÃÇÒ²¿ÉÒÔÓÃlinuxϵÄapiÀ´»ñµÃwindowsϵĴíÎóÐ ......
×ªÔØ£linux 2.6 ½ø³Ì×ܽá
½ø³Ì¡¢ÇáÁ¿¼¶½ø³Ì£¨LWP£©¡¢Ïß³Ì
½ø³Ì£º³ÌÐòÖ´ÐÐÌ壬ÓÐÉúÃüÆÚ£¬ÓÃÀ´·ÖÅä×ÊÔ´µÄʵÌå
Ị̈߳º·ÖÅäCPUµÄʵÌå¡£
Óû§¿Õ¼äʵÏÖ£¬Ò»¸öÏß³Ì×èÈû£¬ËùÓж¼×èÈû¡£
ÄÚºËʵÏÖ£¬²»»áËùÓÃÏà¹ØÏ̶߳¼×èÈû¡£ÓÃLWPʵÏÖ£¬ÓÃÏß³Ì×é±íʾÕâЩÏß³ÌÂß¼ÉÏËùÊôµÄ½ø³Ì¡£
......