进程与线程
进程是系统进行资源分配的基本单位,而线程是操作系统进行运行的最小单位。每一个进程可以包含一个或多个线程。
进程与线程的对比:
每一个进程都拥有一个PCB(进程控制块),其中包含了关于进程的相关信息,比如标识符,状态,优先级等。
PCB:
进程管理的五大状态
1.就绪状态:创建完进程,获得其他资源后,就等待获得CPU时间片
2.阻塞状态:因为某些原因放弃CPU时间片
3.执行状态:就绪状态下,获得CPU时间片
4.新建状态:分配PCB,插入就绪队列。创建进程时拥有PCB但其他资源未就绪的状态称为新建状态
5.终止状态:系统清理,归还PCB。进程结束由系统清理或者归还PCB的状态称为终止状态
同步问题
进程间同步:共享内存,消息队列,信号量
线程间同步:互斥量,读写锁,自旋锁,条件变量
进程调度算法
1.先来先服务算法
2.短作业优先算法
3.高优先权优先算法
4.时间片轮转算法
死锁
但是当两个或两个以上的进程在执行过程中,由于竞争资源造成的堵塞现象就会发生死锁。
死锁的四个必要条件
1.互斥条件
2.不可剥夺条件
3.循环等待条件
4.请求保持条件
死锁的处理
1.预防死锁的方法
(1)进程运行之前,一次性申请所有需要的资源(请求保持条件)
(2)一个进程请求的资源得不到满足的时候,必须释放所有的资源(不可剥夺条件)
(3)可用资源线性排序,申请必须按照需要递增申请(环路等待条件)
2.银行家算法
算法步骤:
1.用所需资源表 - 已分配资源表,得到还需分配资源表
2.用可分配资源表与还需资源表一一比对
3.对满足条件的进程进行资源分配