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

LinuxÉ豸Çý¶¯¿ª·¢Ïê½â ±Ê¼Ç9 Ò첽֪ͨÓëÒì²½I/O


Ò첽֪ͨ£ºÒ»µ©É豸¾ÍÐ÷£¬ÔòÖ÷¶¯Í¨ÖªÓ¦ÓóÌÐò£¬ÕâÑùÓ¦ÓóÌÐò¸ù±¾²»ÐèÒª²éѯÉ豸״̬£¬ÕâÒ»µã·Ç³£ÀàËÆÓÚÓ²¼þÉϵēÖжϔµÄ¸ÅÄ±È½Ï׼ȷµÄ³ÆÎ½ÊÇ“ÐźÅÇý¶¯µÄÒì²½I/O
 
//Æô¶¯ÐźÅÇý¶¯»úÖÆ
signal(SIGIO, input_handler);//ÈÃinput_handler()´¦ÀíSIGIOÐźÅ
fcntl(fd, F_SETOWN, getpid());//ÉèÖñ¾½ø³ÌΪSTDIN_FILENOÎļþµÄÓµÓÐÕߣ¬ÈÃÄÚºËÖªµÀ½«Ðźŷ¢¸ø±¾½ø³Ì
oflags = fcntl(fd, F_GETFL);//ÏÂÃæÁ½¾ä£ºÉèÖÃFASYNC±êÖ¾£¬Æô¶¯Ò첽֪ͨ±êÖ¾
fcntl(fd, F_SETFL, oflags | FASYNC); 
É豸Çý¶¯ÖÐÒ첽֪ͨ±à³Ì±È½Ï¼òµ¥£¬Ö÷ÒªÓõ½Ò»ÏîÊý¾Ý½á¹¹ºÍÁ½¸öº¯Êý
Êý¾Ý½á¹¹£º
struct xxx_dev
{
Struct cdev cdev;
……
Struct fasync_struct *async_queue;
}
 
 
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);
 
static int globalfifo_fasync(int fd, struct file *filp, int mode)
{
    struct globalfifo_dev *dev = filp->private_data;
    return fasync_helper(fd, filp, mode, &dev->async_queue);
}
 
static ssize_t globalfifo_write(struct file *filp, const char __user *buf,
  size_t count, loff_t *ppos)
{
    struct globalfifo_dev *dev = filp->private_data; //»ñµÃÉ豸½á¹¹ÌåÖ¸Õë
    ……
   
    if (dev->async_queue)
       kill_fasync(&dev->async_queue, SIGIO, POLL_IN);
   
    ret = count;
  }
 
int globalfifo_release(struct inode *inode, struct file *filp)
{
 
   globalfifo_fasync( - 1, filp, 0);
   return 0;
}
 
AIO»ù±¾Ë¼ÏëÊÇÔÊÐí½ø³Ì·¢ÆðºÜ¶àI/O²Ù×÷£¬¶ø²»ÓÃ×èÈû»òµÈ´ýÈκβÙ×÷Íê³É
 
Òì²½IOºÍ±ê×¼IOÖ®¼äµÄÁíÒ»¸öÇø±ðÊDz»ÄÜÁ¢¼´·ÃÎÊÕâ¸öº¯ÊýµÄ·µ»Ø×´Ì¬£¬ÒòΪ²¢Ã»ÓÐ×èÈûÔÚread()µ÷ÓÃÉÏ¡£ÔÚ±ê×¼µÄread()µ÷ÓÃÖУ¬·µ»Ø×´Ì¬ÊÇÔڸú¯Êý·µ»ØÊ±ÌṩµÄ£¬µ«ÊÇÔÚÒì²½IOÖУ¬ÎÒÃÇҪʹÓÃaio_return()º¯Êý£¬Ö»ÓÐÔÚaio_error()µ÷


Ïà¹ØÎĵµ£º

linux writeµÄÐÐΪ

