关键技术和需求驱动下的操作系统进化

关键技术和需求驱动下的操作系统进化

  • 发展历程
    • 手工操作阶段
    • 批处理阶段
    • 多道程序系统
    • 分时操作系统
    • 实时系统
    • 通用操作系统
  • 进一步发展
    • 个人计算机操作系统
    • 网络操作系统
    • 分布式操作系统
    • 其他

版本 时间 变化
v1.0 2018/12/29 文字描述以计算机载体的操作系统:发展及背后驱动的技术&需求
v1.1 阅读资料并补充各阶段操作系统处理流程框图
v1.2 阅读资料并补充相应的硬件照片,当时操作系统例子
v1.3 完善个人理解,添加FAQ章节

发展历程

技术的进步和不断更新的需求,驱动着操作系统不断地演进并完善。二者相互推进着操作系统的发展,出现瓶颈并打破瓶颈,使操作系统跨越了越来越多的挑战。

阶段 年代 技术 需求 特点 挑战
第一代 1946年~50年代末 电子管时代 科学计算&数据处理 无操作系统 手工的低速与计算机的高速不匹配,计算资源没有得到充分利用
第二代 50年代末~60年代中期 晶体管时代 科学计算&事务处理&工业控制 批处理系统 CPU计算型程序与I/O型程序,资源需要进一步合理利用
第三代 60年代中期~70年代中期 集成电路时代 数值计算&信息管理&过程控制&辅助工程 多道程序设计 “不提供人机交互能力,给用户使用计算机带来不便”
第四代 70年代中期至今 大规模和超大规模集成电路时代 分时系统

手工操作阶段

操作流程: 先把程序纸带(或卡片)装上输入机,然后启动输入机把程序和数据送入计算机,接着通过控制台开关启动程序运行。计算完毕,打印机输出计算结果,用户取走并卸下纸带(或卡片)。

  1. 构成计算机的主要元器件是电子管,运行速度慢,没有操作系统,甚至没有任何软件;
  2. 用户直接用机器语言编制程序,并在上机时独占全部计算机资源;

特点: 用户独占机器,CPU等待手工操作,CPU利用不充分;
缺点: 手工操作的速度和计算机的高速度之间形成了尖锐矛盾,手工操作使计算机的资源利用率极低;
解决办法: 摆脱手工操作,用机器来对作业进行控制。

个人理解:输入输出及开关控制都需要用户参与,此时的操作系统实际上就是用户,而计算机只负责对该作业进行计算。由“机器代替完成科学计算推广至数据和事务处理”,更多的是一种对替代人类的一种算力的需求驱动,技术则主要由电子管,电阻器构建而成

思维发散:
1946年的2月14日,在美国的费城,一台由美国政府与宾夕法尼亚大学联合开发的自动计算机ENIAC面世,从此标志了 现代 计算机的诞生。
1950年,世界上第一台具有存储程序功能的计算机EDSAC由冯·诺依曼博士领导设计。它的主要特点是采用二进制,使用汞延迟线作存储器,指令和程序可存入计算机中。

批处理阶段

改进: 1)配备专门的计算机操作员,程序员不再直接操作机器,减少操作机器的错误;2)进行批处理,操作员把用户提交的作业分类,把一批作业编成一个作业执行序列。每一批作业将有专门编制的监督程序(monitor)自动依次处理。
操作流程:

  1. 联机批处理
    慢速的输入输出(I/O)设备是和主机直接相连;
    用户提交作业;作业被制作成穿孔纸带或卡片;操作员有选择地把若干作业合成一批,通过输入设备(纸带输入机或读卡机)把它们存入磁带;监督程序读入一个作业(若系统资源能满足该作业要求);从磁带调入汇编程序或者编译程序,将用户作业源程序翻译成目标代码;连接装配程序把编译后的目标代码及所需的子程序装配成一个可执行程序;启动执行;执行完毕,由善后处理程序输出计算结果。
  2. 脱机批处理
    增加一台不与主机直接相连而专门用于与输入输出设备打交道的卫星机;主机与卫星机可以并行工作。
    输入设备通过卫星机把作业输入到输入磁带;
    输出磁带将作业执行结果输出到输出设备;
  3. 硬件进展:通道和中断
    操作系统实现的是输入输出联机操作,输入输出工作是由主机控制下的通道完成的;
    主机和通道、主机和输入输出设备都可以并行操作;
    用户程序的输入输出工作均由系统执行而没有人工干预,由系统检查其命令合法性。

特点: 单道顺序地处理作业,即用户作业仍然是一道一道作业顺序处理。
缺点: 对于以计算为主的作业,输入输出量少,外围设备空闲;然而对于以输入输出为主的作业,又会造成主机空闲;计算机资源使用效率仍然不高。
解决办法: 多道程序合理搭配交替运行,充分利用资源,提高效率

