系统操作软件有哪些 系统的基本概念( 二 )


比如说进程P1,使用资源的顺序是R1,R2,进程P2,使用资源的顺序是R2,R1,如果采取动态分配的方式,就很有可能造成死锁 。我们对设备进行分类编号,那么P1,P2只能以R1,R2的顺序来申请资源 。就可以打破环形回路,避免死锁 。
四、银行家算法
在避免死锁的方法中最有名的就是银行家算法,它是DIJKstra E.W于1968年提出来的 。为什么叫做银行家算法呢,是因为这有点向银行的“借贷”服务,假如银行只有有限多的资金供给客户进行贷款服务,那么为了保证银行能有足够的资金运转,它在借钱之前要审核客户是否有能够在指定时间内偿还贷款的能力 。在研究我们的操作系统的资源分配策略时,也会出现类似的问题,我们系统中的有限资源要分配给各种进程,那么就要事先考察此进程是否有在指定期限内归还资源的能力 。必须要保证它能在有限的时间内进行归还,供其他进程使用 。大致实现方法:
当一个进程对资源的最大需求量不超过系统中的资源数量时就可以接纳该进程 。进程可以分期请求资源,当请求的总数不能超过最大需求量 。当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源 。当系统现有的资源能满足进程尚需的资源数时,必须测试系统现存的资源能否满足该进程尚需的最大资源数,若能满足则按当前的申请量分配资源,否则也要推迟分配 。
【系统操作软件有哪些 系统的基本概念】银行家算法:首先需要定义状态和安全状态的概念 。系统的状态是当前给进程分配的资源情况 。因此,状态包含两个向量Resource(系统中每种资源的总量)和Available(未分配给进程的每种资源的总量)及两个矩阵Claim(表示进程对资源的需求)和Allocation(表示当前分配给进程的资源) 。安全状态是指至少有一个资源分配序列不会导致死锁 。当进程请求一组资源时,假设同意该请求,从而改变了系统的状态,然后确定其结果是否还处于安全状态 。如果是,同意这个请求;如果不是,阻塞该进程知道同意该请求后系统状态仍然是安全的 。