操作系统第3章辅导与自测.docx

上传人:牧羊曲112 文档编号:3549663 上传时间:2023-03-13 格式:DOCX 页数:17 大小:44.51KB
返回 下载 相关 举报
操作系统第3章辅导与自测.docx_第1页
第1页 / 共17页
操作系统第3章辅导与自测.docx_第2页
第2页 / 共17页
操作系统第3章辅导与自测.docx_第3页
第3页 / 共17页
操作系统第3章辅导与自测.docx_第4页
第4页 / 共17页
操作系统第3章辅导与自测.docx_第5页
第5页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《操作系统第3章辅导与自测.docx》由会员分享,可在线阅读,更多相关《操作系统第3章辅导与自测.docx(17页珍藏版)》请在三一办公上搜索。

1、操作系统第3章辅导与自测第3章 处理机调度 辅导与自测 3.1 本章知识点 调度是操作系统的基本功能,几乎所有的计算机资源在使用之前都要经过调度。CPU作为计算机最主要的资源,处理机调度的目的就是分配CPU。CPU是操作系统中最核心的调度,其调度策略决定了操作系统的类型,其调度算法优劣直接影响整个系统的性能。所以,调度问题是操作系统设计的一个中心问题。 本章的主要知识点为: 调度级别 一般来说,作业从进入系统到最后完成,可能要经历三级调度:高级调度、中级调度和低级调度,这是按调度层次进行分类的。其中,高级调度又称为作业调度,低级调度又称为进程调度。 作业调度是在输入的一批作业中选择有权竞争CP

2、U的作业。资源的分配策略对作业调度有很大影响。为了使内存中同时存放的进程数目不至于太多,有时就需要把某些进程从内存中移到外存上,以减少多道程序的数目,为此设立了中级调度。进程调度是从就绪进程队列中选择一个进程,并把CPU分配给它。进程调度是这三级调度中是必不可少的。 这三级调度中,要重点理解作业调度和进程调度形成的两级调度模型,如下图所示。 通过理解这个图,理解作业的4种状态:提交、后备、执行和完成,作业调度的功能,进程调度的功能,进程调度的时机,以及这两级调度如何协调工作完成了处理机调度。 常用调度算法 针对不同的系统目标,会采取不同的调度策略。确定调度策略是件复杂的工作,往往要兼顾多种因素

3、的影响。CPU利用率、吞吐量、周转时间、就绪等待时间和响应时间等是通常评价系统性能时都要考虑的几个指标。 教材中主要介绍了3种调度算法,分别是先来先服务法、时间片轮转法和优先级法。 先来先服务法是最简单的调度算法,它的实现思想就是“排队买票”的办法。按作业到来的先后次序进行调度,即先来的先得到执行。 时间片轮转法的设计实现思想是系统把所有就绪进程按先入先出的原则排成一个队列。每当执行进程调度时,进程调度程序总是选出就绪队列的队首进程,让它在CPU上运行一个时间片的时间。当进程用完分给它的时间片后,调度程序便停止该进程的运行,并把它放入就绪队列的末尾;然后,把CPU分给就绪队列的队首进程。轮转法

4、适用于分时系统。其主要问题是时间片如何选择:时间片太长了,就成为FCFS调度;时间片太短了,频繁调度,开销太大。 优先级调度算法的实现思想:是从就绪队列中选出优先级最高的进程,把CPU分给它使用。又分为非抢占式优先级法和抢占式优先级法。前者是:当前占用CPU的进程一直运行下去,直到完成任务或者因等待某事件而主动让出CPU时,系统才让另一个优先级高的进程占1 用CPU。后者是:当前进程在运行过程中,一旦有另一个优先级更高的进程出现在就绪队列中,进程调度程序就停止当前进程的运行,强行将CPU分给那个进程。 其它常用的调度算法还有:短作业优先法、最短剩余时间优先法、多级队列法、多级反馈队列法。 中断

