操作系统多进程与文件操作的历史演变

£可爱£侵袭症+ 提交于 2020-03-05 13:24:32

结合历史上的操作系统,说明操作系统为什么要有多进程

  • 六七十年代初,计算机刚刚发展之时,一台计算机只完成一件事情,但由于计算机的处理远远高于人手工的处理,当时的计算机很受人们欢迎;但慢慢地,人们想用少的成本完成更多的事情,便在思考是否可以将两台完成不同操作的计算机用一台计算机来实现。此时,多线程的思想已经慢慢进入人们的思想中。
  • 在上世纪七八十年代,当计算机开始进入多个行业,人们需要让一台计算机干多种事,效率低、耗时长、未充分利用资源的单道批处理系统已经不能满足人们的需求,此时就有人提出在一个程序在执行不需要资源的I/O操作时,将其资源用于另一个程序,同时提高了内存资源以及I/O设备的利用率。而这种思想正是多进程的思想,这是多进程的萌芽。
  • 又过了一段时间,一台计算机完成多种事情又不能满足人们的需求,试想,一家公司,人人都想用计算机做些什么操作,倘若资源只能在一台计算机中进行切换,岂不是又回到了单道批处理系统的思想上,所以人们再次利用多进程的思想,把一台计算机中程序的切换扩展到多台计算机资源的切换,更提高了资源的利用率,这是多进程的发展。

历史演变

结合历史上的操作系统,说明操作系统为什么引入文件操作?

  • 文件操作是操作系统用于明确磁盘或分区上的文件的方法和数据结构,具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。他的引入很大程度上的说明了用户对于自己信息文件管理安全的一种关注,无论是最开始的单机文件系统,还是现在的集群式文件系统。
  • 最早的文件操作是用于操作系统和应用程序的本地存储,也被称作单机文件操作系统。就像是刻在不可移动光盘上的信息一样,这时的文件操作仅限于本地;
  • 这时就有人在想是否可以实现多个机器之间对同一文件进行操作,此时就提出了一种基于现有以太网架构,实现不同服务器之间传统文件系统数据共享(磁盘不共享,文件系统共享,表明文件不可以跨服务器存储),但是他还不够完善,这种网络文件系统并不能在两台服务器上同时访问修改。
    在网络文件系统的基础上,完善它的功能,弥补它的缺陷,在共享存储基础(集群中所有机器的磁盘共享,文件可以跨服务器存储)上,通过集群锁,实现不同服务器能够共用一个传统文件系统的集群文件系统产生了,他极大地满足了人们对于文件操作的需求
  • 但随着操作系统以及计算机的不断发展,需要使用更多服务器对同一文件进行操作,而只能能应用在最多16台服务器上的集群文件系统已经不能支持用户对于拓展性的要求,便有了通过额外模块实现数据跨服务器分布,并且自身集成raid保护功能,可以保证多台服务器同时访问、修改同一个文件系统的分布式文件系统。与之前的文件操作系统相比,他的性能更优越,扩展性更好,成本也更低廉。

问1:如何理解模块化结构与分层式结构?

答1:模块化结构程序设计技术基于“分解”和“模块化”的原则来控制大型软件的复杂度,他并不是由众多的过程直接构成的,而是按照其功能精心的划分为若干个具有一定独立性和大小的模块,每个模块之间通过接口实现交互。那如何来理解模块化结构呢,相比于其他我不太了解的行业,我更愿意用编程的思想来理解模块化结构:模块化结构就像是编程语言中的面向对象语言,当我们去实现一种功能时,往往将他分为一个一个的模块,甚至有的比较大的模块会再细分,每一个模块都用来独立实现一种功能,比如我们要写一款“导航系统”,会把他进行模块化,首先在主函数中定义相关接口规则,用来规范各个模块之间的交互,再实现地点信息的创建,实现路径信息的创建,实现两点之间路径的查询等等,当然这些实现的思想都是封装思想,当每个模块都完成后,最后再将他整合起来,形成一个完整的系统。这种设计思想,好就好在可维护性强,在出现错误时,我们只需要去监控负责其功能的模块,而不用依次的排查,大大节省了效率。

分层式结构是一种“自底向上”的结构,他将操作系统分为好几个的层次,每个层又由若干个模块组成,各层之间只存在着单向的依赖关系,即就是高层仅仅依赖于紧邻他的低层。同样的用编程的思想来理解分层式结构,他就像是一种大型程序或者平台的建立,第一大层便是他的底层服务器的构建,而第二层是业务管理层,业务速度的快慢,是否具有高并发性,在同一时间最大的用户访问数可以达到多少这些都会取决于第一层底层的搭建,底层搭建的越稳固,用户进行高频率的访问时对平台造成的影响就越小,系统崩掉的可能性就越低。而这种结构的优势就在于它不仅易保证系统的正确性和易维护性,还具有易扩充的特点,当我们要进行系统升级时,不用全盘升级,只需要将其中需要更新升级的一层替换掉。

分层结构

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!