0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

非抢占式内核工作过程

嵌入式应用开发 来源:嵌入式应用开发 作者:嵌入式应用开发 2022-09-29 18:38 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

非抢占式内核

非抢占式内核要求每个任务(线程)都做一些事情来明确放弃对 CPU 的控制,为了保持多任务并发的错觉,必须要有这一步操作。

非抢占式调度也称为协作多任务,任务相互协作以共享 CPU,异步事件仍然由 ISR 处理。ISR 可以使更高优先级的任务准备好运行,但 ISR 总是返回到被中断的任务。

只有当当前任务放弃 CPU 时,新的更高优先级任务才会获得对 CPU 的控制。

非抢占式内核的优点之一是中断延迟更低,在任务级别,非抢占内核也可以使用不可重入函数。每个任务都可以使用不可重入函数,而不必担心被另一个任务破坏。这是因为每个任务都可以在放弃 CPU 之前运行到完成。但是,不应允许不可重入函数放弃对 CPU 的控制。

使用非抢占式内核的任务级响应可能比前台/后台系统低得多,因为任务级响应现在由最长任务的时间给出。

非抢占式内核的另一个优点是较少需要通过使用信号量来保护共享数据。每个任务都拥有 CPU,你不必担心任务会被抢占。当然,这不是绝对的,在某些情况下,仍应使用信号量。共享 I/O 设备可能仍需要使用互斥信号量;例如,任务可能仍需要对打印机的独占访问。

pYYBAGM1dZaAC4xNAAIu44hGUvU762.png

(1) 任务正在执行但被中断。(2) 如果中断被使能,CPU 向量(跳转)到 ISR。(3) ISR 处理事件并使更高优先级的任务准备好运行。(4) ISR完成后,执行返回指令,CPU返回被中断的任务。(5) 任务代码在中断指令之后的指令处恢复。(6) 当任务代码完成时,它调用内核提供的服务,将 CPU 交给另一个任务。(7) 内核看到更高优先级的任务已经准备好运行,因此,内核执行上下文切换,以便它可以运行(即执行)更高优先级的任务来处理由 ISR 发出信号的事件。

非抢占式内核最重要的缺点是响应性:已准备好运行的较高优先级任务可能需要等待很长时间才能运行,因为当前任务应该及时放弃CPU使用权。

与前台/后台系统中的后台执行一样,非抢占式内核中的任务级响应时间是不确定的;你永远不知道最高优先级的任务何时才能获得 CPU 的控制权。这个操作由你的应用程序来决定怎么时候放弃对 CPU 的控制。