个人理解:分别单独从作业/计算机的角度来看,先是收一批作业,减少作业一手工输入一手工输出时间CPU等待,变成一批作业一手工输入一手工输出时间CPU等待,中间让监控程序来确保该批次内作业顺序执行;接着引入脱机“卫星机思想”,从CPU来看就是直接读卫星机上的该批作业,减少了读了一批处理完了还得等待下一批装载;随着“通道技术“发展,脱机的卫星机发展为联机的通道;从作业的维度上来看,该阶段的发展已经摆脱了CPU等待人工的硬伤,下一步要优化的就是多种程序搭配,进到作业(程序)内部来提升资源利用”

思维发散:
1954年,美国贝尔实验室研制成功第一台使用晶体管线路的计算机,取名“催迪克”(TRADIC),装有800个晶体管。
晶体管的发明推动了计算机的发展,逻辑元件采用了晶体管以后,计算机的体积大大缩小,耗电减少,可靠性提高,性能比第一代计算机有很大的提高

多道程序系统

操作流程:
多道运行:计算机内存中同时存放几道相互独立的程序;
程序的角度:宏观上并行,都处于运行过程中,即均先后开始了各自的运行,但都未运行完毕;
CPU的角度:微观上串行,各道程序轮流使用CPU,交替执行。
批处理系统中采用多道程序设计技术,就形成了多道批处理系统。要处理的许多作业存放在外部存储器中,形成作业队列,等待运行;当需要调入作业时,将由操作系统中的作业调度程序对外存中的一批作业,根据其对资源的要求和一定的调度原则,调几个作业进入内存,让它们交替运行;在内存中总是同时存在几道程序,系统资源得到比较充分的利用。

面临的技术问题

  1. 并行运行的程序要共享计算机系统的硬件和软件资源,存在对资源的竞争,又必须相互同步。因此同步和互斥机制成为操作系统设计的重要问题;
  2. 多道程序的增加,出现了内存不够用的问题,提高内存的使用效率也成为关键。因此出现了诸如覆盖技术、交换技术和虚拟存储技术等内存管理技术;
  3. 由于多道程序存在于内存,为了确保系统程序存储区和各用户程序存储区的安全可靠,提出了内存保护的要求。
    多道程序系统的出现标志着在操作系统渐趋成熟的阶段先后出现了作业调度管理、处理机管理、存储器管理、外部设备管理、文件系统管理等功能。多道程序系统的出现标志着在操作系统渐趋成熟的阶段先后出现了作业调度管理、处理机管理、存储器管理、外部设备管理、文件系统管理等功能。

个人理解: 进入到作业的内部维度来寻找,程序交替执行,进一步提升资源利用;以前的阶段都是针对作业维度的提升资源利用,更侧重强调作业,能够实实在在看到的作业,而多道程序引入之后,更侧重程序内部之间的配合,更侧重强调程序,至于程序和作业的映射关系,一个进程是一个程序对某个数据集的执行过程,是分配资源的基本单位。作业是用户需要计算机完成的某项任务,是要求计算机所做工作的集合

思维发散:第三代计算机即第三代集成电路计算机 (1964-1971)。特征是以中小规模集成电路(每片上集成一千个逻辑门以内)(西文写作SSI、MSI)来构成计算机的主要功能部件;主存储器采用半导体存储器。运算速度可达每秒几十万次至几百万次基本运算。在软件方面,操作系统日趋完善。

分时操作系统

目的: 既能保证计算机效率,又能方便用户使用。
操作流程:
由于CPU速度不断提高和采用分时技术,一台计算机可同时连接多个用户终端,而每个用户可在自己的终端上联机使用计算机,好像自己独占机器一样。
分时技术:把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时中断,把处理机让给另一作业使用,等待下一轮时再继续其运行。由于计算机速度很快,作业运行轮转得很快,给每个用户的印象是,好象他独占了一台计算机。而每个用户可以通过自己的终端向系统发出各种操作控制命令,在充分的人机交互情况下,完成作业的运行。

特点:
  (1)多路性。若干个用户同时使用一台计算机。微观上看是各用户轮流使用计算机;宏观上看是各用户并行工作。
  (2)交互性。用户可根据系统对请求的响应结果,进一步向系统提出新的请求。这种能使用户与系统进行人机对话的工作方式,明显地有别于批处理系统,因而,分时系统又被称为交互式系统。
  (3)独立性。用户之间可以相互独立操作,互不干扰。系统保证各用户程序运行的完整性,不会发生相互混淆或破坏现象。
  (4)及时性。系统可对用户的输入及时作出响应。分时系统性能的主要指标之一是响应时间,它是指:从终端发出命令到系统予以应答所需的时间。
  
个人理解:分时系统区别于多道批处理,在于多道批处理系统,虽然是程序合理交替利用I/O、CPU资源,也利用了时分的概念;但是从需求上并未从用户的角度出发,分时能够满足多用户的多任务场景,同时让用户和程序之间交互,也就是我们现在可以一边写博客,一边听音乐(虽然单用户程序),同时时可以对博客写写停停,音乐暂停,或者下一曲。

思维发散:多用户分时操作系统是当今计算机操作系统中最普遍使用的一类操作系统

实时系统

