操作系统习题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 次,结束时处于第五级队列。

  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
设计一个按时间片轮转法实现进程调度的程序。 [提示]: (1) 假定系统有五个进程,每一个进程一个进程控制块PCB来代表。进程控制块的格式为: 进程名 指针 要求运行时间 已运行时间 状态进程名——作为进程的标识,假设五个进程进程名分别为P1,P2,P3,P4,P5。 指针——进程按顺序排成循环队列,用指针指出下一个进程进程控制块的首地址,最后一个进程的指针指出第一个进程进程控制块首地址。 要求运行时间——假设进程需要运行的单位时间数。 已运行时间——假设进程已经运行的单位时间数,初始值为“0”。 状态——有两种状态,“就绪”和“结束”,初始状态都为“就绪”,用“R”表示。当一个进程运行结束后,它的状态为“结束”,用“E”表示。 (2) 每次运行所设计的进程调度程序前,为每个进程任意确定它的“要求运行时间”。 (3) 把五个进程按顺序排成循环队列,用指针指出队列连接情况。另用一标志单元记录轮到运行进程。例如,当前轮到P2执行,则有: 标志单元内容为K2 , K1 P1 K2 P2 K3 P3 K4 P4 K5 P5 K2 K3 K4 K5 K1 2 3 1 2 4 1 0 0 0 0 R R R R R PCB1 PCB2 PCB3 PCB4 PCB5 (4) 进程调度总是选择标志单元指示的进程运行。由于本实习是模拟进程调度的功能,所以,对被选进程并不实际的启动运行,而是执行: 已运行时间+1 来模拟进程的一次运行,表示进程已经运行一个单位的时间。 请同学注意:在实际的系统,当一个进程被选运行时,必须置上该进程可以运行的时间片值,以及恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行一个时间片。在这时省去了这些工作,仅用“已运行时间+1”来表示进程已经运行一个时间片。 (5) 进程运行一次后,应把该进程进程控制块的指针值送到标志单元,以指示下一个轮到运行进程。同时,应判断该进程的要求运行时间与已运行时间,若该进程的要求运行时间¹已运行时间,则表示它尚未执行结束,应待到下一轮时再运行。若该进程的要求运行时间=已运行时间,则表示它已经执行结束,应指导它的状态修改成“结束”(E)且退出队列。此时,应把该进程进程控制块的指针值送到前面一个进程的指针位置。 (6) 若“就绪状态进程队列不为空,则重复上面的(4)和(5)的步骤,直到所有的进程都成为“结束”状态。 (7) 在所设计的程序应有显示或打印语句,能显示或打印每次选进程进程名以及运行一次后进程队列的变化。 (8) 为五个进程任意确定一组“要求运行时间”,运行进程调度程序,显示或打印逐次被选进程名以及进程控制块的动态变化过程。 模拟多资源银行家算法 实习检查: (1)程序运行后,由检查教师输入系统初态(包括进程名和各进程已获得资源、尚需资源及当前系统可用资源情况。注意:进程数目和资源种类由检查教师动态确定); (2)由检查教师输入此时某一进程申请各资源情况,使用银行家算法,检测该请求是否安全。若安全,则显示分配后的资源分配矩阵、进程资源需求矩阵,当前可用资源情况,以及安全序列。若不安全,给出警告信息! 作业调度采用FCFS、SJF、响应比高者优先算法模拟设计作业调度程序。 [提示]: (1)每个作业的JCB包括作业名、提交时刻、要求运行时间; (2)假设第一个作业提交时,系统无正在执行的作业,即第一个作业一提交系统便调度该作业。 要求: 输入:一批作业各作业的作业名、提交时刻、要求运行时间; 选择不同的作业调度程序运行; 输出:相应作业调度算法下,各作业的等待时间、周转时间、带权周转时间,这批作业的调度顺序、平均周转时间和平均带权周转时间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值