5、处理 并发是现代计算机系统的重要特性,它允许多个进程同时在系统中活动。而实施并发的基础是由硬件和软件结合而成的中断机制。中断是现代计算机系统中的重要概念之一,它是指CPU对系统发生的某个事件做出的处理过程。按功能划分,中断一般分为I/O中断、机器故障中断、外部中断、程序性中断、访管中断。 在中断响应和处理过程中,硬件对中断请求做出响应:中止当前程序的执行,保存断点信息,转到相应的处理程序。软件对中断进行相应的处理:保存现场,分析原因,处理中断,中断返回。各中断处理程序是操作系统的重要组成部分。对中断的处理是在核心态下进行的。 Linux系统提供给用户的最重要的系统程序是shell命令语言解释程

6、序。其基本功能是解释并执行用户输入的各种命令,实现用户与Linux核心的接口。shell解释程序的工作过程基本上是读入命令行、分析命令行和构成命令树,创建子进程来执行命令树等步骤。 Linux系统的进程调度 Linux系统的进程调度机制主要涉及调度方式、调度策略、调度时机和调度算法。Linux系统对进程采用两级调度:中级调度和低级调度。进程调度基本上采用抢占式优先级算法。而针对不同类型的进程又采用相应的调度策略。 本章还介绍了Linux系统中常用的调度命令,如nohup、at、batch、jobs、fg、bg。 3.2典型例题解析 为了使系统中各部分资源得到均衡使用,就必须选择对资源需求不同的

7、作业进行合理搭配,这项工作是由完成的。 A作业调度 B中级调度 C进程调度 D内存调度 答案 A 分析 首先,要了解操作系统处理机调度的级别,即作业从进入系统到最后完成,至少要经历两级调度:高级调度和低级调度。为了使内存中同时存放的进程数目不至于太多,有时需要把某些进程从内存中移到外存上,以减少多道程序的数目,为此设立了中级调度。 各个级别调度的含义,所解决的问题,即功能是什么。只有清晰地掌握了这些基本概念,才能做好选择。本题说的是作业的合理搭配以达到系统资源的均衡利用,显然是作业调度的工作。而中级调度解决的是内存分配问题,进程调度解决的是哪一个就绪进程占有CPU的问题。因此答案选A。 作业调

8、度程序从处于状态的队列中选取适当的作业调入主存运行。 A执行 B提交 C完成 D后备 答案 D 分析 解答此题需要了解作业的状态以及转换。一个作业从进入系统到运行结束要经历四种状态:提交状态、后备状态、执行状态和完成状态。 提交状态:用户的一个作业提交给系统时所处的状态,如用户通过键盘向机器输入作业。处于提交状态的作业,其信息正在进入系统。 后备状态:用户作业经输入设备输入进外存中存放,等待进入内存时所处的状态。此时,系统将为该作业建立一个作业控制块JCB,并把作业插入到2 后备作业队列中等待调度运行。 执行状态:作业调度程序按照一定的作业调度算法从后备作业队列中选中一个作业,为它分配必要的资

9、源,建立一组相应的进程后,这个作业就由后备状态转变为执行状态。需要指出的是,处于执行状态的作业在系统中并不一定真正占有处理机,作业能否真正在处理机上运行由进程调度来控制。 完成状态:作业完成了处理任务,输出结果形成报告,系统将作业控制块JCB从当前作业队列中删除,并回收分配给作业的全部资源,准备退出系统时的作业状态。 四种作业状态的转换见下图: 进程调度 运行 提交 后备 完成 就绪 阻塞 作业调度 作业调度 参考上图,有这样一个判断题:作业调度程序选中一个作业后,与该作业相关的进程即占有CPU运行。 答案是错误的,因为执行状态的作业能否真正在CPU上运行由进程调度来控制,这时候的进程至少有三

