zoukankan      html  css  js  c++  java
  • 中断高深吗?不!和我一起了解它!(一)

    1.CPU:通过“中断”告诉我你已经准备好了!
    电脑发展到今天,CPU的速度一直远远超越各种电脑设备的速度,这样它们之间就存在了非常大的速度矛盾,如果CPU在给某个设备下达指令后,还要等待它启动和准备数据,那么会浪费很多时间。因此,科学家设计了“中断”功能,有了它,就可以使CPU和外设同时工作,CPU根据用户需要在启动相应外设工作后,继续执行正在进行数据处理,同时外设也在工作,当外设把数据准备好后,就会向CPU发送信号,请求CPU中断它正在处理的工作,然后执行一段专为这个设备编写的程序,将该设备的数据转换为相应操作,这个请求过程就叫“中断请求”(IRQ:Interrupt ReQuest),而这个信号就是“中断请求信号”(Interrupt ReQuest Signal)。而我们所看到的IRQ后面跟着的数字则表示CPU要执行哪个中断程序,比如:键盘使用的是IRQ 1,硬盘控制器使用的是IRQ 14。
     
    实例:举个形象的例子,比如你的爱人(CPU)正看影碟,快到6点时,她准备做饭,但突然想起来酱油没了,于是让你(设备,接收来自CPU的指令)到超市买一瓶,然后自己继续看影碟,当你买回酱油并交给她(中断请求),她会暂停影碟播放(停止正在处理的工作),到厨房做饭。等做完并吃完饭后,她又继续将没有看完的影碟看完。
     
    有了上面的理解,我们可以将过程讲解得再详细一些,Windows启动时,每个设备都会被分配一个中断,用于操作系统和CPU便于与设备进行通讯,比如:声卡一般会分配到IRQ 5,这样,当CPU要求声卡播放音乐时,那么就会向IRQ 5发送命令,声卡马上开始工作,当准备工作完成后,它就会向CPU发送准备完毕的中断信号,CPU于是停止手头的工作来处理声卡发送的数据,于是音乐便响起了。
     
    2.CPU:一大堆“中断请求”来了,我该怎么办?
    如果多个设备同时发送了“中断请求信号”,那肯定得有个主次和轻重缓急之分,所以在设备的“中断请求信号”到达CPU前还要经过一个叫做“中断控制器”的控制芯片(现在大都集成到其他芯片中),它不仅会把设备的“中断请求信号”转换成输送给CPU的信号电平,而且还规定了中断的优先级方案:当某个设备发送一个指定了优先级的中断信号时,控制器就会屏蔽(或限制)由其他设备发往CPU的、优先级小于或等于该设备中断优先级的所有中断信号。
        除了中断优先级方案,中断还有一个比较粗的分类,那就是:可屏蔽中断和不可屏蔽中断(系统最高级别,用户无法对其进行控制),可屏蔽中断意味着CPU可以临时屏蔽或忽略的中断请求,以便继续完成当前任务。而不可屏蔽中断便是直接激活相应的中断处理程序,不能也不会被延误,我们常说的IRQ中断就是可屏蔽的硬件中断。爱好者博墅y"uNT7Q
    小提示
    谁说我能同时处理多个任务?爱好者博墅&Y4Y ~-r E1_~(hgC8r
    可能许多朋友都认为,当前的CPU可以同时处理多个任务,其实这是一个错误的概念,即使是当今最快的CPU也只能在一个时间处理一个任务,只是它处理的速度极快,我们通常感觉不到,所以看上去就像同时能处理多个任务一样。

  • 相关阅读:
    用标签替换的方法生成静态网页
    SQL Server 索引结构及其使用(三、四)(转载)
    SQL server 2000异地备份
    GridView加自动编号列
    SQL Server 索引结构及其使用(一、二)(转载)
    DropDownTreeList
    SQL函数——将一对多关系转换成一对一关系
    动态sql语句基本语法
    kalilinux MSF数据库的连接
    Linux sudo权限绕过(CVE201914287)
  • 原文地址:https://www.cnblogs.com/lumnm/p/2076350.html
Copyright © 2011-2022 走看看