ʱ¼ä¼ä¸ô¶¨Ê±Æ÷
interval timer(ʱ¼ä¼ä¸ô¶¨Ê±Æ÷)ϵͳµ÷ÓÃ×Ô´Ó±»POSIX±ê×¼»¯ºó£¬Ê״γöÏÖÓÚ4.2BSD£¬Äܹ»Ìṩ±Èalarm()»¹¶àµÄ¿ØÖÆ£º
#include <sys/time.h>
int getitimer(int which, struct itimerval *value);
int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue);
interval timerµÄÔË×÷Èçͬalarm()£¬µ«ÊÇ¿ÉÒÔÑ¡Ôñ×Ô¶¯ÖØÐÂÆô¶¯ËüÃÇ£¬¶øÇÒ¿ÉÔË×÷ÔÚÏÂÃæÆäÖÐÒ»ÖÖģʽ֮ÖУº
ITIMER_REAL
²âÁ¿ÕæÊÇʼþ ¡£µ±ËùÖ¸¶¨µÄÕæÊµÊ±¼äÖµÒѹýÈ¥£¬Äں˻áËͳöÒ»¸öSIGALARMÐźŸø½ø³Ì
ITIMER_VIRTUAL
Ö»»áÔÚ½ø³ÌµÄÓû§¿Õ¼ä³ÌÐò´úÂëÖ´ÐÐʱµÝ¼õÆäÖµ¡£µ±ËùÑ¡¶¨µÄ½ø³Ìʱ¼ä¹ýÈ¥ºó£¬Äں˻áËͳöÒ»¸öSIGVTALRMÐźŸø½ø³Ç¡£
ITIMER_PROF
»áÔÚ½ø³ÇÖ´ÐÐʱÒÔ¼°ÄÚºËÌæ½ø³Ì·þÎñʱ(ÀýÈç½øÐÐϵͳµ÷ÓÃ)µÝ¼õÆäÖµ¡£µ±ËùÖ¸¶¨µÄʱ¼äÁ¿¹ýÈ¥ºó£¬Äں˻áËͳöÒ»¸öSIGPROFÐźŸø½ø³Ç¡£´Ëģʽ³£»áÓëITIMER_VIRTUAL½áºÏ£¬ÈóÌÐò¿ÉÒÔ²âÁ¿½ø³ÌËùºÄÓõÄÓû§Ê±¼äÓëÄÚºËʱ¼ä¡£
ITIMER_REALËù²âÁ¿µÄʱ¼äÈçͬalarm()£¬ÁíÁ½ÖÖģʽÔò¿ÉÓÃÓÚ¸ÅÒª·ÖÎö¡£
itimerval½á¹¹ÔÊÐíÓû§Ö¸¶¨Ê±¼äÁ¿Ö±µ½¶¨Ê±Æ÷µ½ÆÚΪֹÒÔ¼°Ö¸¶¨µ½µ×ʱ¼ ......
ÕâÁ½Ìì´î½¨ÁËÒ»×éApache·þÎñÆ÷£¬Ã¿Ì¨·þÎñÆ÷4GÄڴ棬²ÉÓõÄÊÇpreforkģʽ£¬Ò»¿ªÊ¼ÉèÖõÄÁ¬½ÓÊýÌ«ÉÙÁË£¬ÐèÒª½Ï³¤µÄʱ¼äÈ¥ÏìÓ¦Óû§µÄÇëÇ󣬺óÀ´ÐÞ¸ÄÁËÒ»ÏÂApache 2.0.59µÄÅäÖÃÎļþhttpd.conf£º
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
StartServers 10
MinSpareServers 10
MaxSpareServers 15
ServerLimit 2000
MaxClients 2000
MaxRequestsPerChild 10000
²é¿´httpd½ø³ÌÊý£¨¼´preforkģʽÏÂApacheÄܹ»´¦ÀíµÄ²¢·¢ÇëÇóÊý£©£º
LinuxÃüÁ
ps -ef | grep httpd | wc -l
·µ»Ø½á¹ûʾÀý£º1388
±íʾApacheÄܹ»´¦Àí1388¸ö²¢·¢ÇëÇó£¬Õâ¸öÖµApache¿É¸ù¾Ý¸ºÔØÇé¿ö×Ô¶¯µ÷Õû£¬ÎÒÕâ×é·þÎñÆ÷ÖÐÿ̨µÄ·åÖµÔø´ïµ½¹ý2002¡£
²é¿´ApacheµÄ²¢·¢ÇëÇóÊý¼°ÆäTCPÁ¬½Ó״̬£º
LinuxÃüÁ
netstat -n | ......
¶ÔLinuxÄÚºËÖнø³ÌÉÏÏÂÎĺÍÖжÏÉÏÏÂÎĵÄÀí½â
2010Äê3ÔÂ3ÈÕ 10:51 ά¿â¿ª·¢Íø ×÷ ÕߣºÑî˶,»ªÇåÔ¶¼ûǶÈëʽѧԺ½²Ê¦
Äں˿ռäºÍÓû§¿Õ¼äÊDzÙ×÷ϵͳÀíÂ۵Ļù´¡Ö®Ò»£¬¼´Äں˹¦ÄÜÄ£¿éÔËÐÐÔÚÄں˿ռ䣬¶øÓ¦ÓóÌÐòÔËÐÐÔÚÓû§¿Õ¼ä¡£ÏÖ´úµÄCPU¶¼¾ßÓв»Í¬µÄ²Ù×÷ģʽ£¬´ú±í²»Í¬µÄ¼¶±ð£¬²»Í¬µÄ¼¶±ð¾ßÓв»Í¬µÄ¹¦ÄÜ£¬Ôڽϵ͵ļ¶±ðÖн«½ûֹijЩ²Ù×÷¡£LinuxϵͳÉè¼ÆÊ±ÀûÓÃÁËÕâÖÖÓ²¼þÌØÐÔ£¬Ê¹ÓÃÁËÁ½¸ö¼¶±ð£¬×î¸ß¼¶±ðºÍ×îµÍ¼¶±ð£¬ÄÚºËÔËÐÐÔÚ×î¸ß¼¶±ð£¨ÄÚºË̬£©£¬Õâ¸ö¼¶±ð¿ÉÒÔ½øÐÐËùÓвÙ×÷£¬¶øÓ¦ÓóÌÐòÔËÐÐÔڽϵͼ¶±ð£¨Óû§Ì¬£©£¬ÔÚÕâ¸ö¼¶±ð£¬´¦ÀíÆ÷¿ØÖÆ×ŶÔÓ²¼þµÄÖ±½Ó·ÃÎÊÒÔ¼°¶ÔÄÚ´æµÄ·ÇÊÚȨ·ÃÎÊ¡£ÄÚºË̬ºÍÓû§Ì¬ÓÐ×Ô¼ºµÄÄÚ´æÓ³É䣬¼´×Ô¼ºµÄµØÖ·¿Õ¼ä¡£
ÕýÊÇÓÐÁ˲»Í¬ÔËÐÐ״̬µÄ»®·Ö£¬²ÅÓÐÁËÉÏÏÂÎĵĸÅÄî¡£Óû§¿Õ¼äµÄÓ¦ÓóÌÐò£¬Èç¹ûÏëÒªÇëÇóϵͳ·þÎñ£¬±ÈÈç²Ù×÷Ò»¸öÎïÀíÉ豸£¬»òÕßÓ³ÉäÒ»¶ÎÉ豸¿Õ¼äµÄµØÖ·µ½Óû§¿Õ¼ä£¬¾Í±ØÐëͨ¹ýϵͳµ÷ÓÃÀ´£¨²Ù×÷ϵͳÌṩ¸øÓû§¿Õ¼äµÄ½Ó¿Úº¯Êý£©ÊµÏÖ¡£ÈçÏÂͼËùʾ£º
ͨ¹ýϵͳµ÷Óã¬Óû§¿Õ¼äµÄÓ¦ÓóÌÐò¾Í»á½øÈëÄں˿ռ䣬ÓÉÄں˴ú±í¸Ã½ø³ÌÔËÐÐÓÚÄں˿ռ䣬Õâ¾ÍÉæ¼°µ½ÉÏÏÂÎĵÄÇл»£¬Óû§¿ ......
½ñÌìÔÚÐéÄâ»úÏÂÓÖ֨װÁËlinux£¬ÏÂÃæÊÇ´ÓÍøÉÏËѵ½µÄlinuxÐéÄâ»úµÄÍøÂçÅäÖãº
1¡¢ Äã×°ºÃÐéÄâ»úºó,Äã»á·¢ÏÖ¶à³öÀ´Á½¸öÍø¿¨ ,Ò»¸ö1,Ò»¸ö8,
2¡¢ ¹²Ïí¶ÔÍâµÄÍø¿¨£º“±¾µØÁ¬½Ó—ÊôÐÔ—¸ß¼¶” Ñ¡ÖÐ
ÔÊÐíÆäËûÍøÂçÓû§Í¨¹ý´Ë¼ÆËã»úµÄInternetÁ¬½ÓÀ´Á¬½Ó
£¨Õâʱ“ÔÊÐíÆäËûÍøÂçÓû§¿ØÖÆ»ò½ûÖ¹¹²ÏíµÄInternetÁ¬½Ó”±äΪ¿ÉÓÃ״̬¡££©Ñ¡ÖмÒÍ¥ÍøÂçÁ¬½Ó
“VMware Network Adapter VMnet1”£º
3¡¢Õâʱµ±ÄãÔÙ´ò¿ª1ʱ£¬ËüµÄIPÒѱ»×Ô¶¯ÉèÖóÉ192.168.0.1/255.255.255.0¡£
WindowsÀïÃæÉèÖÃÍê±Ï¡£
4. ÔÚLinuxÐéÄâ»úÀï¶Ô“Ö÷²Ëµ¥—ϵͳÉèÖÃ—ÍøÂ甽øÐÐÈçÏÂÉèÖ㺱༓É豸”£¨ÆäÖÐÒѾÓÐÁËeth0,¾Í±à¼
Ëü£©Ñ¡ÖГ¾²Ì¬ÉèÖõÄIPµØÖ·”£¬192.168.0.2/255.255.255.0/192.168.0.1 Ñ¡ÖГµ±¼ÆËã»úÆô¶¯Ê±¼¤»îÉè
±¸”¡£“DNS”Ñ¡ÏÖÐÉèÖãºÖ÷DNS 192.168.0.1£¬ÆäËû²»ÓÃÉèÖÃ
5. ÔÚ“É豸”Ñ¡ÏÖÃǰµÄ״̬ϱ£´æ£¬²¢µã»÷“¼¤»î”£¬Èç¹ûÄܹ»Õý³£¼¤»î£¬»ù±¾ÉϾͿÉÒÔÁË¡£ ......
1¡¢Ìí¼Ó´®¿Ú: ÔÚLinuxÆô¶¯Ö®Ç°£¬ÐéÄâ»ú--¡·ÉèÖÃ--¡·Ìí¼Ó--¡·´®¿Ú--¡·±£´æ--¡·Æô¶¯Linux¡£
2¡¢#minicom £¬³öÏÖÆô¶¯½çÃæ£¬CTRL-A Z ½øÈë°ïÖú½çÃæ
3¡¢¼üÈëO £¬ÅäÖô®¿Ú£¬Ñ¡ÔñµÚÈýÏî“Serial port setup”µã»÷»Ø³µ
4¡¢Í¨¹ý·Ö±ð¼üÈëA¡¢E¡¢F£¬ÅäÖ㬵ã»÷»Ø³µ£¨FÑ¡ÏîÅäÖóÉNo£¬·ñÔò²»ÄܽÓÊÕ¼üÅÌÊäÈ룩
5¡¢Ñ¡Ôñ“Save setup as dfl”£¬µã»÷»Ø³µ±£´æ
6¡¢Ñ¡Ôñ“Exit”Í˳ö£¬ÅäÖÃÍê±Ï ......
´ÓÕâ¸ö×ܽáÕýʽ¿ªÊ¼ÁËÎÒµÄÇý¶¯Ö®Âã¬ÐÄÇé²»ÃâÓе㼤¶¯£¬¾¡¹ÜÏÖÔÚ¶ÔÇý¶¯µÄ±àд»¹ºÜÄ£ºý£¬µ«»¹ÊÇÓмÍÄîÒâÒåµÄ……
¿ª·¢Æ½Ì¨£º
ÐéÄâ»úÏÂRedHat9£¬ÄÚºË2.4.20.8
½»²æ±àÒë±àÒëÆ÷£ºÌìǶ¹«Ë¾ÌṩµÄarm-linux-gcc 4.3.3
ÄÚºËÊ÷£º/home/linux-2.6.30.4
Ä¿±êƽ̨£º
TQ2440£¬ÄÚºËÊÇARM9
OSÄںˣºÌìǶ¹«Ë¾ÌṩµÄlinux-2.6.30.4
¹ØÓÚÌìǶµÄÈí¼þ¿ÉÒÔµ½http://bbs.embedsky.net/ÏÂÔØ
·Ï»°ÉÙ˵£¬ÎÒµÄÇý¶¯Ô´ÂëÊÇ£º
demo.h:
#ifndef _DEMO_H_
#define _DEMO_H_
#include <linux/ioctl.h>
#undef PDEBUG
#ifdef DEMO_DEBUG
#ifdef __KERNEL__
# define PDEBUG(fmt, args...) printk( KERN_DEBUG "DEMO: " fmt, ## args)
#else//usr space
# define PDEBUG(fmt, args...) fprintf(stderr, fmt, ## args)
#endif
#else
# define PDEBUG(fmt, args...)
#endif
#und ......