操作系统特征
- 并发
- 共享
- 虚拟
- 异步
并发和并行
并行:同一 时刻 一起运行,在微观上真正的一起运行
并发:同一 时段 一起运行,宏观上一起运行,微观上是串行的方式
并行是我们思维概念上的两个事情真正的一起同时运作
而 并发 只是宏观上的一起运行,而在 毫秒级 的时间概念上还是A事务先于B事务运行,只是对于人类来说毫秒级的时间概念太短,因此感受不到,认为了A B事务一起运行
其中 并发 和 共享 是 最基本 的特征,二者互为 存在条件
并发 既然是指多个事务同时运行,那么他们必然存在 数据和资源 的共享(最基本的CPU占用 和 内存占用)
同理,如果多个事务同时共享同一资源,那么他们在这一时刻必然是处于 并发状态
因此,并发和共享 二者互为 存在条件
共享方式
- 互斥共享方式 一个 时间段 内只能有一个程序访问
- 同时共享方式 一个 时间段 内可以有多个程序共同访问
互斥共享方式的文件 可以理解为文本文件,文本文件在打开编辑时是不能进行分享发送操作
此时必须将文本文件关闭,才可以进行发送
同时共享方式的文件 可以理解为QQ在线编辑文档,这个文档是可以同时被多个人同时读取修改,但是这样的文件有时候在用户众多的时候,容易出现 读脏数据现象(后面进行详细解释)
异步
允许多个程序 并发 执行,由于资源有限,因此程序走走停停,某一时刻是否运行不能确定
异步的前提是 并发性
当存在多个程序共同并发运行时(微观上串行),因此在某一时刻,究竟是A事务在执行还是B事务在执行,对我们是不可知的,因此事务这种多事务并发,但是运行过程不可知的特性我们称为异步性
操作系统发展史
- 手工操作阶段
- 用户独占全机,人机速度矛盾,资源利用率(比如CPU利用率)十分低下
- 单道批处理
- 内存中仅有一道程序运行,CPU大量时间空闲
- 引入了脱机I/O技术和监督程序(这就是操作系统雏形)
- 多道批处理
- 用户响应时间长,无法人机交互
- 资源利用率大幅提升
- 分时系统
- 不能优先处理紧急事务
- 实时系统
- 拥有及时性和可靠性
- 实时操作系统用 设备冗余 的方法解决 系统高可靠性问题
- 硬 实时系统 绝对严格规定时间
- 软 实时系统 偶尔违反时间规定
- 硬 实时系统 如军用事务,时间越精准越好
- 软 实时系统 如火车购票系统,对信息实时性有要求,但是要求不是特别高
实时系统和分时系统的比较:
1、分时系统以进程为调度和分配资源的基本单位;而实时系统中以事件处理程序为调度基本单位,没有进程这一概念
2、分时系统各进程等级平等,采用时间片轮转控制;而实时系统有不同的响应优先级
3、分时系统一般通用;而实时系统一般专用
- 分布式系统和网络操作系统
分布式系统所有主机上共用同一种操作系统; 而网络操作系统每个主机都可以有自己的操作系统
分布式系统着重任务分解和协同;而网络操作系统着重资源的共享;
分布式操作系统一般都有分布式文件系统;
分布式操作系统是网络操作系统的进一步发展;
指令 处理器状态
指令
- 特权指令 普通用户不可用(如清空内存)
- 非特权指令 普通指令
处理器状态
- 用户态(目态) 只能执行非特权指令
- 核心态(管态) 都能执行
操作系统内核
原语具有原子性:只能一次运行完毕,中途不能中断
中断
发送中断时,CPU从用户态进入核心态,并且中断是进入核心态的唯一途径
传递系统调用参数 → 执行陷入指令 → 响应服务程序 → 返回用户程序
陷入指令 只能在 用户态 执行
高级语言和操作系统
C语言 → 库函数 → 系统调用 → 操作系统
系统调用发送在用户态,系统调用的处理过程发生在核心态