当前位置: 首页 > news >正文

网站续费自己做手机网站开发需求 百度云盘

网站续费自己做,手机网站开发需求 百度云盘,商家线上推广的平台都有哪些,淘宝网站的推广方案针对于嵌入式软件杂乱的知识点总结起来#xff0c;提供给读者学习复习对下述内容的强化。 目录 1.硬中断#xff0c;软中断是什么#xff1f;有什么区别#xff1f; 2.中断为什么要区分上半部和下半部#xff1f; 3.中断下半部一般如何实现#xff1f; 4.linux中断的… 针对于嵌入式软件杂乱的知识点总结起来提供给读者学习复习对下述内容的强化。 目录 1.硬中断软中断是什么有什么区别 2.中断为什么要区分上半部和下半部 3.中断下半部一般如何实现 4.linux中断的响应执行流程中断的申请何时执行何时执行中断处理函数 1.硬中断软中断是什么有什么区别 硬中断由硬件设备触发响应时间要求非常快通常用于紧急事件的处理。 软中断由软件操作系统触发通常用于延迟执行较为复杂的任务响应时间不如硬中断紧急。 硬中断是由硬件设备触发的中断信号。硬件设备如定时器、外设、I/O 设备等在需要 CPU 处理时通过发送中断信号来打断 CPU 正常的指令执行流程。 工作原理 当外部硬件设备发生特定事件如数据到达、硬件状态变化等硬件会向 CPU 发出中断请求。CPU 在执行完当前指令后会停止当前任务跳转到相应的中断处理程序ISRInterrupt Service Routine来处理中断请求。中断服务程序ISR通常是高优先级的必须尽可能短小快速地执行避免占用过多的 CPU 时间。一旦 ISR 执行完成CPU 会返回到被中断的任务继续执行。 特性 由外部硬件触发属于硬件事件。通常是实时的必须迅速响应硬件事件。执行时操作系统无法进行任务调度因为 CPU 被打断并立即处理中断。硬中断一般是不可预期的必须确保中断处理的实时性。 常见的硬中断例子 外部传感器的数据变化定时器中断外部按钮或输入信号的变化网络接口卡NIC数据接收中断 软中断是由软件程序触发的中断不依赖硬件设备而是由操作系统或应用程序通过软件指令触发用来执行某些特定的操作。软中断机制用于延迟处理硬中断后的某些任务或者用于执行一些高优先级的操作。 工作原理 软中断通常是在硬中断处理程序中通过内核代码触发的。在硬中断响应完成后操作系统会通过软中断将一些较为复杂的任务推迟到稍后的合适时机执行。软中断并不是立即执行的它依赖操作系统的调度通常是以工作队列、定时器或其他机制的形式延迟执行。软中断的处理通常发生在内核态当硬中断处理程序完成后软中断可能会被执行。软中断的执行优先级通常低于硬中断但比普通进程的优先级要高。 特性 由软件触发通常是内核或操作系统中的事件。用于延迟处理一些任务或者处理高优先级的系统工作。不需要硬件支持完全由软件控制。软中断可以在硬中断处理完成后执行但不能打断硬中断本身。 常见的软中断例子 网络包的处理网络协议栈的处理软中断用于管理定时器事件内存管理相关的操作如虚拟内存分页调度任务如 Linux 中的任务切换 特性硬中断Hardware Interrupt软中断Software Interrupt触发源外部硬件设备如传感器、I/O设备、定时器等由内核或操作系统软件触发触发方式硬件通过中断信号触发中断通过软件指令或内核操作触发软中断优先级高实时性要求强低于硬中断但通常比普通进程的优先级高执行时间中断处理程序通常需要快速执行避免占用过多时间软中断可以执行更复杂的操作不需要立即响应通常是延迟处理响应时机即时响应硬件事件执行的任务非常紧急在硬中断响应后执行通常用于处理延迟的操作控制方式由硬件和 CPU 控制通常不能被轻易禁止或改变由操作系统控制内核可以控制软中断的触发和执行中断服务程序(ISR)由硬件中断触发的服务程序通常必须尽可能短小和高效由软件中断触发的服务程序可能更复杂处理时间更长上下文切换在硬中断处理期间操作系统无法进行进程调度和上下文切换软中断是在内核模式下执行操作系统可进行上下文切换中断嵌套可以嵌套其他硬中断但会受到优先级和硬件支持的限制软中断通常无法直接嵌套硬中断但可以在软中断中调用其他软中断 在嵌入式 Linux 中硬中断和软中断常常是结合使用的。硬中断通常用来快速响应外部硬件事件而软中断则用于推迟一些复杂的任务以便在稍后的时间处理避免阻塞实时的硬中断处理。例如 硬中断当外部设备如网络接口卡接收到数据时它会触发硬中断CPU 跳转到中断处理程序快速处理中断。软中断硬中断处理完成后操作系统可能会使用软中断来处理接收到的数据包例如网络协议栈的处理因为数据包的处理较为复杂不能立即进行。 通过这种方式系统能够保证实时的硬件事件响应同时又能通过软中断来处理一些相对复杂但又重要的任务。 2.中断为什么要区分上半部和下半部 Linux中断分为硬件中断和内部中断(异常)调用过程:外部中断产生-发送中断信号到中断控制器-通知处理器产生中断的中断号让其进一步处理。 对于中断上半部和下半部的产生为了中断处理过程中被新的中断打断将中断处理一分为二上半部登记新的中断快速处理简单的任务剩余复杂耗时的处理留给下半部处理下半部处理过程中可以被中断上半部处理时不可被中断。 上半部Top Half 上半部是中断的立即响应部分通常在硬中断发生时会被调用。处理程序在这部分应该尽量简短、高效避免长时间占用 CPU 和影响其他任务的执行。上半部的主要任务是捕捉并记录中断源执行一些必要的硬件操作并尽快返回。它的目标是让中断的响应尽可能快防止丢失重要的事件或数据。 下半部Bottom Half 下半部是中断的延迟处理部分它通常在中断处理完毕后在合适的时机例如操作系统调度时被执行。这部分可以执行较为复杂的操作如数据的处理、任务的调度等。与上半部不同它可以使用系统调用和进程调度。下半部的处理不需要立刻执行因此可以延迟执行以避免长时间占用中断上下文。 特性上半部Top Half下半部Bottom Half触发时机由硬中断触发立即响应硬件事件在上半部处理完成后由操作系统调度触发执行环境在中断上下文中执行不能进行进程调度、内存分配等在进程上下文中执行允许进行内存分配、进程调度等复杂操作执行任务简单且高效的硬件相关处理如记录中断源、清除中断标志等复杂的任务处理如数据处理、协议栈处理等优先级高优先级实时性要求强低于上半部优先级通常需要在稍后的调度周期中处理时间限制必须尽量快速执行以避免影响其他中断的响应和任务的执行可以较长时间执行不需要立即响应任务内容捕获硬件事件清除中断标志快速更新硬件状态极少操作系统资源数据的进一步处理、内存分配、进程调度、复杂算法等中断嵌套不能嵌套处理其他硬中断可能会被其他软中断或工作队列触发中断禁用执行期间通常会禁用其他中断防止中断嵌套不需要禁用其他中断允许并发执行处理方式硬中断处理程序ISR必须简短和高效软中断或任务队列允许较长时间的处理处理方式的复杂度较低主要处理硬件相关的直接操作较高处理系统级的复杂任务如内存分配、调度等例子网络中断接收数据、定时器中断、外设输入信号处理等网络协议栈处理、内存管理、数据缓冲区清理等 3.中断下半部一般如何实现 在嵌入式 Linux 中中断的下半部通常用于延迟执行较为复杂的任务例如数据处理、协议栈处理或其他不适合在硬中断上下文中执行的操作。为了有效地实现下半部的处理Linux 内核提供了几种常用的机制软中断Soft IRQ、任务队列Tasklets 和 工作队列Work Queues。这些机制可以让延迟的任务在合适的时机得到执行从而不影响中断的实时性。想· 1. 软中断Soft IRQ 软中断是 Linux 内核中的一种机制旨在推迟某些中断相关的工作。它是在硬中断处理之后由内核调度器根据优先级执行的。 使用场景适用于需要在较高优先级下执行但又不需要占用过多时间的任务例如网络协议栈的处理、定时任务的更新等。 实现方式内核中定义了一些常用的软中断类型例如网络处理NET_RX、定时器处理TIMER等。内核根据软中断的类型自动安排其执行。 特点 软中断在内核上下文中执行但可以并发执行。 由于软中断是由内核调度的因此它的执行不需要立刻发生而是可以推迟到合适的时机。 void my_softirq_handler(struct softirq_action *action) {// 处理一些延迟任务 }void my_init_softirq(void) {open_softirq(MY_SOFTIRQ, my_softirq_handler); }2. 任务队列Tasklets 任务队列是 Linux 中一种轻量级的软中断机制用于处理比软中断更简单的延迟任务。它本质上是一个与中断相关联的延迟执行函数。 使用场景适用于需要在中断上下文中执行的复杂任务但这些任务的执行时间不能过长且不依赖于系统调度。 实现方式任务队列是由内核提供的一个高效的机制用于在软中断上下文中延迟执行任务。 特点 任务队列函数执行时不会进行进程上下文的切换且执行时不会阻塞其他任务。 它是单线程的一个任务队列的任务执行期间不会被其他任务打断。 任务队列是按优先级执行的可以通过 tasklet_schedule() 和 tasklet_hi_schedule() 来调度任务。 static void my_tasklet_func(unsigned long data) {// 处理延迟任务 }DECLARE_TASKLET(my_tasklet, my_tasklet_func, 0);void my_interrupt_handler(int irq, void *dev_id) {// 在中断中调度任务tasklet_schedule(my_tasklet); }3. 工作队列Work Queues 工作队列是内核提供的机制它允许在进程上下文中执行任务。工作队列比任务队列更灵活可以执行复杂的任务比如内存分配、文件系统操作或其他系统调用。 使用场景适用于需要执行较长时间的任务并且这些任务涉及到进程上下文的操作例如内存分配、文件系统访问等。 实现方式工作队列可以将任务延迟到调度程序的上下文中执行因此可以进行较复杂的操作。工作队列有两种形式普通工作队列和高优先级工作队列后者通常用于需要快速响应的任务。 特点 工作队列允许执行阻塞操作因此适用于需要进程上下文的任务。 可以在进程上下文中执行可以执行进程调度、内存分配等操作。 工作队列的调度是由内核调度器进行管理支持多任务并发执行。 struct work_struct my_work;void my_work_function(struct work_struct *work) {// 处理复杂任务 }INIT_WORK(my_work, my_work_function);void my_interrupt_handler(int irq, void *dev_id) {// 在中断中调度工作队列schedule_work(my_work); }机制描述适用场景特点软中断Soft IRQ在硬中断之后由内核调度执行适用于中断后需要处理的简单任务。网络协议处理、定时任务等实时性较高但任务较为简单不涉及进程上下文。任务队列Tasklet延迟执行的中断任务用于硬中断后的延迟任务处理具有优先级。需要在中断上下文中执行的复杂任务不能过长。轻量级、中断上下文执行、任务队列具有较高优先级。工作队列Work Queue延迟执行的任务在进程上下文中执行可以进行进程调度和阻塞操作。复杂任务、涉及内存分配、文件系统操作等支持阻塞操作、进程上下文、适合长时间运行的任务。 4.linux中断的响应执行流程中断的申请何时执行何时执行中断处理函数 中断的响应流程:cpu接受中断-保存中断上下文跳转到中断处理历程-执行中断上半部-执行中断下半部-恢复中断上下文。 中断的申请request irq的正确位置:应该是在第一次打开、硬件被告知终端之前。
http://www.w-s-a.com/news/525780/

