• 并发编程概念


    1、操作系统发展史

    研究并发编程其实就是研究操作系统的底层原理,所以我们需要从操作系统的发展史开始学起

    手工操作—— 穿孔卡片

    1946年第一台计算机诞生-–20世纪50年代中期,计算机工作还在采用手工操作方式。此时还没有操作系统的概念。

    程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行;计算完毕,打印机输出计算结果;用户取走结果并卸下纸带(或卡片)后,才让下一个用户上机。

    手工操作方式两个特点:

      (1)用户独占全机。不会出现因资源已被其他用户占用而等待的现象,但资源的利用率低。

      (2)CPU 等待手工操作。CPU的利用不充分。

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

    2、多道技术

    多道技术(基于单核背景下产生的)

    • 单道:一条道,一直走 -–-–-–-–串行

      比如:a,b需要使用CPU,a先试用,b等待a使用完毕后,b才能使用CPU

    • 多道

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

    空间上的复用:

    	多个程序使用一个CPU
    

    时间上的复用:

    	切换 + 保存状态
    
    	1、当执行程序遇到IO时,操作系统会将CPU的执行权限剥夺
    
    		优点:CPU的执行效率提高
    
    	2、当执行程序时间过长,操作系统执行时间过长,操作系统会将CPU的执行权限剥夺
    
    		缺点:程序的执行效率低
    

    3、并发与并行

    无论是并行还是并发,在用户看来都是'同时'运行的,而一个cpu同一时刻只能执行一个任务。

    并发: 指的是看起来像同时在运行,多个程序不停 切换 + 保存状态。

    在单核(一个cpu)情况下,当执行两个a,b程序时,a先执行,当a遇到IO时,b开始争抢cpu的执行权限,再让b执行,他们看起像同时运把正意义上的同时运行。

    并行:真实意义上的同时运行,在多核(多个CPU)的情况下,同时执行多个程序。

    在多核(多个cpu)的情况下,当执行两个a,b程序时,a与b同时执行。他们是真正意义上的同时运行。

    面试题: 在单核情况下能否实现并行? 不行

  • 相关阅读:
    Android学习笔记14:Tween Animation动画的实现
    Android学习笔记17:单项选择RadioButton和多项选择CheckBox的使用
    北国的雪
    Android学习笔记11:图像的平移、旋转及缩放
    三极管基本放大电路解析
    51单片机中data,idata,xdata,pdata的区别
    充电开关制作
    慢慢学Linux驱动开发,第五篇,初探设备模型概念
    慢慢学Linxu驱动开发,第二篇:启程,模块机制,Hello World
    H桥电机驱动原理与应用
  • 原文地址:https://www.cnblogs.com/kai-/p/11997020.html
Copyright © 2020-2023  润新知