操作系统概念第五章部分作业题答案

操作系统概念第五章部分作业题答案题目一:为什么对调度程序而言,区分CPU约束性进程和I/O约束性进程很重要解答:绝大多数进程可分为I/O主(放入I/O队列)或CPU主(放入就绪队列),I/O主的计算时间>CPU主。因此长期调度程序应选择一个合理的包含I/O主和CPU主的组合进程。在运行I/O操作前,I/0限制的程序只运行很少数量的计算机操作。而CPU约束程序一般来使用很多的CPU。另一方面,CPU约束程序会利用整个时间片,…

大家好,又见面了,我是你们的朋友全栈君。

题目一:
为什么对调度程序而言,区分CPU约束性进程和I/O约束性进程很重要

解答:
绝大多数进程可分为I/O主(放入I/O队列)或CPU主(放入就绪队列),I/O主的计算时间>CPU主。因此长期调度程序应选择一个合理的包含I/O主和CPU主的组合进程。在运行I/O操作前,I/0限制的程序只运行很少数量的计算机操作。而CPU约束程序一般来使用很多的CPU。另一方面,CPU约束程序会利用整个时间片,且不做任何阻碍I/O操作的工作。

题目二:
下面哪种调度算法会导致饥饿?
1.先到先服务
2.最短作业优先
3.轮转法
4.优先级

解答:
最短作业优先和有限计算法能导致饥饿,因为对于优先级较低的作业来说,这两种算法都会使其无穷等待CPU,长期得不到调用,就会导致饥饿,也就是无穷阻塞问题。

题目三:
考虑一个运行 10 个 I/O 约束任务和 1 个 CPU 约束任务的系统,假设 I/O 约束任务每进行 1ms 的 CPU 计算执行一次 I/O 操作,每个 I/O 操作花费 10ms 完成。假设上下文切换花费 0.1ms, 且所有的进程都是长运行任务。请计算下列条件下 RR(时间片轮转)调度程序的 CPU利用率?
1.时间片为 1ms
2.时间片为 10ms

解答:
1、时间片为1ms时,无论哪个进程被调度,都会花费一次上下文切换的额外时间0.1ms,所以,对于一个时间片,实际时长为1.1ms,但只有1ms在“认真工作”,所以利用率为1/1.1×100%=92%。
2、时间片为10ms时,对I/O约束任务而言,还是进行1ms后就进行上下文切换,所以对于一个时间片,十个I/O约束任务都会走一遍,然后执行CPU约束任务,然后再转九次,每次相同。所以,从整体十次上来讲,总时间是10x(10×1.1<I/O约束任务>+10<CPU约束任务>),而实际的工作时间是10×20,所以利用率为20/21.1×100%=94%

题目四:
考虑下面一组进程,进程占用的CPU区间长度以毫秒计算:
进程 到达时间 CPU区间长度 优先级
P1 0 10 3
P2 1 3 1
P3 2 4 3
P4 3 1 4
P5 4 5 2
1.分别画出采用 FCFS,SJF,抢占式优先级调度(数值越小,优先级越大; 优先级相同时采用RR,时间片为 1ms),RR(时间片 =2ms)算法进行调度时的甘特图。
2.计算上述调度算法下的平均周转周转时间。
3.计算上述调度算法下的平均等待时间。

解答:
1、
FCFS:
在这里插入图片描述
SJF(非抢占):
在这里插入图片描述
SJF(抢占):
在这里插入图片描述
注意,对于长度相同的情况,我采用片长为1ms的RR
优先级:
在这里插入图片描述
RR:
在这里插入图片描述
2、
FCFS:P1=10,P2=13-1,P3=17-2,P4=18-3,P5=23-4,SUM=10+12+15+15+19=71,NUM=14.2
SJF(非抢占):P1=10,P2=14-1,P3=18-2,P4=11-3,P5=23-4,SUM=10+13+16+8+19=66,NUM=13.2
SJF(抢占):P1=23,P2=5-1,P3=9-2,P4=4-3,P5=14-4,SUM=23+4+7+1+10=45,NUM=9
优先级:P1=22,P2=4-1,P3=17-2,P4=23-3,P5=9-4,SUM=22+3+15+20+5=65,NUM=13
RR:P1=23,P2=12-1,P3=14-2,P4=9-3,P5=21-4,SUM=23+11+12+6+17=69,NUM=13.8
3、
FCFS:P1=0,P2=10-1,P3=13-2,P4=17-3,P5=18-4,SUM=9+11+14+14=48,NUM=9.6
SJF(非抢占):P1=0,P2=11-1,P3=14-2,P4=10-3,P5=18-4,SUM=10+12+7+14=43,NUM=8.6
SJF(抢占):P1=0+14-1,P2=1+4-3-1,P3=5-2,P4=3-3,P5=9-4,SUM=13+1+3+0+5=22,NUM=4.4
优先级:P1=0+9-1+11-10+13-12+15-14+17-16,P2=1-1,P3=10+12-11+14-13+16-15-2,P4=22-3,P5=4-4,SUM=12+0+11+19+0=42,NUM=8.4
RR:P1=13,P2=8,P3=8,P4=5,P5=12,SUM=46,NUM=9.2

