操作系统进程调度的小问题(1)

本文通过两个实例解析了银行家算法在预防死锁中的应用。解释了系统处于不安全状态时可能发生死锁的情况,并介绍了资源静态分配法如何防止死锁的发生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【例】某系统采用了银行家算法,则下列叙述正确的是()
A 系统处于不安全状态时一定会发生死锁
B 系统处于不安全状态时可能会发生死锁
C 系统处于安全状态时,可能会发生死锁
D 系统处于安全状态时,一定会发生死锁

【解答】B


其实进入了不安全状态仅说明当前情况下的资源分配出现不安全的因素,而随着时间的推移,资源的分配可能会发生变化的,原来占有临界资源的进程可能因为某些原因自己阻塞起来,并放弃已拥有的临界资源跑到阻塞队列后排队,这样原来请求这些临界资源的进程就有可能满足其需要而可以执行。书上有个资源分配和时间关系图可以看出,进入D区的进程还是有可能从D区下方跑出来的,这样也就不会接触到上边界和右边界这两个死锁状态。
【例】资源静态分配法可以预防死锁的发生,因它使死锁四个条件中的()不成立
A 互斥条件
B 请求和保持条件
C 不可剥夺条件
D 环路等待条件
【解答】B


由于是静态分配,一次性的给你分配好的,不会提出新的资源请求符合请求和保持条件

通过优先级调度算法的模拟,加深进程概念和进程调度过程的理解。设计原理及方案:1)在Linux下用C语言编程模拟优先级程调度算法。为了清楚地观察每个进程调度过程,程序将每个时间片内的进程情况显示出来。2)进程控制块是进程存在的唯一标志,因此,在模拟算法中每一个进程用一个进程控制块PCB来代表,PCB用一结构体表示。3)进程在运行过程中其状态将在就绪、执行、完成几种状态之间转换,同时进程可能处于不同的队列中,如就绪队列。在优先级调度算法中,选择单向队列,入队既是将进程控制块插入队尾,出队既是按优先级重新排列的队,删除队头元素。4)为了便于处理,程序中的某进程运行时间以时间片为单位计算。各进程的优先级认为输入,运行所需时间随机产生。5)优先权调度算法采用动态优先权,进程每运行一个时间片,优先数减1进程在就绪队列等待一个时间单位,优先数加1。6)对于遇到优先权一致的情况,采用FCFS策略解决。7)由于是模拟进程调度,所以,对被选中的进程并不实际启动运行,而是修改进程控制块的相关信息来模拟进程的一次运行。 分别用两种调度算法对伍个进程进行调度。每个进程可有三种状态;执行状态(R)、就绪状态(W,包括等待状态)和完成状态(F,并假定初始状态为就绪状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值