文章目录
一、OS的运行机制和内核
1.运行机制
【两种指令】
-
非特权指令
如简单的加减乘除的普通运算指令 -
特权指令
如内存清零指令,影响严重,需要高级权限
【CPU的两种状态】
指令在哪里执行?在CPU里执行。而CPU在哪种什么状态才能执行哪种指令。
-
用户态(目态)
只能执行非特权指令 -
核心态(管态)
非特权指令、特权指令都有权限执行
【两种程序】
-
应用程序
运行在用户态,则只能执行非特权指令 -
内核程序
运行在内核态,则非特权指令、特权指令都有权限执行。
实现操作系统内核功能的那些程序就是内核程序。
2.OS内核的功能模块
-
原语
由若干条指令组成的程序段,具有原子性,在执行过程中不可被中断。 -
内核功能与非内核功能
OS内核需要运行在内核态,OS的非内核功能运行在用户态
3.内核分类
- 为什么微内核低效,大内核高效?
因为变态的过程是有成本的,所以处于内核态的功能越多,变态的总代价就越少,即性能越高。
二、中断
1.中断的意义
2.中断的过程
- 为什么中断发生时,CPU立即进入内核态?
因为中断处理的功能模块需要运行在内核态,所以要先变态才能运行中断处理的功能模块。
3.中断的分类
【分类依据:中断信号的来源】
- 来自CPU内部(与CPU当前执行的指令有关)就是内中断
- 来自CPU外部(与CPU当前执行的指令无关)就是外中断
4.外中断的过程
过程:
- 执行完每个指令之后,CPU都要检查当前是否有外部中断信号
- 如果检测到外部中断信号,则在中断前进行保护措施(程序状态字PSW、程序计数器PC、各种通用寄存器)
- 根据中断信号类型,转入相应的中断处理程序
- 恢复原进程的CPU环境并退出中断,返回原进程继续向下执行
PS:保护程序计数器PC就是知道原来进行到哪里了。
三、系统调用
1.系统调用的意义
2.系统调用的分类
3.系统调用和库函数的区别
4.系统调用的过程