• 问题2:为什么4级中断处理完成之后会经过用户程序之后再回到1中断处理程序处理呢


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 m0_61776928 2024-04-05 17:32 采纳率: 8.3% 浏览 1 首页/ 运维 / 问题2:为什么4级中断处理完成之后会经过用户程序之后再回到1中断处理程序处理呢 系统架构 问题1:(2)题的答案,为什么5级第二次进入处理,完成之后,会回到中断的4呢?而不是直接进入优先级更高的2级呢? 问题2:为什么4级中断处理完成之后会经过用户程序之后再回到1中断处理程序处理呢?为什么不是4中断处理完成之后直接到1呢? 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    1条回答 默认 最新

    • 檀越剑指大厂 Java领域优质创作者 2024-04-05 17:32
      关注

      下午好🌅🌅🌅
      本答案参考ChatGPT-3.5

      问题2: 为什么4级中断处理完成之后会经过用户程序之后再回到1中断处理程序处理呢?

      原因是因为在5级中断处理过程中,1、2、3级中断请求被屏蔽了,因此在5级中断处理完成后需要重新判断是否有其他中断请求,这时候1级中断的请求被重新启用并进入中断队列,因此需要经过一段用户程序的执行后再回到1级中断处理程序处理。

      解决方案如下:

      1. 中断请求队列按照优先级由高到低排列,因此先处理优先级高的中断请求,同时需要将该中断请求之下的所有中断屏蔽。
      2. 在5级中断处理完成后,需要重新启用可能存在的其他中断请求,并将它们加入到中断请求队列中,然后检查队列中是否有比当前正在处理的中断请求更高优先级的中断请求,如果有,则需要先处理更高优先级的中断请求。
      3. 因为中断请求可能在用户程序执行过程中被触发,因此在用户程序执行完毕后,需要重新判断是否存在中断请求,并按照优先级处理。

      修改后的代码如下:

      // 处理当前中断请求 void handle_interrupt() { // 获取当前中断请求的优先级 int priority = get_interrupt_priority();

      // 将该优先级之下的所有中断屏蔽 mask_interrupts(priority);

      // 处理当前中断请求 handle_current_interrupt();

      // 重新启用可能存在的其他中断请求 unmask_interrupts(priority);

      // 检查是否存在比当前正在处理的中断请求更高优先级的中断请求 int higher_priority = get_highest_priority(); if (higher_priority > priority) { // 处理更高优先级的中断请求 mask_interrupts(higher_priority); handle_interrupt(); } }

      // 在用户程序执行完毕后,重新判断是否存在中断请求,并按照优先级处理 void handle_user_program() { // 检查是否存在中断请求 int priority = get_highest_priority(); if (priority > 0) { // 处理中断请求 mask_interrupts(priority); handle_interrupt(); } }

      评论 编辑记录
      编辑
      预览

      报告相同问题?

    • 相关阅读:
      C++:过滤中文字符
      自定义事件的使用
      六、C++ 运算符重载
      【数据结构】链表
      leetcode 649. Dota2 参议院
      Linux磁盘管理、储存空间
      【Qt之QTimer】使用及技巧
      各大主流数据库区别 新出炉
      【设计模式学习01】设计模式概述,UML图,软件设计原则
      vue3 父组件使用ref获取获取子组件的属性方法
    • 原文地址:https://ask.csdn.net/questions/8083841