系统有同类资源10个,进程P1,P2,P3需要该类资源的最大数量分别为8,6,7。他们使用资源的次序和数量如下图所示。
次序 | 进程 | 申请量 | 次序 | 进程 | 申请量 |
1 | P1 | 3 | 5 | P2 | 2 |
2 | P2 | 2 | 6 | P1 | 3 |
3 | P3 | 4 | 7 | P3 | 3 |
4 | P1 | 2 | 8 | P2 | 2 |
⑴ 试给出采用银行家算法分配资源时,进行第5次分配后各进程的状态及各进程占用资源情况。
⑵ 在以后的申请中,那次的申请可以得到最先满足?给出一个进程完成序列。
解:
(1)计算第5次分配后进程的状态和占用资源情况
- P1申请3个,可以满足,系统还剩7个;
- P2申请2个,可以满足,(因为系统的7个可以使P2运行完)系统还剩5个;
- P3申请4个,若满足它的请求,可能使以后的任何进程都不能运行完,故P3等待;
- P1申请2个,满足,(系统还剩5个可以满足P1的最大请求),系统还剩3个;
- P2申请2个,不能满足,等待。
此时系统的分配情况如下:
P1分配5个后正在运行;P2分配2个后等待分配2个;P3等待分配4个;系统还剩3个
(2)
- P1接着运行,P1申请3个,可以满足,P1运行完成后释放资源,使系统资源数量变为8个;
- 首先将P3唤醒,满足它的4个请求资源,系统还剩4个;
- 唤醒P2,满足它的2个资源,系统还剩2个;
- P3申请3个,不能满足,等待;
- P2申请2个,系统满足它;
- P2接着运行,P2完成后释放资源,使系统资源变为6个;
- 系统唤醒P3,满足它的3个资源请求,最终P3完成,释放资源,使资源数量恢复为10个
找到的进程完成序列为{P1,P2,P3}