×ªÔØ 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£©:
¸Ã״̬µÄ½ø³ÌÄ
Ïà¹ØÎĵµ£º
Ò»¡¢ÌáǰµÄ»°
¡¡¡¡ÒªËµCÓïÑÔºÍLinuxµÄ¹ØÏµ´ó¼ÒÓ¦¸Ã¶¼²»»áİÉú£¬LinuxϵͳÄں˾ÍÊÇÓÃCÓïÑÔ¿ª·¢µÄ£¬ËùÒÔËùÓеÄLinuxϵͳÏÂÃæ ¶¼»áÓÐCµÄ±àÒëµ÷ÊÔ¹¤¾ß£¬²»¹ýÕâЩ¹¤¾ß¶¼ÊÇÃüÁîʽµÄ£¬Õýʽ¿ª·¢µÄ»°»áºÜ²»·½±ã¡£FedoraÔÚ°²×°µÄʱºò¿ÉÒÔÑ¡Ôñ°²×°Fedora Eclipse£¬Õâ¸öIDEºÜÇ¿´ó£¬C£¬C++£¬Java£¬PythonµÈµÈ¶¼Ö§³Ö£¬¶øÇÒ±àÒ룬µ÷ÊÔºÍ ......
ÕâЩ¶¼ÊǵäÐ͵ÄʹÓÃGNUµÄAUTOCONFºÍAUTOMAKE²úÉúµÄ³ÌÐòµÄ°²×°²½Öè¡£
./configureÊÇÓÃÀ´¼ì²âÄãµÄ°²×°Æ½Ì¨µÄÄ¿±êÌØÕ÷µÄ¡£±ÈÈçËü»á¼ì²âÄãÊDz»ÊÇÓÐCC»òGCC£¬²¢²»ÊÇÐèÒªCC»òGCC£¬ËüÊǸöshell½Å±¾
makeÊÇÓÃÀ´±àÒëµÄ£¬Ëü´ÓMakefileÖжÁȡָÁȻºó±àÒë¡£
make installÊÇÓÃÀ´°²×°µÄ£¬ËüÒ²´ÓMakefileÖжÁȡָÁ°²×°µ½Ö¸¶¨µÄÎ»Ö ......
×¼±¸¹¤×÷
Èç¹ûÄ㻹ûװ±àÒë»·¾³»ò×Ô¼º²»È·¶¨×°Ã»×°£¬²»·ÁÏÈÖ´ÐÐ
sudo apt-get install build-essential
Èç¹ûÄãÐèÒª±àÒë Fortran ³ÌÐò£¬ÄÇô»¹ÐèÒª°²×° gfortran(»ò g77)
sudo apt-get install gfortran
Èç¹ûÄãÒѾÁ˽âһЩ vim
µÄ֪ʶ£¬¶øÇÒÏëÓÃËüÀ´±à¼Ô´´úÂ룬ÄÇôÎÒÃDz»·Á×°¸öÍêÕû°æ
sudo apt-get install vi ......