´Ówrite()µ÷Ó÷µ»ØÊ±£¬ÄÚºËÒѾ­½«»º³åÇøËùÌṩµÄÊý¾Ýµ½Äں˵Ļº³åÇø£¬µ«ÊÇÎÞ·¨±£Ö¤Êý¾ÝÒѾ­Ð´³öµ½ÆäÔ¤¶¨µÄÄ¿µÄµØ¡£µÄÈ·£¬Ð´Èëµ÷Ó÷µ»ØµÄËÙ¶ÈʵÔÚÌ«¿ìÁË£¬¿ÉÄÜûÓÐʱ¼äÍê³É¸ÃÏîÄ¿µÄ¹¤×÷¡£´¦ÀíÆ÷ºÍÓ²ÅÌÖ®¼äµÄÐÔÄܲîÒìʹµÃ´ËÀàÁîÈËÍ·Í´µÄÐÐΪÏÔ¶øÒ×¼û¡£
ÊÂʵÉÏ£¬Èç¹ûÓû§¿Õ¼äÓ¦ÓóÌÐò·¢³öwrite()ϵͳµ÷Óã¬LinuxÄں˻áÏȽøÐÐÈ ......

Linuxϲ鿴apacheÁ¬½ÓÊý

ÕâÁ½Ìì´î½¨ÁËÒ»×éApache·þÎñÆ÷£¬Ã¿Ì¨·þÎñÆ÷4GÄڴ棬²ÉÓõÄÊÇpreforkģʽ£¬Ò»¿ªÊ¼ÉèÖõÄÁ¬½ÓÊýÌ«ÉÙÁË£¬ÐèÒª½Ï³¤µÄʱ¼äÈ¥ÏìÓ¦Óû§µÄÇëÇ󣬺óÀ´ÐÞ¸ÄÁËÒ»ÏÂApache 2.0.59µÄÅäÖÃÎļþhttpd.conf£º
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes ......

linux ½ø³ÌÉÏÏÂÎĺÍÖжÏÉÏÏÂÎÄ


¶ÔLinuxÄÚºËÖнø³ÌÉÏÏÂÎĺÍÖжÏÉÏÏÂÎĵÄÀí½â
 
 
 
 
 
 
2010Äê3ÔÂ3ÈÕ 10:51  Î¬¿â¿ª·¢Íø  ×÷ ÕߣºÑî˶,»ªÇåÔ¶¼ûǶÈëʽѧԺ½²Ê¦
Äں˿ռäºÍÓû§¿Õ¼äÊDzÙ×÷ϵͳÀíÂ۵Ļù´¡Ö®Ò»£¬¼´Äں˹¦ÄÜÄ£¿éÔËÐÐÔÚÄں˿ռ䣬¶øÓ¦ÓóÌÐòÔËÐÐÔÚÓû§¿Õ¼ä¡£ÏÖ´úµÄCPU¶¼¾ßÓв»Í¬ ......

LinuxÉ豸Çý¶¯¿ª·¢Ïê½â ±Ê¼Ç2 Çý¶¯Éè¼ÆµÄÓ²¼þ»ù´¡

´¦ÀíÆ÷µÄ·ÖÀ࣬ÈçÏÂͼËùʾ£º
´æ´¢Æ÷¿É·ÖΪֻ¶Á´æ´¢Æ÷£¨ROM£©¡¢ÉÁ´æ£¨Flash£©¡¢Ëæ»ú´æÈ¡´æ´¢Æ÷£¨RAM£©¡¢¹â½éÖÊ´æ´¢Æ÷ºÍ´Å½éÖÊ´æ´¢Æ÷
Nor FlashºÍcpuµÄ½Ó¿ÚÊôÓÚµäÐ͵ÄÀàSRAM½Ó¿Ú£¬²»ÐèÒªÔö¼Ó¶îÍâµÄ¿ØÖƵç·¡£Nor FlashµÄÌØµãÊÇ¿ÉоƬÄÚÖ´ÐУ¬³ÌÐò¿ÉÒÔÖ±½ÓÔÚNorÄÚÔËÐС£¶øNand FashºÍcpuµÄ½Ó¿Ú±ØÐëÓÉÏàÓ¦µÄ¿ØÖƵç·½øÐÐת»»£ ......

Linuxѧϰ³õ¼Ç


ÎҵĵÚÒ»¸öshell³ÌÐò£ºtt1.sh
while true
do
       date;
       sleep 1;
done
Ö´Ðз½Ê½1£ºsh tt1.sh
Ö´Ðз½Ê½2£º./tt1.sh£¨ÒªÇó¸ÃÎļþÓпÉÖ´ÐÐȨÏÞ£©
Shell±äÁ¿£º
»·¾³±äÁ¿£º
       ¹¤¾ß£ºecho »ØÏÔ
 &n ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