目录
2.1 操作系统逻辑结构
1.逻辑结构
- OS的设计和实现思路
2.逻辑结构的种类
-
整体式结构
以模块为基本范围构建,例:c语言程序
特点:
-
模块设计、编码和调试独立
-
模块调用自由
-
模块通信多以全局变量形式完成
缺点:
- 信息传递随意,维护和更新苦难
-
-
层次式结构
所有功能按照调用次序拍成若干层,相邻层次间只有单向依赖或单向调用 。 例子:TCP/IP协议栈
分层原则:
-
硬件相关——最底层
-
外部特性——最外层
-
中间层——调用次序或消息传递顺序
-
共性的服务——较低层
-
活跃功能——较低层
优点:
- 结构清晰,避免循环调用
- 整体问题局部化,系统的正确性容易保证
- 有利于操作系统的维护、扩充、移植
-
微内核结构(client/server)
-
操作系统=微内核+核外服务器
-
微内核
- 足够小,提供OS最基本的核心功能和服务
-
- 实现与硬件紧密相连的处理
- 实现一些较基本的功能
- 负责客户和服务器间的通信
-
核外服务器
-
完成OS的绝大部分服务功能,等待应用程序提出请求
-
有若干服务器或进程共同构成
如:进程/线程服务器,虚存服务器,设备管理服务器等,以进程形式运行在用户态
-
-
操作系统的微内核结构的优点,对我们设计应用程序有什么启示?
答:设计大规模的应用程序应该保证系统灵活性,仅提供最基本,最必要的服务,体现程序的简洁,体现系统开放性,可以基于微内核开发设计用户自己的新系统,易于保证其正确性,运用系统可扩充性,易于增加或减少一个服务而不需要停止系统和重新引导内核。
2.2 CPU的态
-
支持操作系统的最基本的硬件
-
CPU
-
内存
-
中断
-
时钟
-
-
CPU态(Mode)
-
CPU的工作状态
-
对资源和指令使用权限的描述
-
1.态的分类
-
核态(Kernal mode)
- 能够访问所有资源和执行所有指令
- 管理程序/OS内核
-
用户态(User mode 目态)
-
仅能访问部分资源,其他资源受限
-
用户程序
-
-
管态(Supervisor mode)
- 介于核态和用户态之间
2.用户态和核态之间的转换
-
用户态向核态转换
- 用户请求OS提供服务
- 发生中断
- 用户进程产生错误(内部中断)
- 用户态企图执行特权指令
-
核态向用户态转换的情形
- 一般是执行中断返回:IRET
3.硬件和OS对CPU的观察
-
硬件按“态”来区分CPU的状态
-
OS按“进程”来区分CPU的状态
-
Intel CPU的态
- Ring0 ~ Ring3 (Ring0最核心,3最外层)ring=环
- 程序段A访问程序段B时进行权限检查(态),比较RPL和DPL
- 程序段:请求特权级,RPL
- Requested Privilege Level
- RPL=0…3
- 描述符特权级,DPL
- Descriptor Privilege Level
- DDPL=0.3
4.存储程序和数据的部件
分类
-
按存储器(半导体存储器)读写工作方式
◆RAM
◆ROM -
按存储元的材料
◆半导体存储器(常作主存)
◆磁存储器(磁带,磁盘)
◆光存储器(光盘) -
按与CPU的联系
◆主存:直接和CPU交换信息.
◆ 辅存:不能直接和CPU交换信息
存储体系
分级存储系统的工作原理
用户态向内核态转有多种情形(用户请求OS提供服务、发生中断、用户进程产生错误、用户态企图执行特权指令),但是本质上就是一种情形,即通过中断的形式进入。如何理解这句话?
答:系统调用、异常、外围设备的中断是系统在运行时由用户态转到内核态的最主要的3种方式,其中系统调用的本质其实也是中断,相对于外围设备的硬中断,这种中断称为软中断,这是操作系统为用户特别开放的一种中断。所以,从触发方式和效果上来看,这三种切换方式是完全一样的,都相当于是执行了一个中断响应的过程。但是从触发的对象来看,系统调用是进程主动请求切换的,而异常和硬中断则是被动的。
2.3 中断
中断定义
- 指CPU对突发的外部事件的反应过程或机制
- CPU收到外部信号(中断信号)后,停止当前工作,转去处理该外部事件,处理完毕后回到原来工作的中断处(断点)继续原来的工作。
引入中断的目的
- 实现并发活动
- 实现实时处理
- 故障自动处理
中断的一些概念
-
中断源和中断类型
-
引起系统中断的事件称为中断源
-
中断类型
- 强迫性中断和自愿中断
- 强迫性中断:程序没有预期:例:I/O、外部中断
- 自愿中断:程序有预期的。例:执行访管指令
- 外中断(中断)和内中断(俘获)
- 外中断;由CPU外部事件引起。例:I/0,外部事情。
- 内中断:由CPU内部事件引起。例:访管中断、程序中断
- 外中断:不可屈蔽中断和可屏蔽中断
- 不可屏蔽中断:中断的原因很紧要,CPU必须响应
- 可屏蔽中断:中断原因不很紧要,CPU可以不响应
- 断点:
- 程序中断的地方,将要执行的下一指令的地址
- 放在CS:IP寄存器中
- 现场
- 程序正确运行所依赖的信息集合
- 相关寄存器
- 程序正确运行所依赖的信息集合
- 现场的两个处理过程
- 现场的保护:进入中断服务程序之前,将数据保存入栈
- 现场的恢复:推出中断服务程序之后,从栈中取出数据
- 强迫性中断和自愿中断
-
中断响应过程
中断响应的实质
- 交换执行地址
- 交换CPU的态
- 工作:
- 现场保护和恢复
- 参数传递(通信)
CPU收到外部中断信号后,是如何响应该外部信号,完成中断服务程序后,并最后自动回到原程序继续运行的?这个过程中硬件,软件会做哪些工作?
答: 具体的响应流程PPT中写的比较清楚了,关键是CS:IP寄存器中地址的变化会让硬件通过一定的机制自动调整程序执行的顺序,即从当前正在执行的程序转到执行中断处理程序。其中,对现场的保护和恢复至关重要,这里边涉及一系列的寄存器参数的保存、通信和读取。从硬件的角度看,现场信息被储存到特定的空间(栈),CS:IP寄存器地址的变化改变CPU从内存读取指令和数据的原有顺序,CPU一如从前的读取 解析 执行,完成中断程序和中断源引入的相关程序执行后,现场信息被恢复,再次改变CS:IP中的地址,CPU回到原有程序的执行过程中。从软件角度看,在出现中断源的时候保护现场,发出中断指令,触发CS:IP寄存器修改下一条指令的地址,让CPU转而去执行中断程序,在中断处理结束后发出指令,恢复现场,再次触发地址修改,原有程序继续执行。
课末问题
- 何为操作系统的逻辑结构?有哪几种典型逻辑结构?
- 分层结构的分层原则是什么?
- 微内核结构的特点是什么?
- 何为CPU的态?定义态的作用什么?有哪些态?
- 中断的概念是什么?中断的响应过程是怎样的?
小结
本章主要对操作系统的一些概念进行了介绍
-
比较好的操作系统逻辑结构有分层结构或者微服务结构,两者各有特点;
-
CPU的态主要分为用户态和核态,两者可在某种条件下进行转化,当发生中断时用户态会向核态转化,所以中断很重要。硬件根据态判断CPU的状态,软件通过进程来判断。
-
中断指CPU对突发的外部事件的反应过程或机制
CPU收到外部信号(中断信号)后,停止当前工作,转去处理该外部事件,处理完毕后回到原来工作的中断处(断点)继续原来的工作。