操作系统知识第二章
第二章:操作系统逻辑结构
2.1:操作系统的逻辑结
1.定义:
OS作为一个大型软件,其设计逻辑实现的思路叫做OS的逻辑结构。
2.逻辑结构的种类:
(1)整体式结构
特点:以模块(函数)为基本单位构建,
优点:模块设计,编码和调试独立,模块调用自由,模块通信多以全局变量形式完成。
缺点:信息传递随意,维护和更新困难。
对于一些小系统,小程序来说,使用整体式结构很OK,但是对于OS这种大型的,复杂的,功能庞大的大型软件来说,就会存在上面缺点所存在的问题。
(2)层次式结构:
分层原则:
硬件相关:放在最底层
外部特性:放在最外层
中间层:调用次序或消息传递顺序
共性的服务:较低层
活跃功能:较低层
层次结构的优点:
结构清晰,避免循环调用
整体问题局部化,系统的正确性容易保证
有利于操作系统的维护,扩充,移植。
(3)微内核结构(也叫:客户服务器结构,Client/Server)
OS=微内核+核外服务器
微内核:
特点:足够小,提供OS最基本的核心功能和服务
功能:实现与硬件紧密相关的处理,实现一些比较基本的功能,负责客户和服务器键间的通信
核外服务器:完成OS的绝大部分服务功能,等待应用程序提出请求。
特点:由若干服务器和进程共同构成,例如,进程/线程服务器,虚存服务器,设备管理服务器等,以进程的形式运行在用户态。
优点:可以方便扩充进程
eg:Linux Minix OS
2.2:CPU的态
1.支持OS的最基本硬件结构
(1)CPU :
作用:进行运算
CPU态(Mode):CPU的工作状态,对资源和指令使用权限的描述(程序能够使用计算机的哪一些资源,能够使用那些指令,都和CPU的态有关系)
态的分类:
核态(Kernel mode):能够访问所有资源和执行所有指令(类似于linux下的超级用户),管理程序OS内核
用户态:(User mode):仅能访问部分资源,其他资源受限(类似于linux下面的普通用户),用户程序
管态:(super mode):介于核态和用户态之间。
用户态和核态之间的转换:
用户请求OS提供服务
发生中断
用户进程产生错误(内部中断)
用户态企图执行特殊指令
核态向用户态转换:
一般是执行中断返回:IRET
特殊指令:(非常重要,核心控制), 不能随便被应用程序使用,在权限很高的态下面才能使用
LODT/LIDT :装载特殊寄存器
CLTS:清除任务开关标志
STI/CTI:允许和进制中断
HALF:停止CPU的工作
IN/OUT:执行I/O操作、
从和泰转回为用户态
硬件和OS对于CPU的观察:
硬件按照态来区分CPU的状态:
OS按照进程来区分CPU的状态:
(2)内存(存储程序和数据的部件):
分类:
按存储器(半导体存储器)读写工作方式:
RAM:
ROM:
按存储元的材料:
半导体存储器(常用作主存)
磁存储器(磁盘,磁带)
光存储器(光盘)
按与CPU的联系:
主存:直接与CPU交换信息,速度快,价格高。
辅存:不能直接与CPU交换信息,速度慢,价格低。
存储体系:
理想存储体系:速度快,容量大,成本低
实际存储体系:各种容器混搭而成:寄存器+高速缓存(CACHE)+主存+辅存
(3)中断 (是计算机系统非常非常基础的一个工作机制):
定义:指CPU对突发的外部事件(例如,鼠标,键盘按了一下)的反应或机制,CPU收到外部信号(中断信号)后,停止当前工作,转去处理该外部事件,处理完毕后悔到原来工作的中断处(断点)继续原来的工作。
中断的目的:
实现并发活动
实现实时处理
故障自动处理
中断的一些概念:
中断源:引起系统中断的事件称为中断源
中断类型:
强迫性中断:程序没有预期,例如IO,外部中断
自愿中断:程序有预期,例如:执行访管指令
(4)时钟
2.3:中断机制
1.定义:
指CPU对突发的外部事件(例如,鼠标,键盘按了一下)的反应或机制,CPU收到外部信号(中断信号)后,停止当前工作,转去处理该外部事件,处理完毕后悔到原来工作的中断处(断点)继续原来的工作。
2.中断的目的:
实现并发活动
实现实时处理
故障自动处理
3.中断的一些概念:
中断源:引起系统中断的事件称为中断源
4.中断类型:
强迫性中断:程序没有预期,例如IO,外部中断
自愿中断:程序有预期,例如:执行访管指令
还可以分为
外中断(中断)和内中断(俘获)
外中断:由CPU外部事件引起,例如:IO 外部事情
针对外中断还可以分为不可屏蔽中断和可屏蔽中断
不可屏蔽中断:中断的原因很紧要,CPU必须相应
可屏蔽中断:中断原因不很重要,CPU可以不响应
内中断:由CPU内部事件引起,例如访管中断,程序中断
5.断点:程序中断的地方,将要执行下一指令的地址
6.现场: 程序正确运行所依赖的信息集合,
7.现场的两个处理过程:
现场保护,进入中断服务程序之前,保存到栈里。
现场恢复,推出中断服务程序后,将栈里面的还原到CPU里
8.中断响应的过程:
识别中断源
保护断点和现场
装入中断服务程序的入口地址(CS:IP)
进入中断服务程序
恢复现场和断点
中断返回:IRET
9.中断响应的实质:
交换指令执行的地址,交换CPU的态