操作系统习题2—进程调度
1. 假定有一个进程 A,其工作流程如图 1 所示。如果系统中进程只有三种状态(就绪、运行、阻塞),并且进程被调度程序选中后就可以投入运行,且时间片为 200ms,请顺序列出该进程从开始到结束所经历的状态转换过程,并说明原因。
该进程从开始到结束所经历的状态转换过程为:
就绪 => 运行 => 就绪 => 运行 => 阻塞 => 就绪 => 运行 => 阻塞 => 就绪 => 运行 => 阻塞 => 就绪 => 运行 => 结束
分析:
- 该进程产生后进入就绪状态,被调度程序选中后占用CPU,变为运行态。
- 运行了一个时间片 200ms 后,此进程由运行态变为就绪态,CPU 转而运行其他进程
- 在某一时刻,此进程重新被调度程序选中,由就绪态变为运行态
- 运行了 50ms 后,此进程请求磁盘 I/O 服务,由运行态变为阻塞态
- 等待磁盘 I/O 完成后,进程又由阻塞态变为就绪态
- 在某一时刻进程被调占用 CPU,就绪态变为运行态
- 运行了 50ms 后,此进程又请求磁带 I/O 服务,由运行态变为阻塞态
- 等待磁带 I/O 完成后,进程又由阻塞态变为就绪态
- 在某一时刻进程被调占用 CPU,就绪态变为运行态
- 运行了一个时间片 200ms ,且进程要执行打印请求,此时进程由运行态变为阻塞态
- 打印结束后,进程由阻塞态变为就绪态
- 在某一时刻又被调度,从就绪态变为运行态,运行 150ms,进程结束
2、试判断该说法是否正确,并说明原因:引入线程后,同一进程内或不同进程间的线程都可以并发执行。
该说法正确。
① 同一进程内的线程可以并发执行。
线程是进程的一个实体,是 CPU 调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。
② 不同进程间的线程可以并发执行。
线程自己只拥有一点儿必不可少的资源(线程栈,线程号等),但它可以访问其所属进程的系统资源。不同进程之间的线程执行互相不干扰,可以很好地并发执行。
3、假定一个操作系统的进程调度采用剥夺式短进程优先调度算法(单处理机系统),系统中各进程到达就绪队列的时刻以及执行时间如表 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 执行完毕
所以,进程的调度次序为:
4、考虑如表 2 所示的一组进程,进程占用的 CPU 区间长度以毫秒来计算。假设在 0 时刻进程以 P1、P2、P3、P4、P5的顺序到达。
(1). 画出 4 个 Gantt 图分别演示使用 FCFS、非剥夺式 SJF、非剥夺式优先级(数字越小表示优先级越高)和 RR(时间片为 1ms)算法调度时进程的执行过程。①FCFS
②非剥夺式 SJF
③非剥夺式优先级
④RR
(2). 每个进程在每种调度算法下的周转时间是多少?
(3). 每个进程在每种调度算法下的等待时间是多少?
(4). 对所有进程,哪一种调度算法的平均等待时间最小
对所有进程,非剥夺式 SJF 调度算法的平均等待时间最小。
5、在一个使用多级反馈队列调度算法的系统中,若采用优先级越低分配时间片越长的策略,即如果第一级就绪队列调度的时间片为 2 秒,每降一级时间片增加为上一级的 2 倍,那么一个只使用 CPU 的进程的执行时间若为 40 秒,让其初始优先级最高,即插入第一级就绪队列,这个进程运行结束前会被中断多少次,结束时处于哪级队列?
- 此进程在第一级队列运行 2 秒,中断执行,转入第二队列末尾等待调度
- 在第二队列调度后运行 4 秒,中断执行,转入第三队列末尾等待调度
- 在第三队列调度后运行 8 秒,中断执行,转入第四队列末尾等待调度
- 在第四队列调度后运行 16 秒,中断执行,转入第五队列末尾等待调度
- 在第五队列调度后运行 10 秒,进程结束
这个进程运行结束前会被中断 4 次,结束时处于第五级队列。