10、种基本状态,不能保证一定是占有CPU的运行状态。 在批处理系统中,周转时间是。 A作业运行时间 B作业等待时间和运行时间之和 C作业的相对等待时间 D作业被调度进入主存到运行完毕的时间 答案 B 分析 作业的周转时间作业完成时间作业提交时间。周转时间是用于作业等待进入内存、进程在就绪队列中等待、进程在CPU上运行和完成I/O操作所花费时间的总和。因此,周转时间是作业等待时间和运行时间之和。 答案D是不对的,因为作业提交后进入作业后备状态,此时作业是在外存,这个时间也要计入作业的周转时间。 在作业调度中,若采用优先级调度算法,为了尽可能使CPU和外部设备并行工作,有如下三个作业:J1以计算为主,

11、J2以输入输出为主,J3计算和输入输出兼顾,则它们的优先级从高到低的排列顺序是。 AJ1,J2,J3 BJ2,J3,J1 CJ3,J2,J1 DJ2,J1,J3 答案 C 分析 本试题将作业分为:I/O繁忙的作业、CPU繁忙的作业、I/O与CPU均衡的作业三种类型,由系统或操作员根据作业类型指定优先级。 为了尽可能使CPU和外部设备并行工作,那么I/O繁忙的作业和CPU繁忙的作业都不能指定为最高的优先级,因为这两类作业都无法均衡地使用资源。对于这两类作业,应指定I/O繁忙的作业优先级高于CPU繁忙的作业,这样做可以提高CPU 3 的利用率,增加系统的吞吐量。 因此,这三类作业优先级从高到低的排

12、列顺序是:I/O与CPU均衡的作业、I/O繁忙的作业、CPU繁忙的作业。 下表给出作业l,2,3的提交时间和运行时间。采用先来先服务调度算法和短作业优先调度算法,试问作业调度次序和平均周转时间各为多少? 作业号 1 2 3 提交时间 0.0 0.4 1.0 运行时间 8.0 4.0 1.0 分析 解此题关键是要清楚系统中各道作业随时间的推进情况。我们用一个作业执行时间图来表示作业的执行情况,帮助我们理解此题。 采用先来先服务调度策略,其作业执行时间图如下: 作业 作业3 作业2 作业1 0 0.4 1.0 8.0 12.0 13.0 时间 作业提交时间 各作业陆续完成时间 采用短作业优先调度策

13、略,其作业执行时间图如下: 作业 作业3 作业2 作业1 0 0.4 1.0 8.0 9.0 13.0 时间 作业提交时间 各作业陆续完成时间 另外,作业i的周转时间Ti作业完成时间作业提交时间 系统中n个作业的平均周转时间T=(1,其中Ti为作业i的周转时间。 T)ini=1 完成时间 8.0 12.0 13.0 周转时间 8.0 11.6 12.0 n解:采用先来先服务调度策略,则调度次序为l、2、3。 作业号 1 2 3 提交时间 运行时间 0.0 0.4 1.0 8.0 4.0 1.0 开始时间 0.0 8.0 12.0 平均周转时间T/310.53 采用短作业优先调度策略,则调度次序

14、为l、3、2。 作业号 1 提交时间 0.0 运行时间 8.0 开始时间 0.0 完成时间 8.0 周转时间 8.0 4 3 2 1.0 0.4 1.0 8.0 9.0 9.0 13.0 8.0 4.0 12.6 平均周转时间T/39.53 今有三个批处理作业。第一个作业10:00到达,需要执行2小时;第二个作业在10:10到达,需要执行1小时;第三个作业在10:25到达,需要执行25分钟。分别采取如下两种作业调度算法: 调度算法1: 作业号 到达时间 开始执行时间 执行结束时间 1 2 3 10:00 10:10 10:25 10:00 12:00 13:00 12:00 13:00 13:

