LinuxZone

LinuxZone.net
Linux系统网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

现代CPU工作方式中重要的部分

2023年5月5日 144点热度

中断是现代CPU工作方法中重要的部份。诸如:当你每次在按键上按下一个按钮后,CPU会被中断以促使PC读取用户按键的输入。这个过程发生得相当快,因而于在使用体验上你不会倍感任何变化或损害。

据悉,按键并不是造成中断的惟一组件。通常来说linux 虚拟主机,有三种类型的风波会造成CPU发生中断:硬件中断、软件中断和异常。在具体介绍不同类型的中断前linux系统中断,我须要先定义一些术语。

Linux 内核处理中断全过程解析

定义

中断恳求(IRQ)是由可编程的中断控制器(PIC)发起的,其目的是为了中断CPU和执行中断服务程序(ISR)。中断服务程序(ISR)是一个小的程序linux find,拿来处理具体的数据,其具体的处理方法依赖于导致中断恳求(IRQ)的诱因。之前正在运行的进程在中断服务程序(ISR)运行结束前就会被中断。

在过去,中断恳求由单独的芯片处理(中断控制器芯片PIC),I/O设备直接与中断控制器(PIC)相连。中断控制器(PIC)管理着多种硬件的中断恳求(IRQ),而且可以直接与CPU通讯。当一个中断恳求(IRQ)形成后,中断控制器(PIC)向CPU写入数据,但是触发中断恳求引脚(INTR)。

现现在,中断恳求(IRQ)由CPU中的中级可编程中断控制器advancedprogrammableinterruptcontroller(APIC)部份来处理。每位核中都拥有属于自己的中级可编程中断控制器。

中断的类型

正如我前文中提及的,中断可以按照其来源分为三种类型。

硬件中断

当一个硬件设备想要告诉CPU某一须要处理的数据早已打算好后(比如:当按键被按下或则一个数据包到了网路插口处),它将会发送一个中断恳求(IRQ)来告诉CPU数据是可用的。接出来会调用在内核启动时设备驱动注册的对应的中断服务程序(ISR)。

软件中断

当你在播放一个视频时,音频和视频是同步播放是相当重要的,这样音乐的速率才不会变化。这是由软件中断实现的,由精确的计时器系统(称为jiffies)重复发起的。这个计时器会促使你的音乐播放器同步。软件中断也可以被特殊的指令所调用,来读取或写入数据到硬件设备。

当系统须要实时性时(比如在工业应用中)linux系统中断,软件中断会显得重要。你可以在Linux基金会的文章中找到更多相关信息:面向嵌入式开发者的实时Linux介绍。

异常

异常exception是你可能之前就晓得的中断类型。当CPU执行一些将会造成除零或缺页错误的指令时,任何其他运行中的程序就会被中断。在这些情况下,你会被一个弹窗提醒,或在控制台输出中见到**段错误segmentationfault(核心已轮询coredumped)**。但并不是所有异常都是由指令错误导致的。

异常可以进一步分为错误Fault、陷阱Trap和中止Abort。

动手实践

中断恳求根据中级可编程中断控制器(APIC)中的优先级高低排序(0是最高优先级)。前32个中断(0~31)是由CPU指定的固定序列。你可以在OsDev异常页面找到关于它们的概述。此后的中断恳求可以以不同的形式进行分配。中断描述表interruptdescriptortable(IDT)中记录了中断恳求(IRQ)和中断服务程序(ISR)的对应关系。Linux中定义了从0到256的IRQ向量。

为了复印出在你的系统中已注册的中断,打开一个终端并输入:

cat /proc/interrupts

你应当会见到类似如右图的结果:

内核版本为5.6.6中注册的中断(StephanAvenwedde,CCBY-SA4.0)

从左到右各列的涵义依次为:中断向量号、每个CPU(0~n)中断发生次数、硬件来源、硬件源通道信息、以及导致中断恳求的设备名。

在表的末尾,有一些非数字的中断。它们是特定于体系结构的中断,如本地计时器中断localtimerinterrupt(LOC)的中断恳求(IRQ)号为236。其中一些在Linux内核源树中的LinuxIRQ向量布局手指定。

特定于体系结构的中断(StephanAvenwedde,CCBY-SA4.0)

假如要实时获取该表,请运行如下命令:

linux定时器中断_linux系统中断_linux 中断程序设计

watch -n1 "cat /proc/interrupts"

总结

正确的中断恳求(IRQ)处理对于硬件、驱动和软件的正常交互是必要的。辛运地是,Linux内核挺好地完成了它,一个PC的普通用户几乎不会注意到内核的整个中断处理过程。

