操作系统_第3章辅导与自测资料
- 格式:doc
- 大小:90.51 KB
- 文档页数:8
操作系统第三章总复习题一、单选题1、进程调度又称低级调度,其主要功能是( D )。
A.选择一个作业调入内存B.选择一个主存中的进程调出到外存C.选择一个外存中的进程调入到主存D.将一个就绪的进程投入到运行2、若进程P一旦被唤醒就能够投入运行,系统可能为( D )。
A.分时系统,进程P的优先级最高B.抢占调度方式,就绪队列上的所有进程的优先级皆比P的低C.就绪队列为空队列D.抢占调度方式,P的优先级高于当期运行的进程。
3、一个进程P被唤醒后,( D )。
A.P就占有了CPU。
B.P的PCB被移到就绪队列的队首。
C.P的优先级肯定最高D.P的状态变成就绪4、若当期运行进程( C )后,系统将会执行进程调度原语。
A 执行了一个转移指令B 要求增加主存空间,经系统调用银行家算法进行测算认为是安全的。
C 执行了一条I/O指令要求输入数据。
D 执行程序期间发生了I/O完成中断。
5、当系统中( C )时,系统将不会执行进程调度原语。
A.一个新进程被创建B.当前进程执行了P操作。
C.在非抢占调度中,进程A正在运行而进程B恰好被唤醒。
D.分时系统中时间片用完。
6、在分时系统中,若当期运行的进程连续获得了两个时间片,原因可能是( B )。
A 该进程的优先级最高B 就绪队列为空C 该进程最早进入就绪队列D 该进程是一个短进程7、实时系统中采用的调度算法可以有如下几种:1、非抢占优先权调度算法2、立即抢占优先权调度算法3、时间片轮转调度算法4、基于时钟中断抢占的优先权调度算法按实时要求的严格程度由低到高的顺序( B )。
A 1-3-2-4B 3-1-4-2C 3-1-2-4D 1-3-4-28、三种主要类型的OS 中都必须配置的调度( C )。
A 作业调度B 中级调度C 低级调度D I/O调度9、设系统中n 个进程并发,共同竞争资源X,且每个进程都需要m个X资源,为使该系统不会发生死锁,资源X最少要有( C )个。
A m*n+1B n*m+nC n*m+1-nD 无法预计注:可以这样理解N个进程,都需要M个资源,最坏的一种情况是:每个进程都占有M-1个资源,都得不到M个资源,总共资源数(m-1)*n。
操作系统第3章在计算机的世界里,操作系统就像是一位幕后的大管家,默默地协调着各种硬件和软件资源,让计算机能够高效、稳定地运行。
这一章,咱们就来深入探讨一下操作系统中的一些关键概念和技术。
首先,让我们来聊聊进程管理。
进程可以理解为正在运行的程序的实例。
操作系统需要有效地管理这些进程,包括创建、调度、终止等操作。
比如说,当您同时打开多个应用程序时,操作系统会合理地分配 CPU 时间给每个进程,确保它们都能得到执行的机会,不会出现某个进程独占资源而导致其他进程“挨饿”的情况。
进程调度算法在其中起着至关重要的作用。
常见的调度算法有先来先服务、短作业优先、时间片轮转等等。
先来先服务很直观,就是按照进程到达的先后顺序进行处理;短作业优先则会优先处理那些预计执行时间较短的进程,以提高系统的整体效率;时间片轮转则是给每个进程分配一段固定的时间片,时间一到就切换到下一个进程。
内存管理也是操作系统的重要职责之一。
计算机的内存资源是有限的,操作系统需要合理地分配和回收内存,以满足不同进程的需求。
这就涉及到内存分配算法,比如首次适应、最佳适应和最坏适应等。
虚拟内存技术的出现更是极大地扩展了计算机的可用内存空间。
它通过将一部分磁盘空间模拟成内存来使用,当内存不足时,将一些暂时不用的数据存放到磁盘中,需要时再重新调入内存,让用户感觉好像拥有了无限大的内存。
接下来,我们说一说文件系统。
文件是计算机中存储信息的基本单位,而文件系统则负责对文件进行组织、存储、检索和管理。
不同的操作系统可能采用不同的文件系统格式,比如Windows 常用的NTFS,Linux 常用的 EXT4 等。
文件系统中的目录结构就像是一个图书馆的书架分类,让我们能够快速找到所需的文件。
文件的读写操作也需要操作系统的支持,包括缓存机制、磁盘调度等,以提高文件访问的速度和效率。
设备管理也是操作系统不可忽视的一部分。
计算机中的设备种类繁多,如键盘、鼠标、打印机、硬盘等等。
第三章内存管理习题有一个设计,为了对2KB 大小的块进行加锁,会对每个块分配一个4bit 的密钥,这个密钥存在PSW(程序状态字)中,每次内存引用时,CPU 都会进行密钥比较。
但该设计有诸多弊端,除了描述中所言,请其他提出最少两条弊端。
A:密钥只有四位,故内存只能同时容纳最多十六个进度;需要用特别硬件进行比较,同时保证操作迅速。
2.在图 3-3 中基址和界线寄存器含有相同的值 16384 ,这是巧合,还是它们总是相等?若是这可是巧合,为什么在这个例子里它们是相等的?A:巧合。
基地址寄存器的值是进度在内存上加载的地址;界线寄存器指示储藏区的长度。
3.交换系统经过缩短来除掉悠闲区。
假设有很多悠闲区和数据段随机分布,而且读或写 32 位长的字需要 10ns 的时间,缩短 128MB 大概需要多长时间?为了简单起见,假设悠闲区中含有字0,内存中最高地址处含有有效数据。
A:32bit=4Byte===>每字节10/4=2.5ns 128MB=1282^20=2^27Byte对每个字节既要读又要写, 22.5*2^27=671ms4.在一个交换系统中,按内存地址排列的悠闲区大小是10MB ,4MB ,20MB ,18MB ,7MB ,9MB ,12MB ,和 15MB 。
对于连续的段央求:(a)12MB(b)10MB(c) 9MB使用首次适配算法,将找出哪个悠闲区?使用最正确适配、最差适配、下次适配算法呢?A:首次适配算法: 20MB ,10MB ,18MB ;最正确适配算法: 12MB , 10MB ,9MB ;最差适配算法: 20MB ;18MB ;15MB ;下次适配算法: 20MB ;18MB ;9MB ;5.物理地址和虚假地址有什么差异?A:本质内存使用物理地址。
这些是储藏器芯片在总线上反应的数字。
虚假地址是指一个进度的地址空间的逻辑地址。
因此,拥有32 位字的机器能够生成高达4GB 的虚假地址,而无论机器的内存可否多于或少于4GB。
第三章处理机调度与死锁1. 高级调度与低级调度的主要任务是什么?为什么要引入中级调度?高级调度的主要任务:用于决定把外存上处于后备队列中的哪些作业调入内存,并为它们创建进程,分配必要的资源,然后,再将新创建的进程插入就绪队列上,准备执行。
低级调度的主要任务:用于决定就绪队列中的哪个进程应获得处理机,然后再由分派程序执行将处理机分配给该进程的具体操作。
引入中级调度的主要目的:是为了提高系统资源的利用率和系统吞吐量。
10. 试比较FCFS和SPF两种进程调度算法相同点:两种调度算法都是既可用于作业调度,也可用于进程调度;不同点:FCFS调度算法每次调度都是从后备队列中选择一个或是多个最先进入该队列的作业,将它们调入内存,为它们分配资源,创建进程,然后插入到就绪队列中。
该算法有利于长作业/进程,不利于短作业/进程。
SPF调度算法每次调度都是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存中运行。
该算法有利于短作业/进程,不利于长作业/进程。
15. 按调度方式可将实时调度算法分为哪几种?按调度方式不同,可分为非抢占调度算法和抢占调度算法两种。
18. 何谓死锁?产生死锁的原因和必要条件是什么?a.死锁是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进;b.产生死锁的原因有二,一是竞争资源,二是进程推进顺序非法;c.必要条件是: 互斥条件,请求和保持条件,不剥夺条件和环路等待条件。
19.在解决死锁问题的几个方法中,哪种方法最易于实现?哪种方法是资源利用率最高?解决/处理死锁的方法有预防死锁、避免死锁、检测和解除死锁,其中预防死锁方法最容易实现,但由于所施加的限制条件过于严格,会导致系统资源利用率和系统吞吐量降低;而检测和解除死锁方法可是系统获得较好的资源利用率和系统吞吐量。
20. 请详细说明可通过哪些途径预防死锁?a.摒弃"请求和保持"条件:系统规定所有进程开始运行之前,都必须一次性地申请其在整个运行过程所需的全部资源,但在分配资源时,只要有一种资源不能满足某进程的要求,即使其它所需的各资源都空闲,也不分配给该进程,而让该进程等待;b.摒弃"不剥夺"条件:系统规定,进程是逐个地提出对资源的要求的。
第3章作业参考答案1、高级调度的任务是:将外存上处于后备队列的作业调入内存,并为他们创建必要的进程与分配资源。
然后将进程插入就绪队列中。
高级调度主要涉及两个问题:(1)每次调度多少个作业进入内存,(2)怎样选择作业(怎样调度)。
低级调度的任务是:指决定就绪队列中哪些进程应获得处理机。
这是OS的核心调度,所有操作系统都必须有这种调度。
通常采用两方式—非强占方式与强占方式。
在一个OS中如何选择方式与调度算法,在很大程度上取决于OS的目标。
但总体而言可分为两类—面向用户与面向系统的原则面向用户的原则:主要考虑用户的需求,如周转时间、响应时间、截止时间、优先权原则。
面向系统的原则:主要考虑系统的需求,如系统的吞吐量、处理机利用率、各类资源的平均利用率等注(周转时间:周转时间是衡量批处理系统的调度算法的重要指标。
周转时间:指作业从提交开始到完成所需要的时间。
包括:作业在外存后备队列上等待调度的时间、进程在就绪队列上等待进程调度的时间、进程在CPU上的执行时间、进程等待I/O操作完成的时间。
•注意:我们所讲的周转时间是指系统的平均周转时间,而不是单个作业的周转时间。
•平均周转时间:T=(T1+T2+…Tn)/n。
•带权平均周转时间:•响应时间:响应时间是衡量分时系统的重要指标。
响应时间—从用户通过键盘提交一个请求开始,到屏幕上显示结果为止的这段时间。
包括:从键盘输入的请求信息到CPU的时间,CPU对请求的处理时间、以及信息回送到显示器的时间。
•截止时间:是评价实时系统的重要指标。
截止时间:是指某任务必须开始执行的最迟时间必须完成的最迟时间。
•优先权原则:在所有的OS中,都应有一定的优先权原则,--强占式调度。
系统的吞吐量:是衡量批处理系统的重要指标。
系统的吞吐量—单位时间内系统完成的作业数。
处理机利用率:这对大中型多用户系统很重要,因此CPU价格昂贵(特别是大型计算机),因此这也是衡量大型机与系统的重要指标。
3.1 知识点3.1.1进程描述进程的定义:进程是程序的一次执行,是可以和其他计算并发执行的计算。
它可以独立请求并占有系统资源,有独立的数据结构PCB登记它所有的信息。
进程的特征有:动态性特征、并发性特征、独立性特征、异步性特征和结构特征。
进程有3种基本状态:就绪、执行和阻塞。
3种状态的转换如下图所示。
∙就绪→运行:当进程调度程序为一个就绪的进程分配了处理机之后,该进程便由就绪状态变为运行状态。
∙运行→阻塞:处于运行状态的进程因为运行受阻(主要是进程需要输入输出,或者请求资源得不到满足,或者等待合作进程的运行结果等),就失去处理机变为阻塞状态。
∙阻塞→就绪:当一个阻塞的进程等待的事件已经出现(比如输入输出已完成,或者请求的资源得到了满足,或者合作进程发来消息),该进程的状态将变为就绪状态。
∙运行→就绪:在剥夺式调度的操作系统中,当一个高优先级的进程到达,或者分时系统中正在运行的进程运行完一个时间片后,该进程便失去CPU,由运行状态转为就绪状态。
挂起状态是系统为了缓解内存空间紧张而引入的。
其主要做法是,将当前暂时不能运行的进程(主要指程序代码和数据)从内存调出到外存上,使它成为挂起状态,让腾出来的空间供其他进程使用。
当系统运行一个阶段后,若内存空间比较宽松,可将挂起的进程(程序和数据)从外存调入到内存。
进程控制块PCB是进程拥有的一种数据结构。
PCB是进程存在的标志,主要包括的信息有:进程标识信息、处理机状态信息、进程调度信息、进程控制信息。
进程的组织方式有两种:链接方式和索引方式。
3.1.2进程控制操作系统的内核是计算机硬件的第一层扩充软件。
它是与硬件紧密相关的模块(比如中断处理程序、常用的设备驱动程序),以及运行频率较高的程序(时钟管理、进程调度、共用的一些基本操作)。
它们常驻内存,以便提高操作系统的运行效率。
操作系统内核包含的功能有:中断处理、时钟管理、原语管理、原语操作。
在资源管理方面的功能有:进程管理、存储器管理和设备管理。
第三章一、问答题1、用户级线程与内核级线程的区别是什么?2、PCB 中包含哪些信息?进程状态属于哪类信息?3、什么是操作系统的内核?4、简述时间片轮转调度算法的基本思想。
5、某系统采用时间片轮转调度算法的处理机调度算法,某个时刻根据用户要求创建了一个进程P,进程P 在其存在过程中依次经历了:进程调度选中了进程P 占用处理机运行,进程P 运行中提出资源申请,要求增加内存使用量,没有得到;进程等待一段时间后得到内存;进程调度再次选中了进程P 占用处理机运行;进程P 的时间片到;一段时间后,进程P 再次占用处理机;有紧急进程Q 进入,系统停止进程P 的运行,将处理机分配进程Q;进程Q 运行完,进程调度再次选中了进程P 占用处理机运行;进程P 运行完。
请分析进程P 在其整个生命过程中的状态变化。
进程调度选中了进程P 占用处理机运行(就绪→运行),进程P 运行中提出资源申请,要求增加内存使用量,没有得到(运行→阻塞);进程等待一段时间后得到内存(阻塞→就绪);进程调度再次选中了进程P 占用处理机运行(就绪→运行);进程P 的时间片到(运行→就绪);一段时间后,进程P 再次占用处理机(就绪→运行);有紧急进程Q 进入,系统停止进程P 的运行,将处理机分配进程Q(运行→就绪);进程Q 运行完,进程调度再次选中了进程P 占用处理机运行(就绪→运行);进程P 运行完。
请分析进程P 在其整个生命过程中的状态变化。
6、试比较进程与程序的异同。
7、引起创建进程的事件通常有哪些?简述进程的创建过程。
8、简述进程的阻塞过程。
910、进程控制块的作用是什么?它主要包括哪几部分内容?11、简述操作系统的三级调度。
12、为什么要了解进程间的家族关系?因为父进程和子进程之间是隶属关系,子进程可以继承使用父进程的资源;如果父进程被撤销,还应撤销其所有的子孙进程。
13、什么是进程?。
14、试比较进程和线程的区别。
15、简述进程的基本状态,画出其状态转换图。
第三章处理机调度与死锁1,高级调度与低级调度的主要任务是什么?为什么要引入中级调度?【解】(1)高级调度主要任务是用于决定把外存上处于后备队列中的那些作业调入内存,并为它们创建进程,分配必要的资源,然后再将新创建的进程排在就绪队列上,准备执行。
(2)低级调度主要任务是决定就绪队列中的哪个进程将获得处理机,然后由分派程序执行把处理机分配给该进程的操作。
(3)引入中级调度的主要目的是为了提高内存的利用率和系统吞吐量。
为此,应使那些暂时不能运行的进程不再占用宝贵的内存空间,而将它们调至外存上去等待,称此时的进程状态为就绪驻外存状态或挂起状态。
当这些进程重又具备运行条件,且内存又稍有空闲时,由中级调度决定,将外存上的那些重又具备运行条件的就绪进程重新调入内存,并修改其状态为就绪状态,挂在就绪队列上,等待进程调度。
3、何谓作业、作业步和作业流?【解】作业包含通常的程序和数据,还配有作业说明书。
系统根据该说明书对程序的运行进行控制。
批处理系统中是以作业为基本单位从外存调入内存。
作业步是指每个作业运行期间都必须经过若干个相对独立相互关联的顺序加工的步骤。
作业流是指若干个作业进入系统后依次存放在外存上形成的输入作业流;在操作系统的控制下,逐个作业进程处理,于是形成了处理作业流。
4、在什么情冴下需要使用作业控制块JCB?其中包含了哪些内容?【解】每当作业进入系统时,系统便为每个作业建立一个作业控制块JCB,根据作业类型将它插入到相应的后备队列中。
JCB 包含的内容通常有:1) 作业标识2)用户名称3)用户账户4)作业类型(CPU 繁忙型、I/O芳名型、批量型、终端型)5)作业状态6)调度信息(优先级、作业已运行)7)资源要求8)进入系统时间9) 开始处理时间10) 作业完成时间11) 作业退出时间12) 资源使用情况等5.在作业调度中应如何确定接纳多少个作业和接纳哪些作业?【解】作业调度每次接纳进入内存的作业数,取决于多道程序度。
第3章处理机调度辅导与自测本章知识点调度是操作系统的基本功能,几乎所有的计算机资源在使用之前都要经过调度。
CPU作为计算机最主要的资源,处理机调度的目的就是分配CPU。
CPU是操作系统中最核心的调度,其调度策略决定了操作系统的类型,其调度算法优劣直接影响整个系统的性能。
所以,调度问题是操作系统设计的一个中心问题。
本章的主要知识点为:(1)调度级别一般来说,作业从进入系统到最后完成,可能要经历三级调度:高级调度、中级调度和低级调度,这是按调度层次进行分类的。
其中,高级调度又称为作业调度,低级调度又称为进程调度。
作业调度是在输入的一批作业中选择有权竞争CPU的作业。
资源的分配策略(特别是内存管理)对作业调度有很大影响。
为了使内存中同时存放的进程数目不至于太多,有时就需要把某些进程从内存中移到外存上,以减少多道程序的数目,为此设立了中级调度。
进程调度是从就绪进程队列中选择一个进程,并把CPU分配给它。
进程调度是这三级调度中是必不可少的。
这三级调度中,要重点理解作业调度和进程调度形成的两级调度模型,如下图所示。
通过理解这个图,理解作业的4种状态:提交、后备、执行和完成,作业调度的功能,进程调度的功能,进程调度的时机,以及这两级调度如何协调工作完成了处理机调度。
(2)常用调度算法针对不同的系统目标,会采取不同的调度策略。
确定调度策略是件复杂的工作,往往要兼顾多种因素的影响。
CPU利用率、吞吐量、周转时间、就绪等待时间和响应时间等是通常评价系统性能时都要考虑的几个指标。
教材中主要介绍了3种调度算法,分别是先来先服务法、时间片轮转法和优先级法。
先来先服务法(FCFS)是最简单的调度算法,它的实现思想就是“排队买票”的办法。
按作业(或进程)到来的先后次序进行调度,即先来的先得到执行。
时间片轮转法(RR)的设计实现思想是系统把所有就绪进程按先入先出的原则排成一个队列。
每当执行进程调度时,进程调度程序总是选出就绪队列的队首进程,让它在CPU上运行一个时间片的时间。
第3章处理机调度辅导与自测3.1 本章知识点调度是操作系统的基本功能,几乎所有的计算机资源在使用之前都要经过调度。
CPU 作为计算机最主要的资源,处理机调度的目的就是分配CPU。
CPU是操作系统中最核心的调度,其调度策略决定了操作系统的类型,其调度算法优劣直接影响整个系统的性能。
所以,调度问题是操作系统设计的一个中心问题。
本章的主要知识点为:(1)调度级别一般来说,作业从进入系统到最后完成,可能要经历三级调度:高级调度、中级调度和低级调度,这是按调度层次进行分类的。
其中,高级调度又称为作业调度,低级调度又称为进程调度。
作业调度是在输入的一批作业中选择有权竞争CPU的作业。
资源的分配策略(特别是内存管理)对作业调度有很大影响。
为了使内存中同时存放的进程数目不至于太多,有时就需要把某些进程从内存中移到外存上,以减少多道程序的数目,为此设立了中级调度。
进程调度是从就绪进程队列中选择一个进程,并把CPU分配给它。
进程调度是这三级调度中是必不可少的。
这三级调度中,要重点理解作业调度和进程调度形成的两级调度模型,如下图所示。
通过理解这个图,理解作业的4种状态:提交、后备、执行和完成,作业调度的功能,进程调度的功能,进程调度的时机,以及这两级调度如何协调工作完成了处理机调度。
(2)常用调度算法针对不同的系统目标,会采取不同的调度策略。
确定调度策略是件复杂的工作,往往要兼顾多种因素的影响。
CPU利用率、吞吐量、周转时间、就绪等待时间和响应时间等是通常评价系统性能时都要考虑的几个指标。
教材中主要介绍了3种调度算法,分别是先来先服务法、时间片轮转法和优先级法。
先来先服务法(FCFS)是最简单的调度算法,它的实现思想就是“排队买票”的办法。
按作业(或进程)到来的先后次序进行调度,即先来的先得到执行。
时间片轮转法(RR)的设计实现思想是系统把所有就绪进程按先入先出的原则排成一个队列。
每当执行进程调度时,进程调度程序总是选出就绪队列的队首进程,让它在CPU上运行一个时间片的时间。
当进程用完分给它的时间片后,调度程序便停止该进程的运行,并把它放入就绪队列的末尾;然后,把CPU分给就绪队列的队首进程。
轮转法适用于分时系统。
其主要问题是时间片如何选择:时间片太长了,就成为FCFS调度;时间片太短了,频繁调度,开销太大。
优先级调度算法的实现思想:是从就绪队列中选出优先级最高的进程,把CPU分给它使用。
又分为非抢占式优先级法和抢占式优先级法。
前者是:当前占用CPU的进程一直运行下去,直到完成任务或者因等待某事件而主动让出CPU时,系统才让另一个优先级高的进程占用CPU。
后者是:当前进程在运行过程中,一旦有另一个优先级更高的进程出现在就绪队列中,进程调度程序就停止当前进程的运行,强行将CPU分给那个进程。
其它常用的调度算法还有:短作业优先法、最短剩余时间优先法、多级队列法、多级反馈队列法。
(3)中断处理并发是现代计算机系统的重要特性,它允许多个进程同时在系统中活动。
而实施并发的基础是由硬件和软件结合而成的中断机制。
中断是现代计算机系统中的重要概念之一,它是指CPU对系统发生的某个事件做出的处理过程。
按功能划分,中断一般分为I/O中断、机器故障中断、外部中断、程序性中断、访管中断。
在中断响应和处理过程中,硬件对中断请求做出响应:中止当前程序的执行,保存断点信息,转到相应的处理程序。
软件对中断进行相应的处理:保存现场,分析原因,处理中断,中断返回。
各中断处理程序是操作系统的重要组成部分。
对中断的处理是在核心态下进行的。
Linux系统提供给用户的最重要的系统程序是shell命令语言解释程序。
其基本功能是解释并执行用户输入的各种命令,实现用户与Linux核心的接口。
shell解释程序的工作过程基本上是读入命令行、分析命令行和构成命令树,创建子进程来执行命令树等步骤。
(4)Linux系统的进程调度Linux系统的进程调度机制主要涉及调度方式、调度策略、调度时机和调度算法。
Linux 系统对进程采用两级调度:中级调度(对换进程,解决内存分配)和低级调度(解决CPU 分配)。
进程调度基本上采用抢占式优先级算法。
而针对不同类型的进程又采用相应的调度策略。
本章还介绍了Linux系统中常用的调度命令,如nohup、at、batch、jobs、fg、bg。
3.2典型例题解析【例1】为了使系统中各部分资源得到均衡使用,就必须选择对资源需求不同的作业进行合理搭配,这项工作是由()完成的。
A.作业调度B.中级调度C.进程调度D.内存调度答案A分析首先,要了解操作系统处理机调度的级别,即作业从进入系统到最后完成,至少要经历两级调度:高级调度和低级调度。
为了使内存中同时存放的进程数目不至于太多,有时需要把某些进程从内存中移到外存上,以减少多道程序的数目,为此设立了中级调度。
各个级别调度的含义,所解决的问题,即功能是什么。
只有清晰地掌握了这些基本概念,才能做好选择。
本题说的是作业的合理搭配以达到系统资源的均衡利用,显然是作业调度的工作。
而中级调度解决的是内存分配问题,进程调度解决的是哪一个就绪进程占有CPU的问题。
因此答案选A。
【例2】作业调度程序从处于()状态的队列中选取适当的作业调入主存运行。
A.执行B.提交C.完成D.后备答案 D分析解答此题需要了解作业的状态以及转换。
一个作业从进入系统到运行结束要经历四种状态:提交状态、后备状态、执行状态和完成状态。
(1)提交状态:用户的一个作业提交给系统时所处的状态,如用户通过键盘向机器输入作业。
处于提交状态的作业,其信息正在进入系统。
(2)后备状态:用户作业经输入设备(如读卡机)输入进外存(磁盘)中存放,等待进入内存时所处的状态。
此时,系统将为该作业建立一个作业控制块JCB,并把作业插入到后备作业队列中等待调度运行。
(3)执行状态:作业调度程序按照一定的作业调度算法从后备作业队列中选中一个作业,为它分配必要的资源,建立一组相应的进程后,这个作业就由后备状态转变为执行状态。
需要指出的是,处于执行状态的作业在系统中并不一定真正占有处理机,作业能否真正在处理机上运行由进程调度来控制。
(4)完成状态:作业完成了处理任务,输出结果形成报告,系统将作业控制块JCB从当前作业队列中删除,并回收分配给作业的全部资源,准备退出系统时的作业状态。
四种作业状态的转换见下图:参考上图,有这样一个判断题:作业调度程序选中一个作业后,与该作业相关的进程即占有CPU运行。
答案是错误的,因为执行状态的作业能否真正在CPU上运行由进程调度来控制,这时候的进程至少有三种基本状态,不能保证一定是占有CPU的运行状态。
【例3】在批处理系统中,周转时间是()。
A.作业运行时间B.作业等待时间和运行时间之和C.作业的相对等待时间D.作业被调度进入主存到运行完毕的时间答案 B分析作业的周转时间=作业完成时间-作业提交时间。
周转时间是用于作业等待进入内存、进程在就绪队列中等待、进程在CPU上运行和完成I/O操作所花费时间的总和。
因此,周转时间是作业等待时间和运行时间之和。
答案D是不对的,因为作业提交后进入作业后备状态,此时作业是在外存,这个时间也要计入作业的周转时间。
【例4】在作业调度中,若采用优先级调度算法,为了尽可能使CPU和外部设备并行工作,有如下三个作业:J1以计算为主,J2以输入输出为主,J3计算和输入输出兼顾,则它们的优先级从高到低的排列顺序是()。
A.J1,J2,J3 B.J2,J3,J1C.J3,J2,J1 D.J2,J1,J3答案 C分析本试题将作业分为:I/O繁忙的作业、CPU繁忙的作业、I/O与CPU均衡的作业三种类型,由系统或操作员根据作业类型指定优先级。
为了尽可能使CPU和外部设备并行工作,那么I/O繁忙的作业和CPU繁忙的作业都不能指定为最高的优先级,因为这两类作业都无法均衡地使用资源(CPU或者I/O设备)。
对于这两类作业,应指定I/O繁忙的作业优先级高于CPU繁忙的作业,这样做可以提高CPU的利用率,增加系统的吞吐量。
因此,这三类作业优先级从高到低的排列顺序是:I/O 与CPU 均衡的作业、I/O 繁忙的作业、CPU 繁忙的作业。
【例5】下表给出作业l ,2,3的提交时间和运行时间。
采用先来先服务调度算法和短作业优先调度算法,试问作业调度次序和平均周转时间各为多少?(时间单位:小时,以十进制进行计算。
)分析 解此题关键是要清楚系统中各道作业随时间的推进情况。
我们用一个作业执行时间图来表示作业的执行情况,帮助我们理解此题。
采用先来先服务调度策略,其作业执行时间图如下:另外,作业i 的周转时间T i =作业完成时间-作业提交时间系统中n 个作业的平均周转时间n T T n i i 1)(1⨯=∑=,其中Ti 为作业i 的周转时间。
解:采用先来先服务调度策略,则调度次序为l 、2、3。
作业号 提交时间 运行时间 开始时间 完成时间周转时间 1 0.0 8.0 0.0 8.08.0 2 0.44.0 8.0 12.011.6 3 1.0 1.0 12.013.0 12.0 平均周转时间T =(8+11.6+12)/3=10.53采用短作业优先调度策略,则调度次序为l 、3、2。
作业号提交时间 运行时间 开始时间 完成时间 周转时间 1 0.0 8.0 0.0 8.0 8.03 1.0 1.0 8.0 9.0 8.02 0.4 4.0 9.0 13.0 12.6平均周转时间T=(8+8+12.6)/3=9.53【例6】今有三个批处理作业。
第一个作业10:00到达,需要执行2小时;第二个作业在10:10到达,需要执行1小时;第三个作业在10:25到达,需要执行25分钟。
分别采取如下两种作业调度算法:调度算法1:调度算法2:(1)计算各调度算法下的作业平均周转时间。
(2)调度算法1是什么作业调度算法?分析作业的周转时间=作业完成时间-作业提交时间。
以调度算法1的作业2为例,其周转时间=作业完成时间13:00-作业提交时间10:10,得到结果为2小时50分钟,转换为小时为2.83小时。
转换的目的是为了方便计算平均周转时间。
解:(1)采用调度算法1时:作业1的周转时间为2小时;作业2的周转时间为2.83小时;作业3的周转时间为3小时;平均周转时间为:(2+2.83+3)/3=2.61小时。
采用调度算法2时:作业1的周转时间为3.83小时;作业2的周转时间为1.67小时;作业3的周转时间为0.42小时;平均周转时间为:(3.83+l.67+0.42)/3=l.97小时。
(2)调度算法1是按照作业到达的先后次序执行的,所以它是先来先服务调度算法。
【例7】一个进程在执行过程中可以被中断事件打断,当相应的中断处理完成后,就一定恢复该进程被中断时的现场,使它继续执行。