操作系统的逻辑结构
逻辑结构
OS的设计和实现思路。
逻辑结构的种类
1.整体式结构
2.层次式结构
3.微内核结构(服务/服务器结构,lientBever)
1.整体式结构
以模块为基本单体构建
特点:
模块设计、编码和调试独立
模块调用自由
模块通信多以全局变量形式完成。
缺点:
信息传递多以全局变量形式完成。
2.层次式结构
层次结构的软件例子:TCP/IP的议栈
分层结构的操作系统
所有功能模块按照调用次序排成若干层,相邻层间只有单向依赖或单项调用。
分层原则
硬件相关——最底层
外部特性——最外层
中间层——调用次序或消息传递顺序
共性的服务——较低层
活跃功能——较低层
层次结构的优点
结构清晰,避免循环调用。
整体问题局部化,系统的正确性容易保证。
有利于操作系统的维护,扩充,移植
3.微内核结构
操作系统=微内核+核外服务器
微内核
足够小,提供OS最基本的核心功能和服务
1.实现与硬件紧密相关的处理。
2.实现了一些教基本的功能。
3.负责客户和服务器间的通信
核外服务器
完成OS的绝大部分服务功能,等待应用程序提出请求,由若干服务器或进程共同构成。
例如:进程/线程服务器,虚拟服务器,设备管理服务器,以进程形式运行在用户态。
linux
Tinus Torvalds【芬兰·赫尔辛基大学】,1990年
1994年3月:linux1.0版正式发布www.kernel.org
Minix OS
Andrew S.Tanenbaum,加州伯克利大学博士,荷兰Vrjie大学
1984发表,微内核结构,约4000行代码
www.minix3.org
usenst讨论组Linux vs,Minix(1992年)
Torvalds/Linux
Minux设计上有缺陷(缺少多线程),内核本身不需要过度具备可移植性
Andrew/Mnix
Linux is obsolete
宏内核在整体设计上是有害的
Linux is a giant slep back into the 1970s
Linux 对Intel 80366架构的耦合度太高。
CPU的态(SHD)
支持操作系统的最基本的硬件结构
cpu、内存、中断、时针
cpu
CPU的态(Mode)
CPU的工作状态
对资源和指令使用权限的描述。
态的分类
核态(kernel mode)
能够访问所有资源的执行所有指令
管理程序OS内核
用户态(user mode 目态)
仅能访问部分资源,其他资源受限
用户程序
管态
介于核态和用户态之间
用户和核态之间的转换
用户态向核态转换
用户请求OS提供服务
发生中断
用户进程产生错误(内部中断)
用户态企图执行特权指令
核向向用户态转换的情形
一般是执行中断返回:IRET
硬件和OS对CPU的观察
硬件按“态”来区分CPU的态
OS按“进程”来区分CPU的状态
Intel cpu的态
Ring0~Ring3(Ring0最核心,Ring3最外层)
程序段A访问程序段B时进行权限的检查(态)
程序段:请求特权级,RPL
Requested privilege RPL
RPL=0..3
描述符特权级,DPL
Requested privilege Level
DPL=0..3
windows:Ring 0和Ring 3之间的通信
存储器
存储程序和数据部件
分类:
按存储器(半导体存储器)读写工作方式
RAM
ROM
按存储元的材料
半导体存储器(常作主存)
磁存储器(磁带、磁盘)
光存储器(光盘)
按与CPU的联系
主存:直接和CPU的交换信息。
辅存:不能直接和CPU交换信息。
存储体系
理想存储体系:速度快、容量大、成本低。
实际存储体系
寄存器
高速缓存(CACHE)
主存
辅存
分级存储系统的工作原理
cpu读取指令或数据时的访问顺序
(1)访问缓存(命中,HIT)
(2)访问内存(没有命中,MISS)
(3)访问辅存(缺页;PAGE_FAULT)