LinuxÉ豸Çý¶¯ÖеÄ×èÈûÓë·Ç×èÈûI/O
LinuxÉ豸Çý¶¯ÖеÄ×èÈûÓë·Ç×èÈûI/O
×èÈûÓë·Ç×èÈûI/O
×èÈû²Ù×÷ÊÇÖ¸ÔÚÖ´ÐÐÉ豸²Ù×÷ʱÈô²»ÄÜ»ñµÃ×ÊÔ´Ôò¹ÒÆð½ø³Ì£¬Ö±µ½Âú×ã¿É²Ù×÷µÄÌõ¼þºóÔÙ½øÐвÙ×÷¡£
ÒòΪ×èÈûµÄ½ø³Ì»á½øÈëÐÝÃß״̬£¬Òò´Ë£¬±ØÐëÈ·±£ÓÐÒ»¸öµØ·½Äܹ»»½ÐÑÐÝÃߵĽø³Ì¡£»½Ðѽø³ÌµÄµØ·½×î´ó¿ÉÄÜ·¢ÉúÔÚÖжÏÀïÃæ£¬ÒòΪӲ¼þ×ÊÔ´»ñµÃµÄͬʱÍùÍù°éËæ×ÅÒ»¸öÖжϡ£
×¢Ò⣺Çý¶¯³ÌÐòÐèÒªÌṩ×èÈû£¨µÈ´ý¶ÓÁУ¬Öжϣ©ºÍ·Ç×èÈû·½Ê½£¨ÂÖѯ£¬Ò첽֪ͨ£©·ÃÎÊÉ豸¡£
ÐÝÃß(±»×èÈû)µÄ½ø³Ì´¦ÓÚÒ»¸öÌØÊâµÄ²»¿ÉÖ´ÐÐ״̬¡£Õâµã·Ç³£ÖØÒª£¬·ñÔò£¬Ã»ÓÐÕâÖÖÌØÊâ״̬µÄ»°£¬µ÷¶È³ÌÐò¾Í¿ÉÄÜÑ¡³öÒ»¸ö±¾²»Ô¸Òâ±»Ö´ÐеĽø³Ì£¬¸üÔã¸âµÄÊÇ£¬ÐÝÃ߾ͱØÐëÒÔÂÖѯµÄ·½Ê½ÊµÏÖÁË¡£½ø³ÌÐÝÃßÓи÷ÖÖÔÒò£¬µ«¿Ï¶¨¶¼ÊÇΪÁ˵ȴýһЩʼþ¡£Ê¼þ¿ÉÄÜÊÇÒ»¶Îʱ¼ä¡¢´ÓÎļþI/O¶Á¸ü¶àÊý¾Ý£¬»òÕßÊÇij¸öÓ²¼þʼþ¡£Ò»¸ö½ø³Ì»¹ÓпÉÄÜÔÚ³¢ÊÔ»ñµÃÒ»¸öÒѾռÓõÄÄÚºËÐźÅÁ¿Ê±±»ÆÈ½øÈëÐÝÃß¡£ÐÝÃßµÄÒ»¸ö³£¼ûÔÒò¾ÍÊÇÎļþI/O -- Èç½ø³Ì¶ÔÒ»¸öÎļþÖ´ÐÐÁËread()²Ù×÷£¬¶øÕâÐèÒª´Ó´ÅÅÌÀï¶ÁÈ¡¡£»¹ÓУ¬½ø³ÌÔÚ»ñÈ¡¼üÅÌÊäÈëµÄʱºòÒ²ÐèÒªµÈ´ý¡£ÎÞÂÛÄÄÖÖÇé¿ö£¬Äں˵IJÙ×÷¶¼Ïàͬ:½ø³Ì°ÑËü×Ô¼º±ê¼Ç³ÉÐÝÃß״̬£¬°Ñ×Ô¼º´Ó¿ÉÖ´ÐжÓÁÐÒÆ³ö£¬·ÅÈëµÈ´ý¶ÓÁУ¬È»ºóµ÷ÓÃschedule()Ñ¡ÔñºÍÖ´ÐÐÒ»¸öÆäËû½ø³Ì¡£»½ÐѵĽø³Ì¸ÕºÃÏà·´:½ø³Ì±»ÉèÖÃΪ¿ÉÖ´ÐÐ״̬£¬È»ºóÔٴӵȴý¶ÓÁÐÖÐÒÆµ½¿ÉÖ´ÐжÓÁС£
ÐÝÃßÓÐÁ½ÖÖÏà¹ØµÄ½ø³Ì״̬:TASK_INTERRUPTIBLE and TASK_UNINTERRUPTIBLE¡£ËüÃǵÄÎ©Ò»Çø±ðÊÇ´¦ÓÚTASK_UNINTERRUPTIBLE״̬µÄ½ø³Ì»áºöÂÔÐźţ¬¶ø´¦ÓÚTASK_INTERRUPTIBLE״̬µÄ½ø³ÌÈç¹ûÊÕµ½ÐźŻᱻ»½ÐѲ¢´¦ÀíÐźÅ(È»ºóÔٴνøÈëµÈ´ý˯Ãß״̬)¡£Á½ÖÖ״̬µÄ½ø³ÌλÓÚͬһ¸öµÈ´ý¶ÓÁÐÉÏ£¬µÈ´ýijЩʼþ£¬²»Äܹ»ÔËÐС£
ÐÝÃßͨ¹ýµÈ´ý¶ÓÁнøÐд¦Àí¡£µÈ´ý¶ÓÁÐÊÇÓɵȴýijЩʼþ·¢ÉúµÄ½ø³Ì×é³ÉµÄ¼òµ¥Á´±í¡£ÄÚºËÓÃwake_queue_head_tÀ´´ú±íµÈ´ý¶ÓÁС£µÈ´ý¶ÓÁпÉÒÔͨ¹ýDECLARE_WAITQUEUE()¾²Ì¬´´½¨£¬Ò²¿ÉÒÔÓÐinit_waitqueue_head()¶¯Ì¬´´½¨¡£½ø³Ì°Ñ×Ô¼º·ÅÈëµÈ´ý¶ÓÁÐÖв¢ÉèÖóɲ»¿ÉÖ´ÐÐ״̬¡£µÈÓëµÈ´ý¶ÓÁÐÏà¹ØµÄʼþ·¢ÉúµÄʱºò£¬¶ÓÁÐÉϵĽø³Ì»á±»»½ÐÑ¡£ÎªÁ˱ÜÃâ²úÉú¾ºÕùÌõ¼þ£¬ÐÝÃߺͻ½ÐѵÄʵÏÖ²»ÄÜÓÐç¢Â©¡£
µÈ´ý¶ÓÁÐ
ÔÚLinuxÇý¶¯³ÌÐòÖУ¬¿ÉÒÔʹÓõȴý¶ÓÁÐÀ´ÊµÏÖ×èÈû½ø³ÌµÄ»½ÐÑ¡£
½ø³Ìͨ¹ýÖ´ÐÐÏÂÃæ¼¸²½½«×Ô¼º¼ÓÈëµ½Ò»¸öµÈ´ý¶ÓÁÐÖУº
µ±È»£¬Ê×ÏÈÊǶ¨ÒåµÈ´ý¶ÓÁÐÍ·£¬²¢³õʼ»¯£º
wait_queue_head_t wait;
init_waitqueue_he
Ïà¹ØÎĵµ£º
×ÜÀÀ
ÓÃiptables -ADC À´Ö¸¶¨Á´µÄ¹æ
Ôò
£¬-AÌí¼Ó -Dɾ³ý -C ÐÞ¸Ä
iptables - [RI] chain rule num rule-specification[option]
ÓÃiptables - RI ͨ¹ý¹æÔòµÄ˳ÐòÖ¸¶¨
iptables -D chain rule num[option]
ɾ³ýÖ¸¶¨¹æÔò
iptables -[LFZ] [chain][option]
ÓÃiptables -LFZ Á´Ãû [Ñ¡Ïî]
iptables -[NX] chain
ÓÃ -NX ......
2009 Äê 4 ÔÂ 23 ÈÕ
±¾ÎÄÖÐÎÒÃÇÕë¶Ô Linux É϶àÏ̱߳à³ÌµÄÖ÷ÒªÌØÐÔ×ܽá³ö 5 Ìõ¾Ñ飬ÓÃÒÔ¸ÄÉÆ Linux ¶àÏ̱߳à³ÌµÄϰ¹ßºÍ±ÜÃâÆäÖеĿª·¢ÏÝÚå¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃÇ´©²åһЩ Windows µÄ±à³ÌÓÃÀýÓÃÒÔ¶Ô±È Linux ÌØÐÔ£¬ÒÔ¼ÓÉî¶ÁÕßÓ¡Ïó¡£
±³¾°
Linux ƽ̨ÉϵĶàÏ̳߳ÌÐò¿ª·¢Ïà¶ÔÓ¦ÆäËûƽ̨£¨±ÈÈç Windows£©µÄ¶àÏß³Ì API ÓÐһЩϸ΢ ......
ÓÉÓÚ Linux Á¼ºÃµÄÓû§È¨ÏÞ¹ÜÀíÌåϵ£¬²¡¶¾ÍùÍùÊÇ Linux ϵͳ¹ÜÀíÔ±×îºó²ÅÐèÒª¿¼ÂǵÄÎÊÌâ¡£ÒÔÍù£¬Linux ÉϵÄɱ¶¾Èí¼þÖ÷ÒªÊÇΪÆóÒµµÄÓʼþºÍÎļþ·þÎñÆ÷ËùÉè¼ÆµÄ¡£Èç½ñ£¬Ëæ×Å Linux ×ÀÃæÓû§ÊýÁ¿µÄÔö³¤£¬×ÀÃæÓû§ÔÚÊÜÒæÓÚ Linux ϵͳ¶Ô²¡¶¾½ÏÇ¿µÄÌìÈ»ÃâÒßÁ¦µÄͬʱ£¬Ò²ÐèҪɱ¶¾Èí¼þÇåÀí´ÓÍøÂç»òUÅÌ´øÀ´µÄWIndows²¡¶¾¡£¾¡¹ÜÄÇЩ ......
´Ë©¶´Õë¶Ôlinux2.6Äںˣ¬Ö»ÒªÓÐÆÕͨÓû§È¨ÏÞ£¬¼´¿ÉÌáÉýrootȨÏÞ£¬¿ªÊ¼ÊµÑé°É 1¡¢¸´ÖÆÒÔÏ´úÂ룬±£´æÎªudev.sh£¬²¢¸³Óè¿ÉÖ´ÐÐȨÏÞ 2¡¢#useradd test //н¨Ò»¸öÆÕͨÓû§ 3¡¢#su - test //Çл»ÖÁtestÓû§ 4¡¢#ps -ef |grep udev //²é¿´udev id root 474 1 0 Apr09 ? 00:00:00 /sbin/udevd -d 5¡¢#sh udev.sh 473 //Ö´Ð ......
°´ÏÂÃæ²½ÖèÀ´×ö£¬¿ÉÒÔ¼òµ¥ÌåÑésocket APIµÄʹÓ᣾ßÌ庯ÊýµÄÒâÒ壬Çë²Î¿¼ÆäËû˵Ã÷Îĵµ¡£
ÏÂÃæµÄº¯ÊýÖ±½Ócopy, paste¾Í¿ÉÒÔÁË¡£
Step1. ´´½¨Server ³ÌÐò¡£
н¨Îļþsocket_s.c, ÄÚÈÝÈçÏ£º
-------------------------------------------
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h ......