LinuxÄÚºËÇÀռʵÏÖ»úÖÆ·ÖÎö
LinuxÄÚºËÇÀռʵÏÖ»úÖÆ·ÖÎö
¡¾ÕªÒª¡¿±¾ÎÄÏê½âÁËLinuxÄÚºËÇÀռʵÏÖ»úÖÆ¡£Ê×ÏȽéÉÜÁËÄÚºËÇÀÕ¼ºÍÓû§ÇÀÕ¼µÄ¸ÅÄîºÍÇø±ð£¬½Ó×Å·ÖÎöÁ˲»¿ÉÇÀÕ¼Äں˵ÄÌØµã¼°ÊµÊ±ÏµÍ³ÖÐʵÏÖÄÚºËÇÀÕ¼µÄ±ØÒªÐÔ¡£È»ºó·ÖÎöÁ˽ûÖ¹ÄÚºËÇÀÕ¼µÄÇé¿öºÍÄÚºËÇÀÕ¼µÄʱ»ú£¬×îºó½éÉÜÁËʵÏÖÇÀÕ¼ÄÚºËËù×öµÄ¸Ä¶¯ÒÔ¼°ºÎʱÐèÒªÖØÐµ÷¶È¡£
¡¾¹Ø¼ü×Ö¡¿ÄÚºËÇÀÕ¼£¬Óû§ÇÀÕ¼£¬Öжϣ¬ ʵʱÐÔ£¬×ÔÐýËø£¬ÇÀռʱ»ú£¬µ÷¶Èʱ»ú£¬schedule£¬preempt count
1 ÄÚºËÇÀÕ¼¸ÅÊö
2.6еĿÉÇÀռʽÄÚºËÊÇÖ¸ÄÚºËÇÀÕ¼£¬¼´µ±½ø³ÌλÓÚÄں˿ռäʱ£¬ÓÐÒ»¸ö¸ü¸ßÓÅÏȼ¶µÄÈÎÎñ³öÏÖʱ£¬Èç¹ûµ±Ç°ÄÚºËÔÊÐíÇÀÕ¼£¬Ôò¿ÉÒÔ½«µ±Ç°ÈÎÎñ¹ÒÆð£¬Ö´ÐÐÓÅÏȼ¶¸ü¸ßµÄ½ø³Ì¡£
ÔÚ2.5.4°æ±¾Ö®Ç°£¬LinuxÄÚºËÊDz»¿ÉÇÀÕ¼µÄ£¬¸ßÓÅÏȼ¶µÄ½ø³Ì²»ÄÜÖÐÖ¹ÕýÔÚÄÚºËÖÐÔËÐеĵÍÓÅÏȼ¶µÄ½ø³Ì¶øÇÀÕ¼CPUÔËÐС£½ø³ÌÒ»µ©´¦ÓÚºËÐÄ̬(ÀýÈçÓû§½ø³ÌÖ´ÐÐϵͳµ÷ÓÃ)£¬Ôò³ý·Ç½ø³Ì×ÔÔ¸·ÅÆúCPU£¬·ñÔò¸Ã½ø³Ì½«Ò»Ö±ÔËÐÐÏÂÈ¥£¬Ö±ÖÁÍê³É»òÍ˳öÄںˡ£Óë´ËÏà·´£¬Ò»¸ö¿ÉÇÀÕ¼µÄLinuxÄں˿ÉÒÔÈÃLinuxÄÚºËÈçͬÓû§¿Õ¼äÒ»ÑùÔÊÐí±»ÇÀÕ¼¡£µ±Ò»¸ö¸ßÓÅÏȼ¶µÄ½ø³Ìµ½´ïʱ£¬²»¹Üµ±Ç°½ø³Ì´¦ÓÚÓû§Ì¬»¹ÊǺËÐÄ̬£¬Èç¹ûµ±Ç°ÔÊÐíÇÀÕ¼£¬¿ÉÇÀÕ¼Äں˵ÄLinux¶¼»áµ÷¶È¸ßÓÅÏȼ¶µÄ½ø³ÌÔËÐС£
2 Óû§ÇÀÕ¼
Äں˼´½«·µ»ØÓû§¿Õ¼äµÄʱºò£¬Èç¹ûneed resched±êÖ¾±»ÉèÖ㬻ᵼÖÂschedule()±»µ÷Ó㬴Ëʱ¾Í»á·¢ÉúÓû§ÇÀÕ¼¡£ÔÚÄں˷µ»ØÓû§¿Õ¼äµÄʱºò£¬ËüÖªµÀ×Ô¼ºÊǰ²È«µÄ¡£ËùÒÔ£¬ÄÚºËÎÞÂÛÊÇÔÚ´ÓÖжϴ¦Àí³ÌÐò»¹ÊÇÔÚϵͳµ÷Óú󷵻أ¬¶¼»á¼ì²éneed resched±êÖ¾¡£Èç¹ûËü±»ÉèÖÃÁË£¬ÄÇô£¬Äں˻áÑ¡ÔñÒ»¸öÆäËû(¸üºÏÊʵÄ)½ø³ÌͶÈëÔËÐС£
¼ò¶øÑÔÖ®£¬Óû§ÇÀÕ¼ÔÚÒÔÏÂÇé¿öʱ²úÉú£º
´Óϵͳµ÷·µ»ØÓû§¿Õ¼ä¡£
´ÓÖжϴ¦Àí³ÌÐò·µ»ØÓû§¿Õ¼ä¡£
3 ²»¿ÉÇÀÕ¼Äں˵ÄÌØµã
ÔÚ²»Ö§³ÖÄÚºËÇÀÕ¼µÄÄÚºËÖУ¬Äں˴úÂë¿ÉÒÔÒ»Ö±Ö´ÐУ¬µ½ËüÍê³ÉΪֹ¡£Ò²¾ÍÊÇ˵£¬µ÷¶È³ÌÐòûÓа취ÔÚÒ»¸öÄں˼¶µÄÈÎÎñÕýÔÚÖ´ÐеÄʱºòÖØÐµ÷¶È—ÄÚºËÖеĸ÷ÈÎÎñÊÇÐ×÷·½Ê½µ÷¶ÈµÄ£¬²»¾ß±¸ÇÀÕ¼ÐÔ¡£Äں˴úÂëÒ»Ö±ÒªÖ´Ðе½Íê³É(·µ»ØÓû§¿Õ¼ä)»òÃ÷ÏÔµÄ×èÈûΪֹ¡£
ÔÚµ¥CPUÇé¿öÏ£¬ÕâÑùµÄÉ趨´ó´ó¼ò»¯ÁËÄں˵Äͬ²½ºÍ±£»¤»úÖÆ¡£¿ÉÒÔ·ÖÁ½²½¶Ô´Ë¼ÓÒÔ·ÖÎö£º
Ê×ÏÈ£¬²»¿¼Âǽø³ÌÔÚÄÚºËÖÐ×ÔÔ¸·ÅÆúCPUµÄÇé¿ö(Ò²¼´ÔÚÄÚºËÖв»·¢Éú½ø³ÌµÄÇл»)¡£Ò»¸ö½ø³ÌÒ»µ©½øÈëÄں˾ͽ«Ò»Ö±ÔËÐÐÏÂÈ¥£¬Ö±µ½Íê³É»òÍ˳öÄںˡ£ÔÚÆäûÓÐÍê³É»òÍ˳öÄÚºË֮ǰ£¬²»»áÓÐÁíÍâÒ»¸ö½ø³Ì½øÈëÄÚº
Ïà¹ØÎĵµ£º
ÓùßÁËWindowsƽ̨¿ª·¢¹¤¾ßµÄÈË£¬×ªµ½Linuxƽ̨ÉϿ϶¨ÓÐÒ»¸öÊÊÓ¦µÄ¹ý³Ì¡£
WindowsÏÂÃæÖ±½ÓʹÓÃVS20....µÈµÈ£¬ÅäºÏMSDNÎĵµ£¬¿ª·¢²éѯÇáËÉ×ÔÈç¡£
¶øLinuxƽ̨£¬ÓÉÓÚÖÖÀà·±¶àûÓÐÏñMSDNÕâÑùÈ«ÃæµÄ¼¼ÊõÎĵµ£¬¶ÔÓÚ¼¼Êõ×ÊÁϵIJéѯ¾ÍÒªÒÀ¿¿
[root@localhost]#MAN [º¯ÊýÃû]
µÄ·½Ê½À´²éѯ¡£´ó²¿·ÖµÄC++º¯Êýʱ¿ÉÒÔ²éѯµ½µÃ£¬µ«ÊÇ ......
selectϵͳµ÷ÓÃÊÇÓÃÀ´ÈÃÎÒÃǵijÌÐò¼àÊÓ¶à¸öÎļþ¾ä±ú(file descriptor)µÄ״̬±ä»¯µÄ¡£³ÌÐò»áÍ£ÔÚselectÕâÀïµÈ´ý£¬Ö±µ½±»¼àÊÓµÄÎļþ¾ä±úÓÐijһ¸ö»ò¶à¸ö·¢ÉúÁË״̬¸Ä±ä¡£
ÎļþÔÚ¾ä±úÔÚLinuxÀïºÜ¶à£¬Èç¹ûÄãmanij¸öº¯Êý£¬ÔÚº¯Êý·µ»ØÖµ²¿·Ö˵µ½³É¹¦ºóÓÐÒ»¸öÎļþ¾ä±ú±»´´½¨µÄ¶¼Êǵģ¬Èçman socket¿ÉÒÔ¿´µ½“On success, a fi ......
ÕýÔò±í´ïʽ Ö®Ôª×Ö·ûÀíÂÛÆª
1.Ôª×Ö·û
\ ÒýÓ÷û£¬ÓÃÓÚ¹ýÂ˵ôÔª×Ö·ûµÄÆ¥Å䣬½«Ëüµ±×÷Ò»¸öÆÕͨµÄ×Ö·ûÀ´½øÐÐÆ¥Å䣨°ü
À¨ÏÂÃæ½«³öÏÖµÄËùÓÐÔª×Ö·û£©
. Æ¥ÅäÈκε¥¸ö×Ö·û
? Æ¥Åä0»ò1¸öÔÚËüÇ°Ãæ£¬¼´"?"ºÅÇ°ÃæµÄ×Ö·û
* Æ¥Åä0»òÈÎÒâ¸öÔÚËüÇ°Ãæ£¬¼´"*"ºÅǰ ......
1.bootsect.s
±¾ÎĵÄÄ¿µÄ£¬ÔÚ½«linux kernelµÄboot²¿·Ý×öÒ»¸ö½éÉÜ£¬ÒòΪ±ÊÕß¾õµÃºÜÉÙÓÐÕâÑùµÄ
¡¡¡¡ÎÄÕÂÀ´½éÉÜÒ»¸ö²Ù×÷ϵͳ×î×ʼµÄÒ»²½----°Ñkernel±¾ÉíÔØ ......
À´×Ô£ºhttp://www.linuxsir.org/main/?q=node/137#1.2
ÕªÒª£º ±¾ÎÄÊÇfind ÃüÁîµÄÏêϸ˵Ã÷£¬¿É¹óµÄÊÇÕë¶Ô²ÎÊý¾ÙÁ˺ܶàµÄʵÀý£¬´óÁ¿µÄÀýÖ¤£¬ÈóõѧÕ߸üΪÈÝÒ×Àí½â£»±¾ÎÄÊÇzhyflyÐÖÌùÔÚÂÛ̳ÖУ»ÎÒ¶Ô±¾ÎĽøÐÐÁËÔÙ´ÎÕûÀí£¬Îª·½±ã´ó¼ÒÔĶÁ£»
Ŀ¼
°æÈ¨ÉùÃ÷
ǰÑÔ£º¹ØÓÚfindÃüÁî
Ò»¡¢find ÃüÁî¸ñʽ
1¡¢findÃüÁîµÄÒ»°ã ......