关于linux中wake_up与wake_event的使用
起因
在学习阻塞式IO访问的时候,涉及到了wake_up与wait_event的使用,具体的实验历程与流程可以参考ZC大佬这篇文章中的按键休眠唤醒实验。
疑问
在上述的实验过程中,产生疑问:wait_event(wq,event)将进程休眠后,唤醒到底是由event事件导致的,还是由wake_up(),wake_up和wait_event是不是唤醒了进程两次。
自己的理解
阅读Fybon大佬关于等待队列的博客后,我目前的理解是wait_event后进程休眠,然后在由wake_up唤醒,唤醒之后wait_event函数还会继续判断一次event事件为TRUE还是FALSE,如果为FALSE的话会再次休眠,为TRUE的话则会从wait_event函数返回,进程被唤醒继续执行后续的操作。因此唤醒是由wake_up导致的,wait_event则是实现会不会因为event事件而休眠。
**如果理解偏差或者错误的话,希望有大佬指正**
关于linux中wake_up与wake_event的使用相关推荐
- linux中阻塞机制
一,阻塞与非阻塞 阻塞是指没有获得资源则挂起进程,直到获得资源为止.被挂起的进程进入休眠状态,被调度器的运行队列移走,直到等待条件被满足. 非阻塞是不能进行设备操作时不挂起,或放弃,或反复查询,直到可 ...
- linux中进程的用户管理
linux中进程的用户管理 每个进程都拥有真实的用户.组(uid.gid),有效的用户.组(euid.egid),保存的设置用户.组(suid.sgid),还有linux中专门用于文件存储存取的用户. ...
- Linux中的阻塞机制
我们知道在字符设备驱动中,应用层调用read.write等系统调用终会调到驱动中对应的接口. 可以当应用层调用read要去读硬件的数据时,硬件的数据未准备好,那我们该怎么做? 一种办法是直接返回并报错 ...
- linux 中的中断处理
谈谈对中断的理解 1.裸板中断处理过程 中断属于异常的一种 它是计算机中处理异步事件的重要机制1.1 中断的触发中断源级配置中断的触发方式 上升沿 下降沿 高 低触发中断使能 (监测到中断信号之后,能 ...
- c++ 进程快照_如何在 Linux 中找出内存消耗最大的进程
很多次,你可能遇见过系统消耗了过多的内存.如果是这种情况,那么最好的办法是识别出 Linux 机器上消耗过多内存的进程. -- Magesh Maruthamuthu(作者) 很多次,你可能遇见过系统 ...
- linux的tar中ztvf,linux中的tar命令(2)
实例4:只将 /tar 内的 部分文件解压出来 命令: tar -zxvf /opt/soft/test/log30.tar.gz log2013.log 输出: [root@localhost te ...
- centos6.5 php5.2,Linux中PHP安装与配置(CentOS-6.5:php-5.2.13)
1 PHP简介 PHP(PHP: Hypertext Preprocessor的缩写,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸收了C语言.Java和Per ...
- java 外部类似_[求指点] 如何用java 实现类似linux中管道调用外部程序的功能
想写个小程序实现类似linux中管道的功能,创建一个外部子进程,然后主进程不断地写输入给子进程,而后把子进程的返回值取出. 如下的小代码就是从stdin读入一个字符串,调用子进程(cat)返回这个串, ...
- linux 修改java版本_Linux 有问必答:如何在 Linux 中改变默认的 Java 版本
提问:当我尝试在Linux中运行一个Java程序时,我遇到了一个错误.看上去像程序编译所使用的Java版本与我本地的不同.我该如何在Linux上切换默认的Java版本? 当Java程序编译时,编译环境 ...
最新文章
- 利用XRDP远程登陆linux系统
- redis的bitset实战
- graphcool-framework 一个基于graphql的后端开发框架
- try catch异常后会执行后面的代码吗_JVM异常处理最强讲解
- 一位资深Java的阿里系公司实战面试经验,套路还是面试官的多
- iOS四种多线程(swift和oc)
- _.findIndex(array, [predicate=_.identity], [fromIndex=0])
- opencv算法精解 c++/python
- Skyline软件二次开发初级——2如何在WEB页面中控制三维地图的观察点坐标和角度...
- H264 编解码协议详解
- hybrid 单臂路由
- 中华传统吉祥图案集锦
- 网上资源之WEB前端
- 学习6大设计原则、23种设计模式
- chrome浏览器模拟慢网速环境
- 这样给宝宝起小名,好听不俗气
- 服务监控可以监控哪些
- java FX 制作3D魔方
- python爬取网站的某一句话_Python实现JS解密并爬取某音漫客网站
- Stale branches 设置_手机资讯:iPhone 如何设置来电闪光灯苹果手机 LED 灯来电提醒设置教程...