操作系统学习笔记友情链接
这次的学习笔记记录了操作系统的形成与发展。以下是我的学习笔记。
操作系统的形成与发展
随着计算机硬件的发展,相应的操作系统也得到了发展,下面是操作系统的各个时期的样子。
操作系统的形成时期
关于操作系统的形成时期,这里推荐读者看一部电影:《模仿游戏》 这部电影讲述了图灵的故事,讲述了他在二战时期研制的图灵机。这里面有最早期计算机的样子,当然这与操作系统无关,读者大可跳过 ~
手工操作阶段
最早的计算机诞生于1946年,也就是著名的ENIAC,它主要硬件采用电子管元器件(速度慢、体积大),此时计算机的操作系统尚未出现。
此时的计算机的操作方式:**由用户(即是操作员又是程序员)采用人工操作的方式直接使用计算机硬件系统,由手工控制作业(程序)的输入与输出,通过控制台开关启动程序运行。**具体流程如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TSByUKfY-1573142886236)(https://i.loli.net/2019/11/07/zTjA7SsuV12Nb4m.png)]
显然手工操作的方式有着很明显的缺点:
- CPU等待用户操作。当用户输入作业的时候,CPU处于空闲阶段,可想而知很大的降低了计算机资源的利用率
- 用户独占计算机资源。从上图可知,当用户操作计算机的时候,计算机资源被这个用户一人独占,资源利用率低。
- CPU与I/O设备串行工作。所有设备都由CPU控制,CPU向设备发出命令后设备开始工作,而此时CPU处于等待状态;当CPU工作时,I/O设备处于等待CPU命令的状态,即CPU与I/O设备无法同时工作。
监控程序阶段(早期单道批处理系统)
20世纪50年代中期,计算机硬件已经进入了晶体管时代,开辟了电子时代新纪元。如何提高计算机运算速度、提高计算机资源利用率成了一个大问题。
手工操作浪费大量CPU时间,严重的影响了CPU的利用率,为了减少作业间用手工操作转换装入的时间,提高CPU利用率。监控程序干预下的单道批处理系统(完全由计算机控制实现作业间的转换)应运而生。
操作员按照作业的性质组织一批作业,并将这批作业统一由纸带或卡片输入到磁带上,再由监控程序将磁带上的作业一个接一个装入内存投入运行,即作业由装入内存到运行结束都自动实现。主要流程:首先由监控程序将磁带上的第一个作业的源程序转换为目标程序装入内存,然后判断这段源程序是否有错,若有错则调入下一个程序,反之装配目标程序,运行目标程序得出我们想要的结果,然后重复上述过程直到没有要处理的作业为止。 下图展示了监控程序的工作过程:
操作系统的成熟时期
20世纪60年代,这一代的计算机硬件采用的是集成电路,代替了部分的晶体管元器件,这个时期也被称为“中小规模集成电路计算机时代”。
多道批处理操作系统
硬件有了实质性的发展,为了更好的发挥硬件的功能并满足各种应用需求,需要一个更加强大的监控程序来控制计算机系统的所有操作,并管理计算机系统的所有软件、硬件资源,多道批处理系统设计成为现实。
先来看一下单道批处理系统中的程序运行情况:
在单道批处理系统中,CPU与其他硬件设备串行工作,有一个程序运行其他程序必须等待直到无下一个作业为止,导致许多资源空闲,系统性能差。
多道批处理系统中,允许多个程序同时进入计算机内存,并采用交替执行方法使它们运行。从微观来看,程序交替执行;从宏观来看,程序同时运行。下图是多道系统三个程序的运行情况:
从这个图中我们可以看出:首先输入程序A,A在CPU中运行的时候输入B,A程序完成部分操作打印A程序的结果,轮到B使用CPU,这时候输入了C……等等等等,以此类推。
进行多道程序设计的时候,需要解决以下三个问题:
- 程序浮动与存储保护问题。程序浮动是指程序能从一个内存位置移动到另一个内存位址,而不影响其运行。存储保护是指多个程序共享内存时,要求每个程序只能访问授权的区域。
- CPU的调度和管理问题。多道程序设计轮流使用CPU,这就要求对每个程序何时使用CPU,以及怎么样使用CPU等环节进行安排和管理。
- 其他资源的管理和调度问题。除能共享CPU资源外,同样也能共享系统中的其他资源,保证资源的合理分配以及正确使用这些资源成了一个问题。
分时操作系统
多道程序设计的意图是提高计算机资源的利用率,而推动分时操作系统发展的主要动力则是用户的需求。
用户的需求主要表现在:
- 人机交互。写好的程序大都需要Debug,需要上机调试。希望计算机可以边运行边修改对程序中的错误进行修改。
- 便于用户上机。一台主机配置多个终端,用户可以通过自己的终端直接将作业送到计算机上进行处理,并能够对自己的作业进行控制。
- 共享主机。那时的计算机特别贵,不可能像现在这样人手一个电脑,只能由多个用户共享一台计算机,但用户在使用计算机时,应能像自己独占计算机一样,不仅可以随时交互,而且感觉不到其他用户正在使用计算机。
操作系统进一步发展时期
20世纪80年代后,随着微电子技术的迅速发展,大规模及超大规模集成电路技术得到了广泛应用。计算机工业获得了井喷式的发展。
此时微型计算机得到了迅速的发展,推动了微机操作系统的出现和发展,主要使用对象也趋向个人化,智能化。操作系统界面朝着更加方便用户与计算机交互的方向发展,传统的字符界面逐渐被图形用户界面所取代。
下图是传统字符界面与图形界面的对比:
最主要的操作系统有:
- DOS(这个大家都知道吧)
- Windows(国内最常用的)
- Unix(我没有使用过真身)
- Linux(为了打比赛,曾经在机房的电脑上试装了这个系统,对于码代码的同胞们来说用户体验极好)
- 等等……
20世纪90年代后期,随着网络的出现,促进了网络操作系统和分布式操作系统的诞生,计算机应用逐步向网络化、分布式及智能化方向发展。操作系统的设计观念也发生了改变,由主要追求如何提高系统的资源利用率,转变到同时要考虑使用方便及提高人工效率等因素。
随着计算机不断普及,操作系统的功能将变的越来越复杂。在这种趋势下,操作系统的发展面临着两个方向的选择:
- 朝着微内核方向发展;微内核操作系统虽然有不少人在研究,但获得工业界认可的并不多,在工业方面不认可微内核的人首先想到的就是性情暴躁的Linux之父了,关于与微软交恶、微内核宏内核之争,这里不多描述,感兴趣的读者可以自己搜索
- 朝着大而全的全方位方向发展。
以上就是操作系统的形成与发展,纵观整个发展历程,都是随着硬件的发展而诞生出了一代比一代强的操作系统。
在哲学层面上,物质决定意识。有了物质上充足的发展,人们的意识也跟着进一步得到了发展;意识又对物质具有能动作业,正确的意识指导人们有效的开展实践活动,促进客观事物的发展。这是个很有意思的事情,很巧妙的总结了人类发展的本质。所以现在要做的就是不断充实自己的知识量,去创造更好的客观条件,才不废多年的努力。加油少年!以梦为码(码没打错哟 ~ ),不负韶华!