操作系统习题2—进程调度

操作系统习题2—进程调度

1. 假定有一个进程 A,其工作流程如图 1 所示。如果系统中进程只有三种状态(就绪、运行、阻塞),并且进程被调度程序选中后就可以投入运行,且时间片为 200ms,请顺序列出该进程从开始到结束所经历的状态转换过程,并说明原因。
图1
该进程从开始到结束所经历的状态转换过程为:

就绪 => 运行 => 就绪 => 运行 => 阻塞 => 就绪 => 运行 => 阻塞 => 就绪 => 运行 => 阻塞 => 就绪 => 运行 => 结束

分析:

  • 该进程产生后进入就绪状态,被调度程序选中后占用CPU,变为运行态。
  • 运行了一个时间片 200ms 后,此进程由运行态变为就绪态,CPU 转而运行其他进程
  • 在某一时刻,此进程重新被调度程序选中,由就绪态变为运行态
  • 运行了 50ms 后,此进程请求磁盘 I/O 服务,由运行态变为阻塞态
  • 等待磁盘 I/O 完成后,进程又由阻塞态变为就绪态
  • 在某一时刻进程被调占用 CPU,就绪态变为运行态
  • 运行了 50ms 后,此进程又请求磁带 I/O 服务,由运行态变为阻塞态
  • 等待磁带 I/O 完成后,进程又由阻塞态变为就绪态
  • 在某一时刻进程被调占用 CPU,就绪态变为运行态
  • 运行了一个时间片 200ms ,且进程要执行打印请求,此时进程由运行态变为阻塞态
  • 打印结束后,进程由阻塞态变为就绪态
  • 在某一时刻又被调度,从就绪态变为运行态,运行 150ms,进程结束

2、试判断该说法是否正确,并说明原因:引入线程后,同一进程内或不同进程间的线程都可以并发执行。

该说法正确。

① 同一进程内的线程可以并发执行。
线程是进程的一个实体,是 CPU 调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。

② 不同进程间的线程可以并发执行。
线程自己只拥有一点儿必不可少的资源(线程栈,线程号等),但它可以访问其所属进程的系统资源。不同进程之间的线程执行互相不干扰,可以很好地并发执行。

3、假定一个操作系统的进程调度采用剥夺式短进程优先调度算法(单处理机系统),系统中各进程到达就绪队列的时刻以及执行时间如表 1 所示,请给出各进程的调度次序。
表1

  • 在 0 时刻,就绪队列中只有进程 1,进程 1 被调度运行
  • 在 1 时刻,进程 2 到达就绪队列,因为进程 2 执行时间比进程 1 短,进程 1 进入就绪队列,进程 2 被调度运行
  • 在 2 时刻,进程 3 到达就绪队列,进程 3 执行时间比进程 2 长,不改变调度状态,进程 2 继续执行
  • 在 3 时刻,进程 4 到达就绪队列,进程 4 执行时间比进程 2 长,进程 2 继续执行
  • 在 5 时刻,进程 2 执行完毕,就绪队列中进程 4 执行时间最短,进程 4 被调度运行
  • 在 10 时刻,进程 4 执行完毕,就绪队列中进程 1 执行时间最短,进程 1 被调度运行
  • 在 17 时刻,进程 1 执行完毕,就绪队列中只有进程 3,进程 3 被调度运行
  • 在 26 时刻,进程 3 执行完毕

所以,进程的调度次序为:
图3

4、考虑如表 2 所示的一组进程,进程占用的 CPU 区间长度以毫秒来计算。假设在 0 时刻进程以 P1、P2、P3、P4、P5的顺序到达。
表2
(1). 画出 4 个 Gantt 图分别演示使用 FCFS、非剥夺式 SJF、非剥夺式优先级(数字越小表示优先级越高)和 RR(时间片为 1ms)算法调度时进程的执行过程。

①FCFS
FCFS
②非剥夺式 SJF
非剥夺式 SJF
③非剥夺式优先级
非剥夺式优先级
④RRRR

(2). 每个进程在每种调度算法下的周转时间是多少?
周转时间

(3). 每个进程在每种调度算法下的等待时间是多少?
等待时间

(4). 对所有进程,哪一种调度算法的平均等待时间最小
平均等待时间
对所有进程,非剥夺式 SJF 调度算法的平均等待时间最小。

5、在一个使用多级反馈队列调度算法的系统中,若采用优先级越低分配时间片越长的策略,即如果第一级就绪队列调度的时间片为 2 秒,每降一级时间片增加为上一级的 2 倍,那么一个只使用 CPU 的进程的执行时间若为 40 秒,让其初始优先级最高,即插入第一级就绪队列,这个进程运行结束前会被中断多少次,结束时处于哪级队列?

  • 此进程在第一级队列运行 2 秒,中断执行,转入第二队列末尾等待调度
  • 在第二队列调度后运行 4 秒,中断执行,转入第三队列末尾等待调度
  • 在第三队列调度后运行 8 秒,中断执行,转入第四队列末尾等待调度
  • 在第四队列调度后运行 16 秒,中断执行,转入第五队列末尾等待调度
  • 在第五队列调度后运行 10 秒,进程结束

这个进程运行结束前会被中断 4 次,结束时处于第五级队列。

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值