一、操作系统的运行机制
计算机系统中,通常CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自
编程序(简称应用程序)。
大多数操作系统内核包括4方面的内容
1.时钟管理
在计算机的各种部件中,时钟是最关键的设备。时钟的第一功能是计时,操作系统需要通过时
钟管理,向用户提供标准的系统时间。另外,通过时钟中断的管理,可以实现进程的切换。
2.中断机制
引入中断技术的初衷是提高多道程序运行环境中CPU的利用率,而且主要是针对外部设备的。
后来逐步得到发展,形成了多种类型,成为操作系统各项操作的基础。
中断机制中,只有一小部分功能属于内核,它们负责保护和恢复中断现场的信息,转移控制权到
相关的处理程序。这样可以减少中断的处理时间,提高系统的并行处理能力。
3.原语
特点
(1)处于操作系统的最低层,是最接近硬件的部分
(2)这些程序的运行具有原子性,其操作只能一气呵成
(3)这些程序的运行时间都较短,而且调用频繁
通常把具有这些特点的程序称为原语。定于原语的直接方法是关闭中断,让其所有动作不可分割地
完成后再打开中断。
4.系统控制的数据结构及处理
(1)进程管理:进程状态管理、进程调度和分派、创建与撤销进程控制块等
(2)存储器管理:存储器的空间分配和回收、内存信息保护程序、代码对换程序等
(3)设备管理:缓冲区管理、设备分配和回收等
二、中断和异常的概念
1.中断和异常的定义
中断也称外中断,指来自CPU执行指令以外的事件发生,如设备发出的I/O结束中断,表示设备输
入/输出处理已经完成,希望处理机能够向设备法下一个输入/输出请求,同时让完成输入/输出后的
程序继续运行。时钟中断,表示一个固定的时间片已到,让处理机处理计时、启动定时运行的任务
等。这一类中断通常是与当前指令执行无关的事件,即它们与当前处理机运行的程序无关。
异常也称内中断、例外或陷入,指源自CPU执行指令内部的事件,如程序的非法操作码、地址越
界、算术溢出、虚存系统的缺页及专门的陷入指令等引起的事件。对异常的处理一般要依赖于当前
程序的运行现场,而且异常不能被屏蔽,一旦出现应立即处理。
2.中断处理的过程
(1)关中断:CPU响应中断后,首先要保护程序的现场状态,在保护现场的过程中,CPU不能响应更高级
中断源的中断请求。否则,若现场保存不完整,在中断服务程序结束后,也就不能正确地恢复并继续
执行现行程序。
(2)保存断点:为保证中断服务程序执行完毕后能正确地返回到原来的程序,必须将原来的程序的的
断点(即程序计数器PC)保存起来
(3)引出中断服务程序:其实质是取出中断服务程序的入口地址送入程序计数器PC
(4)保存现场和屏蔽字:进入中断服务程序后,首先要保存现场,现场信息一般是指程序状态字寄存
器PSWR和某些通用寄存器的内容
(5)开中断:允许更高级中断请求得到响应
(6)执行中断服务程序:这是中断请求的目的
(7)关中断:保证在恢复现场和屏蔽字时不被中断
(8)恢复现场和屏蔽字:将现场和屏蔽字恢复到原来的状态
(9)开中断、中断返回:中断服务程序的最后一条指令通常是一条中断返回指令,使其返回原程序的
断点处,以便继续执行原程序。
1~3步是在CPU进入中断周期后,由硬件自动完成的;4~9步由中断程序完成。恢复现场是指在
中断返回前,必须将寄存器的内容恢复到中断处理前的状态,这部分工作由中断程序完成。中断返回
由中断服务程序的最后一条中断返回指令完成。
三、系统调用
1.按功能大致可分为如下几类
(1)设备管理:完成设备的请求或释放,以及设备启动等功能
(2)文件管理:完成文件的读写创建及删除等功能
(3)进程控制:完成进程的创建、撤销、阻塞及唤醒等功能
(4)进程通信:完成进程之间的消息传递或信号传递等功能
(5)内存管理:完成内存的分配、回收以及获取作业占用内存区大
小及始址等功能
2.系统调用的处理需要由操作系统内核程序负责完成,要运行在核
心态。用户可以执行陷入指令来发起系统调用,请求操作系统提供
服务
3.目的:用户程序不能直接执行对系统影响非常大的操作,必须通过系统调用的方式请求操作系统
代为执行,以便保证系统的稳定性和安全性,防止用户程序随意更改或访问重要的系统资源,影响其
他进程的运行。
4.用户态转型核心态的例子
(1)用户程序要求操作系统的服务,即系统调用
(2)发生一次中断
(3)用户程序中产生了一个错误指令
(4)用户程序企图执行一条特权指令
(5)从核心态转向用户态由一条指令实现,这条指令也是特权命令,一般是中断返回指令
若程序的运行由有用户态转到核心态,则会用到访管指令(陷入指令),访管是在用户态使用的,
所以他不可能是特权指令