操作系统---第一章:2.操作系统的发展和分类

在正式开始这部分内容前,通过一张思维导图来直观的感受,操作系统的发展,以及操作系统的分类。

本节内容主要关注和理解各类操作系统想解决什么问题,以及各自的优缺点。

手工操作系统

从图上可以看到,由程序员通过纸袋上打孔进行编程 (有无孔表示1和0,组合的二进制序列是机器可以识别的信息),在这一过程中编程的效率低,计算机读取并输入数据的效率也很低,总之就是输入输出效率低,但是计算机计算的速度快。因此该阶段的操作系统存在很大缺点,我们进行了归纳:

(该内容并不讨论编程上的发展)

这个阶段的主要存在两个缺点:

一是:用户独占全机

程序员在自己的程序没有完全运行结束之前,是不允许第二个程序员和他同时使用计算机的

二是:人机速度矛盾导致资源利用率极低。

编程方式局限,人为输入数据,计算机的读取和输出数据都是非常费时间,计算机处理数据的速度却非常快,这就会导致资源利用率低,CPU大部分时间处于空闲。

批处理阶段

为了解决人机速度的矛盾,就进入批处理阶段。

单道批处理系统

采用脱机输入/输出技术 (外围机+磁带),由监督程序 进行作业的输入输出的控制。

可以看到这时的编程不再是一个人进行的了,程序员们将计算机要执行的指令全部输入到外围机,外围机有把程序提前存入磁带中,而计算机从磁带中读/写的数据的速度比从纸带机上更快。

虽然一定程度上缓解了人和机之间的矛盾,也提高了资源利用率,当其缺点也是比较明显的:内存仅能容一道程序运行,只有这一道程序运行完以后,才能允许下一道程序运行。CPU也是有大量的时间是空闲等待i/o完成的。

每一个步骤所花费的时间:

(红色所表示的就是CPU的使用时间,而在绿色和蓝色阶段,CPU是处于空闲的,这个图很好体现一个程序运行完以后,才开始下一个)

对于下一步效率的提升,想必应该有想法了吧!

也就是在运行第一道程序,指令处理时,进行下一道程序数据的输入;第一道程序数据输出时,进行第二道程序,指令处理,由此,同时干许多事,提高其效率。

多道批处理系统采用的就是这种方式:

多道程序并发 执行,共享资源。这使得资源利用率大大地提高。CPU和其他设备更能保存忙碌的状态,系统吞吐量增大。

但是依旧存在着缺点:用户响应的时间长,没有人机交互功能,就是用户提交作业以后,只能等待计算机处理完,中途不能控制自己作业的执行。

分时操作系统

为了解决人机交互问题,就发展出分时操作系统:

计算机以时间片 为基本单位轮流地为用户/作业服务 ,各个用户可以通过终端与计算机进行交互。

它的主要优点就是:用户的请求可以及时的被响应,解决了人机交互的问题。允许用户同时使用计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。

同时它也存在缺点:不能优先处理一些紧急的任务。操作系统对每一个用户/作业都是公平的,循环地为每一个用户/作业提供服务一个时间片,不区分任务的紧急。

实时操作系统

为了解决不能优先处理一些紧急的任务这一问题,又发展出实时操作系统:

其优点就是优先响应一些紧急的任务,某些紧急任务不需要时间片的排队。

同时实时操作系统还具备及时性可靠性 这两个特点。

在实时操作系统的控制下,计算机在接收到外部信号以后会及时的处理,并且在严格的时间内处理完事件

对于实时操作系统能否及时完成一些外部信号的处理,我们划分出两种实时操作系统。

一种是硬实时系统 ,一种是软实时系统

前者要求必须在绝对严格的事件内完成处理,比如导弹控制系统,自动驾驶系统;

后者能够接收偶尔违反时间规定,比如火车订票系统。

其他的几种操作系统

网络操作系统:

是伴随着计算机网络发展而诞生的,能把网络中各个计算机有机的结合起来,实现数据传输等功能。实现网络中各种资源的共享(文件共享)和各台计算机之间的通信

(比如Windos NT就是一种典型的网络操作系统,网站服务器就可以使用)

分布式操作系统:

其主要特点就是分布性和并行性 。系统中各个计算机低位相同,任何工作都可以分布在这些计算机中,由它们并行、协同的完成任务。

个人计算机操作系统: Windos XP、MacOS,便于个人使用。

相关推荐
闪闪发亮的小星星15 小时前
高斯光以及高斯光公式解释
笔记
cqbzcsq16 小时前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息
阿米亚波17 小时前
【Windows】QEMU 启动 openEuler aarch64/arm64 架构系统 + 离线软件源
linux·windows·经验分享·笔记·架构·arm
自传.17 小时前
尚硅谷 Vibe Coding|第三章(1) Claude Code深度使用与进阶技巧 学习笔记
笔记·学习·尚硅谷·vibecoding
.千余18 小时前
【C++】模板进阶全解:非类型参数|全特化|偏特化|分离编译完全指南
开发语言·c++·笔记·学习·其他
自传.18 小时前
尚硅谷 Vibe Coding|第二章 AI编程工具生态 学习笔记
笔记·学习·ai编程·尚硅谷·vibe coding
秋波。未央19 小时前
Java Agent 开发 · Day 1 学习笔记(含作业完整标准答案)
java·笔记·学习
中屹指纹浏览器20 小时前
2026指纹浏览器字体指纹、字体渲染偏差检测与全维度虚拟字体池搭建方案
经验分享·笔记
影寂ldy20 小时前
WinForm PictureBox控件 + ImageList组件 完整笔记
开发语言·笔记·swift