操作系统第章答案上.doc_第1页
操作系统第章答案上.doc_第2页
操作系统第章答案上.doc_第3页
操作系统第章答案上.doc_第4页
操作系统第章答案上.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

赵盈盈 2011210593 第四章作业上1. 解释名词:程序的顺序执行;程序的并发执行。答:程序的顺序执行:一个具有独立功能的程序独占cpu直到得到最终结果的进程。 程序的并发执行:两个或两个以上程序在计算机系统中同时处于一开始执行且尚未结束的状态。2. 什么是进程?进程与程序的主要区别是什么?答:进程:进程是具有独立功能的程序关于某个数据集合的一次运行活动,进程是系统进行资源分配和调度的独立单元。进程和程序的区别:程序是静态的,进程是动态的进程有程序和数据两部分组成进程具有生命周期,有诞生和消亡,是短暂的;而程序是相对长久的进程能更真实的描述并发,而程序不行。一个进程可以对应多个程序。一个程序可以对应多个进程进程可以创建其他进程,程序不能3. 图1所示,设一誊抄程序,将f中记录序列正确誊抄到g中,这一程序由get、copy、put三个程序段组成,它们分别负责获得记录、复制记录、输出记录。请指出这三个程序段对f中的m个记录进行处理时各种操作的先后次序,并画出誊抄此记录序列的先后次序图(假设f中有1,2,m个记录,s,t为设置在主存中的软件缓冲区,每次只能装一个记录)。fscopytputgget图1 改进后的誊抄过程答:GCGPCPGCP4. 进程有哪几种基本状态?试画出进程状态变迁图,并标明发生变迁的可能原因。答:进程基本状态:运行、就绪、等待运行状态转换图:等待就绪就绪到运行:调度程序选择一个新的进程运行运行到就绪:运行进程用完了时间片或运行进程被中断,因为一个高优先级的进程处于就绪状态运行到等待:OS尚未完成服务或对一资源的访问尚不能进行 或初始化I/O 且必须等待结果 或等待某一进程提供输入(IPC)等待到就绪:当所有的事件发生时5. 什么是进程控制块?它有什么作用?答:PCB:为了便于系统控制和描述进程的活动过程,在操作系统核心中为进程定义的一个专门的数据结构。作用:系统用PCB来控制和管理进程的调用,PCB也是系统感知进程存在的唯一标志6. n个并发进程共用一个公共变量Q,写出用信号灯的p、v操作实现n个进程互斥时的程序描述,并说明信号灯值的取值范围。答:main() pi() int mutex=1; p(mutex);cobegin 执行进程Pi; for(i=1;1=n;i+) pi(); v(mutex);coend 对于N并发进程,互斥子信号灯取值范围为【-(n-1),1】Mutex = 1,表示没有进程进入缓冲区。 Mutex = 0,表示有一个进程进入缓冲区,没有进程等待Mutex = -1,表示有一个进程进入缓冲区,一个进程等待Mutex =-(n-1),表示有一个进程进入缓冲区,n-1个进程等待7. 我们用进程流图来描述一组合作进程执行的先后次序。试用信号灯的p、v操作实现如图2(a)、(b)中所示进程之间的同步,并写出程序描述。SP1(S1)P6(S6)P5(S5)fSP1SfP3(S3)P2(S2)P4(S4)P4(S4)P7(S57、S67)P3(S3)P2(S2)P5(S35、S45)f图2 图3答:PV操作实现(a)及程序实现main()int S2=0,S3=0,S4=0; P1() P2() P3() P4()Cobegin P1();P2();P3();P4(); 执行P1; P(S2); P(S3); P(S4);Coend V(S2); 执行P2; 执行P3; 执行P4; V(S3); V(S4); PV操作实现(b)及程序实现main()int S5=0,S6=0; P5() P6() P7()int S57=0,S67=0; Cobegin P(S5); P(S6); P(S57);P5();P6();P7(); 执行P5; 执行P6; P(S67);Coend V(S57) V(S67); 执行P7; 8. 如图3所示的进程流图中,有五个进程合作完成某一任务,试说明这五个进程之间的同步关系,并用p、v操作实现之,并要求写出程序描述。答:PV操作实现及程序实现 Main() P1() P2()int S1=0,S2=0,S3=0,S4=0;S35=0,S45=0; 执行P1; P(S2); Cobegin V(S2); 执行S2; P1();P2();P3();P4();P5(); V(S3); Coend V(S4); P3() P4() P5()P(S3); P(S4); P(35); 执行P3; 执行P4; P(45);V(35); V(45); 执行P5; 9. 如图4所示,get、copy、put三进程共用两个缓冲区s、t(其大小为每次存放一个记录)。get进程负责不断地把输入记录送入缓冲区s中,copy进程负责从缓冲区s中取出记录复制到缓冲t中,而put进程负责把记录从缓冲区t中取出打印。试用p、v操作实现这三个进程之间的同步,并写出程序描述。putcopyget缓冲区s缓冲区t图4答:PV操作实现及程序实现Main()int S1=1,S2=0;/S1表示空缓冲区s个数,S2表示缓冲区是否有内容可以被copy int T1=1,T2=0;/ T1表示空缓冲区t个数,T2表示缓冲区是否有内容可以被putCobegin Get();Copy();Put();CoendGet() Copy while(1) while(1) P(S1); /检查S是否为空 P(S2);/检查S是否为满put data to buffer S /补数据放入S copy data from buffer S;/ copy数据 V(S2);/ S已满 V(S1); /清空S /while P(T1);/检查T是否为空/Get put data to buffer T; V(T2);/T已满 Put() while(1)P(T2);/检测T是否为满 Output data from buffer T;/输出T中数据 V(T1);/清空缓冲区T10. 什么是进程的互斥与同步?同步和互斥这两个概念有什么联系与区别?答:进程同步:是指进程之间一种直接的协同关系,是一些进程相互合作,共同完成一项任务,进程剪得直接相互作用构成进程的同步。进程互斥:在系统中,许多进程需要共享资源,而这些资源往往要求排他性的使用,即一次只能为一个进程服务。因此,个进程间互斥使用这些资源,进程间的这种关系叫做进程互斥。 联系:进程互斥与同步是指在进程推进时的相互制约关系。在多道程序系统中,由于资源共享与进程合作,这种进程间的制约成为可能。 区别:进程同步主要源于进城合作,是进程间共同完成一项任务时直接发生相互作用,为进城提供直接制约关系。在多道环境下,这种进程在执行次序上的协调是必不可少的。 而进程互斥,主要源于资源共享,是进程间的间接制约关系。在多道系统中,每次只允许一个进程访问的资源成为临界资源,进程互斥就是保证每次只有一个进程使用临界资源。11. 在生产者一消费者问题中,我们设置三个信号灯,一个用于互斥的信号灯mutex,其初值为1;另外两个信号灯是:full(初值为0,用以指示缓冲区内是否有物品)和empty(初值为n,表示可利用的缓冲区数目)。试写出此时的生产者一消费者问题的描述。答:该问题描述的是一个多个生产者 一个消费者12. 判断正是列同步算法是否有错,请指出错误原因并改正。(1)三个进程并发活动的进程流图5所示,其同步算法描述如下:main( ) 解(1) 答:改正如下:SfP3P2P1int s =-1; int S13=0,S23=0;cobeginp1( );p2( );p3( );coendp1( ) P1() 图5 v(s); V(S13); p2( ) P2() p(s); 图4.25 V(S23); p3( ) P3() P(S13);p(s); P(S23); (2)设a、b两进程共用一缓冲区t,a向t写入信息,b则从t读出信息,算法框图如图6所示。(3)设a、b为两个并发进程,它们共享一临介资源。其执行临界区的算法框图如图7所示。B进程A进程 A进程P(S)P(S) 向t写入信息 V(S1)csbP(S1)CSaB进程v(s2)从t读出信息 P(S2) V(S) V(S2)注:信号灯s的值为0注:信号灯s1、s2的值均为0图6 图7答:解(2)A 进程与B进程之间是协同关系。A进程往缓冲区写入信息之前要先判断 缓冲区是否为满。写入之后看声明缓冲区数据可以被取走B进程从缓冲区取数据之前 先检测缓冲区是否已满,从t中读出信息之后要声明缓冲区数据已被取走。 Main()int S1=1,S2=0;/S1缓冲区是否装满,S0表示缓冲区内容是否陪取走Cobegin A();B();Coend;A() B()while(1) while(1) Input data to buffer T; P(S1);/检验缓冲区是否为满V(S1);/缓冲区是否已满 output data to buffer T;P(S2);/缓冲区数据可以被取走 V(S2);/缓冲区数据被取走/while /while /A() /B()答:解(3)进程A、B之间为互斥关系,用一个信号灯就够了。 改正如图 A、B只需进入临界区之前检测临界区是否为空。出来之后声明临界区可用即可图可以表现为13. 试说明进程创建的主要功能是什么?答:(1)为新建进程创建PCB。(2)赋予一个统一进程标识符(3)为进程映像分配空间(4)初始化进程控制块(5)设置相应的链接,将新建进程设置为就绪状态,把PCB排入就绪队列 中。14. 用于进程控制的原语主要有哪几个?答:用于进程控制的原语主要有:创建原语,撤销原语,阻塞原语,唤醒原语15. 什么是线程?线程与进程有什么区别? 答:线程是进程中的一个实体,是cpu调度和分派的基本单位。 区别:(1)调度:线程是调度和分配的基本单位,进程是资源拥有的基本单位;在同一个进程中线程的切换不会引起进程的切换,在一个进程中线程切换到另一个进程中是会引起进程的切换。(2)并发性:引入线程的OS中,不仅进程之间可以并发执行,而且一个进程的多个线程也可以并发执行。因而是OS有更好的并发性,从而能更有效地使用系统资源提高系统吞吐率。(3)拥有资源:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论