Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

LinuxÉ豸Çý¶¯ÖеÄÒ첽֪ͨÓëÒì²½I/O

LinuxÉ豸Çý¶¯ÖеÄÒ첽֪ͨÓëÒì²½I/O
Ò첽֪ͨµÄ¸ÅÄîÓë×÷ÓÃ
Ò첽֪ͨµÄÒâ˼ÊÇ£ºÒ»µ©É豸¾ÍÐ÷,ÔòÖ÷¶¯Í¨ÖªÓ¦ÓóÌÐò,ÕâÑùÓ¦ÓóÌÐò¸ù±¾¾Í²»ÐèÒª²éѯÉ豸״̬,ÕâÒ»µã·Ç³£ÀàËÆÓÚÓ²¼þÉÏ"ÖжÏ"µÄ¸ÅÄî,±È½Ï׼ȷµÄ³ÆÎ½ÊÇ"ÐźÅÇý¶¯µÄÒì²½I/O"¡£
 LinuxÐźÅ
 LinuxϵͳÖУ¬Ò첽֪ͨʹÓÃÐźÅÀ´ÊµÏÖ¡£ÐźÅÒ²¾ÍÊÇÒ»ÖÖÈí¼þÖжϡ£
ÐźŵIJúÉú£ºkill raise alarm
Óû§°´ÏÂijЩÖն˼ü£»
Ó²¼þÒì³££»
ÖÕÖ¹½ø³ÌÐźţ»
Èí¼þÒì³£¡£
ÐźŵĴ¦Àí£º
ºöÂÔ¸ÃÐźţ¬µ«SIGSTOP SIGKILL²»¿ÉºöÂÔ£»
²¶×½¸ÃÐźţ¬²¢´¦Àí£»
Ö´ÐÐĬÈϲÙ×÷¡£
 ÐźŵĽÓÊÕ
  ²¶×½Ðźţ¬°²×°ÐźŴ¦Àíº¯Êý£ºvoid (*signal(int signum, void(*handler)(int)))(int);
Ðźź¯ÊýµÄÔ­ÐÍΪ£ºvoid handler(int signo);
½ø³ÌÖ´ÐÐʱ£¬ctrl+c·¢³öSIGINTÐźţ¬kill·¢³öSIGTERMÐźš£
  ¸Ä±ä½ø³Ì½ÓÊÕµ½Ìض¨ÐźźóµÄÐÐΪ£ºint sigaction(int signum, const struct sigaction *act,struct sigacton *oldact);
µÚÒ»¸ö²ÎÊý¿ÉÒÔΪ³ýSIGKILL¼°SIGSTOPÍâµÄÈκÎÒ»¸öÌØ¶¨ÓÐЧµÄÐźš£ÈôµÚ¶þ¡¢Èý¸ö²ÎÊý¶¼ÎªNULL£¬ÄÇô¸Ãº¯Êý¿ÉÓÃÓÚ¼ì²éÐźŵÄÓÐЧÐÔ¡£
 
  ÔÚÓû§¿Õ¼ä´¦ÀíÒ»¸öÉ豸ÊͷŵÄÐźţº
ͨ¹ýF_SETOWN IO¿ØÖÆÃüÁîÉèÖÃÉ豸ÎļþµÄÓµÓÐÕßΪ±¾½ø³Ì¡£
ͨ¹ýF_SETFLIO¿ØÖÆÃüÁîÉèÖÃÉ豸ÎļþÖ§³ÖFASYNC¡£
ͨ¹ýsignal()º¯ÊýÁ¬½ÓÐźźÍÐźŴ¦Àíº¯Êý¡£
 
 ÐźŵÄÊÍ·Å
  ´¦ÀíFASYNC±êÖ¾±ä¸üµÄº¯Êý¡£int fasync_helper(int fd, struct file *filp, int mode, struct fasync_struct **fa);
ÊÍ·ÅÐźÅÓõĺ¯Êý¡£void kill_fasync(struct fasync_struct **fa, int sig, int band);
 
 Linux 2.6 Òì²½I/O
AIO¸ÅÄîÓëGNU C¿âº¯Êý
  AIO»ù±¾Ë¼ÏëÊÇÔÊÐí½ø³Ì·¢ÆðºÜ¶àI/O²Ù×÷£¬¶ø²»ÓÃ×èÈû»òµÈ´ýÈκβÙ×÷Íê³É¡£
