操作系统发展
第一代计算机
计算机构成:电子管
操作系统:电子管计算机没有操作系统
程序执行过程
- 程序员将程序写在纸上并将其制成穿孔卡片(Job)
- 操作员将穿孔卡片放入计算机中执行程序等待输出结果
问题:没有操作系统的情况下每次只能够执行一次作业 -> 效率非常低下
语言:机器语言(二进制)
第二代计算机
- 计算机构成:晶体管
- 语言:FORTRAN 语言 + 汇编语言
批处理系统
定义:每次执行完成一个程序后==自动执行==下一个程序,且每次 ==仅运行一个程序==
程序执行
- 执行过程
- 程序员仍然将程序写在纸上并将其制成穿孔卡片
- 操作员收集==所有的作业==后全部放入计算机中的等待输出 (所有的作业就相当于一个大的程序)
- 执行区间:CPU 执行区间 I/O 执行区间
- 执行过程
优点:可以 自动执行 下一个程序
缺陷:(1) 用户响应时间较长 (2) 不具有交互性
解释:批处理系统中每次仅运行一个程序导致 CPU 长时间处于空闲状态仅仅只是为了等待 I/O 输出
多道程序系统
定义:允许多个程序 ==同时进入内存== 并利用 ==调度机制== 使得多个程序可以==交替执行==
注:多道程序系统本质还是批处理系统:可以称为多道批处理系统
程序执行:
处理器需要运行程序时:
调度程序 将 磁盘 中的 程序 调度到 主存 中
调度程序 将 主存 中的 进程 调度到 处理器 的执行空间中
运行的进程需要使用资源时:处理器执行 上下文切换
注:“将进程调度进入处理器中”这个描述是抽象的描述,并不是真的将进程调度进入处理器了
优点:(1) 增加吞吐量 (2) 规模经济 (3) 增加可靠性
缺陷:
多道程序系统不具备交互性 & 响应时间长
解释1:用户只能等待程序执行完成才可以对程序做出修改
解释2:交互性指的是用户可以使用设备根据程序响应结果直接与程序通信,用户可以对程序的每一步做出干预
-
解释:每个用户只能够等待上一个用户的程序运行完毕才可以执行自己的程序
代表:MULTICS 操作系统:MIT + 贝尔实验室 + 通用电气公司 -> 促进 UNIX 的诞生
分时系统
定义:将处理器的运行时间划分成多个 ==很短的时间片==,==轮流==地分配给各个进程使用,使得多个用户共享同一台计算机
程序执行:
- 整体过程和多道程序系统类似
- 区别:每个进程只能够执行 ==固定的时间片==:如果规定时间内没有执行结束就会被强制放弃处理器的使用权
优点:(1) 分时系统具有交互性 (2) 多个用户可以同时独立地共享计算机
细节:
采用 优先级 + 非抢占式的调度算法 可以改善分时系统的响应时间
解释:优先级高的进程可以优先执行,非抢占式可以保证低优先级的进程不会被抢占执行
第三代计算机
- 计算机构成:中小型集成电路
桌面操作系统
桌面系统
定义:专注于单个用户的个人计算机
操作系统:
UNIX
历史:
- Kenneth Thompson 利用 PDP-7 个人计算机开发出 初版 UNIX 操作系统
- Kenneth Thompson 使用 ==汇编语言== 完成的操作系统效率比较低
- Dennis Ritchie 开发完成 ==C 语言== 辅助操作系统的开发
- 两人共同使用 C 语言完成真正的 UNIX(两人都参与过 MULTICS 的研发)
细节:
研发完成之后两人所属的 AT&T 并没有重视 UNIX 操作系统导致 UNIX 可以被开源使用 -> 催生了非常多的分支
- Linux 操作系统基于 UNIX 操作系统
- MacOS 操作系统基于 UNIX 操作系统
- IOS 操作系统基于 Darwin 操作系统(UNIX 分支之一)
IEEE 制定了 UNIX 的分支操作系统必须满足的要求 -> ==POSIX==
Andrew 基于 UNIX 开发出 ==MINIX== 操作系统
Linux
- 历史
- MS-DOS 系统并非开源系统且相对简陋;MacOS 系统只适用苹果平台;UNIX 被 AT&T 限制不许开源使用;MINIX 仅用于教学使用
- Linus Torvalds 向 Andrew 索取 MINIX 的源代码
- Linus 使用 MINIX 和 UNIX 共同的基本结构完成 Linux 操作系统(大三)
- 细节:Linux 是完全开源免费的操作系统
- 历史
Windows
- 历史:
- IBM 研发完成计算机后需要配套的操作系统
- Bill Gates 建议 IBM 优先和 Digital Research 联系(当时最强大的操作系统制造商)
- Digital Reasearch ==拒绝== 了 IBM 的请求
- IBM 希望 Bill Gates 提供相应的操作系统
- Bill Gates 看中西雅图的电脑制造商处的 ==DOS== 操作系统的潜力
- Bill Gates 购买得到 DOS 操作系统后进行改进得到 ==MS-DOS== 操作系统(Windows 系统的早期原形)
- 细节:
- MS-DOS 操作系统没有提供用户图形化界面,而是采用命令行的形式
- 时间图:
- 历史:
MacOS
特点:
并行系统
定义:处理器芯片上集成多个紧密通信的计算核
分类
对称多核处理器系统(Symmetric MutipProcessing SMP)
- 定义:每个处理器 ==都参与== 操作系统需要完成的任务
- 细节:现代操作系统大多数采用对称形式实现
非对称多核处理器系统(Asymmetric MutipProcessing )
- 定义:
- 主处理器从操作系统处获取需要执行的任务
- 主处理器将需要完成的任务分配给各个从处理器内核 (主处理器并不完成具体的任务)
- 每个 ==从处理器== 内核 ==独立完成== 各自的任务
- 细节:大型计算机系统中会采用 非对称 的形式实现
- 定义:
优点:提升吞吐量;提升可靠性;节省成本
细节:
- 并行系统又称为 ==多核处理器系统== 或者 ==紧耦合系统== -> 所有处理器都 ==共享内存和时钟==
- 多处理器系统:包括多核处理器系统,分布式系统,网络系统,并不代表多个处理器芯片集成在同一块芯片上
分布式系统
- 定义:
- 每个处理器分布在不同的区域
- 所有处理器通过 ==网络连接== 在一起执行程序
- 优点:(1) 资源共享 (2) 科学计算加速 (3) 提高可靠性 (4) 实现通信
- 细节:
- 分布式系统需要网络基础服务:C/S模式 P2P 模式
- 分布式系统又称为 ==松耦合系统== -> 每个处理器都具有自己 ==独立的物理内存和时钟==
集群系统
- 定义: * 芯片上 ==集成两个或者多个== 处理器芯片 * 每个处理器芯片并 ==不共享内存== 而是 ==共享存储==
- 分类:
- 对称集群操作系统:所有处理器都执行程序
- 非对称集群操作系统
- 定义:一个处理器执行程序另一个处理器处于 ==监视状态==,被监视处理器出现故障后监视处理器立即 ==接替== 它继续执行程序
- 细节:非对称集群系统又称作 ==热备份模式==
第四代计算机
- 计算机构成:大型继承电路
实时系统
定义:设置 ==时间限制== 控制程序的运行
分类:
硬实时系统:
定义:程序 ==必须== 在规定时间内做出反应
细节:(1) 通常用于工业生产,自动驾驶,航空订票,股市行情,等方面 (2) 硬实时系统会与分时系统发生 ==冲突==
解释:分时系统会频繁切换程序的执行不关心程序是否执行完成;硬实时系统则是需要程序在规定时间做出应答才行,否则就是故障了
软实时系统
- 定义:程序在 ==可容忍的范围内== 延时做出反应
- 细节:通常用于多媒体传输,虚拟现实等方面