1.3 操作系统运行环境
一、概念
-
操作系统运行机制总览
-
应用程序与内核程序
-
特权指令与非特权指令
-
内核态与用户态
-
CPU在内核态与用户态的切换
-
操作系统运行机制的总结
-
中断和异常总览
-
中断的作用
-
中断的类型
-
内中断的例子
-
外中断的例子
-
中断的分类,总结
-
中断机制的基本原理
-
中断和异常,总结
-
系统调用
-
系统调用的回顾
-
系统调用与库函数的区别
-
系统调用的必要性——协调共享资源分配
-
系统调用的分类
-
系统调用过程
-
系统调用的总结
二、理解
-
用户程序在用户态下要使用特权指令引起的中断是:访管中断
-
中断发生后,进入中断处理的程序是:操作系统程序
-
从核心态到用户态的转换由操作系统完成,而用户态到核心态的转换由硬件完成
-
广义指令(即系统调用的指令运行)只能在核心态运行,而系统调用(即广义指令的调用、入口)发生在用户态,即调用广义指令的指令未必是特权指令
-
中断处理与子程序的区别
-
不同
- 中断处理需要保存程序状态字寄存器的内容,而子程序不用
-
相同:都要保存:程序计数器、通用数据寄存器、通用地址寄存器的内容
-
-
处理外部中断时,操作系统与CPU需要保存的数据
保存内容的原则:保存中断处理程序结束返回后,在原来的程序中还能够用到且一旦丢失无法恢复的内容
一般由硬件负责保存十分关键的数据,操作系统保存有必要的数据
三、技巧
-
操作系统中,只能在核心态运行的指令是:置时钟指令、广义指令(系统调用的执行指令),操作系统核心态工作包括四个方面内容
-
时钟管理
-
中断机制
-
原语
-
系统控制的数据结构及处理(系统调用类的指令,即广义指令)
-
-
运行在核心态与用户态的程序:
-
命令解释程序,即CMD,属于联机命令接口(交互式命令接口),运行在用户态
-
缺页处理程序,用于处理缺页中断,属于OS内核功能的中断处理,运行在核心态
-
进程调度程序,属于OS内核功能的进程管理,运行在核心态,不可能发生在用户态
-
时钟中断处理程序,核心态
-
-
快表TLB、Cache都是对主存内容的复制,如果发生中断,不需要保存
-
广义上的中断可以具体划分为外部中断(即狭义上的中断)和内部中断(即异常),其中跟指令相关的错误是异常,与指令无关的是中断
-
存储保护错,指用户强制访问没有访问权限的存储区域,与指令有关,是异常
-
访存时缺页,指用户在执行程序时,缺少必要的信息,与指令有关,是异常
-
-
中断隐指令由硬件执行,中断服务程序由操作系统执行,此外,操作系统还需要完成的是初始化中断向量表
-
中断处理的过程
-
区分核心态和用户态的原因:区别当前指令是由操作系统执行还是用户应用程序执行
-
中断与多道程序设计