内容框架
一.OS的运行机制
1. 什么是指令
指令:就是处理器(CPU)能识别、执行的最基本命令
比如:加法指令就是让CPU进行加法运算
这里的指令就是二进制指令
2. 两种指令
-
特权指令
不允许用户程序使用,操作系统内核作为管理者,有时让CPU执行一些特权指令,只允许管理者,即操作系统内核来使用如:内存清零指令
-
非特权指令
应用程序只能使用非特权指令如:加法指令、减法指令
CPU设计和生成的时候就划分了特权指令和非特权指令,因此CPU根据不同的指令类型,来执行相应的操作,且在执行一条指令前就能判断出其类型
3. 两种处理器状态
两种状态是用状态字寄存器(PSW)中的某标志位来标识当前处理器处于什么状态。
如0表示用户态,1表示核心态
-
用户态(目态)
CPU处于用户态的话,CPU只能执行非特权指令 -
核心态(管态)
CPU处于核心态的话,特权指令和非特权指令都可以执行
如何实现CPU状态的的切换?
4. 两种程序
-
内核程序
是系统资源的管理者,既可以执行特权指令,也可以执行非特权指令,运行在核心态微软有一帮人实现操作系统,他们写的就是“内核程序”,有很多内核程序组成了“操作系统内核”,简称“内核(Kernel)” 内核是操作系统最重要的最核心的部分,也是最接近硬件的部分
-
应用程序
为了保证系统能够安全运行,普通应用程序只能执行非特权指令,运行在用户态我们普通人写的程序
二. 操作系统内核
操作系统中的哪些功能应该由内核程序实现呢
内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分
实现操作系统内核功能的那些程序就是内核程序
操作系统的内核程序它们常驻内存。
这种安排方式的目的?
- 便于对这些软件进行保护,防止遭受其他应用程序的破坏
- 提高OS的运行效率
操作系统内核的支撑功能
-
时钟管理、中断处理、原语
中断处理:是内核最基本的功能,是整个操作系统赖以活动的基础,OS中许多重要的活动, 如:各种类型的系统调用没、键盘命令的输入、进程调度、设备驱动等,无不依赖于中断。 时钟管理:是内核的一项基本功能,在OS中许多活动都需要得到它的支撑。 如:在时间片轮转调度中,每当时间片用完时,便由时钟管理产生一个中断信号,促使调度程序重新调度 原语操作:所谓原语就是由若干条指令组成的,用于完成一定功能的一个过程。 并且他们是原子操作,也就是一个操作的动作要么全做,要么全不做, 他们是一个不可分割的基本单位 如:对链表进行操作的原语、用于实现进程同步的原语
-
对系统资源进行管理的功能:进程管理、存储器管理、设备管理
有的操作系统不把这些部分功能归为“内核功能”
也就是说,不同的操作系统,对内核功能的划分可能并不一样
三. 操作系统的体系结构
-
时钟中断
利用时钟中断实现计时功能
-
原语
原语是一种特殊的程序,具有原子性 也就是说,这段程序的运行必须一气呵成,不可以被中断
Ubuntu、CentOS的开发团队,其主要工作是实现非内核功能,其内核都是用了Linux内核