(8)操作系统--中断一

中断与中断系统

操作系统是中断驱动的!
Interrupt driven

处理机在运行过程中,出现了某一事件,必须暂停正在运行的程序,转去处理这个事件,然后再返回原来运行的程序,这一过程称为中断。

中断系统:
中断装置(硬件)
中断处理程序(软件)
发现并响应中断的硬件机构
识别中断源,当有多个中断源时,按紧迫程度排队;
保存现场;
引出中断处理程序。

中断源
中断寄存器
中断字:中断寄存器的内容
中断向量:中断处理程序的运行环境与入口地址PSW,PC,os中有一个中断向量表

强迫性中断
运行程序非预期的
时钟中断
IO中断
控制台中断
硬件故障中断
power failure
内存校验错
程序性中断
越界,越权
缺页,缺段
溢出,除0
非法指令

自愿性中断
运行程序期望的
系统调用
访管指令
系统调用
fd=open(fname,mode)
访管指令
准备参数:把参数放在寄存器和用户栈
svc(supervisorcall)访管 n
取返回值

中断嵌套与处理过程

中断优先级:
硬件规定的中断响应次序,依据:
紧迫程度;
处理时间。

中断屏蔽:
高优先级中断事件处理不受低优先级中断打扰;
程序调整中断响应次序。

在目态运行的时候,系统栈是空的

强迫性中断(嵌套从管态,非嵌套从目态)
关中断,保存现场,取中断字,分析中断原因

自愿性中断(非嵌套):
关中断
进一步保存现场到系统栈
取调用号
分析何种系统调用

扫描二维码关注公众号,回复: 10081703 查看本文章

在这里插入图片描述

终止:
收回资源,撤销PCB
选择上升进程
由PCB恢复上升进程现场

等待:保存下降进程现场到PCB
选择上升进程
由PCB恢复上升进程现场
处于核心态关于等待
何时等待?
处于核心态,无嵌套中断或有嵌套中断
等待几次?
可能多次
什么级别现场?
核心级别现场
等待时系统栈如何?
栈底是目态现场,然后是嵌套函数的返回点、参数、局部变量、返回值;
如有嵌套,接下来是核心现场,然后是嵌套函数的返回点、参数、局部变量、返回值;(可能多重)

用户级别的现场保存在系统栈中,核心级别现场保存在下降的PCB中

发布了133 篇原创文章 · 获赞 11 · 访问量 2923

猜你喜欢

转载自blog.csdn.net/qq_43410618/article/details/104803055