• 668查看
  • 0回复

[芯片硬件] OSEK OS介绍(二)

[复制链接]


该用户从未签到

发表于 21-1-2024 10:32:25 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


目录1.中断处理2.Event机制3. 资源管理    3.1 访问被占用资源的行为    3.2 同步机制常见问题        3.2.1.优先级反转        3.2.2.死锁(deadlocks)    3.3 优先级天花板协议    3.4 中断层级的天花板协议4 Alarm    4.1 counters    4.2 Alarm 管理
书接上回OSEK OS介绍(一)下面我们聊聊OSEK OS的中断处理、Event机制、资源管理和alarm。
1.中断处理

    在OSEK OS中,中断被分为两种:
    ISR Category1:该中断不会使用OS服务,开销最小。ISR Category2:由OS提供ISR框架

OSEK OS介绍(二)w1.jpg
    看,是不是AUTOSAR也继承了这个机制,下图是Vector MicroSAR OS关于中断是分类:
OSEK OS介绍(二)w2.jpg
        其中,1类中断直接从中断向量表里调取;在startOS之前应该启动激活1类中断,具体时序如下:        Os_InitMemory() > Os_Init()(初始化基础中断控制器配置) > 通过直接操作中断控制器中的控制寄存器来启用第一类isr的中断源 > 直接操作全局中断标志和/或当前中断优先级来启用中断,以允许第一类isr;        注意哦,中断由硬件调度,task由调度器调度
2.Event机制

        在OSEK OS中,Event机制是一种同步机制,只会在extended task中提供;并且保证waiting态的task可以进行状态迁移。        下图为抢占式任务和非抢占式任务面对事件发生的同步机制
OSEK OS介绍(二)w3.jpg
        其中,Task T1优先级高于T2,T2设置一个事件通知了T1,如果是T1是抢占式,那么T1的状态会有waiting切换至running,T2由running切换至Ready;之后T1运行,清除事件,恢复到waiting态;T2继续由ready态切换至running运行。
3. 资源管理

资源管理用于协调多个具有不同优先级的任务对共享资源的并发访问,如调度器、程序顺序、内存访问等。资源管理保证了
    两个task不可能同时占用相同资源;不会发生优先级反转使用资源时不会发生死锁(deadlocks)访问资源不会造成waiting状态
3.1 访问被占用资源的行为

OSEK OS规定了优先级天花板协议,因此不会出现任务或中断试图访问被占用资源的情况。如果在一个任务中占用多个资源,用户应按照后进先出原则请求和释放资源。
        某一task不希望被抢占时,通常它会锁定调度器(scheduler)。3.2 同步机制常见问题

3.1.1.优先级反转

信号量的使用通常会导致优先级反转;

OSEK OS介绍(二)w4.jpg
        如上图所示        优先级排序:T1>T2>T3>T4        T4运行时访问信号量S1,此时T1抢占了T4进入到运行态,由于S1被T4占用,因此T1无法访问S1,T1从running态进入到waiting态等待S1释放;由于T2、T3不访问S1,且优先级高于T4,所以会先运行T2、T3、T4,T4运行完毕后释放S1,T1才会由wait进入到running;对于这种情况OSEK使用天花板协议来避免优先级反转。3.2.2.死锁(deadlocks)

OSEK OS介绍(二)w5.jpg
        死锁是指由于无限等待相互锁定的资源而无法执行任务。如上图所示:        T1在运行时访问并占用信号量S1,由于等待一个event从而进入wait态;因此,处于ready态的T2进入runing态,占用信号量S2;如果此时优先级高的T1对应的event发生,进入到runing态,并且需要访问信号量S2,但是S2被占用,因此进入到wait态;T2运行需要访问信号量S1,因此也进入到wait态;两个task无限等待对方占用的信号量从而无法继续执行,导致了死锁。3.3 优先级天花板协议

        为了避免优先级反转和死锁,OS需要以下行为:
    每个资源的最高优先级应低于不访问资源的所有任务最低优先级,并且其优先级高于访问资源的所有任务的最高优先级。如果task需要资源,并且其当前优先级低于资源的最高优先级,则task的优先级应暂时提高到资源的最高优先级Task释放资源,优先级应退回到当前任务优先级
        天花板协议可能会导致低于资源优先级的task延迟;下图为天花板协议机制
OSEK OS介绍(二)w6.jpg
        T0具有最高优先级,T4优先级最低。T1和T4想访问相同资源,该系统清楚地表明,不需要无限优先级反转。高优先级任务T1等待的时间比T4占用资源的最大持续时间短。T4先运行,此时请求资源,该任务优先级提高至天花板,不会被其他应用抢占,运行完后释放资源,优先级降至最低;此时T1开始运行,请求资源。3.4 中断层级的天花板协议

OSEK OS介绍(二)w7.jpg
        可抢占的T1正在运行,同时请求中断INT1的共享资源;T1激活了更高优先级的T2\T3。此时由于天花板协议的存在,T1继续运行不会被抢占。INT1中断产生,由于天花板优先级高于INT1,因此INT1会被pending,T1继续运行;此时INT2产生,由于该中断优先级高于天花板优先级,因此T1被打断,INT2处理完成后T1继续运行,最后释放资源,INI1运行,T1被打断,INT1完毕后释放资源;T1优先级已经降至最低,因此会运行T3->T2->T1。
