zoukankan      html  css  js  c++  java
  • 硬件中断和软件中断以及中断与函数调用的区别

    《汇编语言程序设计》Richard Blum著:6.2.3中断

     

    中断有两种形式:

    (1)硬件中断;

    (2)软件中断。

     

    硬件设备生成硬件中断。

    使用硬件中断发出信号,表示硬件层发生的事件(比如I/O端口接收到输入信号时)。

     

    程序生成软件中断。

    它们是把控制交给另一个程序的信号。

     

    当一个程序被中断调用时,发出调用的程序暂停,被调用的程序接替它运行。指令指针被转移到被调用的程序,并且从被调用的程序内继续执行。被调用的程序完成时,它可以把控制返回给发出调用的程序(使用中断返回指令)。

     

    软件中断是操作系统提供的,使应用程序可以使用操作系统内的函数,并且,在某些情况下,甚至可以接触底层的BIOS系统。在Microsoft DOS操作系统中,为很多函数提供了0x21软件中断。在Linux领域,0x80中断用于提供低级内核函数。

     

     

    http://blog.sina.com.cn/s/blog_913c070a0100zse4.html

    中断:

    1)何时发生可能是不可预料的;CPU正在处理某件事情的时候,外部发生的某一事件(如一个电平的变化,一个脉冲沿的发生或定时器计数溢出等)请求CPU迅速去处理,于是CPU暂时中止当前的工作,转去处理所发生的事件。中断服务处理完该事件以后,再回到原来被中止的地方继续原来的工作

    2)对于可剥夺型内核,完成中断调度后,不是立刻返回原来的执行点执行,而是回到就绪态优先级最高的任务开始运行。

    3)没有返回值;

    4)不能传递参数。

     

    函数:

    1)何时发生是可预料的;

    2)完成函数调度后会返回到原来的代码片段继续执行;

    3)有返回值;

    4)能传递参数。

     

    相同点:

    1)在执行调度之前,都保存现场;

    2)都是调用一个subcode。

  • 相关阅读:
    jar命令打jar包
    kafka的一些参数
    fastdfs-nginx-module-master的一些奇怪的特点
    nginx 禁止恶意域名解析
    tcpdump抓包vrrp
    gitlab提交代码
    [Data]Segment Tree
    [Data]FHQ treap
    [Data]带修改的主席树[树状数组套主席树]
    [Data]可持久化线段树-主席树
  • 原文地址:https://www.cnblogs.com/nufangrensheng/p/3895591.html
Copyright © 2011-2022 走看看