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个人其中的一个人处理完成后,由于现在一人有一个显示器,这时候,结果可以直接显示到自己屏幕上面看结果(第二代和第三代操纵系统,因为大家只有一个屏幕,就像上图,最后一个打印输出设备,需要等结果出来后大家集中去出看,所有就需要等待其他人处理完成后,才能统一出结果);这就是分时操作系统

  • 相关阅读:
    数据结构-树与二叉树-思维导图
    The last packet successfully received from the server was 2,272 milliseconds ago. The last packet sent successfully to the server was 2,258 milliseconds ago.
    idea连接mysql报错Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property
    redis学习笔记
    AJAX校验注册用户名是否存在
    AJAX学习笔记
    JSON学习笔记
    JQuery基础知识学习笔记
    Filter、Listener学习笔记
    三层架构学习笔记
  • 原文地址:https://www.cnblogs.com/ajaxa/p/9103716.html
Copyright © 2011-2022 走看看