操作系统的逻辑结构是指操作系统的设计和实现思路
逻辑结构的种类
-
整体式结构
整体式结构
以模块为基本单位构建
模块设计、编码和调试独立
模块调度自由
模块通信多以全局变量的形式完成
但信息传递随意,维护和更新困难
-
层次式结构
分层原则
结构 | 层次 |
---|---|
硬件相关 | 最底层 |
外部特性 | 最外层 |
调用次序或消息传递顺序 | 中间层 |
共性的服务 | 较低层 |
活跃功能 | 较低层 |
结构清晰,避免循环调用
整体问题局部化,系统的正确性容易保证
有利于操作系统的维护、扩充、移值
分层式结构
-
微内核结构(客户/服务器结构,Client/Server)
操作系统由微内核和核外服务器构成
微内核 | 核外服务器 |
---|---|
提供操作系统最基本的核心功能和服务 | 完成操作系统的绝大部分服务功能,等待应用程序提出请求 |
如前面讲到的Minix操作系统
CPU的态(Mode)
CPU的工作状态、对资源和指令使用权限的描述
态的类别 | 权限 |
---|---|
核态(Kernel mode) | 能够访问所有资源和执行所有指令,管理程序和操作系统内核 |
用户态(User mode,目态) | 仅能访问部分资源,其他资源受限,管理用户程序 |
管态(Supervisor mode) | 介于核态和用户态之间 |
态的转换 | 情景 |
---|---|
用户态->核态 | 用户请求操作系统提供服务,发生中断,用户进程产生错误(内部中断),用户态企图执行特权指令 |
核态->用户态 | 一般是执行中断返回:IRET |
-
特权指令
LGDT/LIDT:装载特殊寄存器
CLTS:清除任务开关标志
STI/CTL:允许和禁止中断
HALT:停止CPU的工作
IN/OUT:执行I/O操作
从核态转回用户态
...... -
硬件和操作系统对CPU的观察
硬件按“态”来区分CPU的状态,操作系统按“进程”来区分CPU的状态
Intel CPU有Ring 0~Ring 3态,其中Ring 0最核心 -
程序段访问另一程序段
需要检查RPL(请求特权级)是否高于DPL(描述符特权级) -
Windows:Ring 0和Ring 3通信
DeviceIoControl (kernel32.dll)通过操作系统实现应用层对设备数据的访问
BOOL DeviceIoControl(
HANDLE hDevice;//设备句柄 //CreatFile打开创建
DWORD dwloContolCode;//控制码 // 指明要内核完成的操作
LPVOID IpInBuffer;//输入数据缓冲区 //Ring 3输入
DWORD nInBufferSize;//缓冲区长度 // Ring 3长度
LPVOID IpOutBuffer;//输出数据缓冲区 //Ring 0返回参数
DWORD nOutBufferSize;//缓冲区长度 //Ring 0返回长度
LPDWORD IpBytesReturned;// 输出数据实际长度
LPOVERLAPPED IpOverlapped;// 重叠操作结构指针
-
存储器
存储器
理想存储体系:速度快、容量大、成本低
实际存储体系:寄存器、高速缓存(CACHE)、主存(内存)、辅存(硬盘)
-
分级存储系统的工作原理
CPU访问数据顺序
CPU访问顺序: 访问缓存(命中,HIT)->访问内存(没命中,MISS)->访问辅存(缺页,PAGE_FAULT)
-
支持操作系统的最基本硬件结构
CPU、内存、中断、时钟
中断机制
指CPU对突发的外部事件的反应过程或机制
CPU收到外部信号(中断信号)后,停止当前工作,转去处理该外部事件,处理完毕回到原来的工作中断处(断点)继续原来的工作
-
中断的用处
实现并发活动
实现实时处理
故障自动处理 -
中断源和中断类型
引起系统中断的事件成为中断源
强迫性中断:程序没有预期,如I/O、外部中断
自愿性中断:程序有预期,如执行访管指令
外中断:CPU外部事件引起,如I/O、外部事件
(进一步分为可屏蔽中断和不可屏蔽中断,区别在于CPU是否必须响应)
内中断:CPU内部事件引起,如访管中断、程序中断 -
断点
程序中断的地方,将要执行的下一指令的地址,CS:IP (寄存器) -
现场
程序正确运行所依赖的信息集合,相关寄存器
现场的保护:进入中断服务程序之前,栈
现场的恢复:退出中断服务程序之后,栈 -
中断响应过程
识别中断源->保护断点和现场->装入中断服务程序的入口地址(CS:IP,自动完成)->进入中断服务程序->恢复现场和断点->中断返回(IRET) -
中断响应的实质
交换指令执行地址
交换CPU的态
工作(现场保护和恢复,参数传递)
网友评论