操作系统进程五个基本状态转换图(进程同步及死锁知识点框架)
操作系统进程五个基本状态转换图(进程同步及死锁知识点框架)3.临界资源当一个进程进入临界区使用临界资源时,另一个进程必须等待,当占用临界资源的进程退出临界区后,另进程才允许去访问此临界资源1.同步(直接制约关系)指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调它们的工作次序而等待、传递信息所产生的制约关系2.互斥(间接制约关系)
OS
进程同步一、引入原因
协调进程之间的相互制约关系
二、制约关系
1.同步(直接制约关系)
指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调它们的工作次序而等待、传递信息所产生的制约关系
2.互斥(间接制约关系)
当一个进程进入临界区使用临界资源时,另一个进程必须等待,当占用临界资源的进程退出临界区后,另进程才允许去访问此临界资源
3.临界资源
一次仅允许一个进程使用的资源(打印机、共享缓冲区、共享变量、共用队列)
4.临界区
在每个进程中访问临界资源的那段程序
5.临界区互斥
(1)原则
①空闲让进:如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。
②忙则等待:任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。
③有限等待:进入临界区的进程要在有限时间内退出,以便其他进程能及时进入自己的临界区。
④让权等待:如果进程不能进入自己的临界区,则应让出 CPU ,避免进程出现“忙等”现象。
(2)基本方法
信号量:利用 PV 操作实现互斥
进程同步
死锁一、产生的原因
1.非法剥夺资源的竞争和进程的不恰当推进顺序(与饥饿的区别)(饥饿是进程缺乏某一资源,而这个资源一直没有得到满足,如果得到该资源,饥饿问题将被解决)
2.定义
多个进程因竞争资源而造成的一种僵局,如果没有外力,这些进程将无法推进
3.当死锁产生的时候一定会有这四个条件(互斥条件、不剥夺条件、请求和保持条件、循环等待条件),有一个条件不成立都不会造成死锁。
4.解决方法
(1)预防死锁:打破产生死锁的四个必要条件的一个或几个
①破坏互斥条件(共享)
②破坏不剥夺条件
③破坏请求和保持条件
采用预先静态分配方法,即进程在运行前一次申请完它所需要的全部资源,在它的资源未满足前,不把它投入运行。一旦投入运行后,这些资源就一直归它所有,也不再提出其他资源请求,这样就可以保证系统不会发生死锁。
④破坏循环等待条件
⑤采用顺序资源分配法
(2)避免死锁
①安全状态
系统能按某种进程推进顺序(P1 P2 .. Pn )
②银行家算法
未分配资源减去 RequestP1尚需资源减去 Request 即减去后是否能找到一个安全序列
(3)检测死锁:利用死锁原理
(4)解除死锁
①资源剥夺法
②撤销进程法
③进程回退法
死锁