总而言之,非抢占式内核允许每个任务运行,直到它自愿放弃对 CPU 的控制。中断抢占任务,ISR 完成后,ISR 返回到被中断的任务。任务级响应比前台/后台系统要好得多,但仍然是不确定的,因此,很少有商业内核是非抢占式的。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    4

    文章

    1436

    浏览量

    42481
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11216

    浏览量

    222873
  • 中断
    +关注

    关注

    5

    文章

    912

    浏览量

    43551
  • 嵌入式开发
    +关注

    关注

    18

    文章

    1102

    浏览量

    49834
  • ISR
    ISR
    +关注

    关注

    0

    文章

    38

    浏览量

    15115
  • 线程
    +关注

    关注

    0

    文章

    508

    浏览量

    20754
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    抢占优先级和子优先级

    关于抢占优先级和子优先级: 1)具有高抢占优先级的中断可以在具有低抢占优先级的中断服务程序执行过程
    发表于 12-03 07:11

    企鹅宝宝带你看接触水位检测方案

    接触
    ICman
    发布于 :2025年11月26日 13:44:49

    蜂鸟内核ITCM模块以及取值过程

    本文主要介绍蜂鸟中的ITCM模块。ITCM在蜂鸟中是用于存储指令的,由于蜂鸟E203内核定位是对于小型的指令系统,因此在蜂鸟定位的系统中,指令基本是全部存储在ITCM中的,因此下面我们介绍ITCM
    发表于 10-24 08:29

    蜂鸟内核ITCM模块及取值过程

    本文主要介绍蜂鸟中的ITCM模块。ITCM在蜂鸟中是用于存储指令的,由于蜂鸟E203内核定位是对于小型的指令系统,因此在蜂鸟定位的系统中,指令基本是全部存储在ITCM中的,因此下面我们介绍ITCM
    发表于 10-24 07:27

    一文读懂:嵌入Linux实时性进阶

    能够在限定的时间内对外部时间做出相应的特性。 Linux可以通过任务调度与相应时间,中断延迟与抢占延迟,内核抢占性与实时补丁,实时调度策略,硬件支持来提高其实时性,但它本身并不是一个硬实时操作系统
    发表于 07-10 15:26

    松盛光电锡膏激光焊锡机的优势和工作过程

    锡膏激光焊接技术采用半导体激光器为光源,常用激光波长一般为976/980nm。与传统的锡膏焊接方式不同的是,前者焊料需要激光特用锡膏。其原理通过光学镜头可以精细控制激光能量,聚焦在对应的焊点上,属于接触加热的焊接技术。
    的头像 发表于 07-09 09:08 678次阅读

    接触雷达流量计监测系统详解

    在现代水利监测领域,接触雷达流量计监测系统正发挥着愈发关键的作用,为水资源管理、防洪减灾等工作提供了有力的技术支持。一、雷达流量计的工作原理
    的头像 发表于 05-24 15:02 467次阅读
    <b class='flag-5'>非</b>接触<b class='flag-5'>式</b>雷达流量计监测系统详解

    各位大神,请教机械光开关的制作过程

    各位大神,请教机械光开关的制作过程,想了解一下准直器将输入端固定,通过驱动马达将不同输出端准直器与输入端耦合。如何才能对准。
    发表于 04-21 13:14

    如何使用ZPS-CANFD观察CAN数据链路层的工作过程

    也可以完成对CAN总线数据链路层工作过程的观察。什么是数据链路层在CAN总线应用中,物理层一致性测试成为各CAN总线厂家必测的校验任务,以此来保证总线或节点产品有
    的头像 发表于 03-18 11:38 750次阅读
    如何使用ZPS-CANFD观察CAN数据链路层的<b class='flag-5'>工作过程</b>

    CDN的基本概念和工作过程

    服务成功率:指用户所请求的服务成功完成的几率。
    的头像 发表于 02-13 09:55 1396次阅读
    CDN的基本概念和<b class='flag-5'>工作过程</b>

    SAR ADC的工作过程和关键指标

    ADC以其低功耗、高精度、小尺寸以及适中的速度和分辨率,在中等至高分辨率应用中占据主导地位。本文将详细介绍SAR ADC的概念、工作过程、关键指标以及其在不同领域的应用。
    的头像 发表于 02-02 13:57 2209次阅读

    恒流三极管的工作过程和电路结构

    恒流三极管是一种特殊的半导体器件,它在一定条件下能够提供稳定的电流输出,不受负载变化的影响。这种特性使其在多种电子电路中得到了广泛应用,如LED驱动电路、电池充电管理、电化学分析等。本文将深入探讨恒流三极管的工作过程和电路结构,以期为读者提供全面的技术理解。
    的头像 发表于 02-02 13:47 928次阅读

    GUC65(A)矿用本安型位置传感器制作过程

    矿用本安型位置传感器的制作过程需要严格遵守相关的安全规范和标准,确保传感器的安全性和可靠性。同时,在生产过程中还需要注意环境保护和节能减排等要求。具体的制作过程可能会因产品规格、制造商和生产工艺的不同而有所差异。
    的头像 发表于 01-07 10:18 798次阅读

    嵌入学习-飞凌嵌入ElfBoard ELF 1板卡-Linux内核移植之内核启动流程

    内核启动流程开始。在前面章节讲解zImage生成过程的时候说过内核镜像image是被压缩进zImage之中的。所以,内核获得控制权之后,第一件事,是解压缩
    发表于 01-07 09:20

    飞凌嵌入ElfBoard ELF 1板卡-Linux内核移植之内核启动流程

    内核启动流程开始。在前面章节讲解zImage生成过程的时候说过内核镜像image是被压缩进zImage之中的。所以,内核获得控制权之后,第一件事,是解压缩
    发表于 01-06 09:51