linuxÄÚ´æ¹ÜÀí
Ò³ÉêÇëµÄºËÐĵ÷ÓÃÊÇ: __alloc_pages(). Ò³ÉêÇë˳ÐòÈçÏ£º
Ê×ÏÈÕÒ×î´óÄÜ·ûºÏµÄ¿é, Èç¹ûÒ»¸ö¿ÕÏп鲻ÄÜÂú×ã, ¸ü¸ßÒ»¼¶µÄ¿é½«·Ö¸î³É2¸öbuddy, Ò»¸ö±»Õ¼ÓÃ, Ò»¸ö·ÅÈëµÍÒ»¼¶µÄfreelist.
µ±¿é±»ÊÍ·Åʱ, ¼ì²éÿ¶Ôbuddy, Èç¹ûÁ½Õß¶¼¿ÕÏÐ, °ÑËûÃǺϲ¢µ½¸ü¸ßÒ»¼¶µÄ¿éÊý×éÀïÈ¥, ͬʱ·ÅÈë¸ü¸ßÒ»¼¶µÄfreelist. Èç¹ûÒ»¸öbuddy»¹ÔÚ±»ÓÃ, ÄǴ˿齫¼ÓÈëµ½µ±Ç°¼¶µÄfreelist.
Èç¹ûÒ»¸özoneÒѾûÓÐ×ã¹»¿ÕÏÐÒ³£¬¶øÇÒÓÖÐèÒª·ÖÅ䣬ÄÇÉêÇ뽫Í˵½ÏÂÒ»¼¶£¬Ò»°ã˳ÐòÊÇ£ºZONE_HIGHMEM --> ZONE_NORMAL --> ZONE_DMA. Èç¹û¿ÕÏÐÒ³»÷ÖÐpages_lowÃÅÏÞ£¬kswapd½«¿ªÊ¼ÊÍ·ÅÒ³¡£
http://hi.baidu.com/zengzhaonong/blog/item/bd4b15465d4104096b63e584.html
Ò³Ãæ¹ÜÀí»úÖÆµÄ³õ²½½¨Á¢
http://hi.baidu.com/mudgao/blog/item/57ebc03ebf065b3771cf6c73.html
ÿ¸öpg_data_tÊý¾Ý½á¹¹´ú±í×ÅһƬ¾ùÔȵġ¢Á¬ÐøµÄÄÚ´æ¿Õ¼ä¡£ÔÚÁ¬Ðø¿Õ¼äUMA½á¹¹ÖУ¬Ö»ÓÐÒ»¸ö½Úµãcontig_page_data£¬¶øÔÚNUMA½á¹¹»ò²»Á¬Ðø¿Õ¼äUMA½á¹¹ÖУ¬Óжà¸öÕâÑùµÄÊý¾Ý½á¹¹¡£
¼ÆËãÈý¸ö¹ÜÀíÇøµÄ´óС£¬²¢´æ·ÅÔÚzones_sizeÊý×éÖС£Èý¸ö¹ÜÀíÇøÊÇ£º
ZONE_DMA£º´Ó0¡«16MB·ÖÅ䏸Õâ¸öÇø
ZONE_NORMAL£º´Ó16MB¡«896MB·ÖÅ䏸Õâ¸öÇø
ZONE_HIGHMEM £º896MBÒÔÉÏ·ÖÅ䏸Õâ¸öÇø
arch/xxx/kernel/head.S
init/main.c: start_kernel()->setup_arch()
arch/xxx/kernel/setup.c->init_bootmem_node()
free_bootmem()
reserve_bootmem()
&nbs
Ïà¹ØÎĵµ£º
linux¶àÏß³ÌÉè¼Æ
¡¡¡¡1 ÒýÑÔ
¡¡¡¡Ị̈߳¨thread£©¼¼ÊõÔçÔÚ60Äê´ú¾Í±»Ìá³ö£¬µ«ÕæÕýÓ¦ÓöàÏ̵߳½²Ù×÷ϵͳÖÐÈ¥£¬ÊÇÔÚ80Äê
´úÖÐÆÚ£¬solarisÊÇÕâ·½ÃæµÄٮٮÕß¡£´«Í³µÄUnixÒ²Ö§³ÖÏ̵߳ĸÅÄµ«ÊÇÔÚÒ»¸ö½ø³Ì£¨process£©ÖÐÖ»ÔÊÐíÓÐÒ»¸öỊ̈߳¬ÕâÑù¶àÏ߳̾ÍÒâζ×Ŷà
½ø³Ì¡£ÏÖÔÚ£¬¶àÏ̼߳¼ÊõÒѾ±»Ðí¶à²Ù×÷ϵͳËùÖ§³Ö£¬°üÀ¨Windo ......
Linux×ÔÉí¾ß±¸Ò»ÕûÌ×¹¤¾ßÁ´£¬ÈÝÒ××ÔÐн¨Á¢Ç¶ÈëʽϵͳµÄ¿ª·¢»·¾³ºÍ½»²æÔËÐл·¾³£¬²¢ÇÒ¿ÉÒÔ¿çԽǶÈëʽϵͳ¿ª·¢ÖеķÂÕæ¹¤¾ß£¨ICE£©µÄÕϰ¡£Äں˵ÄÍêÈ«¿ª·ÅʹÈËÃÇ¿ÉÒÔ×Ô¼ºÉè¼ÆºÍ¿ª·¢³öÕæÕýµÄӲʵʱϵͳ£¬ÈíʵʱϵͳÔÚLinuxÖÐÒ²ÈÝÒ׵õ½ÊµÏÖ¡£Ç¿´óµÄÍøÂçÖ§³ÖʹµÃ¿ÉÒÔÀûÓÃLinuxµÄÍøÂçÐÒéÕ»½«Æä¿ª·¢³ÉΪǶÈëʽµÄTCP/IPÍøÂçÐÒéÕ» ......
linuxÖÐgrepÃüÁîÏê½â
ÔÚlinuxÖÐgrepÃüÁîÊǷdz£ÓÐÓõÄ,ËüºÍ¹ÜµÀ(|)ÅäºÏʹÓÃ,·Ç³£Ç¿´ó,ÓÃÓÚËÑË÷Îı¾Îļþ.Èç¹ûÏëÒªÔÚ¼¸¸öÎı¾ÎļþÖвéÕÒÒ»×Ö·û´®£¬¿ÉÒÔʹÓÑgrep’ÃüÁî¡£‘grep’ÔÚÎı¾ÖÐËÑË÷Ö¸¶¨µÄ×Ö·û´®¡£
¼ÙÉèÄúÕýÔÚ‘/usr/src/linux/Documentation’Ŀ¼ÏÂËÑË÷´ø×Ö·û´®‘magic&rs ......
Ò»
°ãÀ´Ëµ¶ÔÓÚÐèÒª´óÁ¿cpu¼ÆËãµÄ½ø³Ì£¬µ±Ç°¶ËѹÁ¦Ô½´óʱ£¬CPUÀûÓÃÂÊÔ½¸ß¡£µ«¶ÔÓÚI/OÍøÂçÃܼ¯Ð͵Ľø³Ì£¬¼´Ê¹ÇëÇóºÜ¶à£¬·þÎñÆ÷µÄCPUÒ²²»Ò»¶¨ºÜµ½£¬
ÕâʱµÄ·þÎñÆ¿¾±Ò»°ãÊÇÔÚ´ÅÅ̵ÄI/OÉÏ¡£±È½Ï³¤¼ûµÄ¾ÍÊÇ£¬´óÎļþƵ·±¶ÁдµÄcpu¿ªÏúԶСÓÚСÎļþƵ·±¶ÁдµÄ¿ªÏú¡£ÒòΪÔÚI/OÍÌÍÂÁ¿Ò»¶¨Ê±£¬Ð¡ÎļþµÄ¶Á
д¸ü¼ÓƵ·±£¬ÐèÒª¸ü¶àµÄc ......
1. grep¼ò½é
grep £¨global search regular expression(RE) and print out the line,È«ÃæËÑË÷ÕýÔò±í´ïʽ²¢°ÑÐдòÓ¡³öÀ´£©ÊÇÒ»ÖÖÇ¿´óµÄÎı¾ËÑË÷¹¤¾ß£¬ËüÄÜʹÓÃÕýÔò±í´ïʽËÑË÷Îı¾£¬²¢°ÑÆ¥ÅäµÄÐдòÓ¡³öÀ´¡£UnixµÄgrep¼Ò×å°ü À¨grep¡¢egrepºÍfgrep¡£egrepºÍfgrepµÄÃüÁîÖ»¸úgrepÓкÜС²»Í¬¡£egrepÊÇgrepµÄÀ©Õ¹£¬Ö§³Ö¸ü¶ ......