linux 0.11 ÄÚºËѧϰ sched.c£¬µ÷¶È½ø³Ì¡£
/*
* 2010-1-21
* ¸ÃÎļþʱÄÚºËÖÐÓйØÈÎÎñµ÷¶ÈµÄº¯Êý³ÌÐò£¬ÆäÖаüº¬»ù±¾º¯Êýsleep_on£¬
* wakeup£¬scheduleµÈ£¬ÒÔ¼°Ò»Ð©¼òµ¥µÄϵͳµ÷Óá£Í¬Ê±½«ÈíÅ̵ö²Ù×÷
* º¯ÊýÒ²·ÅÖÃÔÚÕâÀï¡£
*
* scheduleº¯ÊýÊ×ÏȶÔËùÓеÄÈÎÎñ¼ì²é£¬»½ÐÑÈκÎÒ»¸öÒѾµÃµ½ÐźŵÄÈÎÎñ£¬
* ¾ßÌåµÄ·½·¨ÊÇÕë¶ÔÈÎÎñÊý×éÖеÄÿ¸öÈÎÎñ£¬¼ì²éÆä¾¯±¨¶¨Ê±Öµalarm¡£Èç¹ûÈÎÎñ
* µÄalarmÒѾ³¬ÆÚ£¨alarm < jiffies£©£¬ÔòÔÚËüµÄÐźÅλͼÖÐÉèÖÃSIGALARM£¬È»ºó
* ÇéÊéalarmÖµ¡£jiffiesÊÇϵͳ×Ô´Ó¿ª»úÖ®ºóËãÆðµÄµÎ´ðÊý¡£ÔÚscheed.hÖж¨Ò壬
* Èç¹û½ø³ÌÐźŵÄλͼÖгýÈ¥±»×èÈûµÄÐźÅÖ®Í⻹ÓÐÆäËûÐźţ¬²¢ÇÒÈÎÎñ´¦ÓÚ¿É
* ÖжÏ˯Ãß״̬£¬ÔòÖÃÈÎÎñΪ¾ÍÐ÷״̬¡£
* ËæºóÊǵ÷¶Èº¯ÊýµÄºËÐÄ´¦Àí£¬Õⲿ·Ö´úÂë¸ù¾Ý½ø³Ìʱ¼äƬºÍÓÅÏÈȨµÄµ÷¶È»úÖÆ£¬
* À´Ñ¡Ôñ½«ÒªÖ´ÐеijÌÐò¡£ËûÊ×ÏÈÊÇÑ»·¼ì²éÈÎÎñÊý×éÖеÄËùÓÐÈÎÎñ¡£¸ù¾Ýÿ¸ö¾ÍÐ÷
* ÈÎÎñÊ£ÓàÖ´ÐÐʱ¼äÖµcounterÖÐѡȡһ¸ö×î´óµÄ£¬ÀûÓÃswitch_toº¯ÊýÍê³ÉÈÎÎñ
* ת»»¡£Èç¹ûËùÓеľÍÐ÷ÈÎÎñµÄ¸ÃÖµ¶¼ÊÇ0£¬Ôò±íʾ´Ë¿ÌËùÓÐÈÎÎñµÄʱ¼äƬ¶¼ÒÑÔËÐÐÍê¡£
* ÓÚÊǾ͸ù¾ÝÈÎÎñµÄÓÅÏÈȨֵpriority£¬ÖØÖÃÿ¸öÈÎÎñµÄÔËÐÐʱ¼äcounter¡£ÔÚÖØÐÂ
* Ñ»·¼ì²éËùÓеÄÈÎÎñÖØµÄÖ´ÐеÄʱ¼äƬֵ¡£
* ÁíÒ»¸öÖµµÃһ˵µÄÊÇsleep_onº¯Êý£¬¸Ãº¯ÊýËä¶Ì£¬È´Òª±Èscheduleº¯ÊýÄÑÀí½â£¬
* ¼òµ¥µÄ½²£¬sleep_onº¯ÊýÖ÷ÒªµÄ¹¦ÄÜÊǵ±Ò»¸ö½ø³ÌËùÇëÇóµÄ×ÊÔ´ÕýÔÚæ£¬»òÕßÊÇ
* ²»ÔÚÄÚ´æÖб»Çл»³öÈ¥£¬·ÅÔڵȴý¶ÓÁÐÖеȴýÒ»¶Îʱ¼ä¡£Çл»»ØÀ´ºóÔÚ¼ÌÐøÖ´ÐС£
* ·ÅÈëµÈ´ý¶ÓÁеķ½Ê½ÊÇ£¬ÀûÓÃÁ˺¯ÊýÖеÄtmpÖ¸ÕëΪ¸÷¸öÕýÔڵȴýÈÎÎñµÄÁªÏµ¡£
* »¹ÓÐÒ»¸öº¯Êýinterrupt_sleep_on£¬¸Ãº¯ÊýµÄÖ÷Òª¹¦ÄÜÊÇÔÚ½ø³Ìµ÷¶È֮ǰ£¬°Ñµ±Ç°
* ÈÎÎñÉèÖÃΪ¿ÉÖжϵȴý״̬£¬²¢ÔÚ±¾ÈÎÎñ±»»½ÐÑÖ®ºó»¹ÐèÒª²é¿´¶ÓÁÐÉÏÊÇ·ñ»¹ÓÐ
* ºóÀ´µÄµÈ´ýÈÎÎñ£¬Èç¹ûÓУ¬Ïȵ÷¶ÈËûÃÇ¡£
*
*/
/*
* linux/kernel/sched.c
*
* (C) 1991 Linus Torvalds
*/
/*
* 'sched.c' is the main kernel file. It contains scheduling primitives
* (sleep_on, wakeup, schedule etc) as well as a number of simple system
* call functions (type getpid(), which just extracts a field fr
Ïà¹ØÎĵµ£º
ÍØ²¨±ü³Ð²»¶Ï¿ªÍؽøÈ¡µÄ¾«Éñ£¬ÔÚ¼¼ÊõÑз¢ºÍÖ§³ÖÉϲ»¶ÏµÄͶÈëÈËÁ¦ÎïÁ¦£¬Á¦ÇóÔÚ²»¶Ï±ä»¯µÄÊг¡ÐèÇóÖУ¬´ïµ½100%µÄ¿Í»§ÂúÒâ¶È¡£ÔÚ¸Õ¸Õ̤Èë2010Ä꣬¸ù¾Ý¹ýÍùµÄÊг¡µ÷²é£¬½áºÏ¿Í»§µÄÐèÇóºÍ½¨Òé£¬ÍØ²¨ÓʼþÏµÍ³ÍÆ³öÁËLinux_°²ÌÚ°æ±¾£¬×÷ΪдºË͸ø¹ã´ó¿Í»§µÄµÚÒ»·ÝÀñÎï¡£
°²ÌÚ´¦ÀíÆ÷ÊÇ×î½üÊ®Äê²ÅÖð½¥·¢Õ¹ÆðÀ´µ ......
3) Á÷³Ì¿ØÖÆ
1.if
"if" ±í´ïʽ Èç¹ûÌõ¼þÎªÕæÔòÖ´ÐÐthenºóÃæµÄ²¿·Ö£º
if ....; then
....
elif ....; then
....
else
....
fi
´ó¶àÊýÇé¿öÏ£¬¿ÉÒÔʹÓòâÊÔÃüÁîÀ´¶ÔÌõ¼þ½øÐвâÊÔ¡£±ÈÈç¿ÉÒԱȽÏ×Ö·û´®¡¢ÅжÏÎļþÊÇ·ñ´æÔÚ¼°ÊÇ·ñ¿É¶ÁµÈµÈ…
ͨ³£ÓÃ" [ ] "À´±íʾÌõ¼þ²âÊÔ¡£×¢ÒâÕâÀïµÄ¿Õ¸ñºÜÖØÒª¡£ÒªÈ·±£· ......
1.1 coreÎļþµÄ¼òµ¥½éÉÜ
ÔÚÒ»¸ö³ÌÐò±ÀÀ£Ê±£¬ËüÒ»°ã»áÔÚÖ¸¶¨Ä¿Â¼ÏÂÉú³ÉÒ»¸öcoreÎļþ¡£coreÎļþ½ö½öÊÇÒ»¸öÄÚ´æÓ³Ïó(ͬʱ¼ÓÉϵ÷ÊÔÐÅÏ¢)£¬Ö÷ÒªÊÇÓÃÀ´µ÷ÊԵġ£
1.2 ¿ªÆô»ò¹Ø±ÕcoreÎļþµÄÉú³É
ÓÃÒÔÏÂÃüÁîÀ´×èֹϵͳÉú³ÉcoreÎļþ:
ulimit -c 0
Ò²¿ÉÒÔÐÞ¸ÄϵͳÎļþÀ´µ÷ÕûcoreÑ¡Ïî
ÔÚ/etc/profileͨ³£»áÓÐÕâÑùÒ»¾ä»°À´½ûÖ¹²úÉú ......
1 ÒýÑÔ
ÔÚǶÈëʽӦÓÃϵͳÖУ¬ÌرðÊÇÖÇÄÜÒÇÆ÷¡¢ÒÇ±í¡¢»úµçÉ豸¼°×°ÖÿØÖÆÖУ¬ÐèҪʹÓÃA/Dת»»½«Ä£ÄâµÄµçÁ¿ÐźÅת»»ÎªÊý×ÖÐźŽøÐд¦Àí£¬¶øºóÔÙ½«´¦ÀíµÄ½á¹ûͨ¹ýD/Aת»»ÎªÄ£ÄâÁ¿ÊµÏÖ¶Ô±»¿Ø¹ý³ÌºÍ¶ÔÏóµÄ¿ØÖÆ[1]¡£
»ùÓÚARM920TÄں˵Äs3c2410ÊÇÒ»¿îµÍ¹¦ºÄ£¬¸ßÐԼ۱ȵĴ¦ÀíÆ÷[2]¡£Õâ¿î´¦ÀíÆ÷ÄÚ²¿¼¯³ÉÁ˶àÖÖ¿ØÖƽӿڣ¬×Ô´ø8·1 ......
/*
* linux/kernel/asm.s
*
* (C) 1991 Linus Torvalds
*/
/*
* asm.s contains the low-level code for most hardware faults.
* page_exception is handled by the mm, so that isn't here. This
* file also handles (hopefully) fpu-exceptions ......