TASK_INTERRUPTIBLE 和TASK_UNINTERRUPTIBLE
来源:互联网 发布:上海市软件协会 编辑:程序博客网 时间:2024/05/16 01:07
TASK_INTERRUPTIBLE 和TASK_UNINTERRUPTIBLE 的区别
TASK_INTERRUPTIBLE是可以被信号和wake_up()唤醒的,当信号到来时,进程会被设置为可运行。
而TASK_UNINTERRUPTIBLE只能被wake_up()唤醒。
信号本质
信号是在软件层次上对中断机制的一种模拟,软中断
TASK_INTERRUPTIBLE是可以被信号和wake_up()唤醒的,当信号到来时,进程会被设置为可运行。
而TASK_UNINTERRUPTIBLE只能被wake_up()唤醒。
信号本质
信号是在软件层次上对中断机制的一种模拟,软中断
信号来源
信号事件的发生有两个来源:
硬件来源:(比如我们按下了键盘或者其它硬件故障);
软件来源:最常用发送信号的系统函数是kill, raise, alarm和setitimer以及sigqueue函数,软件来源还包括一些非法运算等操作。
信号事件的发生有两个来源:
硬件来源:(比如我们按下了键盘或者其它硬件故障);
软件来源:最常用发送信号的系统函数是kill, raise, alarm和setitimer以及sigqueue函数,软件来源还包括一些非法运算等操作。
区分是什么原因唤醒进程,用signal_pending( current );
检查当前进程是否有信号处理,返回不为0表示有信号需要处理。-ERESTARTSYS 表示信号函数处理完毕后重新执行信号函数前的某个系统调用。也就是说,如果信号函数前有发生系统调用,在调度用户信号函数之前,内核会检查系统调用的返回值,看看是不是因为这个信号而中断了系统调用.如果返回值-ERESTARTSYS,并且当前调度的信号具备-ERESTARTSYS属性,系统就会在用户信号函数返回之后再执行该系统调用。
检查当前进程是否有信号处理,返回不为0表示有信号需要处理。-ERESTARTSYS 表示信号函数处理完毕后重新执行信号函数前的某个系统调用。也就是说,如果信号函数前有发生系统调用,在调度用户信号函数之前,内核会检查系统调用的返回值,看看是不是因为这个信号而中断了系统调用.如果返回值-ERESTARTSYS,并且当前调度的信号具备-ERESTARTSYS属性,系统就会在用户信号函数返回之后再执行该系统调用。
0 0
- TASK_INTERRUPTIBLE 和TASK_UNINTERRUPTIBLE
- TASK_INTERRUPTIBLE 和 TASK_UNINTERRUPTIBLE
- TASK_INTERRUPTIBLE 和TASK_UNINTERRUPTIBLE
- TASK_INTERRUPTIBLE 和TASK_UNINTERRUPTIBLE
- TASK_INTERRUPTIBLE 和TASK_UNINTERRUPTIBLE 的区别
- TASK_INTERRUPTIBLE 和TASK_UNINTERRUPTIBLE 的区别
- TASK_INTERRUPTIBLE 和TASK_UNINTERRUPTIBLE 的区别
- TASK_INTERRUPTIBLE and TASK_UNINTERRUPTIBLE
- 睡眠--TASK_INTERRUPTIBLE and TASK_UNINTERRUPTIBLE
- 睡眠--TASK_INTERRUPTIBLE and TASK_UNINTERRUPTIBLE
- 进程资源和进程状态 TASK_RUNNING TASK_INTERRUPTIBLE TASK_UNINTERRUPTIBLE
- linux进程状态-TASK_INTERRUPTIBLE and TASK_UNINTERRUPTIBLE
- TASK_INTERRUPTIBLE
- error: 'TASK_UNINTERRUPTIBLE' undeclared (first use in this function)和error: 'TASK_NORMAL' undeclare
- error: 'TASK_INTERRUPTIBLE' undeclared (first use in this function)
- error: 'TASK_INTERRUPTIBLE' undeclared (first use in this function)
- error: 'TASK_INTERRUPTIBLE' undeclared (first use in this function)
- kernel对D状态(TASK_UNINTERRUPTIBLE)task在120s不被调度的检测
- 初识c++
- SLG项目笔记
- jenkins 生成引用外部CSS、JS的HTML无法打开
- [leetcode]225. Implement Stack using Queues
- 一年成为Emacs高手(像神一样使用编辑器)
- TASK_INTERRUPTIBLE 和TASK_UNINTERRUPTIBLE
- 数据的输入和随机数的生成
- eclipse快捷键
- a letter to the editor
- C/C++---C and CXX compiler with c or cpp in struct
- AndroidStudio导入项目一直卡在Building gradle project info最快速解决方案
- 游戏设计模式
- maven安装与配置
- 博弈论