导航:首页 > 操作系统 > linux内核延时

linux内核延时

发布时间:2024-11-14 05:40:20

‘壹’ 一般优化linux的内核,需要优化什么参数

作为高性能WEB服务器,只调整Nginx本身的参数是不行的,因为Nginx服务依赖于高性能的操作系统。

以下为常见的几个Linux内核参数优化方法。

‘贰’ linux内核中mdelay怎么实现

1.udelay(); mdelay(); ndelay();实现的原理本质上都是忙等待,ndelay和mdelay都是通过udelay衍生出来的,我们使用这些函数的实现往往会碰到编译器的警告implicit declaration of function'udelay',这往往是由于头文件的使用不当造成的。在include/asm-???/delay.h中定义了udelay(),而在include/linux/delay.h中定义了mdelay和ndelay.

udelay一般适用于一个比较小的delay,如果你填的数大于2000,系统会认为你这个是一个错误的delay函数,因此如果需要2ms以上的delay需要使用mdelay函数。

2.由于这些delay函数本质上都是忙等待,对于长时间的忙等待意味这无谓的耗费着cpu的资源,因此对于毫秒级的延时,内核提供了msleep,ssleep等函数,这些函数将使得调用它的进程睡眠参数指定的时间。

应用层:
#include <unistd.h>
1、unsigned int sleep(unsigned int seconds); 秒级
2、int usleep(useconds_t usec); 微秒级:1/10^-6
#define _POSIX_C_SOURCE 199309
#include <time.h>
3、int nanosleep(const struct timespec *req, struct timespec *rem);
struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};
// The value of the nanoseconds field must be in the range 0 to 999999999.

内核层:
include <linux/delay.h>
1、void ndelay(unsigned long nsecs); 纳秒级:1/10^-10
2、void udelay(unsigned long usecs); 微秒级: 1/10^-6
3、void mdelay(unsigned long msecs); 毫秒级:1/10^-3

sleep_on(), interruptible_sleep_on();
sleep_on_timeout(), interruptible_sleep_on_timeout();
根据你的情况选用这些函数,注意: sleep操作在kernel必须小心、小心。。。
udelay()等函数是cpu忙等,没有传统意义上的sleep。这些函数相当于我们平时的阻塞读、写之类的语义,主要用于等外设完成某些操作

阅读全文

与linux内核延时相关的资料

热点内容
安卓手机如何恢复网站浏览记录 浏览:637
肺被压缩什么意思 浏览:43
航灯单片机 浏览:278
java的map数据结构 浏览:100
沈阳气体压缩机有限公司 浏览:600
胸椎压缩性骨折饮食 浏览:270
如何看服务器系统的版本号 浏览:26
龙吟平衡车如何用app使用 浏览:576
数字生态森林app怎么种树 浏览:18
python3非零返回 浏览:419
云页pdf 浏览:320
小米编译器app 浏览:868
加油吧程序员怎么样 浏览:829
cad线条拉伸命令快捷键 浏览:546
可以复制加密门禁的软件 浏览:45
电脑文件夹是默认共享的吗 浏览:758
网页pdf怎么转word 浏览:68
如何使用cs服务器中文id 浏览:102
珠海税务局服务器地址和端口号 浏览:887
加密狗型号有什么用 浏览:383