社区
驱动开发/核心开发
帖子详情
关于休眠的进程的唤醒问题
yyshouder
2015-07-01 06:50:11
rt
一 调用wait_event(queue, condition)让进程休眠,如果要唤醒该进程有如下情况不是很明白,望各位大神指点
1. condition的条件满足了是否能够不调用wake_up函数直接唤醒进程?
2. 在condition的条件不满足的情况下调用wake_up函数是否能够唤醒进程?
3. condition是否可以代替wake_up函数的功能?
...全文
95
1
打赏
收藏
关于休眠的进程的唤醒问题
rt 一 调用wait_event(queue, condition)让进程休眠,如果要唤醒该进程有如下情况不是很明白,望各位大神指点 1. condition的条件满足了是否能够不调用wake_up函数直接唤醒进程? 2. 在condition的条件不满足的情况下调用wake_up函数是否能够唤醒进程? 3. condition是否可以代替wake_up函数的功能?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mangoalx
2015-07-01
打赏
举报
回复
个人理解: 1 是 2 是 3 不存在代替用途不同,一个用于条件满足时唤醒,一个是无条件唤醒。要说唤醒后的状态,应该是一样没区别
《Linux系统编程、网络编程》第6章 信号
课程内容: 学习本章的意义、Linux下都有哪些信号、signal函数、子
进程
对父
进程
信号的集成情况、kill、raise、alarm、pause、abort函数、信号
休眠
函数的
唤醒
、信号的发送、接收和处理的过程、如何调用API修改信号的...
Linux内核对比学习系列(4)——
进程
休眠
与
唤醒
前言
进程
休眠
与
唤醒
也是内核管理的重要一部分。本是
进程
调度相关内容,笔者在此单拎出来进行梳理。同样的,主要对比 linux0.12 与 linux2.6 之间的差异。 流程梳理 自然地,让一个
进程
休眠
,我们只需要将其状态更改为TASK_INTERRUPTIBLE或者TASK_UNINTERRUPTIBLE,接着再执行调度程序 schedule() 即可。由于调度程序只会调度状态为TASK_RUNNING的
进程
,因此被修改的
进程
不会被调度,看上去就像"
休眠
"了。而
唤醒
则更简单,只需要将待
唤醒
进程
状态改为 TA
进程
的
休眠
与
唤醒
(等待队列)
1、
进程
休眠
(1)
进程
有三种基本状态:就绪态、阻塞态、运行态。 <1>阻塞态:
进程
缺少除了CPU之外的某些资源,因此该
进程
不能被运行,被阻塞住了不能被CPU调度; <2>就绪态:
进程
分配到了除CPU之外的所有资源,等待CPU调度执行; <3>运行态:
进程
获得CPU资源,程序在CPU上运行; (2)
进程
休眠
:
进程
休眠
就是
进程
因为缺少除了CPU之外的某些资源而进入阻塞态,会从调度器的运行队列中移走该
进程
,并把
进程
放到等待资源的队列中,直到分配到资源从而被
唤醒
,再次进入到就
Linux
进程
休眠
和
唤醒
当
进程
以阻塞的方式通信,在得到结果前
进程
会挂起
休眠
。 为了将
进程
以一种安全的方式进入
休眠
,我们需要牢记两条规则: 一、永远不要在原子上下文中进入
休眠
。 二、
进程
休眠
后,对环境一无所知。
唤醒
后,必须再次检查以确保我们等待的条件真正为真 简单
休眠
完成
唤醒
任务的代码还必须能够找到我们的
进程
,这样才能
唤醒
休眠
的
进程
。需要维护一个称为等待队列的数据结构。等待队列就是一个
进程
链表,其中包含了等
进程
唤醒
与睡眠
注:本文主要参考自<<现代操作系统>>2.3节
进程
唤醒
与睡眠 使用睡眠与
唤醒
避免忙等待 在前一节如何避免多
进程
(线程)因竞争条件引发的错误?,我们提出了集中能保证多个
进程
互斥访问临界区,我们所提出的解决方案均使用忙等待策略,即在
进程
等待进入临界区时,其持续检查,直到能够进入临界区为止.我们能否在
进程
未满足下一步工作条件时进入
休眠
状态,当
进程
满足下一步工作条件时,由其他
进程
唤醒
该
进程
呢?如果可以实现这种方法,则我们可以避免
进程
的忙等待,从而节省CPU资源. 操作系统提供的sleep系
驱动开发/核心开发
21,600
社区成员
21,708
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章