习题参考答案.doc

上传人:s****u 文档编号:12769976 上传时间:2020-05-23 格式:DOC 页数:8 大小:159KB
返回 下载 相关 举报
习题参考答案.doc_第1页
第1页 / 共8页
习题参考答案.doc_第2页
第2页 / 共8页
习题参考答案.doc_第3页
第3页 / 共8页
点击查看更多>>
资源描述
程序ACPU 20msIO2 30msCPU 30msIO2 20msCPU 30msIO1 20ms程序BIO2 30msCPU 30msIO1 40msCPU 30msIO1 20ms程序CIO1 20msCPU 50msIO1 30msCPU 20msIO2 30ms习题1.413014015017018011010090200306070单位:msCPU XCPU YI/O1程序A程序B程序CI/O2假定在具有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的使用时间。由上图可以看出(1)A 170ms B 150ms C 180ms(2)X的使用时间 120ms Y的使用时间 90ms习题3.41)引起各种状态转换的典型原因有哪些?运行态就绪态 时间片到或被更高优先级的进程抢占就绪态运行态 被调度运行态阻塞态 等待某一事件的发生而事件未发生阻塞态就绪态 等待的事件已发生 2)当观察系统中某些进程时,能够看到某一进程的一次状态转换能引起另一个进程的一次状态转换。在什么情况下,当一个进程发生转换3时能立即引起另一个进程发生转换2?就绪队列中只有一个进程3)如图315,说明是否会发生下述因果转换:21 会,在抢占式调度的情况下,更高优先级的进程到达,或时间片到32 会,一个正在运行的进程因等待某一事件的发生而转入阻塞态,而就绪队列中有进程在等待运行41 不会 (3)挂起状态和阻塞状态有何区别?在具有挂起操作的系统中,进程的状态有哪些?如何变迁?被挂起进程处于静止状态,不能参与竞争CPU,直到被激活,但被挂起进程可能并不缺少资源;而阻塞进程是由于等待某一事件的发生,处于缺乏资源的状态。(4)在创建一个进程时需要完成的主要工作是什么?在撤消一个进程时需要完成的主要工作又是什么?创建进程的主要工作是为被创建进程创建一个PCB,并填入相应的初始值。并把该进程插入就绪队列。撤消该进程的所有子孙进程。在撤消的过程中,被撤消进程的所有系统资源(内存、外设)应全部释放出来归还给系统,并将它们从所有队列中移出。如果被撤消进程正在处理器上运行,则要调用进程调度程序将处理器分配给其它进程。习题4.55应用题(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)wait(B1_Empty);put a in B1;signal(B1_Full);elsewait(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);(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( ) parbegin(father, son, daughter); 互斥与同步区别:互斥是为了保证资源一次只能由一个进程使用;而同步是为了实现进程通信,即传递资源当前的状态是否适合另一个进程进行使用。(5)三个进程P1、P2、P3互斥使用一个包含N(N0)个单元的缓冲区。P1每次用prodcuce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用geteven()从该缓冲区中取出一个偶数并用counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述(2009年全国硕士研究生入学考试题)。定义信号量full_odd控制P1与P2之间的同步;full_even控制P1与P3之间的同步;empty控制生产者与消费者之间的同步(是否可生产);mutex控制进程间互斥使用缓冲区。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( );习题5.33.61 时间片轮转调度算法:这是一种常用于分时系统的调度算法,它只能适用于一般实时信息处理系统,而不能用于实时要求严格的实时控制系统。2 非抢占的优先级调度算法:常用于多道批处理系统的调度算法,也可用于实时要求不太严格的实时控制系统。3 基于时钟中断抢占的优先级调度算法:用于大多数的实时系统中。 4 立即抢占的优先级调度算法:这种算法适用于实时要求比较严格的实时控制系统。4应用题(1)考虑5个进程P1、P2、P3、P4、P5,它们的创建时间、运行时间及优先数如下表所示。规定进程的优先数越小,优先级越高。试描述在采用下述几种调度算法时各个进程运行过程,并计算采用每种算法时的进程平均周转时间。假设忽略进程的调度时间。1)先来先服务调度算法;2)时间片轮转调度算法(时间片为1ms);3)非剥夺式优先级调度算法;4)剥夺式优先级调度算法。 进程创建时间运行时间(ms)优先数P1033P2265P3441P4652P58241)先来先服务调度算法作业号进入时间运行时间(ms)开始执行时间完成时间周转时间P103033P226397P3449139P465131812P582182012平均周转时间T(3+7+9+12+12)/ 5=8.6ms平均带权周转时间W=(3/3+7/6+9/4+12/5+12/2) / 5=2.562)时间片轮转调度算法当时间片q=1时,列出下表,找出运行序列: 时刻运行进程排队进程时刻运行进程排队进程01P11011P5P4 P3 P212P11112P4P3 P2 P523P2P11213P3P2 P5 P434P1P21314P2P5 P4 P345P2P31415P5P4 P3 P256P3P21516P4P3 P267P2P4 P31617P3P2 P478P4P3 P21718P2P489P3P2 P5 P41819P4910P2P5 P4 P31920P4作业号进入时间运行时间完成时间周转时间P10344P2261816P3441713P4652014P582157平均周转时间T(4+16+13+14+7)/ 5=10.8ms平均带权周转时间W=(4/3+16/6+13/4+14/5+7/2) / 5=2.153) 非剥夺式优先级调度算法作业号进入时间运行时间优先数完成时间周转时间P103333P226597P3441139P46521812P58242012平均周转时间T(3+7+9+12+12)/ 5=8.6ms平均带权周转时间W=(3/3+7/6+9/4+12/5+12/2) / 5=2.562015138430P1P2P3P4P54)剥夺式优先级调度算法作业号进入时间运行时间优先数完成时间周转时间P103333P22652018P344184P4652137P5824157平均周转时间T(3+18+4+7+7)/ 5=7.8ms平均带权周转时间W=(3/3+18/6+4/4+7/5+7/2) / 5=1.989有一个具有两道作业的批处理系统,作业调度采用短作业优先的调度算法,进程调度采用以优先数为基础的剥夺式调度算法。下表所示为作业序列,作业优先数即为进程优先数,优先数越小优先级越高。进程到达时间估计运行时间优先数A10:0040分5B10:2030分3C10:3050分4D10:5020分6(1)列出所有作业进入内存时间及结束时间。(2)计算平均周转时间。作业名 到达时间 估计运行时间 优先数 进入内存时间 执行结束时间 周转时间 A 10.00 40分 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 10:50 12.20 90T=70分
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!