0


1操作系统发展历程

文章目录

前言

想要理解操作系统(

operating system

简称OS),首先需要明白其发展历程,然后知晓工作原理,下面的内容就是主要介绍因为什么原因而发展,以及现在的功能和目标.


1 发展历程原因

1.1 人工输入和脱机IO(输入输出)

人工控制

早期计算机的功能非常简单,只能用于计算性工作,而操作的方式就是人工控制,步骤如下:

  • 把需要计算的数据或程序通过在纸上打孔方式进行记录 (数据卡片准备),然后装入卡片输入机.
  • 然后启动输入机将数据传进计算机.
  • 当完成前两步后,启动计算机,开始运行计算,仅当程序运行完毕以后且取走计算结果以后,才可以进行下一个用户上机继续操作.

通过上述步骤可以明显感受到其两大缺点:

  1. 用户独占全机,下一个用户想要使用必须等待上一个用户完毕
  2. CPU将会等待人工操作,当用户装载卡片时候,CPU处于空闲状态.

脱机(脱离主机)IO

可见,人工操作方式严重降低了计算机资源的利用率,即所谓的人机矛盾.为了解决CPU等待人工操作操作时处于空闲状态问题,又发展出脱机IO方案:在输入机和计算机之间装载了外围机,其作用是控制事先装载好数据卡片的输入机将数据输入磁带,当CPU需要这些数据时候,就从磁带上高速调用.类似的当CPU需要输出时,可直接调用事先存储到磁带上的数据.

优点:

  • 当装载数据卡片时候,主机可以开启也可以关闭,并不受制于人工控制时时代缺点,可减少CPU等待时间
  • 提高了IO设备速度,CPU需要数据时,直接从磁带高速调用,而不是等待人工装载卡片然后启动输入数据

image-20220223113757530


1.2 单道批处理系统

脱机处理一定程度解决了CPU空闲时间,但是人工控制的第一个缺点无法解决,就是换下一个用户时候,以及下一个用户装载数据卡片时候留下的大量空余时间,因此出现了单道批处理系统.它的解决方式是把多个用户的数据卡片数据以脱机方式输入进磁带,并在系统中配置监督程序(Monitor),在它监督下使这批作业一个接一个的进行处理.虽然系统对作业的处理是成批进行,但是CPU始终只保持一道作业,因此称为单道批处理系统.

缺点:

系统资源(注意是系统)得不到充分利用,因为在内存中仅有一道程序,当该程序发出I/O请求,CPU就需要等待程序输入输出后才可以继续执行下一道程序.

image-20220223114848597


1.3 多道批处理系统

多道概念:内存中放有多道相互独立的程序 ,进一步提高系统资源的利用率和吞吐率(多道系统发展的动力).

工作原理: 先把用户提交的作业以一种队列形式(后备队列)存在外存,然后由作业调度程序按照一定的算法,从后备队列中选择若干个作业调入内存,以便共享CPU和系统资源;由于内存中有多个程序,当CPU所执行的程序A执行IO请求后所留出来的空闲时间,便可以用来执行下一个作业B,同理,当B申请IO请求而所留出来的空闲时间又可以用来执行下一个作业C…利用他们IO请求的时间交替执行多道作业便可以使CPU一直处于忙碌状态,进而提高利用效率.

优点:

  • 资源利用率高,系统吞吐量大;

缺点:

  • 平均周转时间长: 作业需要排队处理,因此作业的周转时间长(一般几个小时到几天不等)
  • 无人机交互能力: 用户一旦提交作业给系统后,直到作业运行完毕为止都不能进行交互,修改和调试程序及其不方便

image-20220223133109378


1.4 分时系统

如果说多道批处理系统的发展动力是解决系统资源利用率和吞吐量,那么分时系统的出现就是为了解决其无人机交互能力;

分时系统用户的需求主要表现为:

  • 人机交互: 当写好程序以后,难免存在错误需要修改,因此用户希望能像早期计算机(人工输入)一样可以独占全机并对它进行直接控制,即人机交互.
  • 共享主机: 由于上世纪60年代计算机比较昂贵,大多数人使用的是同一个计算机主机,显然多用户在共享时,每人都希望可以独占并进行人机交互,而且不会感受到其他用户的存在.

由需求可以知道,分时系统是指,在一台主机上连接了多个配有显示器和键盘的终端并由此所组成的系统,该系统运行多用户同时通过自己的终端,以交互方式使用计算机(“独占”)且共享资源.

知道需求以后,那分时系统是怎么进行解决的呢? 我们回顾下多道批处理无法解决人机交互问题的原因: 作业都先驻留在外存,即便被调入内存后也需要等待较长时间才可运行,用户无法与自己作业进行交互,所以必须解决的问题就是用户与自己的作业交互问题.

**因此: **

**①系统必须提供多个终端同事给多个用户使用(提供多个终端多个显示器和IO设备可解决); **

②当用户在自己的终端键入命令时,系统可以及时接收并处理命令,并将结果准确返回;

③用户可以根据返回结果继续键入下一条命令;


及时接收的解决方案: 安装多路卡,并为每个终端提供缓冲区(可以使每个终端输入的数据逐条有序处理)

