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

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

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

手工操作系统

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

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

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

一是:用户独占全机

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

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

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

批处理阶段

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

单道批处理系统

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

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

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

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

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

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

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

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

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

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

分时操作系统

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

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

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

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

实时操作系统

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

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

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

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

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

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

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

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

其他的几种操作系统

网络操作系统:

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

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

分布式操作系统:

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

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

相关推荐
ZC跨境爬虫8 小时前
跟着 MDN 学 HTML day_9:(信件语义标记)
前端·css·笔记·ui·html
OBiO201311 小时前
Cell | 突破AAV载体容量限制!路中华/姜玉武/刘太安团队开发AAVLINK系统实现大基因递送
笔记
智者知已应修善业12 小时前
【51单片机2个按键控制流水灯运行与暂停】2023-9-6
c++·经验分享·笔记·算法·51单片机
sakiko_13 小时前
UIKit学习笔记5-使用UITableView制作聊天页面
笔记·学习·swift·uikit
Alice-YUE14 小时前
【js高频八股】防抖与节流
开发语言·前端·javascript·笔记·学习·ecmascript
小陈phd15 小时前
TensorRT 入门完全指南(一)——从核心定义到生态工具全解析
人工智能·笔记
是上好佳佳佳呀15 小时前
【前端(十一)】JavaScript 语法基础笔记(多语言对比)
前端·javascript·笔记
handler0115 小时前
Linux 内核剖析:进程优先级、上下文切换与 O(1) 调度算法
linux·运维·c语言·开发语言·c++·笔记·算法
其实防守也摸鱼16 小时前
CTF密码学综合教学指南--第四章
网络·笔记·安全·网络安全·密码学·ctf
05候补工程师18 小时前
【ROS 2 具身智能】Gazebo 仿真避坑指南:从“幽灵机器人”到传感器数据流打通
人工智能·经验分享·笔记·ubuntu·机器人