专栏首页用户画像程序中断和调用子程序有何区别

程序中断和调用子程序有何区别

两者的根本区别表现在服务时间和服务对象上不一样。

1)调用子程序发生的时间是已知的和固定的,即在主程序的调用指令(CALL)执行时发生主程序调用子程序过程,调用指令所在位置是已知的和固定的;而中断过程发生的时间一般是随机的,CPU在执行某一主程序时受到中断源提出的中断申请,就发生中断过程,而中断申请一般由硬件电路产生,申请时间是随机的。也可以说,调用子程序是程序设计者事先安排好的,而执行中断服务程序是由系统工作环境随机决定的。

2)子程序完全为主程序服务,两者属于主从关系。主程序需要子程序时就去调用子程序,并把调用结果带回主程序继续执行。而中断服务程序与主程序二者一般是无关的,两者是平行关系。

3)主程序调用子程序的过程完全属于软件处理过程,不需要专门的硬件电路,而中断处理系统是一个软、硬件结合的系统,需要专门的硬件电路才能完成中断处理的过程。

4)子程序嵌套可以实现若干级,嵌套的最多级数受计算机内存开辟的堆栈大小限制;而中断嵌套级数主要由中断优先级来决定,一般优先级不会很大。

从宏观上看,虽然程序中断方式克服了程序查询方式中CPU"踏步"现象,实现了CPU与IO并行工作,提高了CPU的资源利用率,但从微观操作分析,CPU在处理中断程序时,仍需暂停原程序的正常运行,尤其是当高速I/O设备或辅助存储器频繁地、成批地与主存交换信息时,需不断打断CPU执行现行程序,而执行中断服务程序。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 5.1.2 I/O控制方式

    设备管理的主要任务之一是控制设备和内存或处理器之间的数据传送,外围设备和内存之间的输入输出控制方式有四种。

    week
  • linux安装Tomcat指定JDK

    week
  • MAC Python IDLE中文

    启动IDLE,提示The version of Tcl/Tk (8.5.9) in use may be unstable

    week
  • 让AI自动修复程序中的bug:微软亚洲研究院新研究 | 附论文

    李林 编译自 微软官方博客 量子位 报道 | 公众号 QbitAI ? 人工智能完全学会自己编程,可能说起来还有一种科幻感,但AI帮程序员找bug这件事,已经达...

    量子位
  • 【Vue原理】Slot - 源码版之普通插槽

    今天我们来解读Slot 的源码啦。我们都知道 Slot 分为 普通Slot 和 作用域Slot,两个内容都很多,所以分两部分进行讲述。

    神仙朱
  • OCP-052考试题库汇总(52)-CUUG内部解答版

    Your DB_RECOVERY_FILE_DEST_SIZE IS 8G,Currently,5G of the space is used of which...

    用户5892232
  • python语言的自学之路3

    方法区别在于,当多次使用相同的匹配规则时,方法2由于compile已经缓存了匹配规则,所以执行多次的效率高于方法1.

    py3study
  • iOS开发——头像设置及本地沙盒保存,圆形头像显示

    现在的APP中,对于头像的设置,我们大多采用圆形头像,并且需要支持从照相机获取或者从相册中选择用户需要的头像,并且保存在本地或者服务器中。

    Originalee
  • PHP计算两个经纬度地点之间的距离

    function getdistance($lng1, $lat1, $lng2, $lat2) {

    lin_zone
  • JS数据结构第三篇---双向链表和循环链表之约瑟夫问题

    在上文《JS数据结构第二篇---链表》中描述的是单向链表。单向链表是指每个节点都存有指向下一个节点的地址,双向链表则是在单向链表的基础上,给每个节点增加一个指向...

    tandaxia

扫码关注云+社区

领取腾讯云代金券