linuxÄں˴úÂë——Ò³¿òµÄ»ØÊÕ(2.4.18)
дÕâÆªblog²ÎÕÕÁËO'Reilly µÄ¡¶Understanding the Linux Kernel¡·£¬»òÕß˵ÊǴ󲿷ֲÎÕÕ£¬Êµ¼ÊÉÏÕâ±¾Ê鹨ÓÚÕâÕÂдµÃȷʵºÜ¾µä¡£¾¡¹ÜÈç´Ë£¬ÔÚ¿´´úÂëµÄ¹ý³ÌÖÐÎÒÈÔÈ»Óöµ½Á˺ܶàÀ§»ó£¬ÒÔÖÁÓÚ¿´¹ýÁ½±éÖ®ºóÄÔ×ÓÀﻹÊÇһ͎¬ºý¡£ËùÒÔ»¹µÃ¸Ðл´åÒ¯°ïÎÒÀíÇå³þÁË˼·£¬²»¸Òµ¡Âý£¬¸Ï½ôдÏÂÀ´·ÀÖ¹Íü¼Ç¡£(ÒÔÏ´úÂë¼°½âÊ;ùÒÔ2.4.18°æ±¾Îª×¼£©
¹ÜÀíÒ³¿ò»ØÊÕµÄÖ÷Òªº¯ÊýÊÇtry_to_free_pages£¬º¯ÊýÔÐÍÊÇint try_to_free_pages(zone_t *classzone, unsigned int gfp_mask, unsigned int order)¡£Õâ¸öº¯ÊýµÄ²ÎÊý£ºclasszone--Òª»ØÊÕµÄÒ³¿òËùÔڵĹÜÀíÇø£»gfp_mask--±êÖ¾£¬Õâ¸ö²»ºÃ½âÊÍ£¬½¨Òé´ó¼Ò¿´´úÂ룻order--ÊÍ·ÅÒ»¸öÒ³¿òËùÒÔÊÇ0¡£¿´Õâ¸öº¯Êý֮ǰÐèÒªÁ˽âÒ»ÏÂLRUÁ´±í£¬»î¶¯Á´±íÓë·Ç»î¶¯Á´±íÊÇÒ³¿ò»ØÊյĺËÐÄÊý¾Ý½á¹¹£¬ÇëÏȲ¹È«Õⲿ·ÖµÄ֪ʶ£¡ÏÂÃæÒÔ´úÂë·ÖÎö£º
int try_to_free_pages(zone_t *classzone, unsigned int gfp_mask, unsigned int order)
{
int priority = DEF_PRIORITY; //ĬÈÏÓÅÏȼ¶
int nr_pages = SWAP_CLUSTER_MAX; //ÊͷŵÄÒ³¿òÊý
gfp_mask = pf_gfp_mask(gfp_mask); //¼ì²é±ê־λ
do {
nr_pages = shrink_caches(classzone, priority, gfp_mask, nr_pages); //Ñ»·µ÷ÓÃshrink_cachesÊÍ·ÅÒ³¿ò¡£Ã¿´ÎÑ»·ÓÅÏȼ¶ÊýÖµµÝ¼õ£¨ÓÅÏȼ¶¸ü¸ß
if (nr_pages <= 0)
&n
Ïà¹ØÎĵµ£º
ÔÚLinux²Ù×÷ϵͳÖУ¬ÓÐÒ»¸öϵͳÈí¼þ°ü£¬ËüµÄ¹¦ÄÜÀàËÆÓÚWindowsÀïÃæµÄ“Ìí¼Ó/ɾ³ý³ÌÐò”£¬µ«Êǹ¦ÄÜÓֱȓÌí¼Ó/ɾ³ý³ÌÐò”Ç¿ºÜ¶à£¬Ëü¾ÍÊÇRed Hat Package Manager(¼ò³ÆRPM)¡£´Ë¹¤¾ß°ü×îÏÈÊÇÓÉRed Hat¹«Ë¾ÍƳöµÄ£¬ºóÀ´±»ÆäËûLinux¿ª·¢ÉÌËù½èÓá£ÓÉÓÚËüΪLinuxʹÓÃÕßʡȥÁ˺ܶàʱ¼ä£¬ËùÒÔ±»¹ã·ºÓ¦ÓÃÓÚÔÚLin ......
1¡¢ÒýÑÔ
ÔÚlinuxϵͳÏ£¬Èç¹ûÄãÏÂÔØ²¢°²×°ÁËÓ¦ÓóÌÐò£¬ºÜÓпÉÄÜÔÚ¼üÈëËüµÄÃû³ÆÊ±³öÏÖ“command not found”µÄÌáʾÄÚÈÝ¡£Èç¹ûÿ´Î¶¼µ½°²×°Ä¿±êÎļþ¼ÐÄÚ£¬ÕÒµ½¿ÉÖ´ÐÐÎļþÀ´½øÐвÙ×÷¾ÍÌ«·±ËöÁË¡£ÕâÉæ¼°µ½»·¾³±äÁ¿PATHµÄÉèÖÃÎÊÌ⣬¶øPATHµÄÉèÖÃÒ²ÊÇÔÚlinux϶¨ÖÆ»·¾³±äÁ¿µÄÒ»¸ö×é³É²¿·Ö¡£±¾ÎÄ» ......
3¡¢Ìõ¼þ±äÁ¿
¡¡¡¡Ç°Ò»½ÚÖÐÎÒÃǽ²ÊöÁËÈçºÎʹÓû¥³âËøÀ´ÊµÏÖÏ̼߳äÊý¾ÝµÄ¹²ÏíºÍͨÐÅ£¬»¥³âËøÒ»¸öÃ÷ÏÔµÄȱµãÊÇËüÖ»ÓÐÁ½ÖÖ״̬£ºËø¶¨ºÍ·ÇËø¶¨¡£¶øÌõ¼þ±äÁ¿Í¨¹ýÔÊÐíÏß³Ì×èÈûºÍµÈ´ýÁíÒ»¸öÏ̷߳¢ËÍÐźŵķ½·¨ÃÖ²¹ÁË»¥³âËøµÄ²»×㣬Ëü³£ºÍ»¥³âËøÒ»ÆðʹÓá£Ê¹ÓÃʱ£¬Ìõ¼þ±äÁ¿±»ÓÃÀ´×èÈûÒ»¸öỊ̈߳¬µ±Ìõ¼þ²»Âú×ãʱ£¬Ïß³ÌÍùÍù½â¿ªÏ ......
ÐÞ¸ÄÏ̵߳ÄÊôÐÔ
¡¡¡¡ÔÚÉÏÒ»½ÚµÄÀý×ÓÀÎÒÃÇÓÃpthread_createº¯Êý´´½¨ÁËÒ»¸öỊ̈߳¬ÔÚÕâ¸öÏß³ÌÖУ¬ÎÒÃÇʹÓÃÁËĬÈϲÎÊý£¬¼´½«¸Ãº¯ÊýµÄµÚ¶þ¸ö²ÎÊýÉèΪNULL¡£µÄÈ·£¬¶Ô´ó¶àÊý³ÌÐòÀ´Ëµ£¬Ê¹ÓÃĬÈÏÊôÐԾ͹»ÁË£¬µ«ÎÒÃÇ»¹ÊÇÓбØÒªÀ´Á˽âÒ»ÏÂÏ̵߳ÄÓйØÊôÐÔ¡£
¡¡¡¡ÊôÐԽṹΪpthread_attr_t£¬ËüͬÑùÔÚÍ·Îļþ/usr/include/pthread.hÖÐ ......
INTRO
¾¡¹ÜLinuxµÄ¸ùÎļþϵͳÔÚÐÎʽ±íÏÖÉÏÊÇÒ»ÌåµÄ£¨ËùÓÐÊý¾ÝĿ¼¾ùΪ¸ùĿ¼ÏµÄ×ÓĿ¼£©£¬µ«Êµ¼ÊËüÃÇÊǶà¸ö²»Í¬µÄ¡¾Âß¼Ö÷Ìå¡¿£¨ÎªÁËʵÏÖ²»Í¬µÄÂß¼¹¦ÄÜ£©×éºÏÔÚÒ»ÆðµÄ£¬²Î¼ûÏÂͼ¡£ÕâÒ²½âÊÍÁËΪʲôÓÐЩ½Úµã£¨Èç/var£©¿ÉÒÔ¹Ò½Óµ½²»Í¬´ÅÅÌ·ÖÇøÉÏ¡£»®·ÖÕâЩÂß¼²¿·Ö¶ÔÇåÎú°ÑÎÕ¸ùÎļþϵͳ½á¹¹£¬ÒÔ¼°Õû¸öϵͳµÄÐÐΪ¶¼Óкܴó ......