并行和并发
并发:一个cpu同时不停地执行多个程序
1个人吃10个苹果
并行:多个cpu通过不停执行多个程序
10个人吃10个苹果
同步异步阻塞非阻塞
场景在多任务当中
同步:必须等我这件事干完了,你在干,只有一条主线,就是同步
异步:没等我这件事情干完,你就在干了,有两条主线,就是异步
阻塞:比如代码有了input,就是阻塞,必须要输入一个字符串,否则代码不往下执行
非阻塞:没有任何等待,正常代码往下执行.
同步阻塞:效率低,cpu利用不充分
异步非阻塞:效率高,cpu过度充分
同步非阻塞:没有类似input的代码,从上到下执行.默认的正常情况代码
异步阻塞 :比如socketserver,可以同时连接多个,但是彼此都有recv
进程的概念:(Process)
进程 就是正在运行的程序,它是操作系统中,资源分配的最小单位.
资源分配:(需要cpu来处理,需要内存来临时存储运行数据,都要浪费cpu和内存资源)
进程号是进程的唯一标识
同一个程序执行两次之后是两个进程
进程和进程之间的关系: 数据彼此隔离,通过socket通信
进程调度算法
先来先服务fcfs(first come first server):先来的先执行
短作业优先算法:分配的cpu多,先把短的算完
时间片轮转算法:每一个任务就执行一个时间片的时间.然后就执行其他的.
多级反馈队列算法
越是时间长的,cpu分配的资源越少,优先级靠后
越是时间短的,cpu分配的资源越多
进程三状态图
(1)就绪(Ready)状态
只剩下CPU需要执行外,其他所有资源都已分配完毕 称为就绪状态。
(2)执行/运(Running)状态
cpu开始执行该进程时称为执行状态。
(3)阻塞(Blocked)状态
由于等待某个事件发生而无法执行时,便是阻塞状态,cpu执行其他进程.例如,等待I/O完成input、申请缓冲区不能满足等等。