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

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

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

手工操作系统

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

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

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

一是:用户独占全机

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

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

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

批处理阶段

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

单道批处理系统

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

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

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

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

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

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

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

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

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

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

分时操作系统

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

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

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

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

实时操作系统

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

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

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

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

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

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

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

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

其他的几种操作系统

网络操作系统:

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

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

分布式操作系统:

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

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

相关推荐
im_AMBER5 小时前
React 10
前端·javascript·笔记·学习·react.js·前端框架
LEEBELOVED5 小时前
R语言高效数据处理-3个自定义函数笔记
开发语言·笔记·r语言
朝新_5 小时前
【SpringMVC】SpringMVC 请求与响应全解析:从 Cookie/Session 到状态码、Header 配置
java·开发语言·笔记·springmvc·javaee
wdfk_prog11 小时前
[Linux]学习笔记系列 -- [kernel][time]alarmtimer
linux·笔记·学习
小志biubiu11 小时前
【Linux】Ext系列文件系统
linux·服务器·c语言·经验分享·笔记·ubuntu·操作系统
charlie11451419112 小时前
现代 Python 学习笔记:Statements & Syntax
笔记·python·学习·教程·基础·现代python·python3.13
im_AMBER15 小时前
Leetcode 41
笔记·学习·算法·leetcode
im_AMBER16 小时前
React 05
开发语言·前端·javascript·笔记·学习·react.js·前端框架
报错小能手19 小时前
C++笔记(面向对象)详解单例模式
c++·笔记·单例模式