操作系统运行机制
CPU执行两种不同性质的程序:
1. 操作系统内核程序。
2. 用户自编程序。(应用程序)
其中内核程序
用于执行一些特权指令
,应用程序则不能执行。特权指令
,指计算机中不允许用户直接使用的指令。
在实现上,将CPU的状态划分为用户态(目态)
和核心态(管态、内核态)
,内核程序
运行在核心态
(CPU执行特权指令),应用程序
运行在用户态
(CPU执行非特权指令)
内核
是计算机配置的底层软件
,包含四方面内容:
-
时钟管理
时钟是最关键
的设备。
第一功能是计时
,操作系统需要通过时钟管理
向用户提供标准的系统时间;
第二功能是中断管理,实现进程的切换。 -
中断机制
提高多道程序运行环境中CPU的利用率,是操作系统各项操作的基础(eg:鼠标键盘的键入,进程管理调度,系统功能调用,设备驱动,文件访问),现代操作系统是靠中断驱动
的软件。在中断机制中,只有一小部分属于内核,负责保护和恢复中断现场的信息,转移控制权到相关的处理程序,减少中断处理时间,提高系统并行处理能力 -
原语
按层次结构设计的操作系统,底层有一些可被调用的公用小程序,各自完成一个规定的操作,特点如下:
①处于操作系统最底层,是最接近硬件的部分
②这些程序的运行有原子性,操作只能一气呵成(从操作安全性和便于管理方面考虑)
③这些程序的运行时间较短,调用频繁
把具有这些特点的程序称为原语,定义原语的直接方法就是关闭中断
,让所有动作不可分割完成后再打开中断。
系统的
设备驱动
、CPU切换
、进程通信
等功能中部分操作都可以定义为原语
,使其成为内核的组成部分
。
- 系统控制的数据结构及处理
系统中用来登记状态信息
的数据结构很多,为了实现有效的管理,系统需要一些基本操作,常见操作有:
①进程管理
②存储器管理
③设备管理
核心态指令
实际上包括系统调用类指令
和一些针对时钟
、中断
和原语
的操作指令。
中断和异常
上述提到了核心态
和用户态
两种工作状态,操作系统内核
工作在核心态
,用户程序
工作在用户态
。
系统不允许用户程序实现核心态的功能,但是又必须使用这些功能,所以要要在核心态建立通道
,实现从用户态
进入核心态
。在实际操作系统中,CPU运行上层程序时唯一进入通道
的途径就是通过中断
和异常
,运行用户态的CPU就会立即进入核心态。
**中断**
对于一个运行在计算机上的实用操作系统
,是不可缺少的。操作系统的发展大体上就是一个不断提高资源利用率
的过程,而资源利用率就需要在程序并未使用某种资源时,把它对那种资源的占有权释放
,这一行为就需要中断机制
的实现。
-
定义
①中断(外中断)
指来自CPU执行指令
以外事件的发生(如设备发出的I/O结束中断,表示设备I/O处理已经完成,希望处理机能够向设备发下一个I/O请求,同时让完成I/O后的程序继续运行)。时钟中断
,表示一个固定的时间片
已到,让处理机处理计时
、启动定时运行
的任务等。这一类中断通常是与当前指令执行
无关的事件,即它们与当前处理机运行的程序无关。
②异常(内中断、例外、陷入)
指源自CPU执行指令
内部的事件。对异常的处理一般要依赖于当前程序的运行现场
,而且异常不能被屏蔽,一旦出现要立即处理。 -
中断处理过程
①关中断
CPU响应中断
后,首先保护程序的现场,在保护现场
的过程中,CPU不应响应更高级中断源的中断请求
;否则如果程序现场保存不完整,在中断服务程序
结束后,就不能正确的恢复并继续执行现行程序
。
②保存断点
为保证中断服务程序
执行完毕后能正确返回原来程序,必须将原来程序的断点
(程序计数器PC)保存起来。
③引出中断服务程序
取出中断服务程序
的入口地址
送入PC
。
④保存现场和屏蔽字
进入中断服务程序
后,首先保存现场
,现场信息一般指程序状态字寄存器PSWR
和某些通用寄存器
的内容。
⑤开中断
允许更高级中断请求得到响应。
⑥执行中断服务程序
中断请求的目的
。
⑦关中断
保证在恢复现场
和屏蔽字
时不被中断。
⑧恢复现场和屏蔽字
将现场
和屏蔽字
恢复到原来的状态。
⑨开中断、中断返回
中断服务程序
的最后一条指令通常是一条中断返回指令
,使其返回到源程序的断点处
,以便继续执行源程序
。
恢复现场:在中断返回前,必须将寄存器的内容恢复到中断处理前的状态,这部分工作由中断服务程序完成。
中断返回:由中断服务程序的最后一条中断返回指令完成。
系统调用
指用户在程序中调用操作系统所提供的一些子功能,系统调用
可视为特殊的公共子程序
。系统中的各种公共资源
都由操作系统
统一掌管,因此在用户程序
中,凡是与资源有关的操作都必须通过系统调用
方式向操作系统
提出服务请求,并由操作系统
代为完成。一个操作系统
提供的系统调用命令
由几十到上百条,系统调用
可分为:
- 设备管理
完成设备
的请求
或释放
以及设备启动
等功能。 - 文件管理
完成文件
的读
、写
、创建
和删除
等功能。 - 进程控制
完成进程
的创建
、撤销
、阻塞
和唤醒
等功能。 - 进程通信
完成进程之间
的消息传递
或信号传递
等功能。 - 内存管理
完成内存
的分配
、回收
和获取作业占用内存区大小及始址
等功能。