中断相当复杂,本文仅仅是一个关于中断的概述。假如想要深入了解该主题可以阅读LinuxInside电子书(CCBY-NC-SA4.0)和Linux内核教程库房。

{{o.name}}

{{m.name}}

程序员灯塔

转载请标明原文链接:Linux内核处理中断全过程解析

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 中断优先级 中断处理 中断服务程序 工作方式
最后更新:2023年5月5日

Linux系统网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux系统网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
阿里云CentOS6与CentOS8操作系统安装图形化界面 Linux有如下的关机和重启命令:shutdown Linux系统环境变量配置有四个文件分别是: (知识点)Linux重启命令:halt立刻关机 基于命令的网络设备的ifconfig命令和修改文件配置分析 大佬教程:环境变量配置文件中的操作环境生效的 基于RedHatEnterpriseEnterpriseLinux7.x的开源操作系统 Linux路由表设置1.1route命令的基本用法 -7-x86-64-Everything-1908.iso标准安装版(推荐) 中国linux操作系统有哪些思普系统?系系统 Linux系统下使用最广泛的C/C++编译器 Linu下如何升级当前sudo版本至sudo-1.8.31 (教程)如何在Linux下运行C语言程序 SteamDeck将于2021年12月发货的掌上电脑 Linux中,运行一个C语言程序如何运行? 编译Linux内核,为何不自己动手? Linux系统下运行C语言程序 将Linux代码移植至Windows:简单实用的教程 Linux内核开发的关键要点 最小化安装与图形化界面的配置步骤及配置
Linux启动流程启动的几种常见问题及解决办法Linux下使用vim编辑C程序的基本步骤和方法企业版linux系统预置策略,创建一个新的策略组Linux内核官方网站下载最新内核2.6.22版本Linux终端中遇到中文乱码问题的解决方法及解决办法我个人的Python编程经历,这些也许会对你未来的工作有所帮助Linux下的其它服务都可以用以上执行开启和关闭操作调查数据显示Python成为世界上最热门的编程语言了linux系统里添加了一块网卡后,怎么办?如何成为正义黑客(EthicalHacker),你应该学习如何用c编程(知识点)shell脚本脚本方案玩蛇网Python之家图文教程和视频教程中的Python扫描器如何安装和配置Chrony,更快的同步系统时钟?说明书一种智能家居多级控制系统技术领域(0001)编程语言不是黑客,是因为你不懂这些!米尔游网:CanonicalCore和Matter将推出智能家居通用标准Matter从硬盘安装Linux操作系统方法,关键要学会两点!1Linux的发展和特点、C语言的基础知识Linux系统输入账号密码之后怎么进入纯命令行界面?如何使用硬盘安装linux系统?系统安装的过程吧
nvidia发布新版linux系统显卡驱动程序支持、freebsd等 怎么分辨手机是否有操作系统主流的智能手机有塞班 创建存储分区——检查是否激活2.对磁盘进行分区 linux开发 电脑配置 人生苦短,我用Python!(Python) 树莓.Wang树莓派400概观蓝牙5.0评测:4GB内存 如何使用Linux修改文件名命令?命令解决办法! (Linux基础知识)shell+history方式设置远程执行命令 Linux有如下的关机和重启命令:shutdown (伶回合)Linux常用命令-1.2文件处理命令写 Linux系统中切换中文的常用方法及回答步骤详解! Linux系统版本的方法及查看issue版本信息的教程 Linuxftp命令的详细讲解,你了解多少? vmware虚拟机安装centos7的教程,vmware7的安装教程 常见的Linux磁盘管理命令-Linux基础知识管理 linux系统拿来做什么 阿塔那索夫领导发明的ABC计算机,死得很惨,只因他是同性恋 草根分享用U盘安装深度系统(Linux)的教程 嵌入式Linux驱动程序与系统开发的方法与流程 「职位」上海自主智能无人系统科学中心工程师招聘 6.5安装分区:总共三个//sawp和/boot 计划任务(机器开机):让系统自动执行的命令
标签聚合
内核 操作 命令 应用 目录 文件目录 linux服务器 脚本 文件 linux系统
书籍
课程
技术群
技术干货大合集↓
  • 2023年9月 / 88篇
  • 2023年8月 / 92篇
  • 2023年7月 / 96篇
  • 2023年6月 / 91篇
  • 2023年5月 / 93篇
  • 2023年4月 / 91篇
  • 2023年3月 / 69篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源 | Linux系统

COPYRIGHT © 2023 LinuxZone.net ALL RIGHTS RESERVED.