操作系统 习题14 进程调度

文章讨论了操作系统中的进程调度,包括进程调度的任务是选择就绪队列中的进程占用CPU,以及不同级别的调度如作业调度和进程调度的作用。还提到了Unix系统中进程优先数的动态计算以实现资源的均衡分配,并介绍了FCFS调度算法与队列管理。

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

一. 单选题(共2题,20分)

1. (单选题)在现代操作系统中必不可少的调度是()

A. 高级调度

B. 中级调度

C. 进(线)程调度

D. 作业调度

正确答案: C:进(线)程调度;

2. (单选题)进程调度的对象和任务分别是()

A. 作业,从后备作业队列中按一定的调度策略选择一个作业占用CPU

B. 进程,从后备作业队列中按一定的调度策略选择一个作业占用CPU

C. 进程,从就绪队列中按一定的调度策略选择一个进程占用CPU

D. 作业,从就绪队列中按一定的调度策略选择一个进程占用CPU

正确答案: C:进程,从就绪队列中按一定的调度策略选择一个进程占用CPU;

二、填空题

3. (填空题)进程调度负责计算机系统中______资源的分配工作

正确答案: CPU

4. (填空题)处理机的二级调度分别是作业调度和______调度

正确答案: 进程

三. 判断题

5. (判断题)Unix中进程优先数采用静态设置的目的是为了保证系统资源能够得到充分利用,尤其是紧俏资源

正确答案: 对

6. (判断题)Unix中进程优先数采用动态计算的目的是为了使所有用户进程都能均衡地占有CPU,实现多用户分时

正确答案: 对

7. (判断题)作业调度是处理机的高级调度,进程调度是处理机的低级调度

正确答案: 对

8. (判断题)进程一旦被进程调度选中,即占有了CPU开始运行

正确答案: 对

9. (判断题)FCFS进程调度的实现过程可以用FIFO队列管理

正确答案: 对

10. (判断题)UNIX中申请资源的进程都进入高优先睡眠队列

正确答案: 错

### 关于操作系统进程调度的练习题 #### 时间片轮转调度算法实例 考虑一个具有四个进程的计算机系统,这些进程拥有不同的预计运行时间和到达就绪队列的时间。采用时间片轮转调度算法进行管理,其中时间配额设定为2个时间单位。具体数据如下表所示[^2]: | 进程 | 到达时间 | 需要的服务时间 | |--|----------|----------------| | P1 | 0 | 8 | | P2 | 1 | 4 | | P3 | 2 | 9 | | P4 | 3 | 5 | 通过应用时间片轮转法,可以得出每个进程被CPU服务的具体顺序以及它们各自的周转时间。 #### 多道程序设计中的优先级调度 对于三个按不同优先级排列的任务A、B、C,在一个多道环境中并发执行的情况,可以通过绘制时间线图表展示这三个任务的状态变化过程及其占用处理器资源的方式。此外,还需分析当引入额外的操作系统开销时(例如上下文切换),如何影响整体性能,并对比单道与多道环境下的效率差异[^3]。 #### 抢占式调度特性探讨 在抢占式的调度机制里,即使某个新到来的进程P具备较高的静态或动态优先权级别,只要它不是处于等待状态中最紧急的那个,则未必能够立刻获得CPU使用权;只有在其前驱正在使用的那个活动结束之后才可能得到分配给它的机会去执行自己的指令序列[^4]。 ```python def round_robin_scheduling(processes, time_quantum=2): current_time = 0 remaining_bursts = {p['name']: p['burst'] for p in processes} while any(burst > 0 for burst in remaining_bursts.values()): for process in processes: if remaining_bursts[process['name']] > 0 and process['arrival'] <= current_time: execution_time = min(time_quantum, remaining_bursts[process['name']]) print(f"Time {current_time}: Process {process['name']} starts executing.") current_time += execution_time remaining_bursts[process['name']] -= execution_time if remaining_bursts[process['name']] == 0: print(f"Time {current_time}: Process {process['name']} finishes.") round_robin_scheduling([ {'name': 'P1', 'arrival': 0, 'burst': 8}, {'name': 'P2', 'arrival': 1, 'burst': 4}, {'name': 'P3', 'arrival': 2, 'burst': 9}, {'name': 'P4', 'arrival': 3, 'burst': 5}], time_quantum=2) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值