关中断是否禁止任务调度?
来源:互联网 发布:矩阵的相似性 编辑:程序博客网 时间:2024/05/16 17:15
1、任务主动进入了阻塞状态,就像2楼说的,调用了所谓的切换函数。
2、中断,中断服务程序(isr)改变了任务状态,使某个比当前任务优先级高的任务进入了准备好(ready)状态,于是内核调用了切换函数。
关了中断,就禁止了抢占,如果当前任务也没有进行主动调度,当然系统中也就不会出现比当前优先级更高的任务进入就绪了,也就谈不上去“抢占CPU并访问临界区和共享变量”了。
关 中 断 之 后, 任 何 外 部 事 件 都 不 能 打 扰 处 理 机 连 续 执 行 临 界 区 程 序。 如 果 临 界 区 程 序 本 身 并 不 包 含 使 它 的 进 程 转 变 为 封 锁 状 态 的 因 素, 那 么 这 种 方 法 就 能 保 证 临 界 区 作 为 一 个 整 体 执 行。 这 种 方 法 的 优 点 是 简 单、 可 靠, 但 是 它 也 有 一 定 的 局 限 性 和 若 干 不 足 之 处。
(1) 它 不 能 用 于 多 处 理 机 系 统。 其 原 因 是: 由 于 该 系 统 中 的 多 个 处 理 机 都 有 其 各 自 的 中 断 开 关, 因 此 一 个 处 理 机 并 不 能 阻 止 在 其 它 处 理 机 上 运 行 的 进 程 进 入 同 类 临 界 区。
(2) 在 临 界 区 中 如 果 包 含 有 使 执 行 它 的 进 程 有 可 能 进 入 封 锁 状 态 的 因 素, 则 也 不 能 使 用 这 种 方 法。 因 为 在 该 进 程 进 入 封 锁 状 态 后, 系 统 将 调 度 另 一 进 程 使 用 处 理 机, 如 果 需 要, 该 进 程 也 可 以 执 行 临 界 区 程 序, 不 会 受 到 任 何 阻 拦, 所 以 在 这 种 情 况 下, 开、 关 中 断 不 能 实 施 临 界 区 互 斥。
(3) 如 果 临 界 区 比 较 长, 则 本 法 会 降 低 中 断 响 应 速 度。
(4) 这 是 一 把 锁 处 理 各 类 临 界 区, 不 必 要 地 扩 大 了 互 斥 范 围。
- 关中断是否禁止任务调度?
- 关中断是否禁止任务调度?关中断能作为互斥吗?
- 禁止所有的中断(关中断/开中断)
- 禁止所有的中断(关中断/开中断)
- VxWorks任务调度与中断
- ucosii_中断服务中的任务调度
- 关于ucosII中断中任务调度
- ucos 任务调度与中断的关系
- 中断及任务调度管理(linux网络协议栈笔记)
- 中断的上下文切换和任务调度的上下文切换
- 关中断/禁调度/信号量/原子变量的区别和用法
- 关中断,睡眠
- 实时操作系统任务调度 DMA 中断向量表和中断处理 Memory
- 关于Linux3.0驱动里面是否需要关中断的探讨
- 应用程序禁止手机关屏
- 调度任务
- 任务调度
- 任务调度
- hdu 1237 简单计算器
- 学习使用SQLite(版本3.7.4)(中G )
- Treap树
- C++拷贝函数详解
- Android 文件管理器
- 关中断是否禁止任务调度?
- ECShop 批量上传商品乱码问题解决
- 平衡二叉树
- 二叉查找树
- java断点续传的原理
- POSIX多线程—线程基本概念
- 伸展树
- 瞬态抑制二极管
- C语言位运算详解(基础)