前言
本文是对王道操作系统课程的速览和总结,如有侵权,请联系我删除
本文结构是"知识点+展开",每一小节的展开顺序和知识点的顺序对应
操作系统的特征
并发
共享
互斥共享方式
同时共享方式
虚拟
空分复用技术
时分复用技术
异步
并发和并行的区别?
并发:指两个或多个事件在同一时间间隔内发生,这些事件在宏观上是同时发生的,但在微观上是交替发生的
并行:两个或多个事件在同一时刻同时发生
操作系统的并发性:指操作系统中同时存在着多个运行的程序
4核CPU意味着同一时刻可以有4个程序并行执行
共享:即资源共享,是指系统中的资源可供多个并发执行的进程共同使用
互斥共享:一个时间段内只允许一个进程访问资源
同时共享:允许一个时间段内有多个进程"同时"对它们进行访问,同时是宏观上的同时,在微观上这些进程对资源的访问是交替进行的
并发和共享是两个最基本的特征,二者互为存在条件
并发和共享互为存在条件?
如果失去并发性,则系统中只有一个程序正在运行,则共享性失去存在的意义
如果失去共享性,则程序不能同时使用系统资源,就无法并发
虚拟:实际存在的物理实体和用户感受到的逻辑对应物不对等
空分复用:4GB内存的电脑能同时一系列运行内存需求超过4GB的程序,在用户看来内存似乎大于4GB
时分复用:单核CPU的电脑能同时运行多个程序,在用户看来似乎有多个CPU在同时为自己服务
虚拟的
异步:多个程序并发执行时,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进
并发和共享是操作系统的两个最基本的特征,因为没有并发和共享,就谈不上虚拟和异步
操作系统的运行机制和体系结构
运行机制
两种指令
特权指令
非特权指令
两种处理器状态
核心态(管态)
用户态(目态)
两种程序
内核程序
用户程序
操作系统内核
时钟管理
中断处理
原语
对系统资源进行管理的功能
进程管理
存储器管理
设备管理
操作系统体系结构
大内核
微内核
特权指令只能在核心态下执行
内核程序只能在核心态下执行
什么是原语?
是一种特殊的程序
处于操作系统最底层,是最接近硬件的部分
这种程序的运行具有原子性:其运行只能一气呵成,不可中断
运行时间较短、调用频繁
大内核:将操作系统的主要功能模块都作为系统内核,运行在核心态
优点:高性能
缺点:内核代码庞大,结构混乱,难以维护
微内核:只把最基本的功能保留在内核
优点:内核功能少,结构清晰,方便维护
缺点:需要频繁地在核心态和用户态之间切换,性能低
中断和异常
中断机制的产生
中断的概念和作用
中断的分类
内中断
自愿中断(指令中断)
强迫中断
硬件故障
软件中断
外中断
I/O中断请求
人工干预
内中断的另一种分类方式
陷入(trap)
故障(fault)
终止(abort)
外中断的处理过程
中断机制的产生:为了实现多道程序的并发执行而引入的一种技术
中断的概念和作用:发生中断,就意味着需要操作系统介入,开展管理工作
1.发生中断时,CPU立即进入核心态(中断是CPU从用户态进入核心态的唯一途径)
2.当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
3.对不同的中断信号会进行不同的处理
中断的分类:通过中断信号来自CPU内部还是外部判断是内/外中断
内中断与当前执行的指令有关,外中断与当前执行的指令无关
外中断的处理过程:
1.每条指令结束后,CPU检查是否有外部中断信号
2.若有外部中断信号,则需要保护被中断进程的CPU环境
3.根据中断信号的类型转入相应的中断处理程序
4.恢复原进程的CPU环境并退出中断,返回原进程继续往下执行
系统调用
系统调用的概念和作用
系统调用的分类
设备管理
文件控制
进程控制
进程通信
内存管理
系统调用和库函数的区别
系统调用的过程
系统调用的概念:系统调用是操作系统供给应用程序使用的接口
系统调用的作用:应用程序通过系统调用来请求获得操作系统的服务,系统调用会使CPU从用户态进入核心态(系统调用会引发内中断)
系统调用和库函数的区别:
1.系统调用是操作系统向上层提供的程序接口
2.有的库函数是对系统调用的进一步封装
3.当今编写的应用程序大多是通过高级语言提供的库函数间接地进行系统调用
系统调用的过程:
1.传递系统调用参数
2.执行陷入指令(又称访管指令或trap指令)
3.执行系统调用相应的服务程序
4.返回用户程序
系统调用发生在用户态,对系统调用的处理发生在核心态
陷入指令是在用户态执行的,执行陷入指令后立即引发一个内中断,从而CPU进入核心态
陷入指令是唯一一个只能在用户态执行,而不可在核心态执行的指令