主权项 |
一种避免死锁的资源分配方法,包括:按照进程对资源的需求量从小到大对所述进程进行排序;通过数学建模的方式获取每个进程在释放掉前面所有进程的资源占有量之后,当前剩余的可分配资源量与当前进程的需求量之间的差值;对申请资源的进程中的许可进程进行资源分配;其中,在每一个所述差值均为非负的情况下,所述许可进程所申请的资源量不大于所述差值中的最小值,否则,不对除资源需求量最小的进程之外的申请资源的进程进行资源分配;以及,在完成一次资源分配之后,重新确定资源分配后的进程序列,以及重新确定当前剩余的可分配资源量与当前进程的需求量之间的差值中的最小值;其中,所述差值通过如下公式计算得出:<maths num="0001"><math><![CDATA[<mrow><msub><mi>c</mi><mi>k</mi></msub><mo>=</mo><mi>x</mi><mo>+</mo><munderover><mo>Σ</mo><mrow><mi>m</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></munderover><msub><mi>a</mi><mi>m</mi></msub><mo>-</mo><msub><mi>r</mi><mi>k</mi></msub><mo>,</mo><mi>k</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>,</mo><mn>......</mn><mo>,</mo><mi>N</mi></mrow>]]></math><img file="FDA0001139511840000011.GIF" wi="1059" he="159" /></maths>其中,c<sub>k</sub>为当前剩余的可分配资源量与当前进程的需求量之间的差值,x为当前剩余的可分配资源量,a<sub>m</sub>为第m个进程的资源占有量,其中,a<sub>0</sub>=0,r<sub>k</sub>为第k个进程的资源需求量。 |