《操作系统教程》习题答案
习题1
1.单项选择题
(1)大中小型计算机是以 为中心的计算机系统。 A、CPU B、存储器 C、系统总线 D、通道 (2)以下关于操作系统的说法正确的是 。
A、批处理系统是实现人机交互的系统
B、批处理系统具有批处理功能,但不具有交互能力 C、分时系统是实现自动控制,无须人为干预的系统 D、分时系统即具有分时交互能力,又具有批处理能力
(3)操作系统的职能是管理软硬件资源、合理地组织计算机工作流程和 。 A、为用户提供良好的工作环境和接口
B、对用户的命令作出快速响应
C、作为服务机构向其它站点提供优质服务
D、防止有人以非法手段进入系统
(4)设计实时操作系统时,首先应考虑系统的 。 A、可靠性和灵活性 B、实时性和可靠性 C、优良性和分配性 D、灵活性和分配性 (5)多道程序设计是指 。
A、在分布式系统中同一时刻运行多个程序 B、在一台处理器上并行运行多个程序 C、在实时系统中并发运行多个程序 D、在一台处理器上并发运行多个程序
(6)以下关于并发性和并行性的说法正确的是 。
A、并发性是指两个及多个事件在同一时刻发生
B、并发性是指两个及多个事件在同一时间间隔内发生 C、并行性是指两个及多个事件在同一时间间隔内发生 D、并发性是指进程,并行性是指程序
(1)B (2)B (3)A (4)B (5)D (6)B 2.填空题
(1)微机是以 总线 为纽带构成的计算机系统。
(2)在批处理兼分时系统中,往往把由分时系统控制的作业称为 前台 作业,把由批处理系统控制的作业称为 后台 作业。
(3)在分时系统中,若时间片长度一定,则 用户数越多 ,系统响应时间越慢。 (4)分布式操作系统能使系统中若干台计算机 协同 完成一个共同的任务,分解问题成为子计算并使之在系统中各台计算机上 并行执行 ,以充分利用各计算机的优势。
(5)用户通过网络操作系统可以 网络通信 、 资源共享 ,从而大大扩展了计算机的应用范围。
3.简答题
(1)什么是操作系统?现代操作系统的基本特征是什么? 并发性
(2)什么是批处理系统,衡量批处理系统好坏的主要指标是什么? 及时性
(3)试述分时系统的原理及其特性。 时间片原则 交互性 同时性 独立性 及时性
(4)操作系统有哪几大特征?它的最基本特征是什么? 并发性 虚拟性 共享性 异步性 最基本特征 并发性
(5)网络操作系统与分布式操作系统的关键区别是什么?分布性 4.综合应用题
有3个程序A、B、C在系统中单独处理占用的CPU时间和I/O设备时间如下表所示:
程序A 程序B 程序C CPU 20ms IO2 30ms IO1 20ms IO2 30ms CPU 30ms IO2 20ms CPU 30ms CPU 30ms CPU 20ms IO1 20ms IO1 20ms IO2 30ms CPU 30ms CPU 50ms IO1 40ms IO1 30ms 假定在具有2个CPU为X和Y的多机系统中,以多道程序设计方式,按如下条件执行上述3个程序,条件如下:
(1)X和Y运算速度相同,整个系统可以同时执行2个程序,并且在并行处理程序时速度也不下降。
(2)X的优先级比Y高,即当X、Y均能执行程序时,由X去执行。
(3)当多个程序同时请求CPU或I/O设备时,按程序A、B、C的次序分配所请求的资源。
(4)除非请求输入输出,否则执行中的程序不会被打断,也不会把控制转给别的CPU。而且因输入输出而中断的程序再重新执行时,不一定仍在同一CPU上执行。
(5)控制程序的介入时间可忽略不计。 (6)程序A、B、C同时开始执行。 求:(1)程序A、B、C同时开始执行到执行完毕为止的时间。(2)X和Y的使用时间。 程序运行情况如下图所示:
0 20 30 60 70 90 100 110 130 140 150 170 180 单位:ms 程序A 程序B CPU X CPU Y I/O1 I/O2 由上图可以看出
(1)A 170ms B 150ms C 180ms (2)X的使用时间 120ms Y的使用时间 90ms
程序C 习题2
1.单项选择题
(1)用户使用操作系统通常有3种手段,它们是终端命令、系统调用命令和 。 A、计算机高级指令 B、作业控制语言 C、宏命令 D、汇编语言 (2)系统调用的目的是 。
A、请求系统服务 B、终止系统服务 C、申请系统资源 D、释放系统资源 (3)在批处理系统中,用户使用 对作业的各种可能的控制要求进行控制。 A、命令驱动 B、访管指令 C、系统调用 D、作业说明书
(4)适合于交互式终端用户来说明作业加工步骤的手段是 。 A、汇编语言 B、高级语言 C、作业控制语言 D、系统功能调用 E、操作控制命令 (1)B (2)A (3)D (4)E 2.填空题
(1)操作系统代码在 核心态 下运行,用户一般程序在 用户态 下运行。 (2)当用户程序要调用系统服务时,需要通过一条专门的指令来 完成从用户态到核心态 的切换,这条指令称为 访管指令 。
(3)操作系统为批处理用户提供 作业控制语言 ,为分时用户提供 联机命令 来说明作业加工步骤。
(4)作业控制语言是由一些 的语句组成的。 (5)批处理控制方式也可以称为 脱机控制方式 ,交互式控制方式也可以称为 联机控制方式 。
(6)在批处理系统中,用户提交作业时必须同时提交用 作业控制语言 编写的 作业说明书 来说明对作业的控制意图。
3.名词解释
(1)作业控制级接口。 (2)程序级接口。 (3)用户态。 (4)核心态。 (5)特权指令。 (6)访管指令。 (7)系统调用。 4.简答题 (1)在用户和操作系统之间,通常提供了哪几种类型的接口?它们的主要功能是什么? (2)什么是作业、作业步、作业流?
(3)命令驱动方式中命令的一般格式是什么?主要有哪几种命令类型? (4)什么是特权指令?为什么要把指令分为特权指令和非特权指令? (5)说明以下各条指令是特权指令还是非特权指令。
1)启动打印机; 2)结束进程; 3)计算e的n次方; 4)清内存
5)读时钟 6)修改指令地址寄存器内容。 12456 特权指令 3 非特权指令
(6)系统调用分为哪几类?它们各有什么作用? (7)一个图形窗口通常由哪几部分组成?
习题3
1.单项选择题
(1)进程创建原语的任务是 。
A、为进程编制程序 B、为进程建立PCB表
C、为进程分配CPU D、为进程分配所需的各种资源 (2)进程从执行状态变为阻塞态的原因可能是 。 A、I/O事件发生 B、I/O事件完成 C、时间片到 D、某个进程被唤醒
(3)进程由执行态变化到就绪态的可能原因是 。 A、等待的事件发生 B、高优先级进程到来 C、I/O完成 D、等待某事件的发生
(4)进程在执行过程中,其状态总是在不停地发生变化,下面关于进程状态变化的说法正确的是 。
A、 进程一旦形成,首先进入的是运行状态 B、 在分时系统中,一个正在运行的进程的时间片如果终结,该进程将转入就绪状
态 C、 一个进程必须经过进程的三个基本状态才能结束 D、 三种进程状态是进程运行过程中的基本状态,进程可能同时处于某几种状态中 (5)进程的上下文是执行活动全过程的静态描述,它在 时切换。
A、 系统调度新进程占有CPU时 B、 进程因等待某一事件的发生而由运行态转为阻塞态时 C、 进程由阻塞态转为就绪态时 D、 作业因完成而撤出时
(6)以下进程状态的转换中, 是不可能的。 A、运行态?就绪态 B、运行态?阻塞态
C、阻塞态?运行态 D、阻塞态?就绪态
(7)同一程序运行在不同的数据集上,创建了 的进程。 A、相同 B、不同 C、同步 D、互斥
(8)进程调度是从 中选择一个进程进入处理器中运行。 A、就绪队列 B、阻塞队列 C、提交队列 D、后备队列
(1)B (2)A (3)B (4)B (5)A (6)C (7)B (8)A
2.填空题
(1)一个进程获得了除 CPU 外的一切资源,则称此进程处于就绪态。 (2)一个进程由于 等待某一事件的发生 而暂时停止运行,这时即使把CPU分配给进程也无法运行,则称该进程处于阻塞态。
(3)在一个只有一个CPU的系统中,假如某时刻该系统中有10个进程并发执行,在略去调度时间所占用时间的前提下,则:
1)这时刻系统中处于运行态的进程最多有 1 个,最少有 0 个。 2)这时刻系统中处于就绪态的进程最多有 9 个,最少有 0 个。 3)这时刻系统中处于阻塞态的进程最多有 10 个,最少有 0 个。
(4)操作系统对进程的控制是根据 PCB 来进行的,对进程的管理是通过 PCB 来实现的。
3.基本概念的解释和辨析 (1)进程和程序 (2)进程和作业 (3)进程和线程 (4)原语和系统调用 (5)内核和微内核
(6)用户级线程和核心级线程 4.综合题
(1)某系统的进程状态转换图如图3.16所示,请说明:
1)引起各种状态转换的典型原因有哪些?
运行态→就绪态 时间片到或被更高优先级的进程抢占 就绪态→运行态 被调度
运行态→阻塞态 等待某一事件的发生而事件未发生 阻塞态→就绪态 等待的事件已发生
2)当观察系统中某些进程时,能够看到某一进程的一次状态转换能引起另一个进程的
运行 2 1 就绪 4 3 阻塞 图3.16某系统进程状态转换图 一次状态转换。在什么情况下,当一个进程发生转换3时能立即引起另一个进程发生转换2?
3)如图3.16,说明是否会发生下述因果转换: 2→1 会,在抢占式调度的情况下,更高优先级的进程到达 3→2 会,一个正在运行的进程因等待某一事件的发生而转入阻塞态,而就绪队列中有进程在等待运行 4→1 不会
(2)有一个单向链接的进程PCB队列,它的队首由系统指针指出,队尾进程链接指针为0。分别画出一个进程从队首入队和队尾入队的流程图。
(3)挂起状态和阻塞状态有何区别?在具有挂起操作的系统中,进程的状态有哪些?如何变迁?
被挂起进程处于静止状态,不能参与竞争CPU,直到被激活,但被挂起进程可能并不缺少资源;而阻塞进程是由于等待某一事件的发生,处于缺乏资源的状态。
(4)在创建一个进程时需要完成的主要工作是什么?在撤消一个进程时需要完成的主要工作又是什么?
创建进程的主要工作是为被创建进程创建一个PCB,并填入相应的初始值。并把该进程插入就绪队列。
撤消该进程的所有子孙进程。在撤消的过程中,被撤消进程的所有系统资源(内存、外设)应全部释放出来归还给系统,并将它们从所有队列中移出。如果被撤消进程正在处理器
上运行,则要调用进程调度程序将处理器分配给其它进程。
(5)什么是可再入程序?其有何特性?
能被多个程序同时调用的程序。它具有以下性质:它是纯代码的,即它在执行过程中不改变自身代码,通常由指令和常量等程序逻辑中的不变部分组成;调用它的各程序应提供工作区,用以存放随着程序执行将发生变化的部分,诸如程序中的数组、变量和通用存储器内的信息。
(6)在使用线程的系统中,是每个线程有一个堆栈还是每个进程有一个堆栈?说明原因。
(7)线程通常有哪些状态?为了管理线程,操作系统一般提供哪些原语? 线程状态:就绪态,运行态,阻塞态 原语:派生,阻塞,激活
习题4
1.单项选择题
(1)要避免出现与时间有关的错误,对若干进程的相关临界区的管理应满足以下除 外的要求。
A、 一次最多让一个进程在临界区中执行 B、 任何一个进入临界区执行的进程必须在有限时间内退出临界区 C、 避免进程进入相关临界区
D、 不能强迫一个进程无限期地等待进入它的临界区
(2)有三个进程P1、P2、P3共享同一个程序段,而每次最多允许两个进程进入该程序段,则信号量S的初值为 。
A、0 B、1 C、2 D、3
(3)在操作系统中wait、signal操作是一种 。 A、机器指令 B、系统调用命令 C、作业控制命令 D、低级进程通信
(4)用signal操作唤醒一个进程时,被唤醒进程的状态应变成 状态。 A、等待 B、运行 C、就绪 D、完成
(5)用信箱实现并发进程间的通信需要两个基本的通信原语,它们是 。 A、wait原语和signal原语 B、send原语和receive原语 C、R(S)和W(S) D、以上都不是 (6)用来实现进程同步与互斥的wait,signal操作,实际上是 的过程。 A、一个可被中断 B、一个不可被中断 C、两个可被中断 D、两个不可被中断 (1)A (2)C (3)D (4)C (5)B (6)D
2.填空题 (1)临界资源是 一次只允许一个进程使用 的资源,临界区是 访问临界资源的那段代码 。
(2)信号量s>0时,表示 资源的空闲数量 ;当s=0时,表示 资源已经耗尽,但没有进程在等待 ;若s<0,则表示 有|s|个进程在等待 。
(3)设计进程同步机制的准则有 空闲让进 、 忙则等待 、 有限等待 和 让权等待 。 3. 基本概念解释和辨析 (1)同步与互斥。
(2)临界资源与临界区。 (3)高级通信与低级通信。 (4)直接通信与间接通信。 4.论述题
(1)什么是“忙等待”?如何克服“忙等待”?
如果在单处理器系统中,一个进程试图进入处于“忙”状态的临界区,则该进程只能不断测试临界区的状态,这就是“忙等待”。
让试图进入“忙”状态的临界区的进程“睡眠”等待,由释放资源的进程将其唤醒,便可克服“忙等待”的缺点。
(2)在解决进程互斥时,如果TS指令的执行可以中断,则会出现什么情况?而如果
wait、signal的执行可分割,又会出现什么情况?
如果wait可被分割,则可能破坏“空闲让进”准则。如s.value=1,进程A执行wait操作,进行s.value--,s.value的值为0;如果此时被中断,进程B执行wait操作,进行s.value--,s.value的值为-1,则进程B将被阻塞;此时进程A恢复中断,由于s.value的值为-1,也将被阻塞,从而破坏了“空闲让进”准则。
如果signal可被分割,也有可能破坏“空闲让进”准则。如s.value=-1,进程C在等待s资源,进程A执行signal操作,进行s.value++,s.value的值为0;如果此时被中断,进程B执行signal操作,进行s.value++,s.value的值为1,进程B不会唤醒进程C;此时进程A恢复中断,由于s.value的值为1,也不会唤醒进程C,从而破坏了“空闲让进”准则。
(3)使用parbegin改写下面的表达式以获得最大程度的并行性。 (3*a*b+4)/(c+d)**(e-f)
typedef Fan_Type DataType; Fan_Type x;
Fan_Type P1( )
{ return(3*a*b+4); }
Fan_Type P2( ) { return(c+d); }
Fan_Type P3( ) { return(e-f); }
void main( )
{ Fan_Type a, b, c;
parbegin(a=P1, b=P2, c=P3); xa/b**c; }
(4)设有几个进程共享一互斥段,对于如下两种情况: (1)每次只允许一个进程进入临界区;
(2)最多允许m个进程(m 所采用的信号量是否相同?信号量值的变化范围如何? (1)信号量值的变化范围为s.value<=1; (2)信号量值的变化范围为s.value<=m; (5)下面是两个并发执行的进程,它们能正确执行吗?若不能正确执行,请举例说明,并改正之(x是公共变量)。 void P1( ) { int y, z; x=1; y=0; if(x>=1) y=y+1; z=y; } void P2( ) { int t, u; x=0; t=0; if(x<1) t=t+z; u=t; } void main( ) { parbegin(P1( ), P2( )); } 不能正确执行。如进程P1执行过程中不被中断,进程运行结束后x, y, z的值均为1;但若进程P1执行到y=0时被中断,进程P2执行完毕后x的值为0,则P1恢复中断后获得的结果为x, y, z的值均为0,从而发生与时间有关的错误。 struct semaphore s; s.value=1; void P1( ) { int y, z; wait(s); x=1; y=0; if(x>=1) y=y+1; z=y; signal(s); } void P2( ) { int t, u; wait(s); x=0; t=0; if(x<1) t=t+z; u=t; signal(s); } void main( ) { parbegin(P1( ), P2( )); } (6)共享存储区通信是如何实现的? (7)假设某系统未直接提供信号量机制,但提供了进程通信工具。如果某程序希望使用关于信号量的wait、signal操作,那么该程序应如何利用通信工具模拟信号量机制?要求说明如何用send/receive操作及消息表示wait/signal操作及信号量。 5.应用题 (1)有三个并发进程R、W1和W2,共享两个各可存放一个数的缓冲区B1、B2。进程R每次从输入设备读入一个数,若读入的是奇数,则将它存入B1中,若读入的是偶数,将 它存入B2中;当B1中有数,由进程W1将其打印输出;当B2中有数,进程W2将其打印输出。试编写保证三者正确工作的程序。 struct semaphone B1_Empty, B1_Full, B2_Empty, B2_Full; B1_Empty.value=1; B1_Full.value=0; B2_Empty.value=1; B2_Full.value=0; void R( ) { int a; While(1) { read a number a; if(a%2==1) { wait(B1_Empty); put a in B1; signal(B1_Full); } else { wait(B2_Empty); put a in B2; signal(B2_Full); } } } void W1( ) { while(1) { wait(B1_Full); print a number from B1; signal(B1_Empty); } } void W2( ) { while(1) { wait(B2_Full); print a number from B2; signal(B2_Empty); } } void main( ) { parbegin(R( ), W1( ), W2( )); } (2)8个协作的任务A、B、C、D、E、F、G、H分别完成各自的工作。它们满足下列条件:任务A必须领先于任务B、C和E;任务E和D必须领先于任务F;任务B和C必须领先与任务D;而任务F必须领先于任务G和H。试写出并发程序,使得在任何情况下它们均能正确工作。 (3)多个进程共享一个文件,其中只读文件的称为读者,只写文件的称为写者。读者可以同时读,但写者只能独立写。问: 1)说明进程间的制约关系,应设置哪些信号量? 2)用wait、signal操作写出其同步程序。 3)修改上述算法,使得它对写者优先,即一旦有写者到达,后续的读者必须等待。而无论是否有读者在读文件。 见教材“读者-写者问题” (4)桌上有一空盘,可放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子;儿子专等吃盘中的桔子;女儿专等吃盘中的苹果。规定一次只能放一只水果,试写出爸爸、儿子、女儿正确同步的程序。 struct semaphone plate, apple, orange; plate.value=1; apple.value=0; orange.value=0; void father( ) { while(1) { prepare an apple or orange; wait(plate); put the apple or orange in plate; if(Apple) signal(apple); //如果放的是苹果 else signal(orange); //如果放的是桔子 } } void son( ) { while(1) { wait(orange); get an orange from the plate; signal(plate); } } void daughter( ) { while(1) { wait(apple); get an apple from the plate; signal(plate); } } Void main( ) (5)三个进程P1、P2、P3互斥使用一个包含N(N>0)个单元的缓冲区。P1每次用procuce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd() 从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用geteven()从该缓冲区中取出一个偶数并用counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述(2009年全国硕士研究生入学考试题)。 struct semaphone full_odd, full_even, mutex, empty; full_odd.value=0; full_even.value=0; mutex.value=1; empty.value=N; void P1( ) { int X; while(1) { X=produce( ); wait(empty); wait(mutex); put( ); if(X%2==0) signal(full_even); else signal(full_odd); signal(mutex); } } void P2( ) { wait(full_odd); wait(mutex); getodd( ); countodd( )=countodd( )+1; signal(empty); signal(mutex); } void P3( ) { wait(full_even); wait(mutex); geteven( ); counteven( )=counteven( )+1; signal(empty); signal(mutex); } void main( ) { parbegin(P1( ), P2( ), P3( )); } (6)放小球问题:一个箱子里只有白色和黑色两种小球,且数量足够多。现在需要从中取出一些小球放入一个袋子中。约定:1)一次只能放入一个小球;2)白球的数量至多只能比黑球少N个,至多只能比黑球多M个(M,N为正整数)。请用信号量机制实现 进程的同步与互斥。 struct semaphone mutex1, mutex2; int black=0, white=0; mutex1.value=1; mutex2.value=1; void put( ) { while(1) { wait(mutex1); get a black ball or white ball from the box; signal(mutex1); wait(mutex2); if(Black) //如果取到的是黑球 if(black-white void main( ) { parbegin(put( )); } 习题5 1.单项选择题 (1)当作业进入完成状态时,操作系统 。 A、 将删除该作业并收回其所占资源,同时输出结果 B、 将该作业的控制块从当前作业队列中删除,收回其所占资源,并输出结果 C、 将收回该作业所占资源并输出结果 D、 将输出结果并删除内存中的作业 (2)批处理作业是被成批存入 ,以等待作业调度选择。 A、输入井 B、输出井 C、映象区 D、内存 (3)一种即有利于短作业又兼顾长作业的作业调度算法是 。 A、最高响应比优先 B、先来先服务 C、短作业优先 D、均衡调度 (4)在批处理系统中,周转时间是 。 A、作业运行时间 B、作业等待时间和运行时间之和 C、作业的相对等待时间 D、作业被调度进入内存到运行完毕的时间 (5)在操作系统中,作业处于 状态时,已处于进程管理之下。 A、提交 B、后备 C、运行 D、完成 (6)在作业调度中,若采用优先级调度算法,为了尽可能使处理器和外部设备并行工作,有如下三个作业:J1以计算为主,J2计算和输入输出兼顾,J3以输入输出为主,则它们的优先级从高到低的排列顺序是 。 A、J1,J2,J3 B、J2,J3,J1 C、J2,J3,J1 D、J3,J1,J2 (7)一个作业被成功调度后,系统为其创建相应的进程,该进程的初始状态是 。 A、执行态 B、阻塞态 C、就绪态 D、等待访问设备态 (1)B (2)A (3)A (4)B (5)B (6)B,C (7)C 2.填空题 (1)作业调度是从处于 后备 状态的队列中选取适当的作业投入运行。从作业提交给系统到作业完成的时间间隔叫做 周转时间 。 等待时间 是指作业从进入后备队列到被调到程序中的时间间隔。假定把下列四个作业同时提交系统并进入 后备 队列,当使用短作业优先调度算法时,单道环境下,四个作业的平均等待时间是 4.25小时 ,平均周转时间是 8.75小时 ;当使用高优先数优先的调度算法时,作业的平均等待时间是 5.75小时 ,平均周转时间是 10.25小时 。 作业 1 2 3 4 所需运行时间(小时) 2 5 8 3 优先数 4 9 1 7 (2)在一个具有分时兼批处理的系统中,总是优先调度 分时作业 。 3.简答题 (1)什么是分层次调度?在分时系统中有作业调度的概念吗?如果没有,为什么? (2)作业调度和进程调度的主要功能分别是什么? (3)作业调度的性能评价标准有哪些?这些性能评价标准在任何情况下都能反映调度 策略的优劣吗? (4)为什么说多级反馈队列调度算法能较好地满足各类用户的需要? (5)假设就绪队列中有10个进程,系统将时间片设为200ms,CPU进行进程切换要花费10ms,试问系统开销所占的比率约为多少? (6)在批处理系统、分时系统和实时系统中一般常采用哪种调度算法? (7)若在后备作业队列中等待运行的同时有三个作业1、2、3,已知它们各自的运行时间为a、b、c,且满足关系a (8)简述UNIX System V中进程调度算法的特点。 3.应用题 (1)考虑5个进程P1、P2、P3、P4、P5,它们的创建时间、运行时间及优先数如下表所示。规定进程的优先数越小,优先级越高。试描述在采用下述几种调度算法时各个进程运行过程,并计算采用每种算法时的进程平均周转时间。假设忽略进程的调度时间。 1)先来先服务调度算法; 2)时间片轮转调度算法(时间片为1ms); 3)非剥夺式优先级调度算法; 4)剥夺式优先级调度算法。 进程 P1 P2 P3 P4 P5 创建时间 0 2 4 6 8 运行时间(ms) 3 6 4 5 2 优先数 3 5 1 2 4 1)先来先服务调度算法 作业号 P1 P2 P3 P4 P5 进入时间 0 2 4 6 8 运行时间(ms) 3 6 4 5 2 开始执行时间 0 3 9 13 18 完成时间 3 9 13 18 20 周转时间 3 7 9 12 12 平均周转时间T=(3+7+9+12+12)/ 5=8.6ms 平均带权周转时间W=(3/3+7/6+9/4+12/5+12/2) / 5=2.56 2)时间片轮转调度算法 当时间片q=1时,列出下表,找出运行序列: 时刻 0~1 1~2 2~3 3~4 4~5 5~6 6~7 7~8 运行进程 P1 P1 P2 P1 P2 P3 P2 P4 排队进程 P1 P2 P3 P2 P4 P3 P3 P2 时刻 10~11 11~12 12~13 13~14 14~15 15~16 16~17 17~18 运行进程 P5 P4 P3 P2 P5 P4 P3 P2 排队进程 P4 P3 P2 P3 P2 P5 P2 P5 P4 P5 P4 P3 P4 P3 P2 P3 P2 P2 P4 P4 8~9 9~10 作业号 P1 P2 P3 P4 P5 P3 P2 进入时间 0 2 4 6 8 P2 P5 P4 P5 P4 P3 运行时间 3 6 4 5 2 18~19 19~20 完成时间 4 18 17 20 15 P4 P4 周转时间 4 16 13 14 7 平均周转时间T=(4+16+13+14+7)/ 5=10.8ms 平均带权周转时间W=(4/3+16/6+13/4+14/5+7/2) / 5=2.15 3) 非剥夺式优先级调度算法 作业号 P1 P2 P3 P4 P5 进入时间 0 2 4 6 8 运行时间 3 6 4 5 2 优先数 3 5 1 2 4 完成时间 3 9 13 18 20 周转时间 3 7 9 12 12 平均周转时间T=(3+7+9+12+12)/ 5=8.6ms 平均带权周转时间W=(3/3+7/6+9/4+12/5+12/2) / 5=2.56 4)剥夺式优先级调度算法 0 3 4 8 13 15 20 P1 P2 P3 P4 P5 作业号 P1 P2 P3 P4 P5 进入时间 0 2 4 6 8 运行时间 3 6 4 5 2 优先数 3 5 1 2 4 完成时间 3 20 8 13 15 周转时间 3 18 4 7 7 平均周转时间T=(3+18+4+7+7)/ 5=7.8ms 平均带权周转时间W=(3/3+18/6+4/4+7/5+7/2) / 5=1.98 9.有一个具有两道作业的批处理系统,作业调度采用短作业优先的调度算法,进程调度采用以优先数为基础的剥夺式调度算法。下表所示为作业序列,作业优先数即为进程优先数,优先数越小优先级越高。 进程 A B C D 到达时间 10:00 10:20 10:30 10:50 估计运行时间 40分 30分 50分 20分 优先数 5 3 4 6 (1)列出所有作业进入内存时间及结束时间。 (2)计算平均周转时间。 作业名 到达时间 估计运行时间 优先数 进入内存时间 执行结束时间 周转时间 A 10.00 40分 5 10.00 11.10 70 B 10:20 30分 3 10.20 10.50 30 C 10:30 50分 4 11.10 12.00 90 D 10:50 20分 6 12,00 12.20 90 T=70分