• 并发编程--------操作系统


    一、操作系统的发展史

    1.手工操作----穿孔卡片

      对应于程序和数据的已穿孔的纸带(或卡片) --------> 装入输入机 --------> 启动输入机 --------> 把程序和数据输入计算机内存 ---------> 通过控制台开关启动程序针对数据运行 ---------> 计算完毕 ---------> 打印机输出计算结果 --------> 用户取走结果并卸下纸带(或卡片)

      缺点:①用户独占全机。不会出现因CPU资源已被其他用户占用而等待的现象,但CPU资源的利用率低。

         ② CPU等待手工操作。CPU的利用不充分。

      20世纪50年代后期,出现人机矛盾:手工操作的慢速度和计算机的高速度之间形成了尖锐矛盾,手工操作方式已严重损害了系统资源的利用率(使资源利用率降为百分之几,甚至更低),不能容忍。唯一的解决办法:只有摆脱人的手工操作,实现作业的自动过渡。这样就出现了成批处理

    2.批处理----磁带存储

      批处理系统:加载在计算机上的一个系统软件,在它的控制下,计算机能够自动地、成批地处理一个或多个用户的作业(这作业包括程序、数据和命令)

    (1) 联机批处理系统

      用户作业 --------> 输入机 -------> 成批地把作业输入磁带 ---------> 依次把磁带上的作业读入主机内存并执行 -------> 把计算结果向输出机输出

      优点:减少了作业建立时间和手工操作时间,有效克服了人机矛盾,提高了计算机的利用率。

      缺点:主机处于“忙等”状态:在作业输入和结果输出时,主机的高速CPU仍处于空闲状态,等待慢速的输入输出设备完成工作。

    (2) 脱机批处理系统  

      优点:极大地缓解了人机矛盾及主机与外设的矛盾。

      缺点:每次主机内存中仅存放一道作业,每当它运行期间发出输入输出(IO)请求后,高速的CPU边处于等待低速的IO完成状态,致使CPU空闲。

    3.多道程序系统 ------ 提高了CPU的利用率

      多道:计算机内存中同时存放几道相互独立的程序。

      特点:①宏观上并行------从宏观上看是多道程序在一起运行

         ②微观上串行------实际上是各道程序轮流地用CPU,交替运行

            ③空间隔离---------多道程序同时运行,只有内存空间的隔离,才能让数据更加安全、稳定

         ④时空复用---------遇到IO操作就切换程序,使得CPU的利用率提高了,计算机的工作效率也随之提高

    4.分时系统------降低了CPU的利用率,提高了用户体验

      由于CPU速度不断提高和采用分时技术,一台计算机可同时连接多个用户终端,而每个用户可在自己的终端上联机使用计算机,好像自己独占机器一样。

      分时系统分时间片工作,在没有遇到IO操作时就用完了自己的时间片被切走了,这样的切换工作其实并没有提高CPU的效率,反而使计算机的效率降低了。但是我们牺牲了一点效率,却实现了多个程序共同执行的效果,这样你就可以在计算机上一边听音乐一边聊qq了。

    5.实时系统 ------ 提高了用户体验,但没有提高CPU利用率

      实时控制系统:飞机飞行、导弹发射

      实时信息处理系统:订票、银行系统、情报检索系统

      优点:及时响应、高可靠性

    二、通用操作系统

    兼具以下两种或两种以上的操作系统

    1.多道批处理系统

    2.分时系统

    3.实时系统

    三、操作系统的进一步发展

    1.个人计算机操作系统

    2.网络操作系统

    3.分布式操作系统(重要)

    四、操作系统的作用

      程序员无法把所有的硬件操作细节都了解到,管理这些硬件并且加以优化使用是非常繁琐的工作,这个繁琐的工作就是操作系统来干的,有了它,程序员就从这些繁琐的工作中解脱了出来,只需要考虑自己的应用软件的编写就可以了,应用软件直接使用操作系统提供的功能来间接使用硬件。

      精简的说,操作系统就是一个协调、管理和控制计算机硬件资源和软件资源的控制程序。

      细说的话,操作系统应该分成两部分功能:

        1.隐藏了丑陋的硬件调用接口,为应用程序员提供调用硬件资源更好、更清晰的模型(采用调用接口)。应用程序员有了这些接口后,就不用再考虑操作硬件的细节,专心开发自己的应用程序即可。

        2.将应用程序对硬件资源的竞态请求变得有序化。

      操作系统所处的位置如图所示:

      

  • 相关阅读:
    经典算法以及案例总结
    supervisor的介绍
    快速排序算法
    mysql 省市联动sql 语句
    前段验证框架 formValidator
    css 之!important
    js 倒计时
    js 设置url 参数值
    java 获取指定日期
    js 日期控件laydate使用
  • 原文地址:https://www.cnblogs.com/yanyufeng/p/9377869.html
Copyright © 2020-2023  润新知