操作系统第2章 习题整理


题目来源于书本课后习题

概念题

在这里插入图片描述
答案:(3)设时钟日期,(4)加载psw,(5)置特殊寄存器,(6)改变存储器映像图,(7)启动I/O指令
解析:1.读取时钟日期,应用程序可以读取;
2.访管指令,操作系统分析访管指令中的参数,然后让相应的“系统调用”子程序为用户服务。系统调用功能完成后,操作系统把中央处理器的管态改为目态,并返回到用户程序。
3.设置时钟日期,设时钟日期,加载psw,置特殊寄存器,改变存储器映像图,启动I/o指令。用户态不能进行。
拓展:内核态又称管态,通常与中断、异常、系统调用等有关。

作业调度和低级调度算法(重点题型,期末考试必考)⭐

1.单处理系统(FCFS,RR,SJF)

在这里插入图片描述

2.多道程序设计(优先级调度)

在这里插入图片描述
此题没有说明采用的是抢占式优先级调度还是非抢占式优先级调度,所以我就按照非抢占式优先级调度来写,这样比较简单(doge)
解:
在这里插入图片描述
解析:在优先级调度中,非抢占式根据已经进入后备队列的作业中,去挑选优先级较高的作业,且中途不会被抢占。所以job1在8点的时候就进入了队列,会被立刻执行,等到job1结束执行后,此时三个作业都已进入后备队列,那么则按照优先级执行,顺序为job3,job4,job2。另外,对于优先级调度算法,周转时间=作业结束执行时间-进入后备队列时间。

3.单处理系统(FCFS,优先级,RR)

在这里插入图片描述
这个地方书上又没有说时间片是多少,就姑且当作2min来算,因为第11题上写了2min,而这里没写。
解:
1)FCFS:
在这里插入图片描述
2)优先级调度:
在这里插入图片描述
3)时间片轮转:
在这里插入图片描述
解析:FCFS算法最简单,按照作业顺序执行即可,优先级调度也是根据优先级来算(还是非抢占式的),然后时间片轮转则注意下各作业的等待时间别算错即可。

4.单处理系统(FCFS,HRRF)

在这里插入图片描述
解:
在这里插入图片描述
在这里插入图片描述
解析:重点是HRRF,我们需要计算出三个作业的响应比(1+当前作业等待时间/作业执行时间):
1)刚开始时,只有作业1进入cpu,直接执行;执行2h;
2)作业1执行完毕后,作业2和作业3的响应比为(1+110/60)和(1+95/25),作业3响应比更高,所以执行作业3;执行25min
3)作业3执行完毕后,只剩作业2,执行作业2;执行1h。

5.单处理系统(FCFS,SJF,HRRF)

在这里插入图片描述
解:
在这里插入图片描述

6.多道程序系统(FCFS)

在这里插入图片描述
解:1)1,3,4,1,5
2)全部作业运行结束的时刻为9:30
3)平均周转时间:(30+55+40+40+55)/5=44
4)最大作业周转时间为55min
注意事项
1)关于为什么作业1是8点半结束运行,是因为在8点25的时候作业3进入主存,此时cpu被作业1和作业2平分使用,那么在这段时间内所需要的执行时间就要翻倍。
2)关于在8:30的时候作业2仍不能执行是因为此时的主存中的作业3仍在执行,题目中说到不能移动已在内存中的作业,没有空余的位置留给作业2,详细见下方图
分析过程
8 : 00 作业 1 到达, 占有资源并调入主存运行。
8 : 20 作业2 与 3 同时到达, 但作业 2 因分不到打印机, 只能在后备队
列等待. 作业 3 资源满足, 可进主存运行, 并与作业1 平分 CPU 时间。
8 : 30 作业 1 在8 : 30 结束, 释放磁带与打印机。 但作业2 仍不能执行,
因不能移动而没有 30KB 得空闲区, 继续等待. 作业 4 在 8 : 30 到达, 并进入主存执行, 与作业 3 分享 CPU
8 : 35 作业 5 到达, 因分不到磁带/ 打印机, 只能在后备队列等待。
9 : 00 作业 3 运行结束, 释放磁带机。 此时作业2 得主存及打印机均可
满足, 投入运行. 作业 5 到达时间晚, 只能等待.
9 :10 作业 4 运行结束, 作业 5 因分不到打印机, 只能在后备队列继续
等待。
9:15 巧作业 2 运行结束, 作业 5 投入运行.
9 : 30 作业全部执行结束。

CPU占用情况(其中,黑色表示cpu被独占,灰色表示作业平分cpu,白色表示cpu空闲):
在这里插入图片描述
内存分配情况:
在这里插入图片描述
多道程序设计时间图:
在这里插入图片描述

7.多道程序系统(FCFS,SJF)