改进:
虽然多道批处理系统和分时系统能获得较令人满意的资源利用率和系统响应时间,但却不能满足实时控制与实时信息处理两个应用领域的需求。于是就产生了实时系统,即系统能够及时响应随机发生的外部事件,并在严格的时间范围内完成对该事件的处理。
使用场景

  1. 实时控制系统。当用于飞机飞行、导弹发射等的自动控制时,要求计算机能尽快处理测量系统测得的数据,及时地对飞机或导弹进行控制,或将有关信息通过显示终端提供给决策人员。当用于轧钢、石化等工业生产过程控制时,也要求计算机能及时处理由各类传感器送来的数据,然后控制相应的执行机构。
  2. 实时信息处理系统。当用于预定飞机票、查询有关航班、航线、票价等事宜时,或当用于银行系统、情报检索系统时,都要求计算机能对终端设备发来的服务请求及时予以正确的回答。此类对响应及时性的要求稍弱于第一类。

特点:
及时响应,每一个信息接收、分析处理和发送的过程必须在严格的时间限制内完成。
高可靠性,需采取冗余措施,双机系统前后台工作,也包括必要的保密措施等。

通用操作系统

定义
操作系统的三种基本类型:多道批处理系统、分时系统、实时系统。
通用操作系统:具有多种类型操作特征的操作系统。可以同时兼有多道批处理、分时、实时处理的功能,或其中两种以上的功能。
举例

  1. 例如:实时处理+批处理=实时批处理系统。首先保证优先处理实时任务,插空进行批处理作业。常把实时任务称为前台作业,批作业称为后台作业。
  2. 再如:分时处理+批处理=分时批处理系统。即:时间要求不强的作业放入“后台”(批处理)处理,需频繁交互的作业在“前台”(分时)处理,处理机优先运行“前台”作业。
  3. 从上世纪60年代中期,国际上开始研制一些大型的通用操作系统。这些系统试图达到功能齐全、可适应各种应用范围和操作方式变化多端的环境的目标。但是,这些系统过于复杂和庞大,不仅付出了巨大的代价,且在解决其可靠性、可维护性和可理解性方面都遇到很大的困难。
  4. 相比之下,UNIX操作系统却是一个例外。这是一个通用的多用户分时交互型的操作系统。它首先建立的是一个精干的核心,而其功能却足以与许多大型的操作系统相媲美,在核心层以外,可以支持庞大的软件系统。它很快得到应用和推广,并不断完善,对现代操作系统有着重大的影响。
  5. 至此,操作系统的基本概念、功能、基本结构和组成都已形成并渐趋完善。

进一步发展

进入20世纪80年代,大规模集成电路工艺技术的飞跃发展,微处理机的出现和发展,掀起了计算机大发展大普及的浪潮。一方面迎来了个人计算机的时代,同时又向计算机网络、分布式处理、巨型计算机和智能化方向发展。于是,操作系统有了进一步的发展,如:个人计算机操作系统、网络操作系统、分布式操作系统等。

个人计算机操作系统

个人计算机上的操作系统是联机交互的单用户操作系统,它提供的联机交互功能与通用分时系统提供的功能很相似。由于是个人专用,因此一些功能会简单得多。然而,由于个人计算机的应用普及,对于提供更方便友好的用户接口和丰富功能的文件系统的要求会愈来愈迫切

网络操作系统

计算机网络:通过通信设施,将地理上分散的、具有自治功能的多个计算机系统互连起来,实现信息交换、资源共享、互操作和协作处理的系统。
网络操作系统:在原来各自计算机操作系统上,按照网络体系结构的各个协议标准增加网络管理模块,其中包括:通信、资源共享、系统安全和各种网络应用服务。

分布式操作系统

表面上看,分布式系统与计算机网络系统没有多大区别。分布式操作系统也是通过通信网络,将地理上分散的具有自治功能的数据处理系统或计算机系统互连起来,实现信息交换和资源共享,协作完成任务。——硬件连接相同。
  但有如下一些明显的区别:
  (1)分布式系统要求一个统一的操作系统,实现系统操作的统一性。
  (2)分布式操作系统管理分布式系统中的所有资源,它负责全系统的资源分配和调度、任务划分、信息传输和控制协调工作,并为用户提供一个统一的界面。
  (3)用户通过这一界面,实现所需要的操作和使用系统资源,至于操作定在哪一台计算机上执行,或使用哪台计算机的资源,则是操作系统完成的,用户不必知道,此谓:系统的透明性。
  (4)分布式系统更强调分布式计算和处理,因此对于多机合作和系统重构、坚强性和容错能力有更高的要求,希望系统有:更短的响应时间、高吞吐量和高可靠性。

其他

通道:能够控制多台输入输出设备工作,负责输入输出设备与主存之间的信息传输。启动后能够独立于CPU运行,以便CPU和通道并行操作,CPU和多种输入输出设备也能并行操作。
中断:主机接到外部信号(如输入输出设备完成信号)时,马上停止原来工作,转去处理该事件,处理完毕后,回到原来的断点继续工作。

你可能感兴趣的:(OS学习笔记,操作系统发展)