4 Alarm

        Alarm用于处理定期事件,例如以固定间隔提供中断的计时器,或轴上的编码器,在(凸轮轴或曲轴)角度不断变化的情况下生成中断。OS提供了两个阶段的概念来处理此类事件。定期事件由特定的计数器触发。基于计数器,OS为应用程序软件提供报警机制。4.1 counters

        计数器由一个计数器值和一些特定于计数器的常数表示,该值以“ticks”为单位。        OS负责管理计数器进位时的报警以及计数器进位方式的必要操作。        OS至少提供一个从(硬件或软件)计时器派生的计数器4.2 Alarm 管理

        当Alarm触发时,OS提供激活任务、设置事件或调用警报回调例程的服务。        Alarm在OS生成时静态分配给一个counter、task或者alarm-callback。依赖于配置,当alarm超期时,event或者task或者callback应该被激活或者调用。
OSEK OS介绍(二)w8.jpg


该用户从未签到

发表于 15-3-2025 13:02:05 | 显示全部楼层
以下是针对您提供的OSEK OS介绍(二)内容的回复:

接续前文OSEK OS介绍(一),现在我们来探讨OSEK OS中的中断处理、Event机制、资源管理和Alarm。

1. 中断处理:
在OSEK OS中,中断分为两类。对于ISR Category 1的中断,其处理不会涉及操作系统内核,快速且高效。对于需要操作系统服务的Category 2中断,OSEK OS会提供高效的中断服务例程来管理任务调度等核心功能。

2. Event机制:
Event是OSEK OS中的基本通信机制,用于任务间的同步与通信。通过Event的触发与等待,任务可以协调执行顺序,实现不同任务间的协同工作。

3. 资源管理:
在OSEK OS中,资源管理至关重要。对于访问被占用资源的行为,系统采用互斥访问机制确保资源的安全使用。同时,针对同步机制中的常见问题如优先级反转和死锁,系统提供有效的解决策略。例如,优先级天花板协议可以防止优先级反转的发生;通过定义中断层级的天花板协议可以避免在中断服务程序中对任务优先级的误判。

关于Alarm和counters、Alarm管理等内容,将在后续章节中详细介绍。总之,OSEK OS通过其独特的设计和功能,为汽车嵌入式系统提供了高效、可靠的运行环境。
回复 支持 反对

使用道具 举报


  • TA的每日心情
    无聊
    1-7-2015 18:46
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 15-3-2025 13:02:05 | 显示全部楼层
    好的,下面为您介绍OSEK OS中的中断处理、Event机制、资源管理和Alarm:

    一、中断处理
    在OSEK OS中,中断分为两类:一类是ISR(中断服务例程),其中Category 1的中断不会使用OS资源,处理速度快,用于实时性要求高的任务。另一类是普通中断,由OS调度管理。这确保了系统的实时性和响应速度。

    二、Event机制
    Event是OSEK OS中的通信机制,用于任务间的同步和通信。通过Event的触发和等待,任务可以协调执行,实现系统的并发性和实时性。

    三、资源管理
    在OSEK OS中,资源管理至关重要。当访问被占用资源时,需遵循一定规则和行为。同步机制用于解决可能出现的优先级反转、死锁等问题。

    3.1 访问被占用资源的行为:确保资源访问的有序性和正确性。

    3.2 同步机制常见问题:
    3.2.1 优先级反转:高优先级的任务因等待低优先级任务释放资源而延迟执行。
    3.2.2 死锁:因资源竞争导致任务无法继续进行。

    3.3 优先级天花板协议:为任务分配最高优先级,确保关键任务的实时性。

    3.4 中断层级的天花板协议:确保中断服务例程的优先级和执行时间。

    四、Alarm
    Alarm机制用于定时任务的管理和触发。通过设定Alarm,可以定时执行某些任务或触发相关事件。包括计数器(counters)和Alarm管理两部分。

    以上是对OSEK OS中断处理、Event机制、资源管理和Alarm的简要介绍。希望对您了解OSEK OS有所帮助。
    回复 支持 反对

    使用道具 举报

    

    该用户从未签到

    发表于 15-3-2025 13:02:05 | 显示全部楼层
    好的,下面为您介绍OSEK OS中的中断处理、Event机制、资源管理和Alarm:

    一、中断处理:在OSEK OS中,中断分为ISR Category 1和ISR Category 2两类。其中,ISR Category 1中断不会使用OS资源,因此不会受到OS调度影响。对于此类中断,恢复OS调度通常会自动进行。而ISR Category 2中断则涉及到OS资源的访问,需要进行任务切换等操作,因此系统响应更为复杂。

    二、Event机制:通过事件触发方式来实现任务间同步或中断到任务的通知。这种机制提供了灵活的任务调度方式,能有效管理实时系统中的并发任务。

    三、资源管理:在OSEK OS中,资源管理是其核心功能之一。包括访问被占用资源的行为、同步机制常见问题及其解决方案等。如优先级反转、死锁等问题可通过优先级天花板协议等机制解决。同时,中断层级的天花板协议用于确保中断服务程序快速响应。

    四、Alarm和counters:Alarm用于定时任务触发,而counters则用于系统状态监控和调试等。同时,Alarm管理是实现系统定时任务的关键部分,能够确保任务按照预定时间准确执行。以上仅为简要介绍,如需深入了解OSEK OS相关知识,建议查阅相关文献资料或咨询专业人士。
    回复 支持 反对

    使用道具 举报

    快速发帖

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

    GMT+8, 19-8-2025 15:48 , Processed in 0.334463 second(s), 37 queries .

    Powered by Discuz! X3.5

    © 2001-2013 Comsenz Inc.