15、25 调度算法2: 作业号 到达时间 开始执行时间 执行结束时间 1 2 3 10:00 10:10 10:25 11:50 10:50 10:25 13:50 11:50 10;50 计算各调度算法下的作业平均周转时间。 调度算法1是什么作业调度算法? 分析 作业的周转时间作业完成时间作业提交时间。 以调度算法1的作业2为例,其周转时间=作业完成时间13:00作业提交时间10:10,得到结果为2小时50分钟,转换为小时为2.83小时。转换的目的是为了方便计算平均周转时间。 解:采用调度算法1时: 作业1的周转时间为2小时;作业2的周转时间为2.83小时;作业3的周转时间为3小时;平均周转时间

16、为:32.61小时。 采用调度算法2时: 作业1的周转时间为3.83小时;作业2的周转时间为1.67小时;作业3的周转时间为0.42小时;平均周转时间为:3l.97小时。 调度算法1是按照作业到达的先后次序执行的,所以它是先来先服务调度算法。 一个进程在执行过程中可以被中断事件打断,当相应的中断处理完成后,就一定恢复该进程被中断时的现场,使它继续执行。 答案 分析 中断是指CPU对系统发生的某个事件做出的一种反应,它使CPU暂停正在执行的程序,保留现场后自动执行相应的处理程序,处理该事件后,如被中断进程的优先级最高,则返回断点继续执行被“打断”的程序。 本题开头的叙述是正确的,即“一个进程在执

17、行过程中可以被中断事件打断”,但是后面说“一定恢复该进程被中断时的现场”,以及“继续执行”就不正确了,因此,系统中进程的并发执行情况非常复杂,中断后的进程能否继续执行,要看那时的具体情况,可能会继续执行,也可能处于就绪队列中无法立即继续执行。 在UNIX/Linux系统中,执行到trap指令时,CPU的状态就从核心态变为用户态。 5 答案 分析 为了对操作系统程序进行保护,防止受到用户程序的损坏,系统提供了不同的处理机执行状态,通常分为核心态和用户态两种。当操作系统程序执行时,处理机处于核心态,它有较高的特权,可以执行一切指令。用户程序在用户态下执行。它的权限较低,只能执行指令集中的非特权指令

18、。用户程序要想得到操作系统的服务,必须使用系统调用。 在UNIX/Linux系统中,系统调用像C语言的普通函数调用那样出现在程序中。但是,一般的函数调用序列并不能把进程的运行模式从用户态变为核心态,而系统调用却可以做到这一点,即从用户空间转入系统空间。 trap指令是实现系统调用的汇编代码,trap指令有这样一种性质:当CPU执行到trap指令时,CPU的状态就从用户态变为核心态。本题正好说反了,因此是错误的。 UNIX/Linux系统中的shell是负责的模块。 A解释并执行来自终端的命令 B解释并执行来自终端的内部命令 C解释并执行来自终端的外部命令 D进行系统调用 答案 A 分析 she

19、ll命令语言解释程序是UNIX/Linux系统提供给用户的最重要的系统程序。它不属于内核部分,而是在核心之外以用户态方式运行。其基本功能是解释并执行用户输入的各种命令,实现用户与Linux核心的接口。 shell命令分为内部命令和外部命令两种,内部命令是最简单最常用的命令,在shell启动时进入内存,Linux外部命令是一个独立的可执行程序。 3.3练习题 一、选择题 1. 作业生存期共经历4个状态,它们是提交、后备、和完成。 A等待 B就绪 C开始 D执行 2. 作业调度是。 A从输入井中选取作业进入主存 B从读卡机选取作业进入输入井 C从主存中选取作业进程占有CPU D从等待设备的队列中选

20、取一个作业进程 3. 在操作系统中,JCB是指。 A文件控制块 B进程控制块 C作业控制块 D程序控制块 4. 作业调度选择一个作业装入主存后,该作业能否占用处理器必须由来决定。 A设备管理 B作业控制 C进程调度 D驱动调度 5. 进程调度根据一定的调度算法,从队列中挑选出合适的进程。 A阻塞 B就绪 C运行 D等待 6. 在操作系统中,作业处于时,已处于进程的管理之下。 A后备状态 B阻塞状态 C执行状态 D完成状态 6 7. 作业调度的关键在于。 A选择恰当的进程管理程序 B选择恰当的作业调度算法 C用户作业准备充分 D有一个较好的操作环境 8. 从系统的角度出发,希望批处理控制方式下进

