中断是指CPU在执行某种操作时,根据外界设备的请求或者内部软件的需要,主动地暂时中止所执行的指令序列,转而去执行一个中断处理程序,并在处理完毕后,继续原来所执行的指令序列。
中断周期是中断处理程序的执行过程,主要包括中断响应、中断处理、中断返回三个阶段。中断响应是当中断请求到来时,CPU保存当前执行的指令位置和程序状态,并进入中断处理程序的入口;中断处理是具体的中断处理操作,包括响应中断、检查中断源、保存现场、处理中断等;中断返回是指中断处理程序执行完毕后,CPU从中断处理程序返回到原来被中断的程序执行状态,恢复现场并继续原来的执行。
中断周期后的状态可以分为两种,分别是恢复原状态和执行新任务。
当中断处理程序执行完毕后,CPU需要将之前保留的现场恢复,回到原来中断被触发前的执行状态。这个过程叫做中断返回。
中断返回时需要执行以下步骤:
在中断处理过程中,如果发现某个任务需要优先级更高的处理,则可以在中断处理程序的末尾加入新任务的处理。当中断处理程序执行完毕后,CPU就直接进入了新任务的执行状态。
执行新任务时需要注意以下几点:
中断周期会对系统的执行效率和稳定性产生一定的影响。
中断的处理过程是一种时间上的浪费,因为CPU需要暂停原来的任务执行,在中断处理程序中处理中断请求,然后再从中断处理程序返回原来的任务执行。这种来回切换的过程会浪费一定的时间。如果中断频率过高或者中断处理程序复杂度太高,会导致系统执行效率的下降。
另外,新任务的插入可能会破坏原有的任务调度机制,导致任务执行优先级的混乱,进而影响系统稳定性。