您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 操作系统-进程管理习题课
进程管理习题课重点:用P、V原语实现同步与互斥本章小结进程是系统分配资源的基本单位,是一个具有独立功能的程序段对某个数据集的一次执行活动。为什么要引入进程的概念是由操作系统的资源有限性和处理上的并行性以及系统用户的执行起始时间的随机性所决定的。进程具有动态性、并发性等特点。进程动态特性的是进程状态的变化。进程要经历创建、等待资源、就绪准备执行,以及执行和执行后释放资源消亡等几个过程和状态。进程的状态转换要由不同的原语执行完成。本章小结P78进程的并发特性反映在进程对资源的竞争以及由资源竞争所引起的对进程执行速度的制约。这种制约可分为直接制约和间接制约。直接制约是被制约进程和制约进程之间,存在着使用对方资源的需求,只有制约进程执行后,被制约进程才能继续往前推进。具有固定的执行顺序间接制约是被制约进程共享某个一次只能供一个进程使用的系统资源,只有得到该资源的进程才能继续往前推进,其他进程在获得资源进程执行期间不允许交叉执行。没有固定的执行顺序。操作实现:间接制约可利用加锁法和P,V原语操作实现。直接制约既可用P,V原语实现,也可用其他互相传递信号的方式实现。进程上下文:一个进程的静态描述是处理机的一个执行环境,被称为进程上下文。进程上下文由以下部分组成:PCB(进程控制块)、正文段和数据段以及各种寄存器和堆栈中的值。寄存器中主要存放将要执行指令的逻辑地址,执行模式以及执行指令时所要用到的各种调用和返回参数等。而堆栈中则存放CPU现场保护信息、各种资源控制管理信息等。进程通信:进程间通信又可分为传送控制信号的低级通信和大量传送数据的高级通信。通信方式来看,又可分为主从式、会话式、消息与邮箱方式、以及共享虚存方式。本章小结(续)P79常用的死锁排除方法是检测与恢复方法。造成死锁:无论是互相通信的进程或是共享某些不同类型资源的进程,都可能因通信顺序不当或资源分配顺序不当而造成死锁。死锁是一种因各并发进程等待资源而永久不能向前推进的系统状态。排除死锁的方法是预防、回避、检测与恢复三种。线程是进程内的一段程序的基本调度单位。线程可分为用户级线程和系统级线程。用户级线程的管理全部由线程库完成,与操作系统内核无关。线程组成由寄存器、堆栈以及程序计数器等组成,同一进程的线程共享该进程的进程空间和其他所有资源。线程主要用于多机系统以及网络系统的操作系统中。本章小结(续)P79第一题一、用P、V操作描述前趋关系。P1、P2、P3、P4、P5、P6为一组合作进程,其前趋图如图所示,试用P、V操作描述这6个进程的同步。第二题二、生产者-消费者问题它描述了一组生产者向一组消费者提供产品,它们共享一个有界缓冲区,生产者向其中投放产品,消费者从中取得产品。生产者-消费者问题是许多相互合作进程的一种抽象。我们把一个长度为n的有界缓冲区(n0)与一群生产者进程P1、P2、…、Pm和一群消费者进程C1、C2、…、Ck联系起来,如图所示。提取物品。第二题(续)假定这些生产者和消费者是互相等效的。只要缓冲区未满,生产者就可以把产品送入缓冲区,类似地,只要缓冲区未空,消费者便可以从缓冲区中取走物品并消耗它。生产者和消费者的同步关系将禁止生产者向满的缓冲区输送产品,也禁止消费者从空的缓冲区中第三题(选择)三、在操作系统中,进程是一个具有一定独立功能的程序在某个数据集上的一次__________。A.等待活动B.运行活动C.单独操作D.关联操作答:B第四题(选择)四、多道程序环境下,操作系统分配资源以_______为基本单位。A.程序B.指令C进程D.作业答:C第五题(选择)五、对于两个并发进程,设互斥信号量为mutex,若mutex=O,则_____。A.表示没有进程进入临界区B.表示有一个进程进入临界区C.表示有一个进程进入临界区,另一个进程等待进入D.表示有两个进程进入临界区答:B第六题(选择)六、两个进程合作完成一个任务。在并发执行中,一个进程要等待其合作伙伴发来消息,或者建立某个条件后再向前执行,这种制约性合作关系被称为进程的____。A.同步B.互斥C.调度D.执行答:A第七题(选择)七、为了进行进程协调,进程之间应当具有一定的联系,这种联系通常采用进程间交换数据的方式进行,这种方式称为______。A.进程互斥B.进程同步C.进程制约D.进程通信答:D第八题八、在测量控制系统中,数据采集任务把所采集的数据送入一单缓冲区;计算任务从该单缓冲区中取出数据进行计算。试写出利用信号量机制实现两者共享单缓冲区的同步算法。分析[分析及相关知识]在本题中采集任务与计算任务共用一个单缓冲区.当采集任务采集到一个数据后,只有当缓冲区为空时才能将数据送入缓冲区中存放,否则应等待缓冲区腾空;当缓冲区中有数据时,计算任务才能从缓冲区中取出数据进行计算,否则也应等待。答案intSe=l;intSf=0;main(){cobeginget();compute();coend}get(){while(采集工作未完成){采集一个数据:p(Se);将数据送入缓冲区中;v(Sf);}}compute(){while(计算工作未完成){p(Sf);从缓冲区中取出数据;v(Se);进行数据计算;}}第九题九、下图给出了四个进程合作完成某一任务的前趋图,试说明这四个进程间的同步关系,并用P、V操作描述它。第十题十、桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步。P37分析[分析及相关知识]在本题中,爸爸、儿子、女儿共用一个盘子,且盘中一次只能放一个水果.当盘子为空时,爸爸可将一个水果放入果盘中。若放入果盘中的是桔子,则允许儿子吃,女儿必须等待;若放入果盘中的是苹果,则允许女儿吃,儿子必须等待。本题实际上是生产者—消费者问题的一种变形。这里,生产者放入缓冲区的产品有两类,消费者也有两类,每类消费者只消费其中固定的一类产品。答案intS=1;intSa=0;intSo=0;main(){cobeginfather();son();daughter():coend}father(){while(1){p(S);将水果放入盘中;if(放入的是桔子)v(So):elsev(Sa);}}son(){while(1){p(So);从盘中取出桔子;v(S);吃桔子;}}daughter(){while(1){p(Sa);从盘中取出苹果;v(S);吃苹果;}}十一题十一、(华中理工大学1999年试题)设公共汽车上,司机和售票员的活动分别是:p41司机的活动:启动车辆:正常行车;到站停车;售票员的活动:关车门;售票:开车门;在汽车不断地到站、停车、行驶过程中,这两个活动有什么同步关系?用信号量和P、V操作实现它们的同步。分析在汽车行驶过程中,司机活动与售票员活动之间的同步关系为:售票员关车门后,向司机发开车信号,司机接到开车信号后启动车辆,在汽车正常行驶过程中售票员售票,到站时司机停车,售票员在车停后开车门让乘客上下车。因此司机启动车辆的动作必须与售票员关车门的动作取得同步;售票员开车门的动作也必须与司机停车取得同步。答案ints1=0;ints2=0;driver(){while(1){p(s1);启动车辆;正常行车;到站停车;v(s2);}}busman(){while(1){关车门;v(s1);售票;p(s2);开车门;上下乘客;}}十二题十二、设有一个发送者进程和一个接收者进程,其流程图如图所示。s是用于实现进程同步的信号量,mutex是用于实现进程互斥的信号量。试问流程图中的A、B、C、D四框中应填写什么?假定缓冲区有无限多个,s和mutex的初值应为多少?p42分析[分析及相关知识]发送者进程与接收者进程之间的同步关系是:发送者进程生成的信息送入消息链中,接收者进程从消息链中接收信息;由于发送者进程产生一个消息并链入消息链后用V操作增加消息计数并唤醒接收者进程,这表示发送者进程和接收者进程是通过信号量s实现同步的,因此接收者进程应该在取信息之前先使用一个P操作来查看消息链上是否有消息,若无消.息则阻塞自己;另外,发送者和接收者对消息链的访问应使用信号量进行互斥,即在访问前使用P操作,在访问后使用V操作。答案A框P(mutex)B框V(mutex)C框P(s)D框P(mutex)开始时,消息链上没有可供接收的信息,所以s的初值为0;互斥信号量mutex的初值应为1。十三题十三、(北京大学1990年试题)p46①写出P、V操作的定义。②有三个进程PA、PB和PC合作解决文件打印问题:PA将文件记录从磁盘读入主存的缓冲区1,每执行一次读一个记录;PB将缓冲区1的内容复制到缓冲区2,每执行一次复制一个记录;PC将缓冲区2的内容打印出来,每执行一次打印一个记录。缓冲区的大小等于一个记录大小。请用P、V操作来保证文件的正确打印。分析[分析及相关知识]信号量是一个确定的二元组(s,q),其中s是一个具有非负初值的整型变量,q是一个与s相关联的初始状态为空的队列.整型变量s表示系统中某类资源的数目,当其值大于0时,表示系统中当前可用资源的数目;当其值小于0时,其绝对值表示系统中因请求该类资源而被阻塞的进程数目.除信号量的初值外,信号量的值仅能由P操作和V操作改变。答案①P操作记为P(S),其中S为一信号量,它执行时主要完成下述动作:S=S-1若S≥0,则进程继续运行。若S0,则该进程被阻塞,并将它插入该信号量的等待队列中。V操作记为V(S),它执行时主要完成下述动作:S=S+1若S0,则进程继续执行。若S≤0,则从信号量等待队列中移出队首进程,使其变为就绪状态。十四题十四、设有8个程序progl、prog2、…、prog8。它们在并发系统中执行时有如图所示的制约关系,试用P、V操作实现这些程序间的同步。P48分析由图表明开始时,progl及prog2先执行。当progl和prog2都执行完后,prog3、prog4、prog5才可以开始执行。prog3完成后,prog6才能开始执行。prog5完成后,prog7才能开始执行。prog6、prog4、prog7都结束后,prog8才可以开始执行。为了确保这一执行顺序,设7个同步信号量f1、…、f7分别表示程序progl、…、prog7是否执行完,其初值均为0。十五题十五、(北京大学1991年试题)有一个仓库,可以存放A和B两种产品,但要求:(1)每次只能存入一种产品(A或B);(2)-N(A产品数量一B产品数量)M。其中,N和M是正整数。试用P、V操作描述产品A与产品B的入库过程。分析[分析及相关知识]本题给出的第一个条件是临界资源的访问控制,可用一个互斥信号量解决该问题。第二个条件可以分解为:-NA产品数量一B产品数量A产品数量一B产品数量M也就是说,A产品的数量不能比B产品的数量少N个以上,A产品的数量不能比B产品的数量多M个以上.分析在本题中,我们可以设置两个信号量来控制A、B产品的存放数量,sa表示当前允许A产品比B产品多入库的数量,即在当前库存量和B产品不入库的情况下,还可以允许sa个A产品入库;sb表示当前允许B产品比A产品多入库的数量,即在当前库存量和A产品不入库的情况下,还可以允许sb个B产品入库。初始时,sa为M一1,sb为N一1,当往库中存放入一个A产品时,则允许存入B产品的数量也增加1;当往库中存放入一个B产品时,则允许存入A产品的数量也增加1。十六题十六、(南开大学1997年试题)在南开大学和天津大学之间有一条弯曲的小路,其中从S到T一段路每次只允许一辆自行车通过,但其中有一个小的安全岛M(同时允许两辆自行车停留),可供两辆自行车已从两端进入小路情况下错车使用,如图所示。试设计一个算法使来往的自行车均可顺利通过。分析由于小路中间的安全岛M仅允许两辆自行车停留,本应该作为临界资源而设置信号量,但仔细分析可以发现:在任何时刻进入小路的自行车最多不会超过两辆(南开和天大方
本文标题:操作系统-进程管理习题课
链接地址:https://www.777doc.com/doc-3619266 .html