linux 2.4ÄÚºËÏ ΢Ãî¼¶ÑÓʱ
ÔÚx86 2.4ÄÚºËÏ usleep¡¢selectµÈÑÓʱº¯ÊýÎÞ·¨ÊµÏÖµÍÓÚ10msÑÓʱ
¶øÔÚÇý¶¯²ãÔÚioctrlÖÐͨ¹ýudelay¡¢mdelayµÈµÈʵÏÖÑÓʱҲÎÞ·¨¶à½ø³ÌͬʱÑÓʱ
ËùÒÔʵÏÖÈçÏÂÑÓʱº¯Êý Äܹ»ÊµÏÖµÍÓÚ10usÉõÖÁ1us µÄÑÓʱ
unsigned int uDelay(unsigned int delayTime)
{
static struct timeval _tstart, _tend;
static struct timezone tz;
double t,t1,t2;
int i;
gettimeofday(&_tstart, NULL);
t1 = (double)_tstart.tv_sec + (double)_tstart.tv_usec/(1000*1000);
for(i = 0;;i++)
{
gettimeofday(&_tend, NULL);
t2 = (double)_tend.tv_sec + (double)_tend.tv_usec/(1000*1000);
t = t2 - t1;
if(t > (double)delayTime/(1000*1000))
{
return 0;
}
sched_yield();
}
}
Ïà¹ØÎĵµ£º
Ò»¡¢ÒýÑÔ£º
±¾ÎĵµµÄÄÚÈݴ󲿷ÝÄÚÈݶ¼ÊÇ´ÓÍøÉÏÊÕ¼¯¶øÀ´£¬È»ºóÅäºÏһЩеĽØÍ¼£¨Äں˰汾£ºV2.4.19£©¡£ÔÚÿһÅäÖÃÏîºó»áÓÐÒ»¸öÑ¡ÔñÖ¸ÄϵIJ¿·Ý£¬ÓÃÀ´Ö¸µ¼´ó¼ÒÔõôÑù¸ù¾Ý×Ô¼ºµÄÇé¿öÀ´×öÏàÓ¦µÄÑ¡Ôñ£»»¹ÓÐÔÚÿһ¸ö´óÏîºÍÎĵµµÄ×îºó»áÓÐÒ»¸ö¾Ñé̸£¬ËüÊÇһЩ¸ßÊÖÃÇÔÚÓ¦¶ÔÎÊÌâºÍ´¦ÀíÌØÓÐÓ²¼þʱµÄһЩ¾Ñ飨Õâ¸ö»¹µ ......
3.2.1 Linux ÄÚ´æ°ó¶¨ÔÚ¾Ö²¿´æ´¢Æ÷µÄʵÏÖ×ÜÌå²½Öè
×ÜÌå²½Ö裺
l ²ÉÓ÷½°¸Èý£¬ÔÚÔÚÔÀ´·ÖÎöµÄ»ù´¡ÉÏ£¬ÒÔ¼°ÒÑÖªLinuxϵͳÄÚ´æµÄ³õʼ»¯µÄÇé¿ö£¬¶ÔÄں˴úÂë½øÐÐÐ޸ģ¬Ö÷Òª°üÀ¨È·¶¨ÐÂÇøµÄ·¶Î§£¬½¨Á¢ÐÂÇø£¬ÖØÐ¶ԷÖÅäÄÚ´æµÄ·ÖÅä»úÖÆ½øÐÐÉèÖá£
l &n ......
Ị̈߳¨thread£©¼¼ÊõÔçÔÚ60Äê´ú¾Í±»Ìá³ö£¬µ«ÕæÕýÓ¦ÓöàÏ̵߳½²Ù×÷ϵͳ
ÖÐ
È¥£¬ÊÇÔÚ80Äê´úÖÐÆÚ£¬solaris
ÊÇÕâ·½ÃæµÄٮٮÕß¡£´«Í³µÄUnix
Ò²
Ö§³ÖÏ̵߳ĸÅÄµ«ÊÇÔÚÒ»¸ö½ø³Ì
£¨process£©ÖÐÖ»ÔÊÐíÓÐÒ»¸öỊ̈߳¬ÕâÑù¶àÏ߳̾ÍÒâζ×Å¶à½ø³Ì¡£ÏÖÔÚ£¬¶àÏ̼߳¼ÊõÒѾ±»Ðí¶à²Ù×÷ϵͳËù
Ö§³Ö£¬°üÀ¨Windows/NT£¬µ±È»£¬Ò²°üÀ¨Linux
......