本实验旨在通过模拟银行家算法,帮助学生理解死锁预防策略在操作系统资源管理中的应用,掌握安全状态判断和资源分配过程。
实验2 银行家算法(2学时)
一、实验目的:
理解银行家算法,并掌握进程安全性检查的方法及资源分配的方法。
二、实验内容:
编写程序实现银行家算法,验证所编写的程序的正确性。
三、实验要求:
编制模拟银行家算法的程序,并使用以下例子来测试和验证。系统中有A、B、C、D四类资源供P0至P4五个进程共享,各进程对资源的需求及当前分配情况如下表所示:
| 进程 | 已占资源(A B C D) | 最大需求数(A B C D) |
|------|-------------------|---------------------|
| P0 | 0 0 1 2 | 0 0 1 2 |
| P1 | 1 0 0 0 | 1 7 5 0 |
| P2 | 1 3 5 4 | 2 3 5 -6 |
| P3 | - | - |
| | | |
| P3 | | |
|P3 |- |- |
|P3 |0 6 3 2 |0 6 5 2 |
现在系统中剩余资源如下:A类1个,B类5个,C类2个,D类0个。
请按银行家算法回答以下问题:
(1)当前状态下系统是否处于安全状态?
(2)如果进程P1提出请求额外的(0,4,2,0)资源,该请求能否被满足?