`
wx1568520008
  • 浏览: 20456 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Linux的中断机制

 
阅读更多

1.中断概念

    中断是指在CPU正常运行期间,由于内外部事件或由程序预先安排的事件引起的CPU暂时停止正在运行的程序,转而为该内部或外部事件或预先安排的事件服务的程序中去,服务完毕后再返回去继续运行被暂时中断的程序。Linux中通常分为外部中断(又叫硬件中断)和内部中断(又叫异常)。

    在实地址模式中,CPU把内存中从0开始的1KB空间作为一个中断向量表。表中的每一项占4个字节。但是在保护模式中,有这4个字节的表项构成的中断向量表不满足实际需求,于是根据反映模式切换的信息和偏移量的足够使得中断向量表的表项由8个字节组成,而中断向量表也叫做了中断描述符表(IDT)。在CPU中增加了一个用来描述中断描述符表寄存器(IDTR),用来保存中断描述符表的起始地址。

2. Linux中断处理

  2.1 系统中断号

  由上述中断定义可知,系统中断向量表中共可保存256个中断向量入口,即IDT中包含的256个中断描述符(对应256个中断向量)。

  而0-31号中断向量被intel公司保留用来处理异常事件,不能另作它用。对这 0-31号中断向量,操作系统只需提供异常的处理程序,当产生一个异常时,处理机就会自动把控制转移到相应的处理程序的入口,运行相应的处理程序;而事实 上,对于这32个处理异常的中断向量,2.6版本的 Linux只提供了0-17号中断向量的处理程序,其对应处理程序参见下表、中断向量和异常事件对应表;也就是说,17-31号中断向量是空着未用的。

0ef02b35596f91bfd734808a3c40a1e773f.jpg

  

      0-31号中断向量已被保留,那么剩下32-255共224个中断向量可用。 这224个中断向量又是怎么分配的呢?2.6版本的Linux中,除了0x80 (SYSCALL_VECTOR)用作系统调用总入口之外,其他都用在外部硬件中断源上,其中包括可编程中断控制器8259A的15个irq;事实上,当 没有定义CONFIG_X86_IO_APIC时,其他223(除0x80外)个中断向量,只利用了从32号开始的15个,其它208个空着未用。

2.2 中断请求

  2.2.1 中断请求概述

  外部设备当需要操作系统做相关的事情的时候,会产生相应的中断。

  设备通过相应的中断线向中断控制器发送高电平以产生中断信号,而操作系统则会从中断控制器的状态位取得那根中断线上产生的中断。而且只有在设备在对某一条中断线拥有控制权,才可以向这条中断线上发送信号。也由于现在的外设越来越多,中断线又是很宝贵的资源不可能被一一对应。因此在使用中断线前,就得对相应的中断线进行申请。无论采用共享中断方式还是独占一个中断,申请过程都是先讲所有的中断线进行扫描,得出哪些没有别占用,从其中选择一个作为该设备的IRQ。其次,通过中断申请函数申请相应的IRQ。最后,根据申请结果查看中断是否能够被执行。

 

转载于:https://my.oschina.net/u/4167465/blog/3083194

分享到:
评论

相关推荐

    ARM LINUX中断机制分析

    ### ARM Linux中断机制详解 #### 一、引言 ARM Linux中断机制是嵌入式系统设计中的核心组成部分,尤其对于初学者来说理解这部分内容至关重要。本文档基于AT91SAM9260EK开发板,深入探讨了ARM Linux中断机制的关键...

    linux中断机制.pdf

    Linux中断机制是操作系统中用来响应和处理硬件设备事件的机制,Linux内核通过一系列的机制实现了对中断的高效管理与响应。本文将详细解读Linux中断机制的相关知识点,涵盖中断描述符、中断芯片以及中断处理过程等...

    Linux中断机制分析

    ### Linux中断机制分析 #### 一、概述 Linux操作系统中的中断机制是其核心功能之一,负责处理硬件设备发送来的中断信号,并确保系统能够正确响应这些中断。本文将深入探讨Linux中断机制的基本原理及其在Linux系统...

    你真的理解Linux中断机制嘛.pdf

    Linux 中断机制 Linux 中断机制是一种异步的事件处理机制,可以提高系统的并发处理能力。中断机制可以分为硬中断和软中断两种类型。硬中断是由硬件产生的,比如磁盘、网卡、键盘、时钟等,每个设备或设备集都有它...

    磁盘阵列环境下Linux中断机制的改进与测量.pdf

    【磁盘阵列环境下Linux中断机制的改进与测量】 在嵌入式系统和实时操作系统领域,Linux因其开源特性而被广泛应用。然而,由于其继承了UNIX的分时系统设计,存在中断响应速度慢和中断处理时间开销大的问题。在高要求...

    linux中断机制[参照].pdf

    Linux中断机制是操作系统核心与硬件交互的关键组成部分,特别是在嵌入式系统如ARM Linux中,中断处理的效率和正确性直接影响到系统的实时性和稳定性。本文主要分析了ARM Linux中断机制的数据结构、处理流程以及相关...

    Linux内核的中断机制

    ### Linux内核的中断机制详解 #### 一、概述 中断是计算机系统中非常重要的一个概念,它使得CPU能够响应外部设备的请求并作出相应的处理。对于操作系统而言,特别是像Linux这样的多任务操作系统,中断机制的设计...

    深入剖析Linux中断机制

    【摘要】本文详解了 Linux 内核的中断实现机制。首先介绍了中断的一些基本概念,然后分 析了面向对象的 Linux 中断的组织形式、三种主要数据结构及其之间的关系。随后介绍了 Linux 处理异常和中断的...这就是中断机制。

    arm linux中断机制分析 at91sam9260

    ### ARM Linux AT91SAM9260 中断机制深入解析 #### 一、中断机制概览 在ARM Linux系统中,尤其是针对AT91SAM9260平台,中断处理机制是操作系统与硬件交互的关键部分,负责管理硬件中断请求,并将这些请求转化为...

    Linux中断响应机制

    Linux中断响应机制是操作系统核心的重要组成部分,它负责处理硬件设备发送的中断请求,确保系统能够及时、有效地响应外部事件。本文将深入解析Linux中断响应机制的原理和流程。 早期的中断响应机制简单直接,CPU...

    Linux中断与异常编程技术.doc

    Linux中断机制是指操作系统在遇到中断事件时,如何处理和响应的机制。中断事件可以是硬件中断、软件中断或异常事件。在Linux中,中断机制可以分为两类:硬件中断和软件中断。 * 硬件中断:由硬件设备引发的中断事件...

    LINUX irq中断机制介绍.docx

    通过上述分析,我们可以看出Linux中断机制的设计是非常细致且高效的。中断上半部负责快速响应硬件中断并进行必要的硬件处理,而中断下半部则负责处理那些不影响硬件状态的任务。此外,软中断和Tasklet提供了灵活的...

    Linux内核中断机制

    ### Linux内核中断机制——时钟中断与动态定时器机制详解 #### 一、引言 在现代操作系统中,中断机制是实现系统高效管理和响应外部事件的关键技术之一。Linux作为一款广泛使用的开源操作系统,其内核中断机制尤其受...

Global site tag (gtag.js) - Google Analytics