zoukankan      html  css  js  c++  java
  • 操作系统的简单历史(多道程序设计)

    多道程序设计, 用于解决顺序执行的问题:

    真空管与穿孔卡片(无操作系统,也就是第一代操作系统)

      在以前第一代计算机,处理任务,用的是卡片的方式,需要 输入  处理  输出 三部分组成  任务1卡片放入输入设备 然后到处理设备, 处理完成后,到输出设备打印结果,这时候如果有多个任务,就需要排队等待,比如这时候要进行任务2卡片,必须要等任务1处理完成后,才能继续处理,这多当时来说 CPU是很大的浪费,但是任务1是独享整个硬件的,这时候操作同系统最大的优点是任务1处理结果能最快拿到

      如下图

    晶体管和批处理系统(二代操作系统)

    一代计算机的问题:
        人机交互太多了(输入--->计算--->输出  输入--->计算--->输出 输入--->计算--->输出 ) 
    解决办法:
            把一堆人的输入攒成一大波输入,然后顺序计算(这是有问题的,但是第二代计算没有解决)再把计算结果攒成
            一大波输出,这就是批处理系统
         这时候,第二代操作系统,最主要的方式是进行批处理的改进,把任务1卡片 任务2卡片 放到一个清单卡片中,这样计算处理时候就按清单卡片中的任务进行处理,但是这时候会有个问题,清单卡片中的任务1不处理完成,就会一直处于IO等待,无法执行任务2的内容,这时候就出来第三大操作系统;使用多道技术 操作系统前身: 在收集了大约一个小时的批量作业之后,这些卡片被读入磁带,然后磁带被送到机房里并装到磁带上。然后磁带被送到 机房里并装到磁带机上。随后,操作员装入一个特殊的程序(此乃现代操作系统的前身),它负责从磁带上读入第一个 作业(job,一个或一组程序)并运行,其输出写到第二个磁带上,而且不打印。每个作业结束后,操作系统自动的从 磁带上读入下一个作业并且运行。当一整批的作业全部结束后,操作员去下输入和输出磁带,讲输入磁带换成下一批作 业,并且把输出磁带拿到一台1041机器上进行脱机(不与主计算机联机)打印 优点:批处理 缺点: 1 图的中间还有俩小人 2 仍然是顺序计算

     

    集成电路芯片和多道程序设计(第三代操作系统)

     针对二代计算机的两个主要问题
    
        开发出SPOOLING技术:
        卡片被拿到机房后能够很快的将作业从卡片读入磁盘,于是任何时刻当一个作业结束时,操作系统就能将一个作业从磁
        带读出,装进空出啦的内存区域运行,这种技术叫做同时的外部设备联机操作:SPOOLING该技术同时用于输出。当采
        用了这种技术后,就不在需要IBM1401机了,也不必将磁带搬来搬去了(中间俩小人失业了),强化了操作系统的功能
    
        开发出多道程序设计,用于解决顺序执行的问题(提高CPU利用率的,遇到IO操作的时候,执行切换,不同用户之间的切换):
    
        在7094机上(程序运行的机器),若当前作业因等待磁带或等待其他IO操作而暂停,CPU就处于休闲状态直至IO操作
        完成,对于CPU密集的科学计算,IO操作少,浪费时间不明显,对于商业数据处理,IO等待能到达80%~90%,所以必
        须解决CPU浪费的现象。
    
        解决方案:将内存分为几个部分,每一部分存放不同的作业,如图1-5所示。当一个作业等待IO完成时,另一个作业可以
        使用CPU,内存中放足够的作业,则CPU的利用率能接近100%
      大白话:也就是 清单中的A用户任务1 B用户任务2 C用户任务3 当处理到A用户任务1的时候 出现了IO等待(也就是说写入或者读取操作的时候),CPU进行切换,处理任务2 如果任务2也有IO等待,就切换到任务3 最后有返回到任务1上面处理,这样顺序处理就是多道技术,大大的提高了CPU使用率(我们现在操作系统进程有使用到这种技术),但是有个问题就是任务1 假如10分钟出来结果,这时候需要等待任务2 任务3处理完成后,才能出来任务1结果,这时候有出来一个分时操作系统 此时的第三代计算机适合大型科学计算和繁忙的商务数据处理,但,本质上其仍是一个批处理系统。 虽然解决了诸如以上问题,但多个作业必须在全部运行结束后,才能得到结果,从一个作业的提交到运算结果取回往往 长达数小时。 想象一个场景:A君 B君 C君 三个程序员同时在调试程序,一旦A君写错一个逗号,那么可能需要半天的时间才能看到结
    果,因为B君C君的结果也同时运算出来了。时间必然要长。一言以蔽之:大家一起存作业,大家一起去数据(磁带) 许多程序员怀念第一代独享的计算机,可以即时调试自己的程序。为了满足程序员们很快可以得到响应,出现了分时操作系统 分时操作系统:多个联机终端+多道技术(第三操作系统还是第三代,只是给第三代做个一个提升,进阶) 个人电脑已经不存在分时操作系统 20个客户端同时加载到内存,有17在思考,3个在运行,cpu就采用多道的方式处理内存中的这3个程序,由于客户提交的一般
    都是简短的指令而且很少有耗时长的,索引计算机能够为许多用户提供快速的交互式服务,所有的用户都以为自己独享了计
    算机资源
      大白话,就是这20个人都接接入一个显示器,这时候3个人运行程序,其他的人在思考,不使用到CPU,这时候3个人使用到多道程序实际,3个人其中的一个人处理完成后,由于现在一人有一个显示器,这时候,结果可以直接显示到自己屏幕上面看结果(第二代和第三代操纵系统,因为大家只有一个屏幕,就像上图,最后一个打印输出设备,需要等结果出来后大家集中去出看,所有就需要等待其他人处理完成后,才能统一出结果);这就是分时操作系统

    个人计算机:

      随着大规模集成电路的发展,每平方厘米的硅片芯片上可以集成数千个晶体管,个人计算机的时代就此到来。

    总结:

    真空管与穿孔卡片(无操作系统,也就是第一代操作系统)
      计算机由三部分组成 输入--->计算--->输出
      在以前第一代计算机,处理任务,用的是卡片的方式,需要 输入 处理计算 输出 三部分组成 任务1卡片放入输入设备 然后到处理计算设备, 处理完成后,到输出设备打印结果,这时候如果有多个任务,就需要排队等待,比如这时候要进行任务2卡片,必须要等任务1处理完成后,才能继续处理,这多当时来说 CPU是很大的浪费,但是任务1是独享整个硬件的,这时候操作同系统最大的优点是任务1处理结果能最快拿到


    晶体管和批处理系统(二代操作系统)
      二代操作系统,最主要的方式是进行批处理的改进,把任务1卡片 任务2卡片 放到一个清单卡片中,这样计算处理时候就按清单卡片中的任务进行处理,但是这时候会有个问题,清单卡片中的任务1不处理完成,就会一直处于IO等待,无法执行任务2的内容,这时候就出来第三大操作系统;使用多道技术


    集成电路芯片和多道程序设计(第三代操作系统)
      清单中的A用户任务1 B用户任务2 C用户任务3 当处理到A用户任务1的时候 出现了IO等待(也就是说写入或者读取操作的时候),CPU进行切换,处理任务2 如果任务2也有IO等待,就切换到任务3 最后有返回到任务1上面处理,这样顺序处理就是多道技术,大大的提高了CPU使用率(我们现在操作系统进程有使用到这种技术),但是有个问题就是任务1 假如10分钟出来结果,这时候需要等待任务2 任务3处理完成后,才能出来任务1结果,这时候有出来一个分时操作系统


    分时操作系统:多个联机终端+多道技术(第三操作系统还是第三代,只是给第三代做个一个提升,进阶) 个人电脑已经不存在分时操作系统
      大白话,就是这20个人都接接入一个显示器,这时候3个人运行程序,其他的人在思考,不使用到CPU,这时候3个人使用到多道程序实际,3个人其中的一个人处理完成后,由于现在一人有一个显示器,这时候,结果可以直接显示到自己屏幕上面看结果(第二代和第三代操纵系统,因为大家只有一个屏幕,就像上图,最后一个打印输出设备,需要等结果出来后大家集中去出看,所有就需要等待其他人处理完成后,才能统一出结果);这就是分时操作系统

  • 相关阅读:
    css 标签 清除浮动
    css 标签 垂直居中
    getResource().getPath()返回的路径空格变成了 %20
    css3颜色渐变
    网页动画结束判断事件
    手机端js事件支持(event)
    手机端js实现滑块推动
    手机端js模拟长按事件(代码仿照jQuery)
    基于SOA架构---ServiceProxy定义
    对SSL加密通信安全的理解
  • 原文地址:https://www.cnblogs.com/ajaxa/p/9103716.html
Copyright © 2011-2022 走看看