zoukankan      html  css  js  c++  java
  • 并发编程

    并发编程

    一、操作系统发展史

    • 穿孔卡片
      • 读取数据速度特别慢
      • CPU的利用率极低
      • 单用户(一份代码)使用
    • 批处理
      • 读取速度特别慢
      • CPU利用率极低
      • 联机(多份代码)使用
      • 效率还是很低
    • 脱机批处理(现代操作系统的设计原理)
      • 读取数据速度提高
      • CPU的利用率提高

    二、多道技术

    多道技术指的是多个程序,多道技术的实现是为了解决多个程序竞争或者说共享同一个资源(比如CPU)的有序调度问题

    • 单道

      • 一条路走到黑,比如:a,b两个程序需要使用CPU,a先试用,b等待a使用完毕后,b才能使用CPU

    • 多道

      • 比如:a,b两个程序需要使用CPU,a先使用,b等待a,直到a进入"IO或执行时间过长",a会(切换+保存状态),然后b可以使用CPU,待b执行遇到"IO或执行时间过长",再将CPU执行权限交给a,直到两个程序结束

      • 解决方式即多路复用,多路复用分为时间上的复用和空间上的复用
      • 空间上的复用
        • 将内存分为几部分,每个部分放入一个程序,这样,同一时间内存中就有了多道程序 (多个程序使用一个CPU)
      • 时间上的复用
        • 当一个程序在等待I/O时,另一个程序可以使用CPU
        • 当执行程序遇到IO时,操作系统会将CPU的执行权限剥夺
          • 优点:CPU的执行效率提高
        • 当执行程序执行时间过长时,操作系统会将CPU的执行权限剥夺
          • 缺点:程序的执行效率低

    三、进程

    • 进程:正在进行的一个过程或者一个任务。是系统进行资源分配和调度的基本单位,是操作系统的基础

    • 进程与程序

      • 程序:一堆代码文件
      • 进程:执行代码的过程,称之为进程

      这里有一个比喻:

      想象一个Tom猫正在给他的宿敌Jerry做奶油蛋糕

      他有做奶油蛋糕的食谱及所需的所有原料:面粉、鸡蛋、奶油等

      在这个比喻中:

      • 做蛋糕的食谱就是程序
      • Tom猫就是处理器(CPU)
      • 而做蛋糕的各种原料就是输入数据
      • 进程就是Tom猫阅读食谱、取来各种原料以及烘制蛋糕等一系列动作的总和

      现在假设Tom猫的主人站在门外需要Tom取开门

      Tom想了想,给主人开门的任务比给Jerry做蛋糕的任务更重要,于是Tom立马记下照着食谱做到第几步(保存进程的当前状态),然后跑去给主人开门。这里,我们看到处理器从一个进程(做蛋糕)切换到另一个高级优先级的进程(开门),每个进程拥有各自的程序(食谱和开锁),开门之后,Tom又回来从他离开时的那一步继续做蛋糕


    四、进程调度

    要想多个进程交替运行,操作系统必须对这些进程进行调度,这个调度也不是随机进行的,而是需要遵循一定的法则,由此就有了程序的调度算法

    • 先来先服务调度算法

      • 比如程序,a,b,若a先来,则让a先服务,待a服务完毕后,b再服务
      • 缺点:执行效率低
    • 短作业优先调度算法

      • 是指对短作业或短进程优先调度的算法,该算法既可用于作业调度,也可用于进程调度(执行时间越短,则先去调度)
      • 缺点:对长作业不利;不能保证紧迫性作业(进程)被及时处理;作业的长短只是被估算出来的。
    • 时间片轮转法

      • 比如同时有10个进程需要执行,操作系统会给10秒,然后时间片轮转法会将10秒分称10等分
    • 多级反馈队列

      • 1级队列:优先级最高,先执行此队列中程序
      • 2级队列:优先级以此类推
      • 3级队列

    现代操作系统的进程调度算法:时间片乱转法+多级反馈队列

  • 相关阅读:
    gameunity 3.0 (supersocket + lidgren + unity )
    lidgren 介绍和使用 (四)------ p2p
    lidgren 介绍和使用 (三)------ 异步获取信息
    lidgren 介绍和使用 (二)------集成unity测试
    lidgren 介绍和使用 (一)

    单调队列
    树状数组
    Win7 远程 Ubuntu 桌面 mate desktop,并实现中文输入法
    Ubuntu安装sougou输入法
  • 原文地址:https://www.cnblogs.com/YGZICO/p/11997669.html
Copyright © 2011-2022 走看看