银行家算法
先修的概念:
1、安全状态: 指系统接下来需要的资源的数量的总和<系统现在有的资源的综合. 系统存在着一个调度资源的顺序,使得系统可以完全的完成任务.也就是说不会使得系统陷入两个任务都没有完成, 同时又占有着资源, 系统本身没有资源可以帮助一个任务完成, 释放资源从而给另一个资源是使用.(这种种状态叫死锁)
2、不安全状态, 是安全状态的反面状态, 不存在这样的一种顺序使得系统可以完成所有的任务.
3、安全序列: 一个进程序列{P1,…,Pn}是安全的,如果对于每一个进程Pi(1≤i≤n),它以后尚需要的资源量不超过系统当前剩余资源量与所有进程Pj (j < i )当前占有资源量之和,系统处于安全状态。(以上抄自老师的PPT).个人的理解就是, 对于任意的进程, 之后他需要的资源因该小于它之前还未完成的进程占有的资源和系统当下闲置的资源的总和. 这意味着, 系统现在拥有的资源不足矣完成所有的进程, 但是他可以通过一个调配的顺序, 将资源分配给一些将要完成的进程, 待这些进程完成后, 可以释放出资源, 来给其他的进程使用, 从而完成了所有进程的资源调配.
4、安全状态向不安全状态转换: 就是不按照安全序列调度资源.