×ªÔØ 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£©:
¸Ã״̬µÄ½ø³ÌÄ
Ïà¹ØÎĵµ£º
½ø³ÌÒ»µ©µ÷ÓÃÁËwait£¬¾ÍÁ¢¼´×èÈû×Ô¼º£¬ÓÉwait×Ô¶¯·ÖÎöÊÇ·ñµ±Ç°½ø³ÌµÄij¸ö×Ó½ø³ÌÒѾÍ˳ö£¬Èç¹ûÈÃËüÕÒµ½ÁËÕâÑùÒ»¸öÒѾ±ä³É½©Ê¬µÄ×Ó½ø³Ì£¬wait ¾Í»áÊÕ¼¯Õâ¸ö×Ó½ø³ÌµÄÐÅÏ¢£¬ ²¢°ÑËü³¹µ×Ïú»Ùºó·µ»Ø£»Èç¹ûûÓÐÕÒµ½ÕâÑùÒ»¸ö×Ó½ø³Ì£¬wait¾Í»áÒ»Ö±×èÈûÔÚÕâÀֱµ½ÓÐÒ»¸ö³öÏÖΪֹ¡£
wait£¨µÈ´ý×Ó½ø³ÌÖжϻò½áÊø£©
Ïà¹Øº¯Êý waitp ......
Fedora8----------VMWare6.03 build-80004
1. host(win)-guest(fedora)¹²ÏíÎļþ¼Ð
ÔÚVMWareÖÐÉèÖù²ÏíÎļþ¼Ð
Ñ¡Ôñvmware workstation³ÌÐò²Ëµ¥ÖÐVM > install VMware tools...
#mkdir /mnt/cdrom
#mount -t iso9660 /dev/cdrom /mnt/cdrom£¨vmtoolsµÄ°²×°Îļþ·ÅÔÚvmwareÐéÄâµÄcdromÖУ¬Ê×ÏÈÒªmoun ......
Èç¹ûÄú¸Õ½Ó´¥Ç¶Èëʽ¿ª·¢£¬ÄÇô´óÁ¿¿ÉÓõÄÒýµ¼×°ÔسÌÐò£¨bootloader£©¡¢¹æÄ£ËõСµÄ·Ö·¢°æ
£¨distribution£©¡¢ÎļþϵͳºÍ GUI
¿´ÆðÀ´¿ÉÄÜÌ«¶àÁË¡£µ«ÊÇÕâЩ·á¸»µÄÑ¡Ïîʵ¼ÊÉÏÊÇÒ»ÖÖ¶÷´Í£¬ÔÊÐíÄúµ÷Õû¿ª·¢»òÓû§»·¾³ÒÔÍêÈ«·ûºÏÄúµÄÐèÒª¡£¶Ô Linux
ǶÈëʽ¿ª·¢µÄ¸ÅÊö½«°ïÖúÄúÀí½âËùÓÐÕâЩѡÏî¡£
Linux ÕýÔÚǶÈëʽ¿ª·¢ÁìÓòÎȲ½·¢ ......
×ªÔØÇë×¢Ã÷³ö´¦£º±à³Ì±Ê¼ÇBLOG
¹¤ÓûÉÆÆäÊ£¬±ØÏÈÀûÆäÆ÷¡£ÓÃÁËÕâô¾ÃµÄlinux£¬ÏÖÔڱȽÏÖ÷Á÷µÄ¼¸¸öC/C++µÄIDE»ù±¾ÒѶ¼ÓùýÁË£¬ÏÖÔÚÀ´¶ÔËûÃÇ×öһϼòµ¥µÄ±È½Ï¡£
1¡¢VIM
Ê×ÏÈҪ˵µÄÊÇVIM¡£ÎÒÈÏΪ£¬VIMÖ»ÊÇÒ»¸ö±à¼Æ÷£¬²»ÄÜËãÊÇIDE¡£Ëä˵VIMÓкܶà²å¼þ£¬ÀýÈç´úÂëÕÛµþ¡¢µÝ½øµÈ£¬¿ÉÒÔ½«VIM×齨³É¼¸ºõÀàËÆÒ»¸öIDE£¬µ«Ê¼ÖÕËü²»ÊÇ× ......
linux 2.6Ï̴߳´½¨Ô´Âë·ÖÎö
ÉÏÕ½²µ½Ị̈߳¬ÏÖÔÚ¶ÔÏ̴߳´½¨µÄ´úÂëÁ÷³Ì·ÖÎöÏ¡£À´Ò»²½Ò»²½½Ò¿ªËýÉñÃØµÄÃæÉ´
linuxÄں˴´½¨Ï̺߳¯Êý kernel_thread()£¬×îÖÕ»áµ÷ÓÃdo_fork().
Ç°ÃæÌ¸µ½Ïß³ÌÒ²ÊÇÓÃtask_struct½á¹¹±íʾËüÓµÓеÄÐÅÏ¢£¬Ö»ÊÇÊǹ²Ïí½ø³ÌµÄ×ÊÔ´¡£
¸ù¾Ýclone_fla ......