21、入输入井的作业尽可能小。 A等待装入主存时间 B周转时间 C执行时间 D平均周转时间 9. 设某作业进入输入井的时间为S,开始运行的时间为R,得到计算结果的时间为E,则该作业的周转时间T为。 AT=ES BT=E(S+R) CT=(S+R)+ E DT=ER 10. 现有3个作业同时到达,每个作业的计算时间都是1小时,它们在一台CPU上按单道方式运行,则平均周转时间为。 A1小时 B2小时 C3小时 D6小时 11. 按照作业到达的先后次序调度作业,排队等待时间最长的作业被优先调度,这是指调度算法。 A先来先服务法 B短作业优先法 C时间片轮转法 D优先级法 12. 为了使计算机在运行过程中能

22、及时处理内部和外部发生的各种突发性事件,现代操作系统采用了机制。 A查询 B中断 C调度 D进程 13. 在操作系统中,引起中断的事件称为。 A中断源 B中断请求 C断点 D系统调用 14. 当硬件中断装置发现有事件发生,就会中断正在占用CPU的程序执行,让操作系统的占用CPU。 A系统调用程序 B中断处理程序 C作业管理程序 D文件管理程序 15. 下列中断类型中,属于自愿性中断事件的是。 A硬件故障中断 B程序中断 C访管中断 D外部中断 16. 下列中断中,可能要人工介入的中断是。 A程序中断 B时钟中断 C输入输出中断 D硬件故障中断 17. 系统调用的目的是。 A请求系统服务 B终止

23、系统服务 C申请系统资源 D释放系统资源 18. 用户要在程序一级获得系统帮助,必须通过。 A进程调度 B作业调度 C键盘命令 D系统调用 19. 系统调用是由操作系统提供的内部调用,它。 A直接通过键盘交互方式使用 B只能通过用户程序间接使用 C是命令接口中的命令 D与系统的命令一样 20. CPU状态分为核心态和用户态,从用户态转换到核心态的途径是。 7 A运行进程修改程序状态字 B中断屏蔽 C系统调用 D进程调度程序 二、判断题 1. 处理机调度可分为三级:高级、中级和低级。在所有的系统中,都必须具备这三级调度。2. 作业调度选中一个作业后,与该作业相关的进程即占有CPU运行。 3. 吞

24、吐量是指单位时间内CPU完成作业的数量。 4. 确定作业调度算法时应主要系统资源的均衡使用,使I/O繁忙作业和CPU繁忙作业搭配运行。 5. 平均周转时间和周转时间与选用的调度算法有关。 6. 通常,为了提高效率,赋予需要大量计算的作业较高优先级,赋予需要大量输入/输出的作业较低的优先级。 7. 优先级作业调度算法是指为系统中的每一个作业确定一个优先级,进行作业调度时总是优先选择优先级高的作业进入主存运行。 8. 计算机对中断的处理是在用户态下进行的。 9. 中断处理一般分为中断响应和中断处理两个步骤,前者由软件实施,后者由硬件实施。10. 系统调用的调用过程是通过用户程序,运行在用户态,而被调用的过程是运行在核心态下。 三、简答题 四、应用题 请同学们解答参考教材104页的课后习题。 请大家自己完成 参考答案: 一、DACCB CBDAB ABABC DADBC 二、3,4,5,7,10是正确的。 1. 。处理机的三级调度中只有进程调度是必不可少的。 2. 。作业调度选中的作业能否占有CPU由进程调度决定,不一定即可执行。 6. 。正好说反了,应赋予需要大量计算的作业较低优先级,赋予需要大量输入/输出的作业较高的优先级。 8. 。计算机对中断的处理是在核心态下进行的。 9. 。中断响应由硬件实施,中断处理由软件实施。 三和四、见本章教材习题解答。 8

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号