LinuxÖеÄÄÚ´æ·ÖÅäºÍÊÍ·ÅÖ®__free_pages()º¯Êý·ÖÎö
¼ÇµÃÎÒÃÇÔÚÉÏÆªÎÄÕÂmem_init()·ÖÎöÖÐÌáµ½__free_page()º¯ÊýÂð£¿ÎÒÃÇÏÖÔÚÀ´ÍêÉÆËü¡£ËüµÄµ÷Óùý³ÌÊÇÕâÑùµÄ£ºmem_init()->free_all_bootmem_node():ÎÒÃÇÖªµÀÕâ¸öº¯ÊýÊÇͳ¼ÆÒ»¹²ÊÍ·ÅÁ˶àÉÙ¿ÕÏÐÒ³¡£->free_all_bootmem_core()¾ÍÊÇÔÚÕâ¸öº¯ÊýÀïÃæÏȺó¶à´Îµ÷ÓÃ__free_pages()º¯Êý¡£Ä¿µÄ¾ÍÊÇΪÁËÊÍ·Åÿ¸öÄÚ´ænodeÀïÃæÎÞÓõÄÄÚ´æ¿×¶´Ò³¡£ÎÒÃÇÏÖÔÚ¾ÍÀ´ºÃºÃ̽ÌÖÕâ¸öº¯Êý¡£
fastcall void __free_pages(struct page *page, unsigned int order)
{
if (!PageReserved(page) && put_page_testzero(page)) {
if (order == 0)
free_hot_page(page);//ÎÒÃÇÏÈÀ´¿´¿´Õâ¸öº¯Êý¡£
else
__free_pages_ok(page, order);//ÎÒÃÇ×îºó²ÅÀ´ÌÖÂÛÕâ¸öº¯Êý¡£
}
}
void fastcall free_hot_page(struct page *page)
{
free_hot_cold_page(page, 0);
}
static void fastcall free_hot_cold_page(struct page *page, int cold)//Èç¹ûcoldÊÇ0µÄ»°£¬±íʾҪ°ÑpageËùÖ¸ÏòÄÚ´æÒ³Êͷŵ½
//ÆäËùÔÚÄÚ´æÒ³ÇøÖе±Ç°´¦ÀíÆ÷µÄ“ÈÈÇø”ÄÚ´æÖУ¬Èç¹ûΪ1µÄ»°£¬¾ÍÊͷŵ½ÕâÒ³ËùÔÚÒ³Çø
//Öе±Ç°´¦ÀíÆ÷µÄ“ÀäÇø”¸ßËÙ»º´æÄÚ´æÖС£ÔÚÕâÀï¿Ï¶¨Óв»ÉÙÈ˲»Ì«Á˽âlinuxÔÚÆô¶¯ºóÊÇ
&nbs
Ïà¹ØÎĵµ£º
LinuxͼÐλ¯Àú³Ì
×¢£º´Ë¶ÎÎÄÕÂ×ÛºÏÁËÖÚ¶à×ÊÁÏ£¬Ö÷ÒªÒýÓøöÈ˵çÄÔµÄÎÄÕÂ
̸ÆðOPIE£¬¾Í²»Äܲ»Ì¸Qt£¬È»¶øÒª¶ÔQtÓиöÀ´ÁúÈ¥ÂöµÄÈÏʶ£¬ÐèÒª´ÓLinux
ͼÐλ¯ËµÆð¡£ÈÃÎÒÃǻعËÏÂLinuxͼÐλ¯½çÃæ·¢Õ¹µÄÀúÊ·¡£
Linuxʵ¼ÊÉÏÊÇÒÔUNIXΪģ°åµÄ£¬Ëü¼Ì ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
A:link { so-language: zxx }
-->
¼ÆËã»ú×ÀÃæµÄ“ÃÀ”ȷʵºÜ³éÏ󣬲»ÏñÅ®ÐÔµÄÃÀ£¬ÈËÃDz»Ò×±í´ïÇå³þ¡£µ«ÊÇ£¬
A
Ïà¶Ô
B“
¸üÃÀ”µÄÂÛ¶Ï£¬È´ÊDZȽÏÈÝÒ×˵Ã÷°×µÄ¡£
& ......
Linux Äں˼ò½é
ÏÖÔÚÈÃÎÒÃÇ´ÓÒ»¸ö±È½Ï¸ßµÄ¸ß¶ÈÀ´ÉóÊÓһϠGNU/Linux ²Ù×÷ϵͳµÄÌåϵ½á¹¹¡£Äú¿ÉÒÔ´ÓÁ½¸ö²ã´ÎÉÏÀ´¿¼ÂDzÙ×÷ϵͳ£¬Èçͼ 2 Ëùʾ¡£
ͼ 2. GNU/Linux ²Ù×÷ϵͳµÄ»ù±¾Ìåϵ½á¹¹
ϵͳµ÷Óýӿڣ¨SCI£©µÄ·½·¨
ʵ¼ÊÉÏ£¬Ìåϵ½á¹¹¿ÉÄܲ¢²»Ïñͼ 2 ËùʾµÄÒ»ÑùÇåÎú¡£ÀýÈ磬´¦Àíϵͳµ÷Ó㨴ÓÓû§¿Õ¼äÇл»µ½ÄÚºË¿Õ ......
linuxÃæÊÔ´óÈ«
Ò»£®Ìî¿ÕÌ⣺
1. ÔÚLinuxϵͳÖУ¬ÒÔ Îļþ ·½Ê½·ÃÎÊÉ豸 ¡£
2. LinuxÄÚºËÒýµ¼Ê±£¬´ÓÎļþ /etc/fstab ÖжÁȡҪ¼ÓÔØµÄÎļþϵͳ¡£
3. LinuxÎļþϵͳÖÐÿ¸öÎļþÓà i½Úµã À´±êʶ¡£
4. È«²¿´ÅÅÌ¿éÓÉËĸö²¿·Ö×é³É£¬·Ö±ðΪÒýµ¼¿é ¡¢×¨ÓÃ¿é ¡¢ i½Úµã±í¿é ºÍÊý¾Ý´æ´¢¿é¡£
5. Á´½Ó·ÖΪ£º Ó²Á´½Ó ºÍ ·ûºÅÁ´½Ó ¡ ......