²Ù×÷£ºint aio_read(struct aiocb *aiocbp); int aio_write(struct aiocb *aiocbp); int aio_error(struct aiocb *aiocbp); ssize_t aio_return(struct aiocb *aiocbp);
int aio_suspend(struct aiocb *const cblist[], int n, const struct timespec *timeout);
int aio_cancel(int fd, struct aiocb *aiocbp);
int lio_listio(int mode, struct aiocb *list[], int nent, struct sigevent *sig);
 Ê¹ÓÃÐźÅ×÷ΪAIOµÄ֪ͨ
 Ê¹Óûص÷º¯Êý×÷ΪAIOµÄ֪ͨ
 


Ïà¹ØÎĵµ£º

linux³£ÓÃcÍ·Îļþ

linux³£ÓÃÍ·ÎļþÈçÏ£º
POSIX±ê×¼¶¨ÒåµÄÍ·Îļþ
<dirent.h>       
Ŀ¼Ïî
<fcntl.h>         Îļþ¿ØÖÆ
<fnmatch.h>    ÎļþÃûÆ¥ÅäÀàÐÍ
<glob.h>   
·¾¶ÃûģʽƥÅäÀàÐÍ
< ......

linuxϽûÖ¹ÐÞ¸ÄDNS·þÎñÆ÷µØÖ·(DNS±»×Ô¶¯ÐÞ¸ÄÎÊÌâ)

´ó¼Ò¶¼ÖªµÀÐÞ¸ÄlinuxϵÄDNS¿ÉÒÔÖ±½ÓÐÞ¸Ä/etc/resolv.conf:
root@xuanfei-desktop:~#vim /etc/resolv.conf
nameserver ip //ÌîÉÏÄãµ±µØÊ¹ÓõÄ×î¿ìDNS·þÎñÆ÷IPµØÖ·
nameserver ip   
 
µ±È»Ò²¿ÉÒÔÖ±½ÓʹÓÃÍøÂç¹ÜÀíÆ÷Ð޸ġ£
µ«ÊÇÈç¹ûÄãËùÔÚ»ú¹¹»òÕß¹¤×÷µÄµØ·½±ØÐëÒªÇóÄãÓÃDHCP»ñµÃ×Ô¼º·Ç¹Ì¶¨¶¯Ì¬IP ......

LINUXϲ鿴Ӳ¼þÐÅÏ¢

¼¸¸öcpu
more /proc/cpuinfo |grep "physical id"|uniq|wc -l
ÿ¸öcpuÊǼ¸ºË£¨¼ÙÉècpuÅäÖÃÏàͬ£©
more /proc/cpuinfo |grep "physical id"|grep "0"|wc -l
cpuʹÓÃÂÊ
vmstat  
ÍÆ¼öС¹¤¾ßnmon£¨aixºÍlinux¶¼ÓУ©
topºó°´Êý×Ö1,¶à¸öcpuµÄ»°»áÏÔʾ¶à¸ö
fdisk -l¿ÉÒÔ¿´µ½¶à¸öÎïÀíÓ²ÅÌ£¬×öÁËÓ²raidÖ»ÄÜ¿´µ½Ò»¸öӲŠ......

LinuxÏÂÈí¼þ°²×°

LinuxÏÂÈí¼þ°ü°²×°·½·¨
1.ÒѾ­±àÒë´ò°üºÃµÄxxx.rpm
  ʹÓÃrpmÃüÁÐèÒª´ò¿ªÖÕ¶Ë£¬Çл»µ½xxx.rpmËùÔÚĿ¼£¬rpm -ivh xxx.rpm
2.´ò°üºÃµÄÔ´Âë°üxxx.src.rpm
  ÒªÓÃrpm -rebuild xxx.src.rpmÃüÁîÀ´ÖØÐÂÉú³É
  ×¢£º¶ÔÓÚrpmÃüÁîµÄÏê½â¿ÉÒÔʹÓà $rpm -helpÀ´²é¿´
3.°²×°³ÌÐòxxx.bin
  ÏȰÑxxx.bin¸ÄÎ ......

ÀÏÊÖ¾­Ñé:LinuxÇý¶¯³ÌÐò¿ª·¢Ñ§Ï°²½Öè [תstonly]


2009-10-21
1. ѧ»áд¼òµ¥µÄmakefile
2. ±àÒ»Ó¦ÓóÌÐò£¬¿ÉÒÔÓÃmakefileÅÜÆðÀ´
3. ѧ»áдÇý¶¯µÄmakefile
4. дһ¼òµ¥charÇý¶¯£¬makefile±àÒëͨ¹ý£¬¿ÉÒÔinsmod, lsmod, rmmod. ÔÚÇý¶¯µÄinitº¯ÊýÀï´òÓ¡hello world, insmodºóÓ¦¸ÃÄܹ»Í¨¹ýdmesg¿´µ½Êä³ö¡£
5. дһÍêÕûÇý¶¯£¬ ¼ÓÉÏread, write, ioctl, pollingµÈ¸÷ÖÖº ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