深入剖析Linux进程睡眠机制(linux进程睡眠)

Linux的进程提供了多种不同的睡眠机制,使得程序能按照精确的计划来运行。睡眠机制是为了把进程运行时间分段,使进程能够有…

Linux的进程提供了多种不同的睡眠机制,使得程序能按照精确的计划来运行。睡眠机制是为了把进程运行时间分段,使进程能够有意识的适当的休眠。

Linux的进程可以使用三种不同的睡眠机制:PC-SLEEP,BLOCK-SLEEP和WAIT-SLEEP。

PC-SLEEP,也称为Process Context Sleep,它是一种软件睡眠机制,就是把进程让出CPU时间片,挂起并且进入就绪状态,即不抢占CPU资源。

BLOCK-SLEEP,也称为Blocking Sleep,这种睡眠机制是指进程尝试去读取或者写入一个不可使用的资源(比如:文件关闭了),它就进入睡眠状态,将进程从就绪队列中移除,不占用CPU资源,当资源可用时进程被唤醒,又重新进入就绪队列,等待cpu处理。

WAIT-SLEEP ,即等待睡眠,当进程调用某个API后,由管理进程的调度程序根据对应的API的低特定的状态来安排进程的睡眠状态,即API调用完成,进程会进入睡眠状态,等待调度程序的通知,每当状态发生变化时进程就会被唤起,重新进入就绪队列,知道完成目标动作。

Linux睡眠机制可以使进程合理的把时间进行分配,减少系统资源的浪费,使系统运行更加高效。

例如,在调用open()函数打开一个文件之前,进程可以调用sleep()函数来睡眠指定的时间:

“`C

#include

#include

int main(){

printf(“Process started!\n”);

sleep(5);

printf(“Process ended!\n”);

return 0;

}


上面这段代码中,sleep()函数将进程投入睡眠,时间由参数给出,单位是秒,上面的例子中让进程睡眠了5秒,直到5秒后,进程才继续运行。

总而言之,Linux的进程提供了PC-SLEEP、BLOCK-SLEEP和WAIT-SLEEP三种不同的睡眠机制,使得进程能够有效的使用系统资源,按照精确的计划来运行。

香港服务器首选港服(Server.HK),2H2G首月10元开通。
港服(Server.HK)(www.IDC.Net)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。

为您推荐

ssh远程超时中断的解决办法

有时我们网络正常的,但SSH连接经常出现中断的情况,以及在SSH远程时很慢的问题。 这是由于OpenSSL服务默认启用了...

Linux系统防火墙放行端口

如果您服务器内安装了宝塔面板,请直接登陆宝塔面板,安全,里面添加放行端口。如果添加后不生效,把防火墙开关一下即可。本教程...

Linux主机简单判断被CC攻击的网站命令-比较直接有效

CC攻击很容易发起,并且几乎不需要成本,导致现在的CC攻击越来越多。 大部分搞CC攻击的人,都是用在网上下载的工具,这些...

linux环境下测试get和post请求

Linux环境下测试get和post请求 ?get,post,curl   get请求 curl: curl ...

umount卸载磁盘提示target is busy

umount卸载磁盘提示target is busy. (目标忙) 的问题解决方案   umount卸载磁盘提...
返回顶部