及时处理的解决方案: 作业直接进入内存,采用轮转运行方式(每个任务都只允许运行一个时间片,比如

2ms

,一旦时间片运行完,就开始下一个任务的时间片,然后循环);这样在宏观表现上就是极短的时间(同时)处理多个任务,且每个人都独占主机


1.5 实时系统

可以说发展到现在为止,系统已经逐渐完善,该有的缺点也得到了弥补,那么实时系统的作用又是干嘛的呢?

所谓实时,是表示"及时",而实时计算,则是说:系统的正确性不仅仅是由计算的逻辑结果来确定,还取决于产生结果的时间

也就是说,实时系统是指系统能及时响应外部外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行,采取了多级容错措施来保障系统和数据的安全性


1.6 微机操作系统

从人工输入机到实时系统,其用户所使用的都是同一台主机,只不过表现出的是不同终端(类似现在的机房),而随着时代的发展,所需要处理的信息和任务越来越多,所需要计算机的人也越来越多,于是这时候出现了个人计算机.而针对个人计算机的OS也随之诞生.

主要有以下三个代表:

  • 单用户单任务操作系统: 只允许一个用户上机,用户程序只能作为单任务运行. 典型例子为:CP/MDOS系统
  • 单用户多任务操作系统: 只允许一个用户上机,用户程序可划分为多任务并发运行. 典型例子为: windos系统
  • 多用户多任务操作系统: 允许多个用户上机,用户程序可划分为多任务并发运行. 典型例子为: Linux和Unix系统

2 冯诺依曼体系结构

我们都知道,计算机是由各种硬件组成,在这里,博主主要分为四大类:

  • 输入单元:键盘,网卡,鼠标,扫描仪,磁盘等
  • 存储器:即内存条
  • 中央处理器: 即CPU
  • 输出单元:显示器,网卡,磁盘,打印机等

可能有人会疑惑,网卡和磁盘怎么又是输入,又是输出单元呢?这并不矛盾哦~,请继续往下看

明白了计算机的构造,那么它们之间到底怎么联系的呢?这个嘛…就得问问冯诺依曼了.他规定如下法则:

  • CPU并不和外设(输入输出单元)打交道,而外设只和内存打交道.
  • 数据流向为: 输入单元–>内存–>CPU–>内存–>输出设备

image-20220225191753157

有人可能会问,直接让数据从输入单元(磁盘为例)到达CPU不好吗?干嘛要在它们之间插一个内存条并且规定数据必须先进入内存呢?答案是下面这张图:
img
越往上走,硬件体积更小,运行速度越快,但是设备的造价费用会呈几何倍上升.

越往下走,硬件体积更大,运行速度越慢,但是设备的造价费用会呈几何倍下降.

也就是理论上来说,我们完全可以把磁盘搞成几百G的内存条,但是这个费用,普通人根本用不起,那么读者现在也不能用电脑看到博主这篇文章了,而想要普罗大众都用的起计算机,只能折中处理,那就是在磁盘和CPU之间插入内存条.这样既保证了费用下降,又一定程度上保证了速度不是很慢.

**练习:请解释,从你登录上

qq

开始和某位朋友聊天开始,数据的流动过程**

发消息电脑: 键盘输入信息---->传入内存---->传入CPU—>传入内存---->传入网卡

接收人电脑: 网卡—>传入内存---->传入CPU—>传入内存---->传入显示器


3 操作系统在计算机中的角色

OS在计算机中到底扮演了一个什么角色呢?我们先引入生活中的一个例子:

在一所高校里面,有校长,辅导员(老师),学生三种角色; 校长直接管理辅导员(老师),辅导员(老师),直接管理学生,但是校长并不直接和学生接触(间接).

而在计算机中,有下面三种结构(帮助理解OS和硬件之间的关系):

操作系统(OS operating system), 驱动 和 各种硬件.它们分别对应的角色就是校长,辅导员(老师) 和 学生;

 也就是说操作系统的本质就是**一款管理软硬件的软件.** 但是想要真正理解计算机是怎么分工运行的,还需要下面这张分层图片(帮助理解用户,OS,硬件之间的关系):

image-20220225194931227

我们同样举一个生活中例子:

假设有一个银行(OS),那么银行一定就会有很多员工(驱动),以及各种保险柜和金库(硬件).

但是很明显,银行是不会相信任何人的,所以会用很厚的一块大玻璃把自己封起来,只提供很小的几个窗台(系统接口)对外使用.

如果用户(存钱或者取钱的人)想要进行操作,只能通过这几个对外窗口.但是在银行也会发生用户不知道该怎么办的时候,这个时候就会有相关工作人员(用户操作接口)全程陪同协助你完成你的目的.

也就是说,操作系统并不会裸露在外,而是被封装了,只对外提供接口(类似面向对象中的函数).而用户也并不是直接和硬件打交道,反之需要通过相关接口.

所以为什么要有操作系统:

  1. 可以减少用户使用计算机的成本
  2. 对下管理好所有的软硬件,对上给用户一个稳定高效的运行环境

标签: linux

本文转载自: https://blog.csdn.net/m0_51723227/article/details/123369737
版权归原作者 捕获一只小肚皮 所有, 如有侵权,请联系我们删除。

“1操作系统发展历程”的评论:

还没有评论