文章目录
程序中断方式完整流程
首先CPU通过执行IO指令来启动外部设备,此时外部设备可以开始做准备工作了(准备CPU想要的数据或者信息),在外部设备准备过程中,CPU可以继续执行原程序的内容
当IO设备完成工作后,会给CPU发送一个中断请求表示自己准备工作已经完成,此时对应刚刚执行完的指令为K,当中断处理完返回到K+1的指令
中断处理程序中还包括让其IO设备继续恢复工作(例如要输出n个字符时,此时如果是一个一个字符发起中断,那么中断处理程序还需恢复IO设备的工作或者说继续执行之前的IO指令,因为它还没执行完),及让外设准备下一个数据
例题
CPI是clock per instruction,是每条指令需要的平均时钟周期
中断响应其实可以理解为中断隐指令,可以理解为CPU为响应中断做的一些关于准备要执行中断处理程序的准备工作
此时先要启动D工作,然后到D将字符送入IO端口,然后再申请中断,接着中断响应,然后进行中断服务程序
小结
程序中断方式的完整流程主要包括以下几个步骤:
-
中断源发出中断请求。中断源可以是硬件设备(如键盘、鼠标、定时器等)或软件(如系统调用、异常处理等)。
-
判断当前处理机是否允许中断和该中断源是否被屏蔽。这是为了防止不必要的中断干扰CPU的正常工作。
-
优先权排队。如果有多个中断同时发生,需要根据预先设定的优先级来决定先处理哪一个中断。
-
处理机执行完当前指令或当前指令无法执行完,则立即停止当前程序,保护断点地址和处理机当前状态,转入相应的中断服务程序。这是中断响应阶段,包括保存现场和跳转到中断服务程序的入口地址。
-
执行中断服务程序。在这个阶段,CPU会对接收到的中断进行处理,比如设备驱动程序的执行、用户进程的管理等。
-
返回原程序继续执行。中断处理完毕后,CPU会返回到原来被中断的地方,继续执行原来的程序。