当前位置: 技术问答>linux和unix
休眠和阻塞的区别?
来源: 互联网 发布时间:2015-12-11
本文导语: 看《linux设备驱动程序-第三版》这本书的第六章中提到休眠和阻塞的概念,结果还是没有能理解这两者之间的区别。 记得以前学操作系统的时候进程状态只有:运行、阻塞、就绪、挂起。 有谁能说说这里的休眠和...
看《linux设备驱动程序-第三版》这本书的第六章中提到休眠和阻塞的概念,结果还是没有能理解这两者之间的区别。
记得以前学操作系统的时候进程状态只有:运行、阻塞、就绪、挂起。
有谁能说说这里的休眠和阻塞的区别?举例子最好了
记得以前学操作系统的时候进程状态只有:运行、阻塞、就绪、挂起。
有谁能说说这里的休眠和阻塞的区别?举例子最好了
|
内核中的运行状态和进程的运行状态是有区别的,休眠是指进程上下文的,内核不可能休眠,阻塞对两个都适用,休眠是进程获取资源不到,被驱动sleep 到驱动等待队列的,也可以自己休眠到内核定时队列,阻塞应该包括休眠吧,当然它有很多的同步等待,内核中有很多的Lock 引起的等待应该是阻塞。
可以看看这里:http://soft.yesky.com/os/lin/10/2303010.shtml
可以看看这里:http://soft.yesky.com/os/lin/10/2303010.shtml
|
和楼上几位的看法有点不一样,不知道是否我理解错?
睡眠是程序主动放弃时间片竞争,例如程序调用sleep
阻塞是程序的I/O请求得不到满足,必须等待别的进程释放资源才能继续,属于被动无法得到时间片
睡眠是程序主动放弃时间片竞争,例如程序调用sleep
阻塞是程序的I/O请求得不到满足,必须等待别的进程释放资源才能继续,属于被动无法得到时间片
|
休眠也是通过设置进程的标识来实现的,时间也是一种资源,所说的阻塞,同样可以阻塞在时间这种资源上,所以说休眠与阻塞有什么区别吗????都是阻塞在一种资源上面
|
不会吧~~OS书里面写了只有四种状态吗?
Linux有九点状态哦~~
用户状态,内核状态,内存中就绪,内存中睡眠,就绪且换出,睡眠且换出,被抢先,创建状态,僵死状态.
Linux有九点状态哦~~
用户状态,内核状态,内存中就绪,内存中睡眠,就绪且换出,睡眠且换出,被抢先,创建状态,僵死状态.
|
休眠是当发生阻塞时的一种处理方式。但很多时候阻塞并不会休眠,比如一段持有自旋锁的代码。
|
阻塞是进程在等待某种资源,但是不能马上得到,内核就切换其它进程运行
你的说休眠一般为主动式的放弃一段CPU时间
挂起是运行时间片到了,内核要调度其它进程运行,被动式的失去CPU
你的说休眠一般为主动式的放弃一段CPU时间
挂起是运行时间片到了,内核要调度其它进程运行,被动式的失去CPU
|
睡眠状态是指进程没得到资源,要等待~~
阻塞? 我一直以为阻塞这个概念是用在线程同步的时候.
阻塞? 我一直以为阻塞这个概念是用在线程同步的时候.
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。