标签:调用 操作系统 中断 系统 响应 指令 continued CPU
1 概述
多道程序同时计算
-
原因:
- CPU速度与I/O速度不匹配的矛盾,非常突出
- 只有让多道程序同时进入内存争抢CPU运行,才可以使得CPU和外围设备充分并行,从而提高计算机系统的使用效率
-
示例:
-
实现:
- 为进入内存执行的程序建立管理实体:进程
- OS控制进程执行和资源的调度
- 如何让正在运行的程序让出CPU:中断(中断正在执行的程序,引入OS处理),中断是激活CPU的唯一手段,启动等也属于中断
系统调用
-
概念:
- 系统调用是操作系统的程序接口,为所有运行程序提供访问操作系统的接口。它是操作系统完成某种特定功能的过程。
-
实现:
- 陷入处理机制:控制和实现系统调用的机制
- 需设计一张系统调用入口地址表,每个入口地址指向一个系统调用的处理程序,并包含系统调用自带参数的个数
- 需开辟现场保护区,以保存发生系统调用时的处理器现场
- 陷入指令:异常中断指令,为实现系统调用而引起处理器中断的指令
- 每个系统调用都事先规定了编号,并在约定寄存器中规定了传递给内部处理程序的参数
- 陷入处理机制:控制和实现系统调用的机制
2 处理器管理1 中断
指令执行过程
- 取指:CPU根据PC从存储取出机器指令放入IR
- 解码:IR解译指令
- 执行:连接CPU控制单元和算术逻辑单元,执行指令
程序状态字PSW
- PSW,指一个或一组控制与状态寄存器,保存当前程序运行的动态信息,比如PC、IR、中断字、中断屏蔽、处理器模式等
用户态与内核态
- 设计的处理器模式,用来实现特权指令管理
- 内核态可以执行全部指令,用户态只能执行非特权指令。特权指令如置PC寄存器、启动I/O指令
- \(用户态 \stackrel{中断、异常、系统异常}{\rightarrow} 内核态\)
- \(内核态 \stackrel{内核处理完成,调用中断返回指令}{\rightarrow} 用户态\)
中断概念
- 广义中断概念:
- 暂时停止当前CPU上运行的程序。然后处理中断事件。处理完返回被中断处,或根据中断优先级调度其他程序。
- 狭义中断、异常、系统异常都属于广义中断。
- 中断、异常、系统异常:
- 狭义中断,指来源于处理器之外的中断事件,即与当前运行指令无关的中断事件,如I/O中断、外部信号中断等。这种情况要保存并恢复上下文环境。
- 异常,指当前运行指令引起的中断事件,如地址异常、算术异常(比如除数为0)
- 系统异常,触发系统调用引起的中断事件,如请求设备、请求I/O、创建进程等。系统异常可视为异常的一类
中断系统
-
中断响应(硬件完成) + 中断处理(软件完成)
-
中断响应:
-
在指令执行周期最后增加一个微操作,以响应中断。
-
过程:
- 发现中断源,决定是否中断屏蔽。当有多个要响应的中断源时,按规定的优先级选择。
- 中断当前程序的执行,保存当前程序的PSW到核心栈
- 转向操作系统的中断处理程序
-
-
中断处理:
- 过程:
- 处理中断事件
- 恢复正常操作(内核态 --> 用户态)
- 过程:
-
中断系统处理流程:
- 中断码:PSW中字段,可用来分析被中断程序的中断源
- 交换新旧PSW:把当前被中断的程序的PSW/PC记录下来,同时把操作系统内核程序的PC置到PC寄存器中,使得内核程序占有处理器运行。
多中断响应与处理
-
中断屏蔽
- 有选择的响应中断,中断装置通过中断屏蔽位决定是否响应已发生的中断
-
中断优先级
- 多个中断,根据中断优先级响应一个中断事件
-
中断的嵌套处理
- 当计算机响应中断后,在中断处理过程中,可以再响应其他中断
- 中断的嵌套处理改变中断处理次序,先响应的有可能后处理
标签:调用,操作系统,中断,系统,响应,指令,continued,CPU 来源: https://www.cnblogs.com/iterationjia/p/16170800.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。