操作系统中睡眠、阻塞、挂起的区别形象解释

简介:
“阻塞(pend)”与“挂起(suspend)”的区别? [
   操作系统中睡眠、阻塞、挂起的区别形象解释
  首先这些术语都是对于线程来说的。对线程的控制就好比你控制了一个雇工为你干活。你对雇工的控制是通过编程来实现的。
  挂起线程的意思就是你对主动对雇工说:“你睡觉去吧,用着你的时候我主动去叫你,然后接着干活”。
  使线程睡眠的意思就是你主动对雇工说:“你睡觉去吧,某时某刻过来报到,然后接着干活”。
  线程阻塞的意思就是,你突然发现,你的雇工不知道在什么时候没经过你允许,自己睡觉呢,但是你不能怪雇工,肯定你这个雇主没注意,本来你让雇工扫地,结果扫帚被偷了或被邻居家借去了,你又没让雇工继续干别的活,他就只好睡觉了。至于扫帚回来后,雇工会不会知道,会不会继续干活,你不用担心,雇工一旦发现扫帚回来了,他就会自己去干活的。因为雇工受过良好的培训。这个培训机构就是操作系统。
  ——————————————————————————————————————————————
  我是这么认为的:
  挂起和阻塞,使进程失去CPU,阻塞一般是被动的需要等待资源,而挂起可以被别的进程给抢占导致挂起,也可以自己主动挂起自己。阻塞一般是TASK_INTERRUPTIBLE和TASK_UNINTERRUPTIBLE,而挂起除了这两个,还可以是TASK_RUNNING。
  ——————————————————————————————————————————————
  挂起是主动的,一般需要用挂起函数进行操作,若没有resume的动作,则此任务一直不会ready。而阻塞是因为资源被其他任务抢占而处于休眠态。两者的表现方式都是从就绪态里“清掉”,即对应标志位清零,只不过实现方式不一样.
   


最新内容请见作者的GitHub页:http://qaseven.github.io/
   
目录
相关文章
|
3月前
|
安全 Android开发 数据安全/隐私保护
请说明鸿蒙操作系统与其他操作系统(如Android和iOS)的主要区别。
请说明鸿蒙操作系统与其他操作系统(如Android和iOS)的主要区别。
59 1
|
2月前
|
弹性计算 运维 安全
阿里云服务器Windows和Linux操作系统区别对比
阿里云服务器Windows和Linux操作系统区别对比,性能有差异吗?有,同配置下Linux性能要优于Windows,但这与阿里云无关,仅仅是linux和windows之间的区别。另外,阿里云提供的windows和linux操作系统均为正版授权,用户不需要额外支付许可费用,如何选择?看用户自己的应用程序情况。
|
2月前
|
运维 安全 Linux
使用阿里云搭建幻兽帕鲁服务器操作系统类型Windows和Linux有区别吗?
使用阿里云搭建幻兽帕鲁服务器操作系统类型Windows和Linux有区别吗?性能有差异?同配置的游戏服务器,如4核16G或8核32G配置等,选择Windows和Linux操作系统差异不太大,如果非要对比的话,Linux系统相对Windows更少占用计算资源,当然如果对Linux不熟悉的话,可以选择Windows。另外,即便是幻兽帕鲁服务器创建成功后,也是可以免费修改操作系统的
114 1
|
5月前
|
存储 算法 Java
深入理解操作系统中进程与线程的区别及切换机制(下)
本文首先介绍了进程的控制结构,即进程控制块(PCB),它是表示进程的数据结构,包含了进程的相关信息和资源。PCB之间通过链表连接,形成就绪队列和阻塞队列,用于进程调度和资源管理。接着,文章详细探讨了进程的切换过程。进程切换是为了保证公平分配CPU时间片,涉及保存和恢复进程的执行上下文、更新进程状态和调度算法选择等步骤。文中还提到了进程上下文切换的场景,如时间片用完、内存不足、高优先级进程需求等。最后,文章介绍了线程的概念和上下文切换过程。线程是进程中的独立执行流程,可以共享进程的资源。线程的上下文切换开销较小,只需要保存和恢复线程的寄存器和计数器等信息。
深入理解操作系统中进程与线程的区别及切换机制(下)
|
5月前
|
Java 调度
深入理解操作系统中进程与线程的区别及切换机制(上)
进程是正在运行的程序的实例,它可以包含一个或多个线程。我们了解了进程的执行方式,包括早期单核处理器上的顺序执行以及引入多任务概念实现的伪并行。我们还探讨了进程的状态模型。进程可以处于就绪、运行、阻塞和结束等不同的状态。就绪状态表示进程已经准备好运行,但还没有被调度执行。运行状态表示进程正在执行。阻塞状态表示进程被阻塞,需要等待某些事件的发生才能继续执行。结束状态表示进程已经完成执行。
深入理解操作系统中进程与线程的区别及切换机制(上)
|
5月前
|
Linux 开发者 Windows
Windows、Linux 和 Mac:操作系统之间的区别
Windows系统、Linux系统与Mac系统:操作系统的对比与选择 操作系统是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。以下是Windows 系统、Linux 系统、Mac 系统的对比:
|
6月前
|
资源调度 调度
操作系统中进程的就绪和等待两个状态的区别
操作系统中进程的就绪和等待两个状态的区别
105 0
|
7月前
|
存储 缓存 程序员
操作系统中逻辑地址和物理地址的区别
操作系统中逻辑地址和物理地址的区别
128 1
|
9月前
|
存储 Unix Linux
重学操作系统----13 Linux 内核和 Windows 内核有什么区别
重学操作系统----13 Linux 内核和 Windows 内核有什么区别
153 0
|
11月前
操作系统:分段与分页的区别
操作系统:分段与分页的区别
119 0