操作系统处理机调度课后作业
1、什么是高级调度、中级调度、低级调度?它们之间有何联系?高级调度又称长期调度,调度对象是作业,主要功能是根据某种算法,将外存上处于后背队列的作业调度入内存;低级调度又称进程调度或短程调度,其调度对象是进程,主要功能是根据某种算法,决定就绪队列中的哪个进程获得处理机;中期调度又称为内存调度,主要用于提高内存利用率和系统吞吐量(实现虚拟内存)。都是处理机的调度,高级调度将外存的作业调度入内存,通过低
1、什么是高级调度、中级调度、低级调度?它们之间有何联系?
高级调度又称长期调度,调度对象是作业,主要功能是根据某种算法,将外存上处于后背队列的作业调度入内存;
低级调度又称进程调度或短程调度,其调度对象是进程,主要功能是根据某种算法,决定就绪队列中的哪个进程获得处理机;
中期调度又称为内存调度,主要用于提高内存利用率和系统吞吐量(实现虚拟内存)。
都是处理机的调度,高级调度将外存的作业调度入内存,通过低级调度获得处理机,通过中级调度调整内存资源分配。
2、处理器调度算法有哪些常用的性能评价指标?
CPU利用率、吞吐量、周转时间、等待时间、响应时间
3、什么是作业的三种基本状态,它们与进程三种基本状态间有何联系?
就绪、执行、阻塞。
作业被调度后会进入就绪状态,就绪队列中被分配了时间片就可以进入执行状态,使用完时间片后又回到就绪状态,等待处理机的调度。发生了系统调用或其他中断请求,会进入阻塞状态,完成后回到就绪状态等待处理机的调度。
4、假设在单道批处理环境下有四个作业,已知它们进入系统的时间、估计运行时间,应用先来先服务、最短作业优先和最高响应比优先作业调度算法,分别计算出作业的平均周转时间和带权的平均周转时间,给出详细的计算过程。
作业 | 进入时间 | 估计运行时间(分钟) |
---|---|---|
JOB1 | 8:00 | 120 |
JOB2 | 8:50 | 50 |
JOB3 | 9:00 | 10 |
JOB4 | 9:50 | 20 |
先来先服务:
平均周转时间 = (120 + 120 + 120 + 90) / 4 = 112.5min
带权的平均周转时间 = (120 / 120 + 120 / 50 + 120 / 10 + 90 / 20) / 4 = 4.975min
最短作业优先:
平均周转时间 =(120 + 70 + 40 + 150) / 4 = 95min
带权的平均周转时间 = (120 / 120 + 70 /10+ 40/20 + 150/50) / 4 = 3.24min
最高响应比优先:
平均周转时间 = (120 + 70 + 130 + 90) / 4 = 102.5min
带权的平均周转时间 = (120 / 120 + 70 / 10 + 130 / 50 + 90 / 20) / 4 = 3.775min
5、若后备队列有n个同时到达的作业J1、J2、…、Jn,其运行时间分别为t1、t2、…、tn,试证明,短作业优先的作业调度算法可以得到最小的平均周转时间。
短作业优先调度可以使得运行时间最短的进场被优先执行,减少了短作业的周转时间。
6、假设一个系统中有5个进程,它们的到达时间和服务时间如下表所示,忽略I/O以及其他开销,若分别按以下三种调度算法,请给出各进程的周转时间和平均周转时间,并给出各种算法优劣进行分享。
(1) 时间片轮转(时间片为2)
(2) 多级反馈队列,设置三个就绪队列,时间片分别为1、2、3
(3)立即抢占式多级反馈队列,被抢占进程回到原来的就绪队列
进程 | 到达时间 | 服务时间 |
---|---|---|
A | 0 | 3 |
B | 2 | 6 |
C | 4 | 4 |
D | 6 | 5 |
E | 8 | 2 |
轮转调度:
进程A:11
进程B:17
进程C:11
进程D:14
进程E:2
平均周转时间:(11+17+11+14+2)/5=11
多级反馈队列:
进程A:3
进程B:14
进程C:14
进程D:14
进程E:6
平均周转时间:(13+14+14+13+6)/5=10
抢占多级反馈队列:
进程A:4
进程B:16
进程C:8
进程D:14
进程E:7
平均周转时间:(4 + 16 + 8 + 14+ 7)/ 5 = 9.8
7、某系统中进程有如下的状态变化图
请回答下列问题:
(1)该系统采用了怎样的进程调度算法?说明理由。
(2)把图中发生①-④的状态变化原因填入下表中。
变化 | 变化原因 |
---|---|
① | 进程得到时间片,开始执行 |
② | 进程时间片消耗完,进入就绪(等待)队列 |
③ | 进程中断,发出IO请求 |
④ | 进程IO请求结束,进入就绪队列 |
8、下列哪种调度算法会导致饥饿?
最短作业优先调度算法
9、讨论下列两者在调度过程中的矛盾
a.CPU利用率和响应时间
b.平均周转时间和最大等待时间
c.I/O利用率和CPU利用率
a. CPU利用率随着进程的并发程度增加,但进程的响应时间会随着进程的并发程度增进而边长
b. 通常,最短作业优先调度可以极大的减少平均周转时间,平均周转时间的下降可能会导致需要占用时间较长的进程等待时间边长
c. IO密集型的进程通常对CPU的使用时间比较短,进程请求IO的增加会使得进程对CPU的利用率下降
10、以下进程正在使用抢占式循环调度算法进行调度。每个进程都被分配一个数字优先级,数字越大表示相对优先级越高。除了下面列出的进程之外,系统还有一个空闲任务(不消耗CPU资源,标识为Pidle),该进程优先权为0,当系统没有其他进程时会运行该进程。一个时间量的长度(时间片) 是10个单位。如果一个进程被更高优先级的进程抢占,则抢占的进程被放在队列的末尾。
进程 | 权 | 运行时间 | 到达时间 |
---|---|---|---|
P1 | 40 | 20 | 0 |
P2 | 30 | 25 | 25 |
P3 | 30 | 25 | 30 |
P4 | 35 | 15 | 60 |
P5 | 5 | 10 | 100 |
P6 | 10 | 10 | 105 |
a.使用甘特图显示进程的调度顺序
b.各进程的周转时间
p1:20
P2:50
p3:50
P4:30
P5:20
p6:10
c.各进程的等待时间
p1:0
P2:25
p3:25
P4:15
P5:10
p6:0
d.CPU的利用率是多少?
105 / 120 * 100% = 87.5%
11、Consider a system running ten I/O-bound tasks and one CPU-bound task. Assume that the I/O-bound tasks issue an I/O operation once for every millisecond of CPU computing and that each I/O operation takes 10 milliseconds to complete. Also assume that the context-switching overhead is 0.1 millisecond and that all processes are long-running tasks. Describe the CPU utilization for a round-robin scheduler when:
考虑一个系统运行十个I/O任务和一个CPU任务。假设I/O任务在每毫秒的CPU计算中发出一次I/O操作,并且每个I/O操作需要10毫秒才能完成。还假设上下文切换开销为0.1毫秒,并且所有进程都是长时间运行的任务。描述轮询调度算法在以下情况下的CPU利用率:
A. The time quantum is 1 millisecond
A.时间量是1毫秒
1/1.1 * 100% = 92%
B. The time quantum is 10 milliseconds
B.时间量是10毫秒
1.1 * 10 + 10.1 = 21.1
20 / 21.1 * 100% = 94%
12、 Why is it important for the scheduler to distinguish I/O-bound programs from CPU-bound programs?
为什么调度程序区分I/O约束程序和CPU约束程序很重要?
I/O约束程序对CPU的使用时间较短,CPU约束对CPU的使用时间较长,区分开两者可以更好的分配资源,提供系统资源利用率。
13、 A CPU-scheduling algorithm determines an order for the execution of its scheduled processes. Given n processes to be scheduled on one processor, how many different schedules are possible? Give a formula in terms of n.
CPU调度算法决定其调度进程的执行顺序。给定在一个处理器上调度n个进程,可以有多少不同的调度?给出一个n的公式
n!
14、 Describe the differences among short-term, medium-term, and long-term scheduling.
描述长程调度、中程调度和短程调度的区别
长期调度,调度对象是作业,主要功能是根据某种算法,将外存上处于后背队列的作业调度入内存;
短程调度,其调度对象是进程,主要功能是根据某种算法,决定就绪队列中的哪个进程获得处理机;
中期调度又称为内存调度,主要用于提高内存利用率和系统吞吐量(实现虚拟内存)。
都是处理机的调度,高级调度将外存的作业调度入内存,通过低级调度获得处理机,通过中级调度调整内存资源分配。
15、Describe the actions taken by a kernel to context-switch between processes.
描述系统内核在上下文切换时的操作
在切换时,在某个进程的挂起时,先保存该进程状态至该进程控制块PCB中,包括进程的状态,编号,PC,寄存器等,在程序重新执行时,从对应的PCB表中读取信息,并从中断处继续执行。
低级调度获得处理机,通过中级调度调整内存资源分配。
15、Describe the actions taken by a kernel to context-switch between processes.
描述系统内核在上下文切换时的操作
在切换时,在某个进程的挂起时,先保存该进程状态至该进程控制块PCB中,包括进程的状态,编号,PC,寄存器等,在程序重新执行时,从对应的PCB表中读取信息,并从中断处继续执行。
本人水平有限,可能有很多错的,看到错误的小伙伴帮忙修改下呗,谢谢啦😘
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)