进程睡眠是如何实现的?

这是我在百度知道上问的,别人回答的。

#芝麻开门#进程睡眠是如何实现的?

2014-08-24 10:57 s8435330songya  |  分类:Windows  |  浏览13次
它的一些堆栈的数据放在哪?被清空了吗?如何被清空,被唤醒就不运行不了了。如果不清空那睡眠是一种什么状态,还在内存中?进程不运行时(就是阻塞或等待时)它的状态时什么?总不能停下来吧,在执行一个循环?
有一个名词叫内核等待队列,我理解是不是吧这些堆栈的数据都压入栈里了。


放在内存。
没清空。
还在内存中,但是代码不拿去给cpu运行。
就是停下来。

你需要去看操作系统进程调度线程调度相关的东西……
追问
2014-08-24 14:33
恩,是这样的。这个叫进程上下文。CPU有三种状态,内核态在进程上下文或中断上下文,用户态的进程中。
确实进程调度的知识,谢谢了。
回答
2014-08-24 22:39
所以只要不把这个进程的代码放到cpu上运行,这个进程就没在运行。至于内存中的数据,就丢着好了反正不影响。现代操作系统使用内存都有一个内存映射表,物理内存不同的区域给不同进程用,进程看到的是映射后的虚拟地址,换进程的时候系统把这个表换了,同一个地址就代表不同意思了,不同进程看到的内存也就不同了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值