题目五:
查找文献了解 solaris 的调度设计并对其进行详细阐述,并就其调度方案中的至少两个细节说明这样设计所带来的影响(好处)。

解答:
Solaris的内核线程调度(抢占、基于优先级、支持实时线程)
传统Solaris使用多对多模型,Solaris 9使用一对一模型。
Solaris按照优先级排序有4种调度类型:实时、系统、分时和交互,每种类型有不同的priority和调度算法。
Scheduler将特定类的priority转换为全局priority,再选择全局priority最高的线程来执行,直到该线程阻塞、用完time quantum或被更高priority的线程抢占。如果多个线程的priority相同,则采用循环队列。
Solaris 9引入2种新的调度类型:

  1. 固定优先级(fixed priority) – 线程的priority与time sharing类型范围相同,但不能动态调节。
  2. 公平共享(fair share) – 用CPU shares代替priority来做调度决策。
    CPU shares:表明可用CPU资源的权利,并被分配到一个project(进程集)。
    Time sharing类(默认调度类型)和Interactive类采用同样的调度策略(多级反馈队列),Priority和time quantum默认成反比。
    通常Interactive进程的priority更高,CPU-bound进程的priority更低。
    Interactive和time sharing类包括60个优先级,在其调度中:
    时间片到期(Time quantum expired)(i.e. 用完其time-quantum而未堵塞)的线程将被认为是CPU-intensive的,并被降低优先级。
    从睡眠中返回(Return from sleep)(e.g. 从等待I/O中返回)的线程优先级将被提高。
    System类专门保留给内核使用,用于运行内核进程。System进程一旦创建,其priority就不再改变。(在内核模式下运行的用户进程并不属于system类。)
    Real time类的进程具有最高priority,能在其他类型进程之前运行。通常只有少数进程属于real time类。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159073.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java 泛型

    Java 泛型

    2021年10月7日
    36
  • KONG网关工作流程简介「建议收藏」

    KONG网关工作流程简介「建议收藏」KONG网关工作流程简介KONG网关工作流程图KONG网关工作流程介绍KONG网关工作流程图KONG网关工作流程介绍上面流程图仅仅是一个大致的示意图,不包含cosumer,plugin,先了解kong大致工作路程,再去深究。一、流程route路由器接收到请求后,根据路由规则,把请求转发到相应的service,service根据host、path、或者url属性,把请求直接转发到target或者把请求转发到upstream(bb两句,这里其实upsteam对service来说是透明的,ups

    2022年9月3日
    4
  • ewebeditor漏洞大全

    ewebeditor漏洞大全1:默认管理后台: http://www.backlion.com/ewebeditor/admin_login.asp后台如果能进入:可点击样式管理:standard拷贝一份(直接修改改不了)在拷贝的一份里加入图片类型(asaaaspsp)  然后点预览在编辑器里点设计   然后直接上传asa大马.上传后在代码里可以看到马的位置!

    2022年7月14日
    73
  • 2022 idea激活码(注册激活)

    (2022 idea激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年4月1日
    335
  • spring aop工作原理_注解的实现原理

    spring aop工作原理_注解的实现原理本篇旨在让读者对SpringAOP实现原理有一个宏观上的认识,因此会丢失一些细节,具体实现参考:老实人Spring源码目录阅读本篇文章前,希望读者对SpringIoc以及SpringAOP的使用(@Aspect)由一定了解,话不多说,直接上图准备工作Service类:有find方法跟save方法,find方法前后需要缓存操作,save方法前后需要事务操作CacheableAspec…

    2022年9月18日
    1
  • hibernate 使用C3P0数据源[通俗易懂]

    hibernate 使用C3P0数据源

    2022年2月3日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号