并发编程概念

目录

  • 操作系统的发展史

  • 多道技术

  • 进程

  • 并发与并行

  • 同步与异步,阻塞与非阻塞

内容

操作系统的发展史

1.穿孔卡片

优势:一个人独占电脑;劣势:CPU利用率极低 

2.联机批处理系统

一次性可以录入多个用户指令,缩短了CPU等待的时间,提高了CPU的利用率

3.脱机批处理系统

是现代计算机核心部件的雏形,提高CPU的利用率

总结:

操作系统的发展史就是提升CPU利用率的过程

多道技术 

目的:提升CPU利用率,降低程序等待时间

目前我们研究并发都是以计算机是单核的情况下:只有一个CPU

做饭需要30分钟,洗衣需要50分钟,烧水需要20分钟

串行:

多个任务排队执行,总耗时就是多个任务完整时间叠加

需要耗时:30分钟+50分钟+20分钟

多道:

利用空闲时间提前准备 缩短总的执行时间并且还能提高CPU利用率

需要耗时:50分钟

 

 多道技术:

1.空间上的复用;多个任务公用一套计算机硬件

2.时间上的复用;切换+保存状态,CPU在两种情况下会被拿走

  1. 程序遇到IO操作,CPU自动切走运行其他程序
  2. 程序长时间占用CPU,系统发现之后也会强行切走CPU,保证其他程序也可以使用

进程

程序:一堆没有被执行的代码(死的)

进程:正在运行的程序(活的),为了更加精确的描述出一些实际状态

进程调度算法发展史

  1. 先来先服务:对短作业任务不太友好,需要等待第一个长作业任务
  2. 短作业优先:对长作业任务不太友好
  3. 时间片轮转法与多级反馈队列
  • 时间片轮转发:先公平的将CPU分给每个人执行
  • 多级反馈队列:根据作业长短的不同再合理分配CPU执行时间

目的:为了能够让单核的计算机也能够做到运行多个线程

并发与并行

并发与并行

并发:看上去同时在执行就是称之为是并发

让CPU在多个程序之间利用多道技术来回切换+保存状态

单核肯定能够实现并发,但是不能实现并行

并行:必须同一时间同时运行才可以称之为并行

单核计算机肯定不能实现并行,必须要有多个CPU

高并发与高并行

高并发:我们写的软件可以支持1一个亿的并发量

一个亿的用户来了之后都可以感觉到自己被服务着

高并行:我们写的软件可以支持1个亿的并行量

上述话的言外之意是计算机有一亿个CPU

同步与异步,阻塞与非阻塞

同步与异步

同步:提交完任务之后原地等待任务的返回结果,期间不做任何时间

异步:提交完任务之后不愿原地等待任务的结果,直接去做其他事情,有结果自动提醒

阻塞与非阻塞

进程三状态图

就绪态:程序之进入运行态之前肯定要处于就绪态

运行态:程序被CPU执行着

阻塞态:程序执行过程中有IO操作

如果想要尽可能的提升程序执行效率,就要想办法让我们的程序一直处于就绪态和运行态(不要有IO操作)

阻塞:阻塞态

非阻塞:就绪态,运行态

同步异步与阻塞非阻塞结合

同步异步:用来描述任务的提交方式

阻塞非阻塞:用来描述任务的执行状态

上述两组属于两个不同概念,但是可以结合

同步阻塞:银行排队办理业务,期间不做任何事

同步非阻塞:银行排队办理业务,期间喝水吃东西,但是人还在队列中

异步阻塞:在椅子上坐着,但是不做任何事

异步非阻塞:在椅子上坐着,期间喝水吃东西办公 (程序运行的极致

 

 

 

posted @ 2022-04-18 20:32  顺溜_7  阅读(40)  评论(0编辑  收藏  举报