linux 2.6Ô´´úÂëÇé¾°·ÖÎö±Ê¼ÇÖ®½ø³Ì5
µÈ´ý¶ÓÁÐÔÚÄÚºËÖкܶàÓÃ;£¬ÓÈÆäÓÃÔÚÖжϴ¦Àí¡¢½ø³Ìͬ²½¼°¶¨Ê±¡£µÈ´ý¶ÓÁÐʵÏÖÁËÔÚʼþÉϵÄÌõ¼þµÈ´ý£ºÏ£ÍûµÈ´ýÌØ¶¨Ê¼þµÄ½ø³Ì°Ñ×Ô¼º·Å½øºÏÊʵĵȴý¶ÓÁУ¬²¢·ÅÆú¿ØÖÆÈ¨¡£Òò´Ë£¬µÈ´ý¶ÓÁбíʾһ×é˯ÃߵĽø³Ì£¬µ±Ä³Ò»Ìõ¼þ±äÎªÕæÊ±£¬ÓÉÄں˻½ÐÑËüÃÇ¡£
µÈ´ý¶ÓÁÐÓÉË«ÏòÁ´±íʵÏÖ£¬ÆäÔªËØ°üÀ¨Ö¸Ïò½ø³ÌÃèÊö·ûµÄÖ¸Õ롣ÿ¸ö¶ÓÁж¼ÓÐÒ»¸öµÈ´ý¶ÓÁÐÍ·£¬µÈ´ý¶ÓÁÐÍ·ÊÇÒ»¸öÀàÐÍΪwait_queue_head_tµÄÊý¾Ý½á¹¹¡£
struct __wait_queue_head {
spinlock_t lock;
struct list_head task_list;
};
typedef struct __wait_queue_head wait_queue_head_t;
µÈ´ý¶ÓÁÐÓÉÖжϴ¦Àí³ÌÐòºÍÖ÷ÒªÄں˺¯ÊýÐ޸ġ£Í¬²½ÊÇͨ¹ýµÈ´ý¶ÓÁÐÍ·ÖеÄlock×ÔÐýËø´ïµ½µÄ£¬task_list×Ö¶ÎÊǵȴý½ø³ÌÁ´±íµÄÍ·¡£
µÈ´ý¶ÓÁÐÁ´±íÖеÄÔªËØÀàÐÍΪwait_queue_t:
struct __wait_queue {
unsigned int flags;
#define WQ_FLAG_EXCLUSIVE 0x01
struct task_struct * task;
wait_queue_func_t func;
struct list_head task_list;
};
ÿ¸öÔªËØ´ú±íÒ»¸ö˯Ãß½ø³Ì£¬¸Ã½ø³ÌµÈ´ýijһʼþµÄ·¢Éú£¬ËüµÄÃèÊö·ûµØÖ··ÅÔÚtask×Ö¶ÎÖС£task_list×Ö¶ÎÖаüº¬µÄÊÇÖ¸Õ룬ÓÉÕâ¸öÖ¸Õë°ÑÒ»¸öÔªËØÁ¬½Óµ½µÈ´ýÏàͬʱ¼äµÄ½ø³ÌÁ´±íÖС£
ÓÐÁ½ÖÖ˯Ãߣº»¥³â½ø³Ì£¨µÈ´ý¶ÓÁÐÔªËØµÄflags×Ö¶ÎΪ1£©ÓÉÄÚºËÓÐÑ¡ÔñµØ»½ÐÑ£¬¶ø·Ç»¥³â½ø³Ì£¨flagsÊýֵΪ1£©×ÜÊÇÓÉÄÚºËÔÚʼþ·¢Éúʱ»½ÐÑ¡£
#define __WAIT_QUEUE_HEAD_INITIALIZER(name) { \
.lock = SPIN_LOCK_UNLOCKED, \
.task_list = { &(name)
Ïà¹ØÎĵµ£º
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
I/O ¶Ë¿ÚºÍ I/O ÄÚ´æ
ÿÖÖÍâÉè¶¼ÊÇͨ¹ý¶Áд¼Ä´æÆ÷À´½øÐпØÖÆ¡£
ÔÚÓ²¼þ²ã£¬ÄÚ´æÇøºÍ I/O ÇøÓòûÓиÅÄîÉϵÄÇø±ð: ËüÃǶ¼ÊÇͨ¹ýÏòÔÚµØÖ·×ÜÏߺͿØÖÆ×ÜÏß·¢³öµçƽÐźÅÀ´½øÐзÃÎÊ£¬ÔÙͨ¹ýÊý¾Ý×ÜÏß¶ÁдÊý¾Ý¡£
ÒòΪÍâÉèÒªÓëI\O×ÜÏ߯¥Å䣬¶ø´ó²¿·ÖÁ÷ÐÐµÄ I/O ×ÜÏßÊÇ»ùÓÚ¸öÈ˼ÆËã»úÄ£ÐÍ£¨Ö÷ÒªÊÇ x86 ¼Ò×壺ËüΪ¶ÁºÍд I/O ¶Ë¿ÚÌá¹ ......
¡¡¡¡ÔÚLinuxÕóÓªÀºóÆðÖ®ÐãUbuntu Linuxµ±ÊôÆäÖеÄٮٮÕß¡£ÔÚUbuntu LinuxÖÐȱʡ°²×°µÄÓ¦ÓóÌÐòÖ÷Òª°üÀ¨ÁË×ÀÃæ»·¾³GNOME¡¢»æÍ¼³ÌÐòGIMP¡¢¼´Ê±Í¨Ñ¶¹¤¾ßPidgin¡¢°ì¹«Ì×¼þOpenOffice.org¡¢Ã½Ìå²¥·ÅÆ÷Totem¡¢ÒôÀÖ²¥·ÅÆ÷RhythmboxÒÔ¼°ÍøÒ³ä¯ÀÀÆ÷FirefoxµÈ¡£ÒªÖ´ÐÐÊÓÆµ±à¼¡¢BTÏÂÔØºÍ3DͼÐÎÉè¼ÆµÈÈÎÎñÍùÍùÐèÒª½èÖúÓÚµÚÈý·½Èí¼ ......
ÔÚunix/linuxÏ£¬¾³£ÓÐÒòΪ¹²ÏíÄÚ´æ¡¢ÐźÅÁ¿£¬¶ÓÁеȹ²ÏíÐÅϢûÓиɾ»µØÇå³þ¶øÒýÆðһЩÎÊÌâ¡£
²é¿´¹²ÏíÐÅÏ¢µÄÄÚ´æµÄÃüÁîÊÇipcs [-m|-s|-q]¡£
ĬÈÏ»áÁгö¹²ÏíÄÚ´æ¡¢ÐźÅÁ¿£¬¶ÓÁÐÐÅÏ¢£¬-mÁгö¹²ÏíÄڴ棬-sÁгö¹²ÏíÐźÅÁ¿£¬-qÁгö¹²Ïí¶ÓÁС£
ÔõÑùÇå³þÄØ£¿
Çå³þÃüÁîÊÇipcrm [-m|-s|-q] id¡£
-m ɾ³ý¹²ÏíÄڴ棬-sɾ³ý¹²ÏíÐ ......