相关文章:

  • .name后缀的网站做房产网站多少钱
  • 手机上传网站源码网站app封装怎么做
  • 做的网站放在阿里云网站建设投标书范本
  • 做文化传播公司网站wordpress仿简书
  • 什么网站有题目做西宁网站制作哪里好
  • 网站上添加图片的原则优易主机 wordpress
  • 用php做的网站源代码那里有做像美团的网站的
  • 网站建设百科有什么做兼职的网站
  • 创造网站电商网站建设方案道客巴巴
  • 南通设计网站建设wordpress时光轴
  • 郑州做网站企起网站建设 风险
  • 北京市保障性住房建设投资中心网站6大连广告设计与制作公司
  • 建站之星网站模板国内f型网页布局的网站
  • 怎么做网站关键词优化外贸网站 开源
  • 广东公司响应式网站建设设计seo系统是什么
  • 清丰网站建设费用网站建设的前途
  • 网站上那些兼职网页怎么做的北京网页
  • 桂林建站平台哪家好品牌设计公司宣传文案
  • 平面设计和建设网站的区别公司官网静态
  • h5网站建设+案例住房住房和城乡建设部网站
  • 建设股公司网站东莞建设网网上平台
  • 湖州吴兴建设局网站加强网站建设的
  • 茌平做网站公司专业商城网站建设报价
  • 网站结构图怎么画wordpress注册不发送件
  • 个人备案网站可以做论坛吗电商推广方式有哪些
  • 网站建设 自适应国内最近的新闻
  • 校园网站开发背景吴江网站建设公司
  • 网站开发工程师发展趋势山东省建设工程电子信息网站
  • 适合大学生创业的网站建设类型吉林省舒兰市建设银行网站
  • 呼和浩特网站建设哪家好培训学校加盟费用