LinuxÖеȴý¶ÓÁлúÖÆ·ÖÎö
LinuxÖеȴý¶ÓÁлúÖÆ·ÖÎö
ʲôÊǵȴý¶ÓÁУ¿
ÔÚÈí¼þ¿ª·¢ÖÐÈÎÎñ¾³£ÓÉÓÚijÖÖÌõ¼þûÓеõ½Âú×ã¶ø²»µÃ²»½øÈë˯Ãß״̬£¬È»ºóµÈ´ýÌõ¼þµÃµ½Âú×ãµÄʱºòÔÙ¼ÌÐøÔËÐУ¬½øÈëÔËÐÐ״̬¡£ÕâÖÖÐèÇóÐèÒªµÈ´ý¶ÓÁлúÖÆµÄÖ§³Ö¡£LinuxÖÐÌṩÁ˵ȴý¶ÓÁеĻúÖÆ£¬¸Ã»úÖÆÔÚÄÚºËÖÐÓ¦Óúܹ㷺¡£
ÔÚLinuxÄÚºËÖÐʹÓõȴý¶ÓÁеĹý³ÌºÜ¼òµ¥£¬Ê×Ïȶ¨ÒåÒ»¸öwait_queue_head£¬È»ºóÈç¹ûÒ»¸ötaskÏëµÈ´ýijÖÖʼþ£¬ÄÇôµ÷ÓÃwait_event£¨µÈ´ý¶ÓÁУ¬Ê¼þ£©¾Í¿ÉÒÔÁË¡£
LinuxÖеȴý¶ÓÁеÄʵÏÖ
µÈ´ý¶ÓÁÐÓ¦Óù㷺£¬µ«ÊÇÄÚºËʵÏÖÈ´Ê®·Ö¼òµ¥¡£ÆäÉæ¼°µ½Á½¸ö±È½ÏÖØÒªµÄÊý¾Ý½á¹¹£º
<!--[if !supportLists]-->1) <!--[endif]-->__wait_queue_head£¬¸Ã½á¹¹ÃèÊöÁ˵ȴý¶ÓÁеÄÁ´Í·£¬Æä°üº¬Ò»¸öÁ´±íºÍÒ»¸öÔ×ÓËø£¬½á¹¹¶¨ÒåÈçÏ£º
struct __wait_queue_head {
spinlock_t lock; /* ±£»¤µÈ´ý¶ÓÁеÄÔ×ÓËø */
struct list_head task_list; /* µÈ´ý¶ÓÁÐ */
};
<!--[if !supportLists]-->2) <!--[endif]-->__wait_queue£¬¸Ã½á¹¹ÊǶÔÒ»¸öµÈ´ýÈÎÎñµÄ³éÏó¡£Ã¿¸öµÈ´ýÈÎÎñ¶¼»á³éÏó³ÉÒ»¸öwait_queue£¬²¢ÇÒ¹ÒÔØµ½wait_queue_headÉÏ¡£¸Ã½á¹¹¶¨ÒåÈçÏ£º
struct __wait_queue {
unsigned int flags;
void *private; /* ͨ³£Ö¸Ïòµ±Ç°ÈÎÎñ¿ØÖÆ¿é */
/* ÈÎÎñ»½ÐѲÙ×÷·½·¨£¬¸Ã·½·¨ÔÚÄÚºËÖÐÌṩ£¬Í¨³£Îªautoremove_wake_function */
wait_queue_func_t func; &nb
Ïà¹ØÎĵµ£º
×¼±¸¹¤×÷
Èç¹ûÏë²ÉÓñ¾ÎĽéÉܵķ½·¨¶ÔLinuxϵͳ½øÐÐÉèÖã¬Ê×ÏÈÒªÊìϤLinuxϵͳµÄÉèÖÃÓïÑÔ¡£¶ÔϵͳµÄÆô¶¯¹ý³Ì½øÐÐÉèÖÃÊÇÒ»Ïî±È½ÏΣÏÕµÄÐÐΪ£¬ÈÝÒ×Ôì³Éϵͳ ÎÞ·¨Æô¶¯¡£Ò»µ©·¢ÉúÕâÖÖÇé¿ö£¬×îºÃÖØÐÂÆô¶¯ÏµÍ³ºóÑ¡Ôñµ¥Ò»Óû§Ä£Ê½£¬½«ÏµÍ³»¹Ô²¢ÖØÆô¡£µ±È»£¬×îÖØÒªµÄÊÇÔÚÉèÖÃǰ±¸·ÝÖØÒªÊý¾Ý¡£
Æä´Î£¬½¨ÒéÓû§×îºÃÔÚ¶Ô±¾»úϵͳ½ ......
´ÓLinux 2.6ÆðÒýÈëÁËÒ»Ì×еÄÇý¶¯¹ÜÀíºÍ×¢²á»úÖÆ:Platform_deviceºÍPlatform_driver¡£
LinuxÖд󲿷ֵÄÉ豸Çý¶¯£¬¶¼¿ÉÒÔʹÓÃÕâÌ×»úÖÆ, É豸ÓÃPlatform_device±íʾ£¬Çý¶¯ÓÃPlatform_driver½øÐÐ×¢²á¡£
Linux platform driver»úÖÆºÍ´«Í³µÄdevice driver »úÖÆ(ͨ¹ýdriver_registerº¯Êý½øÐÐ×¢²á)Ïà±È£¬Ò»¸öÊ® ......
֮ǰ¿´ÁËһЩ¹ØÓÚlinux²Ù×÷ϵͳµÄ½Ì³Ì£¬±È½Ïϲ»¶½«ÕâЩ¶«Î÷¼Ç¼ÔÚ±¾×ÓÉÏ£¬ÏÖÔÚÔÙ½«ÕâЩ¶«Î÷Ìùµ½²©¿ÍÉÏ£¬ºÍ´ó¼Ò½»Á÷һϡ£ºÜ¶àlinux¸ßÊÖ˵µ½£¬ÏëҪѧºÃlinux±ØÐë¶ÔÆäĿ¼Óиö͸³¹µÄÀí½â¡£ÒÔÏÂÊÇÎÒ×ܽáµÄһЩ¶«Î÷:
ÓëWindowsÒ»Ñù£¬ÔÚLinuxÖÐÒ²ÊÇͨ¹ýĿ¼À´×éÖ¯ÎļþµÄ¡£µ«²»Í¬µÄÊÇ£¬ÔÚLinuxÏÂÖ»ÓÐÒ»¸ö¸ùĿ¼£¬¶ø²»ÏóWin ......
Ò»¡¢ ʲôÊÇϵͳµ÷ÓÃ
ÔÚLinuxµÄÊÀ½çÀÎÒÃǾ³£»áÓöµ½ÏµÍ³µ÷ÓÃÕâÒ»ÊõÓËùνϵͳµ÷Ó㬾ÍÊÇÄÚºËÌṩµÄ¡¢¹¦ÄÜÊ®·ÖÇ¿´óµÄһϵÁеĺ¯Êý¡£ÕâЩϵͳµ÷ÓÃÊÇÔÚÄÚºËÖÐʵÏֵģ¬ÔÙͨ¹ýÒ»¶¨µÄ·½Ê½°Ñϵͳµ÷ÓøøÓû§£¬Ò»°ã¶¼Í¨¹ýÃÅ(gate)ÏÝÈë(trap)ʵÏÖ¡£ÏµÍ³µ÷ÓÃÊÇÓû§³ÌÐòºÍÄں˽»»¥µÄ½Ó¿Ú¡£
¶þ¡¢ ϵͳµ÷ÓõÄ× ......
Õª×Ôoldlinux£º
ÉϵçÖ´ÐеĵÚÒ»Ìõ´úÂëÊÇÔÚÄÚ´æÀïÂð£¿
“·ÃÎʵÄF000h : FFF0hÊÇÄÚ´æµÄµØÖ·»¹ÊÇ´æ·ÅbiosµÄromµØÖ·¡¡”¡¡
¡¡¡¡Õâ¸öÊÇÓɱ±ÇÅÄÚµÄÒ»¸ö¼Ä´æÆ÷ÉèÖõ썾ßÌåµÄ×ÊÁÏÄã¿ÉÒÔÈ¥ÕÒһЩоƬ×éµÄ×ÊÁÏ£©¡£µ±±±ÇÅÊÕµ½£Ã£Ð£ÕÍⲿµÄµØÖ·×ÜÏßÉϵÄÐźÅʱ£¬»á¸ù¾ÝÕâ¸ö¼Ä´æÆ÷ÄÚµÄÖµÀ´¾ö¶¨ÊÇ´ÓÄÚ´æÀïÈ¡ÄÚÈÝ»¹ÊǰÑÕâ¸öµØ ......