操作系统知识第二章


第二章:操作系统逻辑结构

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的态