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

    文章

    1482

    浏览量

    43143
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11375

    浏览量

    226414
  • 中断
    +关注

    关注

    5

    文章

    921

    浏览量

    43928
  • 嵌入式开发
    +关注

    关注

    18

    文章

    1187

    浏览量

    50280
  • ISR
    ISR
    +关注

    关注

    0

    文章

    38

    浏览量

    15272
  • 线程
    +关注

    关注

    0

    文章

    511

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探索LM5001隔离反激评估板:设计与性能解析

    探索LM5001隔离反激评估板:设计与性能解析 在电子工程师的日常工作中,评估板是验证和开发电源转换解决方案的重要工具。今天,我们将深入探讨德州仪器(Texas Instruments
    的头像 发表于 04-21 09:35 175次阅读

    使用 MPC5777C M_CAN RAM,同时保持M_CAN处于活动状态,M_CAN RAM 是否正常工作

    我打算将M_CAN RAM 用作标准 RAM,在内核之间共享,这样我就可以将每个主 SRAM 组保留为一个 CPU。如果我设置M_CAN_CCCR[CSR](以确保M_CAN本身保持活动状态
    发表于 03-20 07:24

    接触磁编码传感技术及误差补偿原理

    接触磁编码传感技术以磁场为信息载体、磁敏元件为转换核心、数字信号处理为精度保障,通过无机械接触方式实现角度与位移测量,已成为新能源汽车、工业伺服、机器人、高端装备的核心感知方案。其技术竞争力不仅
    的头像 发表于 02-27 16:27 814次阅读

    Labview接口(interface)的工作过程

    文字描述部分: 目的:产生随机数,当随机数达到某个阈值时触发一个状态事件。 创建过程: 1、用labview 模板创建root Actor ,这个根操作者,用来管理所有其他的Actor 2、创建一个
    发表于 02-03 11:07

    【「Linux 设备驱动开发(第 2 版)」阅读体验】Linux内核开发基础

    ,除非隐地创建内核线程或使用线程中断,否则工作队列是唯一的选择。 struct work_struct { atomic_long_t data; struct list_head entry
    发表于 01-12 22:45

    请问内核工作模式下的功耗又是多少?

    内核工作模式下的功耗又是多少?
    发表于 12-24 06:38

    详解NMOS晶体管的工作过程

    在每一颗芯片的内部,数十亿个晶体管如同高速开合的微型水闸,构成数字世界的最小逻辑单元。以NMOS为例,我们将揭开它如何依靠电场控制电子流动,在“关断”与“导通”之间瞬间切换,并以此写下计算的语言。
    的头像 发表于 12-10 15:17 1457次阅读
    详解NMOS晶体管的<b class='flag-5'>工作过程</b>

    抢占优先级和子优先级

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

    示波器触发电平的工作过程和噪声抑制功能

    在示波器的日常使用中,部分用户可能会发现触发电平已经与沿相交了,但是并没有实际触发到信号。
    的头像 发表于 11-28 09:57 4735次阅读
    示波器触发电平的<b class='flag-5'>工作过程</b>和噪声抑制功能

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

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

    电容水位传感器的工作原理是什么?

    接触电容液位传感器的核心工作原理是基于电容感应与介电常数差异,通过间接检测容器内液位变化引发的电容值波动,实现液位的接触精准测量,全
    的头像 发表于 11-25 11:21 1659次阅读
    电容<b class='flag-5'>式</b>水位传感器的<b class='flag-5'>工作</b>原理是什么?

    蜂鸟内核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 1034次阅读