在这里插入图片描述
解:
1)FCFS,执行次序:A,B,D,C,E
平均作业周转时间:(60+50+100+65+80)/5=71
2)对于SJF,其实同理,就是在9 : 40的时候,C和E都可以选,那么不同于FCFS,这时候要选择执行时间最短的,是E。
所以执行次序:A,B,D,E,C
平均作业周转时间:((60+50+100+65+50)/5=65

和上道题是同一类型题,以FCFS为例分析如下:
1)8 : 30 作业 A到达, 占有资源并调入主存运行。
2)8 : 50作业B到达,进入主存和作业A共同平分CPU时间,
3)9 : 00作业C到达,9 : 05作业D到达,9 : 10作业E到达,在此期间,要么因内存不够,要么因磁带机不够,都不能进入主存;
4)9 : 30作业A执行完毕,此时因内存原因,只能是D进入到内存中,B和D平分CPU
5)9 : 40作业B执行完毕,此时C和E都可以执行,但不可以同时执行,因为磁带机不够用。根据FCFS算法,挑选先来的C进行执行,C和D平分CPU
6)10 : 10,作业D执行完毕,作业E进入主存,C和E平分CPU。
7)10 : 30,作业E执行完毕,作业C开始独占CPU
8)10 : 40,作业C执行完毕。所有作业全部执行完成。

CPU占用情况(黑色表示独占CPU,灰色表示平分CPU):
在这里插入图片描述
内存占用情况图
在这里插入图片描述

关于作业调度算法问题的总结

1.预备知识:

学会使用各种低级调度算法:
1)先来先服务(FCFS):
顾名思义,谁先来就让谁先运行,非抢占式。
2)最短作业优先(SJF):
简单来说就是谁运行所需要的时间最短,谁就优先执行,非抢占式
3)最短剩余时间优先(SRTF):
如果当前有进程正在运行,有新的进程添加进来,如果新进程需要执行的时间小于当前进程的执行时间,那么当前进程停止执行,反而执行新的进程。
4)最高响应比优先(HRRF)
响应比=(1+作业当前等待时间/作业处理时间)
每当需要进行作业调度时,就去计算各各作业的响应比,响应比最高者被调度执行,非抢占式算法
5)优先级调度
根据已经确定好的优先级进行执行
分为抢占式:出现新的进程时,若优先级高于当前进程,则当前进程停止执行,执行新进程。
非抢占式:当前进程执行完毕,在后备队列中选择优先级最高的作业进行调度执行。
6)轮转调度(RR)
每个进程都会被分配一个时间片(进程每次允许使用的时长),当时间片耗尽后,传给后备队列的下一个进程,如此反复轮转使用cpu。

2.解题步骤

2.1单处理器运行
1)首先确定好题目使用的算法是什么,如果让你分析多个,那就一个一个分开讨论
2)确定好作业进入后备队列或者说是抵达系统的时间和次序,刚开始肯定是第一个进入队列的第一个执行,然后根据算法的特性去确定好每个作业的执行先后顺序,确定好每个作业执行结束的时间(此步特别容易出错,一定要细心计算)
3)计算每个作业的作业周转时间和带权作业周转时间,最后计算出平均作业周转时间。
2.2多道程序运行
1)这种题目一般比较复杂,第一步还是先确定好题目使用的作业调度算法是什么
2)跟单处理器运行差不多,不同的在于,多道程序系统允许多个作业同时进入cpu,但有外设数量,内存大小的要求。
看清题目,有几个注意点:
已在内存中的作业是否允许移动
允许使用的外设数量(打印机和磁带机等),在多个作业同时运行时,不能超出规定的数量。
内存大小,题目中可能会说是按照低内存地址优先原则分配,那么建议好好画图,弄清楚里面的内存情况,例图可以见上面例题
3)计算每个作业的作业周转时间和带权作业周转时间,最后计算出平均作业周转时间。

  • 3
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
一、实验目的 本实验要求学生模拟作业调度的实现,用高级语言编写和调试一个或多个作业调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调度算法的理解。 二、实验内容和要求 1、编写并调度一个多道程序系统的作业调度模拟程序。   作业调度算法:采用基于先来先服务的调度算法。可以参考课本中的方法进行设计。 对于多道程序系统,要假定系统中具有的各种资源及数量、调度作业时必须考虑到每个作业的资源要求。 三、实验主要仪器设备和材料 硬件环境:IBM-PC或兼容机 软件环境:C语言编程环境 四、实验原理及设计方案 采用多道程序设计方法的操作系统,在系统中要经常保留多个运行的作业,以提高系统效率。作业调度从系统已接纳的暂存在输入井中的一批作业中挑选出若干个可运行的作业,并为这些被选中的作业分配所需的系统资源。对被选中运行的作业必须按照它们各自的作业说明书规定的步骤进行控制。 采用先来先服务算法算法模拟设计作业调度程序。 (1)、作业调度程序负责从输入井选择若干个作业进入主存,为它们分配必要的资源,当它们能够被进程调度选中时,就可占用处理器运行。作业调度选择一个作业的必要条件是系统中现有的尚未分配的资源可满足该作业的资源要求。但有时系统中现有的尚未分配的资源既可满足某个作业的要求也可满足其它一些作业的要求,那么,作业调度必须按一定的算法在这些作业中作出选择。先来先服务算法是按照作业进入输入井的先后次序来挑选作业,先进入输入井的作业优先被挑选,当系统中现有的尚未分配的资源不能满足先进入输入井的作业时,那么顺序挑选后面的作业。 (2) 假定某系统可供用户使用的主存空间共100k,并有5台磁带机。 3)流程图:

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chase__young

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值