在kernel中如何sleep

来源:互联网 发布:淘宝怎么搜奢侈品高仿 编辑:程序博客网 时间:2024/05/20 06:27

1. udelay (mdelay调用udelay实现)

udelay应该是没有出让CPU的强制等待(忙等,占用CPU),和应用层的sleep还是有区别的。

udelay适合于编写硬件I/O时的短时间延迟,一般是微秒级才用。

如果延迟需要较长(ms以上),最好还是发出schedule(), 出让CPU比较好。也可以先设置一下任务的休眠时间再出让。

 

2.sleep_on(), interruptible_sleep_on(); sleep_on_timeout(), interruptible_sleep_on_timeout();
这些函数相当于我们平时的阻塞读、写之类的语义,主要用于等外设完成某些操作。

原创粉丝点击