第3章 进程的同步与通信

合集下载

第3章死锁习题及答案

第3章死锁习题及答案

第三章死锁习题一、填空题1.进程的“同步”和“互斥”反映了进程间①和②的关系。

【答案】①直接制约、②间接制约【解析】进程的同步是指在异步环境下的并发进程因直接制约而互相发送消息,进行相互合作、相互等待,使得各进程按一定的速度执行的过程;而进程的互斥是由并发进程同时共享公有资源而造成的对并发进程执行速度的间接制约。

2.死锁产生的原因是①和②。

【答案】①系统资源不足、②进程推进路径非法【解析】死锁产生的根本原因是系统的资源不足而引发了并发进程之间的资源竞争。

由于资源总是有限的,我们不可能为所有要求资源的进程无限地提供资源。

而另一个原因是操作系统应用的动态分配系统各种资源的策略不当,造成并发进程联合推进的路径进入进程相互封锁的危险区。

所以,采用适当的资源分配算法,来达到消除死锁的目的是操作系统主要研究的课题之一。

3.产生死锁的四个必要条件是①、②、③、④。

【答案】①互斥条件、②非抢占条件、③占有且等待资源条件、④循环等待条件【解析】互斥条件:进程对它所需的资源进行排它性控制,即在一段时间内,某资源为一进程所独占。

非抢占条件:进程所获得的资源在未使用完毕之前,不能被其它进程强行夺走,即只能由获得资源的进程自己释放。

占有且等待资源条件:进程每次申请它所需的一部分资源,在等待新资源的同时,继续占有已分配到的资源,循环等待条件:存在一进程循环链,链中每一个进程已获得的资源同时被下一个进程所请求。

4.在操作系统中,信号量是表示①的物理实体,它是一个与②有关的整型变量,其值仅能由③原语来改变。

【答案】①资源,②队列,③P-V【解析】信号量的概念和P-V原语是荷兰科学家E.W.Dijkstra提出来的。

信号量是一个特殊的整型量,它与一个初始状态为空的队列相联系。

信号量代表了资源的实体,操作系统利用它的状态对并发进程共享资源进行管理。

信号量的值只能由P-V原语来改变。

5.每执行一次P原语,信号量的数值S减1。

如果S>=0,该进程①;若S<0,则②该进程,并把它插入该③对应的④队列中。

(完整版)第三章进程同步与通信作业习题与答案

(完整版)第三章进程同步与通信作业习题与答案

第三章一.选择题(50题)1.以下_B__操作系统中的技术是用来解决进程同步的。

A.管道B.管程C.通道D.DMA2.以下_B__不是操作系统的进程通信手段。

A.管道B.原语C.套接字D.文件映射3.如果有3个进程共享同一程序段,而且每次最多允许两个进程进入该程序段,则信号量的初值应设置为_B__。

A.3B.2C.1D.04.设有4个进程共享一个资源,如果每次只允许一个进程使用该资源,则用P、V 操作管理时信号量S的可能取值是_C__。

A.3,2,1,0,-1B.2,1,0,-1,-2C. 1,0,-1,-2,-3D.4,3,2,1,05.下面有关进程的描述,是正确的__A__。

A.进程执行的相对速度不能由进程自己来控制B.进程利用信号量的P、V 操作可以交换大量的信息C.并发进程在访问共享资源时,不可能出现与时间有关的错误D.P、V操作不是原语操作6.信号灯可以用来实现进程之间的_B__。

A.调度B.同步与互斥C.同步D.互斥7.对于两个并发进程都想进入临界区,设互斥信号量为S,若某时S=0,表示_B_ _。

A.没有进程进入临界区B.有1个进程进入了临界区C. 有2个进程进入了临界区D. 有1个进程进入了临界区并且另一个进程正等待进入8. 信箱通信是一种_B__方式A.直接通信B.间接通信C.低级通信D.信号量9.以下关于临界区的说法,是正确的_C__。

A.对于临界区,最重要的是判断哪个进程先进入B.若进程A已进入临界区,而进程B的优先级高于进程A,则进程B可以打断进程A而自己进入临界区C. 信号量的初值非负,在其上只能做PV操作D.两个互斥进程在临界区内,对共享变量的操作是相同的10. 并发是指_C__。

A.可平行执行的进程B.可先后执行的进程C.可同时执行的进程D.不可中断的进程11. 临界区是_C__。

A.一个缓冲区B.一段数据区C.一段程序D.栈12.进程在处理机上执行,它们的关系是_C__。

计算机操作系统习题及答案

计算机操作系统习题及答案

第一章操作系统引论一、单项选择题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,操作系统中采用多道程序设计技术提高CPU和外部设备的_______。

A.利用率 B.可靠性C.稳定性 D.兼容性7.操作系统是现代计算机系统不可缺少的组成部分,是为了提高计算机的_______和方便用户使用计算机而配备的一种系统软件。

A. 速度B.利用率C. 灵活性 D.兼容性8.操作系统的基本类型主要有_______。

A.批处理系统、分时系统及多任务系统B.实时操作系统、批处理操作系统及分时操作系统C.单用户系统、多用户系统及批处理系统D.实时系统、分时系统和多用户系统9.所谓_______是指将一个以上的作业放入主存,并且同时处于运行状态,这些作业共享处理机的时间和外围设备等其他资源。

A. 多重处理 B.多道程序设计C. 实时处理 D.并行执行10. _______操作系统允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算机。

A.网络 D.分布式C.分时 D.实时11.如果分时操作系统的时间片一定,那么_______,则响应时间越长。

A.用户数越少B.用户数越多C.内存越少 D. 内存越多12,分时操作系统通常采用_______策略为用户服务。

A.可靠性和灵活性 B.时间片轮转C.时间片加权分配 D,短作业优先13. _______操作系统允许用户把若干个作业提交给计算机系统。

U035计算机操作系统教程_第四版_(张尧学著)_清华大学出版社_第3章

U035计算机操作系统教程_第四版_(张尧学著)_清华大学出版社_第3章

3.1.2 进程的定义 进程的概念是60年代初期,首先在MIT 的 Multics系 统和IBM 的 TSS/360系统中引用的。从那以来,人 们对进程下过许多各式各样的定义。 (1) 进程是可以并行执行的计算部分(S.E.Madnick, J.T.Donovan); (2) 进程是一个独立的可以调度的活动(E.Cohen, D.Jofferson); (3) 进程是一抽象实体,当它执行某个任务时,将要 分配和释放各种资源(P.Denning); (4) 行为的规则叫程序,程序在处理机上执行时的活 动称为进程(E.W.Dijkstra);
W(Si)={b1 b2 … bn},bj(j=1,…,n) 是语句Si在执行期间必须对其进行修改、访问的变量; 如果对于语句S1和S2,有 ① R(S1)∩ W(S2)={∮}, ② W(S1)∩ R(S2)={∮}, ③ W(S1)∩ W(S2)={∮} 同时成立,则语句S1和S2是 可以并发执行的。
(1) 进程是一个动态概念,而程序则是一个静态概念。程序是 指令的有序集合,没有任何执行的含义。而进程则强调执 行过程,它动态地被创建,并被调度执行后消亡。 (2) 进程具有并行特征,而程序没有。由进程的定义可知,进 程具有并行特征的两个方面,即独立性和异步性。也就是 说,在不考虑资源共享的情况下,各进程的执行是独立的, 执行速度是异步的。显然,由于程序不反映执行过程,所 以不具有并行特征。 (3) 进程是竞争计算机系统资源的基本单位,从而其并行性受 到系统自己的制约。这里,制约就是对进程独立性和异步 性的限制。 (4) 不同的进程可以包含同一程序,只要该程序所对应的数据 集不同。
第3章 进程管理
3.1 进程的概念 3.2 进程的描述 3.3 进程状态及其转换 3.4 进程控制 3.5 进程互斥 3.6 进程同步 3.7 进程通信 3.8 死锁问题 3.9 线程 本章小结 习题

进程通信课程设计

进程通信课程设计

进程通信课程设计一、课程目标知识目标:1. 让学生掌握进程通信的基本概念,了解进程与线程的区别及通信机制。

2. 学会使用至少一种进程通信方法,如管道、消息队列、共享内存、信号量等,并理解其工作原理。

3. 掌握进程同步与互斥的概念,了解常见同步互斥机制。

技能目标:1. 培养学生运用进程通信方法解决实际问题的能力,能编写简单的进程通信程序。

2. 提高学生分析进程通信场景,选择合适通信机制的能力。

情感态度价值观目标:1. 培养学生对计算机操作系统及进程通信的兴趣,激发学生主动探索精神。

2. 培养学生具备团队协作意识,能够与同学共同完成进程通信相关的项目任务。

3. 引导学生认识到进程通信在计算机系统中的重要性,增强学生的专业认同感。

课程性质分析:本课程为计算机科学与技术专业课程,旨在让学生深入了解操作系统中进程通信的相关知识。

学生特点分析:学生已具备一定的编程基础和操作系统知识,具有较强的学习能力和动手能力。

教学要求:1. 注重理论与实践相结合,通过实例分析,让学生更好地理解和掌握进程通信技术。

2. 鼓励学生参与课堂讨论,培养学生主动思考和解决问题的能力。

3. 强化实践环节,让学生在实际操作中掌握进程通信技术,提高编程技能。

二、教学内容1. 进程通信基本概念:进程与线程的对比,进程间通信的必要性及常见通信方式。

教材章节:第二章 进程管理,第三节 进程同步与通信2. 进程通信机制:管道、消息队列、共享内存、信号量、信号等。

教材章节:第二章 进程管理,第四节 进程通信机制3. 进程同步与互斥:互斥锁、条件变量、读写锁等同步互斥机制。

教材章节:第二章 进程管理,第五节 进程同步与互斥4. 进程通信实例分析:分析具体场景,选择合适的通信机制,进行实例讲解。

教材章节:第二章 进程管理,第六节 进程通信实例5. 实践环节:编写简单的进程通信程序,加深对进程通信机制的理解。

教材章节:实验教程,实验五 进程通信编程教学进度安排:1. 基本概念与通信机制(2课时)2. 同步互斥机制(2课时)3. 实例分析(2课时)4. 实践环节(4课时)教学内容确保科学性和系统性,结合教材章节,从理论到实践,使学生全面掌握进程通信的相关知识。

进程同步与通信作业习题与答案

进程同步与通信作业习题与答案

第三章一.选择题(50题)1.以下_B__操作系统中的技术是用来解决进程同步的。

A.管道B.管程C.通道2.以下_B__不是操作系统的进程通信手段。

A.管道B.原语C.套接字D.文件映射3.如果有3个进程共享同一程序段,而且每次最多允许两个进程进入该程序段,则信号量的初值应设置为_B__。

4.设有4个进程共享一个资源,如果每次只允许一个进程使用该资源,则用P、V操作管理时信号量S的可能取值是_C__。

,2,1,0,-1 ,1,0,-1,-2 C. 1,0,-1,-2,-3 ,3,2,1,05.下面有关进程的描述,是正确的__A__。

A.进程执行的相对速度不能由进程自己来控制B.进程利用信号量的P、V 操作可以交换大量的信息C.并发进程在访问共享资源时,不可能出现与时间有关的错误、V操作不是原语操作6.信号灯可以用来实现进程之间的_B__。

A.调度B.同步与互斥C.同步D.互斥7.对于两个并发进程都想进入临界区,设互斥信号量为S,若某时S=0,表示_B__。

A.没有进程进入临界区B.有1个进程进入了临界区C. 有2个进程进入了临界区D. 有1个进程进入了临界区并且另一个进程正等待进入8. 信箱通信是一种_B__方式A.直接通信B.间接通信C.低级通信D.信号量9.以下关于临界区的说法,是正确的_C__。

A.对于临界区,最重要的是判断哪个进程先进入B.若进程A已进入临界区,而进程B的优先级高于进程A,则进程B可以打断进程A而自己进入临界区C. 信号量的初值非负,在其上只能做PV操作D.两个互斥进程在临界区内,对共享变量的操作是相同的10. 并发是指_C__。

A.可平行执行的进程B.可先后执行的进程C.可同时执行的进程D.不可中断的进程11. 临界区是_C__。

A.一个缓冲区B.一段数据区C.一段程序D.栈12.进程在处理机上执行,它们的关系是_C__。

A.进程之间无关,系统是封闭的B.进程之间相互依赖相互制约C.进程之间可能有关,也可能无关D.以上都不对13. 在消息缓冲通信中,消息队列是一种__A__资源。

第三章进程同步与通信作业习题与答案

第三章进程同步与通信作业习题与答案

第三章一.选择题<50题>1.以下_B__操作系统中的技术是用来解决进程同步的.A.管道B.管程C.通道D.DMA2.以下_B__不是操作系统的进程通信手段.A.管道B.原语C.套接字D.文件映射3.如果有3个进程共享同一程序段,而且每次最多允许两个进程进入该程序段,则信号量的初值应设置为_B__.A.3B.2C.1D.04.设有4个进程共享一个资源,如果每次只允许一个进程使用该资源,则用P、V操作管理时信号量S的可能取值是_C__.A.3,2,1,0,-1B.2,1,0,-1,-2C. 1,0,-1,-2,-3D.4,3,2,1,05.下面有关进程的描述,是正确的__A__.A.进程执行的相对速度不能由进程自己来控制B.进程利用信号量的P、V 操作可以交换大量的信息C.并发进程在访问共享资源时,不可能出现与时间有关的错误D.P、V操作不是原语操作6.信号灯可以用来实现进程之间的_B__.A.调度B.同步与互斥C.同步D.互斥7.对于两个并发进程都想进入临界区,设互斥信号量为S,若某时S=0,表示_B__.A.没有进程进入临界区B.有1个进程进入了临界区C. 有2个进程进入了临界区D. 有1个进程进入了临界区并且另一个进程正等待进入8. 信箱通信是一种_B__方式A.直接通信B.间接通信C.低级通信D.信号量9.以下关于临界区的说法,是正确的_C__.A.对于临界区,最重要的是判断哪个进程先进入B.若进程A已进入临界区,而进程B的优先级高于进程A,则进程B可以打断进程A而自己进入临界区C. 信号量的初值非负,在其上只能做PV操作D.两个互斥进程在临界区内,对共享变量的操作是相同的10. 并发是指_C__.A.可平行执行的进程B.可先后执行的进程C.可同时执行的进程D.不可中断的进程11. 临界区是_C__.A.一个缓冲区B.一段数据区C.一段程序D.栈12.进程在处理机上执行,它们的关系是_C__.A.进程之间无关,系统是封闭的B.进程之间相互依赖相互制约C.进程之间可能有关,也可能无关D.以上都不对13. 在消息缓冲通信中,消息队列是一种__A__资源.A.临界B.共享C.永久D.可剥夺14. 以下关于P、V操作的描述正确的是__D_.A.机器指令B. 系统调用C.高级通信原语D.低级通信原语15.当对信号量进行V源语操作之后,_C__.A.当S<0,进程继续执行B.当S>0,要唤醒一个就绪进程C. 当S<=0,要唤醒一个阻塞进程D. 当S<=0,要唤醒一个就绪16.对临界区的正确论述是__D_.A.临界区是指进程中用于实现进程互斥的那段代码B. 临界区是指进程中用于实现进程同步的那段代码C. 临界区是指进程中用于实现进程通信的那段代码D. 临界区是指进程中访问临界资源的那段代码17. __A__不是进程之间的通信方式.A.过程调用B.消息传递C.共享存储器D.信箱通信18. 同步是指进程之间逻辑上的__A__关系.A.制约B.调用C.连接D.排斥19.正在运行的进程在信号量S上作P操作之后,当S<0,进程将进入信号量的__A__.A.阻塞队列B.提交队列C.后备队列D.就绪队列20.某个信号量S初值为3,当前值为-2,则等待在该信号量上的进程数为_B__个.A.1B.2C.3D.521.管理若干进程共享某一资源的相关临界区应满足三个要求,其中__A__不考虑.A一个进程可以抢占己分配给另一进程的资源B.任何进程不应该无限地逗留在它的临界区中C.一次最多让一个进程在临界区执行D.不能强迫一个进程无限地等待进入它的临界区22、_C__是只能由P和v操作所改变的整型变量.A共享变量B.锁 C.整型信号量D.记录型信号量23.对于整型信号量,在执行一次P操作时,信号量的值应_C__.A.不变B.加1C减1D.减指定数值24.在执行v操作时,当信号量的值__D_时,应释放一个等待该信号量的进程.A>0B.<0c.>=0D.<=025.Pv操作必须在屏蔽中断下执行,这种不可变中断的过程称为_B__.A初始化程序B.原语c.子程序D控制模块26.进程间的互斥与同步分别表示了各进程间的__A__.A.竞争与协作B.相互独立与相互制约c.不同状态D.动态性与并发性27.并发进程在访问共享资源时的基本关系为_B__.A.相互独立与有交往的B.互斥与同步C并行执行与资源共享D信息传递与信息缓冲28.在进程通信中,_B__常用信件交换信息.A.低级通信B.高级通信C.消息通信D.管道通信29.在间接通信时,用send<N,M>原语发送信件,其中N表示_C__.A.发送信件的进程名B.接收信件的进程名 C.信箱名D.信件内容30.实现进程互斥时,用_C__对应,对同一个信号量调用Pv操作实现互斥.A.一个信号量与一个临界区B.一个信号量与—个相关临界区C.一个信号量与一组相关临界区 D.一个信号量与一个消息31.实现进程同步时,每一个消息与一个信号量对应,进程__D_可把不同的消息发送出去. A.在同一信号量上调用P操作B在不同信号量上调用P操作在同一信号量上调用v操作D.在不同信号量上调用v操作32.临界区是指__D_.A.并发进程中用于实现进程互斥的程序段B.并发进程中用于实现进程同步的程序段C.并发进程中用户实现进程通信的程序段D.并发进程中与共享变量有关的程序段33.相关临界区是指__D_.A.一个独占资源B.并发进程中与共享变量有关的程序段C.一个共享资源D.并发进程中涉与相同变量的那些程序段34.P、V操作是__A__.A.两条低级进程通信原语B.两组不同的机器指令C.两条系统调用命令D.两条高级进程通信原语35.对进程的管理和控制使用_B__.A.指令B.原语C.信号量D.信箱通信用P、V操作管理临界区时,信号量的初值应定义为_C__.A.一1B.0C.1D.任意值37.用V操作唤醒一个等待进程时,被唤醒进程的状态变为_B__.A.等待B.就绪C.运行D.完成38.进程间的同步是指进程间在逻辑上的相互_B__关系.A.联接B.制约 C.继续D.调用39.__D_是一种只能进行P操作和V操作的特殊变量.A.调度B.进程C.同步D.信号量40.用P、V操作可以解决__A__互斥问题.A.一切B.某些C.正确D.错误41.对于两个并发进程,设互斥信号量为mutex,若mutex=0,则_B__.A.表示没有进程进入临界区B.表示有一个进程进入临界区C.表示有一个进程进入临界区,另一个进程等待进入D.表示有两个进程进入临界区42.两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来消息,或者建立某个条件后再向前执行,这种制约性合作关系被称为进程的__A__.A.同步B.互斥C.调度D.执行43.为了进行进程协调,进程之间应当具有一定的联系,这种联系通常采用进程间交换数据的方式进行,这种方式称为__D_.A.进程互斥B.进程同步C.进程制约D.进程通信44. 两个进程合作完成一项任务.在并发执行中,一个进程要等待其合作伙伴发来消息,或建立某个条件后再运行,这种制约性合作关系被称为进__A__.A.同步B.执行C.互斥D.调度45. 为了进行进程协调,进程之间应当具有一定的联系,这种联系通常采用进程间交换数据的方式进行,这种方式通常称为_C__.A. 进程互斥B. 进程同步C. 进程通信D. 进程制约46.不是信号量能实现的功能是__D_.A.进程同步B.进程互斥C.执行的前趋关系D.进程的并发执行47. 若P、V操作的信号量S初值为2,当前值为-1,则表示有_B__等待进程.A.0个B.1个C.2个D.3个在进程通信中,常_C__通过变量、数组形式来实现.A.高级通信B.消息通信C.低级通信D.管道通信49.管道通信是以_B__进行写入和读出.A.消息为单位B.自然字符流C.文件D.报文50.进程间的基本关系为_B__.A.相互独立与相互制约B.同步与互斥C.行执行与资源共享D.信息传递与信息缓冲二.填空题<50空>1. 进程的_顺序性_____是指进程在顺序处理器上的执行是按顺序进行的.2.当一个进程独占处理器顺序执行时,具有__封闭性____和__可再现件____两个特性. 3.进程的封闭性是指进程的执行结果只取决于__进程本身____,不受外界影响.4.进程的可再现性是指当进程再次重复执行时,必定获得___相同___的结果.5.一个进程的工作在没有全部完成之前,另一个进程就可以开始工作,则称这些进程为__可同时执行的___.6.临界区是指并发进程中与__共享变量____有关的程序段.7.__相关临界区____是指并发进程中涉与到相同变量的那些程序段.8.只要涉与相同变量的若干进程的相关临界区__互斥执行____,就不会造成与时间有关的错误.9.进程的___互斥___是指当有若干进程都要使用某一共享资源时,任何时刻最多只允许一个进程去使用.10.Pv操作是在一个信号量上进行的__不可被中断____的过程,这种过程也称为__原语___. 11.利用P、v操作管理相关临界区时,必须成对出现,在进入临界区之前要调用__ P操作____,在完成临界区操作后要调用__ v操作____.12.进程的___同步___是指并发进程之间存在一种制约关系,一个进程的执行依赖另一个进程的消息.13.__同步机制____能把它进程需要的消息发送出去,也能测试自己需要的消息是否到达. 14.P、v操作不仅是实现___进程互斥___的有效工具,而且也是一种简单而方便的___同步___工具.15.用P、v操作实现进程同步时,调用___ P操作___测试消息是否到达,调用__ v操作____发送消息.24.用P、v操作实现生产者消费者之间的同步时,在访问共享缓冲区的__前____和__后____分别调动P操作和v操作.16.进程的互斥实际上是进程__同步____的一种持殊情况.17.进程的互斥是进程间___竞争___共享资源的使用权,其结果没有__固定的必然关系____,而进程的同步则在共享资源的并发进程之间有一种__必然的____依赖关系.18.Pv操作也可看作为进程间的一种通信方式,由于只交换了少量的信息,故称为__低级通信方式____19.通过专门的通信机制实现进程间交换大量信息的通信方式称为__进程通信____. 20.采用高级通信方式时,进程间用__信件____来交换信息.21.最基本的通信原语有两条,它们是__ send ____原语和___ receive ___原语.22.进程通信方式有两种:__直接通信____和_间接通信_____.23.直接通信是固定在__一对____进程之间通信,而间接通信以信箱为媒体实现通信. 24.一个信息可以由__信箱说明____和__信箱体____两部分组成.25.进程间通过信件交换信息,可实现___进程同步___.26.并发带来的问题全局变量的共享问题、操作系统很难最佳的管理资源的分配、定位程序的错误很困难、保证进程执行结果的正确性.27.并发原理有并发带来的问题、进程的交互、进程互斥、进程同步.28.管理的结构有条件变量、管理的结构.29.进程通信表现在效率低、通信对用户不透明.30.Monitors:管程.三.名词解释<20题>1.进程通信:进程之间的信息交换.2.临界区:操作系统中把并发进程中访问临界资源那段代码.3.临界资源:操作系统中将一次仅允许一个进程访问的资源.4.进程同步:指多个进程中发生的事件存在着某种时序关系必须协同动作、相互配合,以共同完成一个任务.5.信号量机制:它是一种公认的卓有成效的进程同步机制.6.管程:一个共享资源的数据结构以与一组能为并发进程在其上执行的针对该资源的一组操作,这组操作能同步进程和改变管程中的数据.7.CWAIT<C>:调用进程的执行在条件C上挂起,管程现在可被另一个进程使用.8.CSIGNAL<C>:恢复在cwait上因为某些条件而挂起的进程的执行.9.Message:报文.10.Client/Server Interaction:客户∕服务器交换.11.单向通信:只允许发送进程向接收进程发送消息,反之不行.12.双向通信:允许一个进程向另外一个进程发送消息,也可以反过来由另一个进程向发过消息的进程回送消息.13.点对点方式:用一条链路将两个进程连接,通信的完成只与这两个进程有关.14.多点方式:用一条链路连接多个进程〔>2〕.15.无容量通信链路:通信链路上没有用于暂存数据的缓冲区,因而不能暂存任何消息.16.有容量通信链路:通信链路中设置了缓冲区,因而可以暂存数据,缓冲区的数目越大,通信链路的容量越大.17.链路的容量:通信链路上是否有用于暂存数据的缓冲区.18.阻塞方式:操作方要等待操作结束,才能继续执行.19.非阻塞方式:操作方在提交后立即返回,不需要等待.20.管道:指用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件,又称为pipe 文件.四.简答题<20题>以下进程之间存在相互制约关系吗?是什么制约关系?为什么?⑴几个同学去图书馆借同一本书;⑵篮球比赛中两队同学争抢篮板球;⑶果汁流水线生产中捣碎、消毒、灌装、装箱等、各道工序;⑷商品的入库和出库;⑸工人做工与农民种粮.答:〔1〕答:存在互斥关系,因为同一本书只能借给一个同学.〔2〕答:存在互斥关系,因为篮球只有一个,两队只能有一个队抢到球〔3〕答:存在同步关系,因为最后一道工序的开始依赖于前一道工序的完成.〔4〕答:存在同步关系,因为商品若没有入库就无法出库,若商品没有出库,装满了库房,也就无法再入库.〔5〕答:工人与农民之间没有相互制约关系.说明PV存在为什么要设计成原语?答:用信号量S表示共享资源,其初值为1表示有一个资源.设有两个进程申请该资源,若其中一个进程先执行P操作.P操作中的减1操作有3跳与其指令组成:去S送寄存器R;R-1送S.若P操作不用原语实现,在执行了前述三条指令中的2条,即还未执行R送S时〔此时S值仍为1〕,进程被剥夺CPU,另一个进程执行也要执行P操作,执行后S的值为0,导致信号量的值错误.正确的结果是两个进程执行完P操作后,信号量S的值为-1,进程阻塞.设有一个售票大厅,可容纳200人购票.如果厅内不足200人,则允许进入,超过则在厅外等候;售票员某时只能给一个购票者服务,购票者买完票后就离开.试问:⑴购票者之间是同步关系还是互斥关系?⑵用PV操作描述购票者的工作过程.答:购票者之间是互斥关系.<2> semaphore empty=200;semaphore mutex=1;void buyer<>{P<empty>;P<mutex>;购票;V<mutex>;V<empty>;}分析生产者消费者问题中多个P操作颠倒引起的后果.答:semaphore mutex=1;semaphore empty=n;semaphore full=0;int i,j;ITEM buffer[n];ITEM data_p,data_c;void producer<>void consumer<>{while<true>{while<true>{produce an item in data_p;{P<full>;P<mutex>;P<mutex>;P<empty>;data_c=buffer[j];buffer[i]=data_p;j=<j+1>%n;i=<i+1>%n;V<mutex>;V<mutex>;V<empty>;V<full>;}consume the item in data_c}}}请简述进程的互斥与同步之间的异同.答:进程的同步与互斥是指进程在推进时的相互制约关系.为了保证进程的正确运进程之间的制约关系体现为:进程的同步和互斥.进程同步:它主要源于进程合作,是进程间共同完成一项任务时直接发生相互作用的关系.为进程之间的直接制约关系.在多道环境下,这种进程间在执行次序上的协调是必不可少的.行以与相互合作的进程之间交换信息,需要进程之间的通信.进程互斥:主要源于资源共享,是进程之间的间接制约关系.6.什么是进程的顺序性和并发性?答:进程的顺序性是指进程在顺序的处理器上严格地按顺序执行.若系统中存在一组可同时执行的过程,则该组程序具有并发性.可同时执行的进程是指这些进程执行时在时间上是重叠的,即一个进程的工作没有全部完成之前,另一个进程就可以开始工作.7.为什么并发进程执行时可能会产生与时间有关的错误?如何避免?答:有交往的并发进程可能会同时使用共享资源,如果对这种情况不加控制,由于进程占用处理器的时间、执行的速度和外界的影响等,就会引起与时间有关的错误.只要使若干并发进程的相关临界区互斥执行,就可避免造成这类错误.8.简述临界区的相关临界区的概念.答:临界区是指并发进程中与共享变量有关的程序段.相关临界区是指并发进程中涉与到相同变量的那些程序段.9.管理相关临界区有些什么要求?答:管理相关临界区有三点要求:<1>一次最多让一个进程在临界区执行;<2>任何一个进入临界区执行的进程必须在有限的时间内退出临界区;<3>不能强迫一个进程无限地等待进入它的临界区.10.用Pv操作实现进程间同步与互斥应注意些什么?答:<1>对每一个共享资源<含变量>都要设立信号量,互斥时对一个共享资源设一个信号量,同步时对一个共享资源可能要设两个或多个信号量,视由几个进程来使用该共享变量而定.<2>互斥时信号量的初值可大于或等于1,同步时,至少有一个信号量的初值大于等于1.<3>Pv操作一定要成对调用,互斥时在临界区前后对同一信号量作Pv操作,同步时则对不同的信号量作Pv操作,Pv操作的位置一定要正确.<4>对互斥和同步混合问题.PV操作可能会嵌套,—般同步的Pv操作在外,互斥的Pv操作在内.11.何谓进程通信?最基本的通信原语有哪些?答:通过专门的通信机制实现进程间交换大量信息的通信方式称为进程通信.最基本的通信原语有send原语和receive原语,前者负责发送信件,后者负责接收信件.12.直接通信与间接通信有何区别?答:直接通信是固定在一对进程间进行的,而间接通信时以信箱为媒体实现通信.因此在send 和receive原语中,第一个参数互不相同.直接通信时分别为接收者进程名和发送者进程名,而间接通情时均为信箱名.13.线程与进程的根本区别是什么?答:在采用线程技术的操作系统中,线程与进程的根本区别在于:进程是资源的分配单位,而线程是调度和执行单位.并发带来的问题有哪些?答:①全局变量的共享问题②操作系统很难最佳的管理资源的分配③定位程序的错误很困难④保证进程执行结果的正确性.进程交互的3中情况?答:①进程之间不知道对方的存在.②进程间接知道对方.③进程直接知道对方存在.临界区有哪些进入原则?答:①空闲让进.②忙则等待.③让权等待.④有限等待.对共享资源的读写操作的限制条件是什么?答:⑴允许任意多的读进程同时读.⑵一次只允许一个写进程进行写操作.⑶如果有一个写进程正在进行写操作,禁止任何读进程进行读操作.在生产者―消费者问题中需要注意以下几个问题?答:⑴把共享缓冲区池中的N个缓冲区视为临界资源,进程在使用时,首先要检查是否有其他进程在临界区,如果确认没有时再进入.⑵信号量full表示有数据的缓冲区的数量,初值为0.⑶多个P操作的次序不能颠倒.管程的特征有哪些?答:⑴管程内部的局部变量只能通过管程中的过程进行访问,其他任何外部过程都不能对其进行访问.⑵进程只能通过调用管程的某一个过程才能进入管程,这样可以保证所有进入管程的进程有统一的入口.⑶任何时刻,只能有一个进程在管程中执行,其他调用管程的任何进程都被挂起,以等待管程变为可用,即对管程实施互斥访问.进程通信主要表现在那些方面?答:⑴效率低.。

第3章 进程同步与通信2

第3章 进程同步与通信2

进程写管道
进程向管道写数据时,可能有以下两种情况:
管道中有足够的空间存放要写的数据,此时每写 一数据块后核心便自动增加地址项的大小.写操 作完成后,核心修改索引节点中的写指针,并唤 醒所有因该管道空而睡眠等待的读进程. 管道中无足够的空间存放要写入的数据,此时核 心对该索引节点作标记后让写进程睡眠,等待数 据从管道中排出.上述情况的一个例外是,当进 程写的数据量大于管道的容量时,核心将尽可能 多的数据写到管道中,然后使进程睡眠,直到获 得更多的空间.
pipe文件的建立 文件的建立
pipe系统调用建立一个无名管道.其语法格式如下:
int pipe(fdes); int fdes[2];
核心创建一个管道时须完成下述工作:
分配磁盘和内存索引节点. 为读进程和写进程分配文件表项. 分配用户文件描述符.在读进程和写进程的用户文件描述 符表中,分别分配一个表项,并将文件描述符fdes[0]和 fdes[1]分别返回给读进程和写进程.
设置信号的处理方式
系统调用signal用于设置信号的处理方式.其 语法格式如下: void (* func)( ) signal(sig,func) 其中,func为收到软中断信号sig后进程希望 调用函数的地址. 19类信号如表所示.
func的取值情况
func的取值可以分成三种情况:
func=1时,进程对信号sig不予理睬. func=0时,即缺省处理,对大多数软中断信号的 缺省处理是终止进程. func为其他整数值时,它的值是指向信号处理程 序的指针.
管道通信示意图1
初始时,其长度为4,系统将管道看成一个循环 队列.按先进先出的方式读写.
A out B C D in
写入字符E后,管道长度为5
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.1.2
临界区(critical sections)
3. 有限等待 对要求访问临界资源的进程,应保证进程能在有限时 间进入临界区,以免陷入“饥饿”状态。 4. 让权等待 当进程不能进入自己的临界区时,应立即释放处理机 ,以免进程陷入忙等。
3.1.3
利用软件方法解决进程互斥问题
问题:有二个进程Pi和Pj互斥共享临界资源R, begin parbegin Pi; Pj; parend end
Pi: repeat while flag[j] do no_op; flag[i]:=true; critical_section; flag[i]:=false; remainder section; until false
Pj: repeat while flag[i] do no_op; flag[j]:=truபைடு நூலகம்; critical_section; flag[j]:=false; remainder section; until false
第三章 进程的同步与通信
内容 进程同步的基本概念 信号量机制 经典进程同步问题
第三章 进程的同步与通信
目的及要求
理解临界资源和临界区的概念,初步领会进程同步机制 应遵循的准则; 理解和掌握整型信号量和记录型信号量机制; 熟练掌握利用信号量机制解决经典进程同步问题;
第三章 进程的同步与通信
3.1.4
利用硬件方法解决进程互斥问题
一.利用Test-and-Set指令实现互斥
1. Test-and-Set指令 在许多机器中都有这样的指令,不同机器的相应指令的 功能是相同的,因而我们不局限于某特定的机器去定义 Test-and-set指令为 function TS(var lock:boolean):boolean; begin TS:=lock; lock:= true; end 其中,lock有两种状态:当lock= false时,表示该资 源空闲;当lock= true时,表示该资源正在被使用。
3.1.3
利用软件方法解决进程互斥问题
三.算法3:双标志、后检查
1. 为了解决这一问题,在算法3中仍然使用了数flag[n]
,但令flag[i]= true表示进程Pi希望进入临界区,即每当
进程Pi要进入临界区前,先将flag[i] 置为ture,表示进 程Pi已要求进入临界区。 2. 然后再去查看Pj的标志。若此时 flag[j]=true,则 pi等待;否则,Pi进入临界区。换言之,算法3是使要进入 临界区的进程先设置其要求进入的标志,然后,再去查看 其它进程的标志。
entry section critical section exit section remainder section
3.1.2
临界区(critical sections)
二.同步机制应遵循的准则
用于保证多个进程在执行次序上的协调关系的相应机制称 为进程同步机制。 1. 空闲让进 当无进程进入临界区时,相应的临界资源处于空闲状 态,因而允许一个请求进入临界区的进程立即进入自己的 临界区。 2. 忙则等待 当已有进程进入自己的临界区时,即相应的临界资源 正被访问,因而其它试图进入临界区的进程必须等待,以 保证进程互斥地访问临界资源。
3.1.3

利用软件方法解决进程互斥问题
该算法可确保每次只允许一个进程进入临界区。但是,强 制两个进程轮流地进入临界区,很容易造成资源利用不充 分。 例如,当进程只退出临界区后将 turn置为j,以便允许 P j进入临界区。但如果进程Pj暂时并未要求访问该临界资 源,而Pi又想再次访问该资源,但它却无法进入临界区。 可见,此算法不能保证实现“空闲让进”的准则l。
3.1.1
临界资源(Critical Resources)
象打印机这类资源一次只允许一个进程使用的资源称为 临界资源。属于临界资源有硬件打印机、磁带机等,软件在消 息缓冲队列、变量、数组、缓冲区等。当然还有一类象磁盘等 资源,它允许进程间共享,即可交替使用,所以它称为共享资 源,而临界资源又称独享资源。 进程在并发执行时为了保证结果的可再现性,各进程执行 序列必须加以限制以保证互斥地使用临界资源,相互合作完成 任务。
3.1.2
临界区(critical sections)
一.临界区的定义与进入
1. 临界区(critical section):进程中访问临界资源的一 段代码。 2. 进入区(entry section):在进入临界区之前,检查可否 进入临界区的一段代码。如果可以进入临界区,通常设 置相应“正在访问临界区”标志 3. 退出区(exit section):用于将“正在访问临界区”标志 清除。 4. 剩余区(remainder section):代码中的其余部分。
3.1.4
利用硬件方法解决进程互斥问题
完全利用软件方法来解决诸进程互斥进入临界区 的问题,有一定难度,且有很大局限性,因而现代已 很少采用此方法。 针对这一点,现在有许多计算机已提供了一些特 殊的硬件指令,这些指令允许对一个字中的内容进行 检测和修正,或交换两个字的内容等。可利用这些特 殊的指令来解决临界区问题。 下面介绍两条特殊硬件指令,以及利用它们来解 决临界区问题的方法。
3.1.3
利用软件方法解决进程互斥问题
Pi: repeat flag[i]:=true; turn:=j; while (flag[j] and turn=j) do no_op; critical_section; flag[i]:=false; remainder section; until false Pj: repeat flag[j]:=true; turn:=i; while (flag[i] and turn=i) do no_op; critical_section; flag[j]:=false; remainder section; until false
3.1.3
利用软件方法解决进程互斥问题
一.算法1:单标志
设置一个公用整型变量turn,用于指示被允许进入临界区 的进程的编号,即若turn=i,表示允许进程Pi 进入临界区。 Pi进程: Pj进程:
repeat while turn≠i do no op; Critical section turn:=j; Remain Section until false repeat while turn≠j do no op; Critical section turn:=i; Remain Section until false
3.1.3
利用软件方法解决进程互斥问题
四.算法4:先修改、后检查、后修改者等待
1. 该算法是组合了算法1和算法3中的关键概念而形成的
2.
3. 4. 5.
新算法为每个进程设置了相应的标志位flag[i],当flag[i]=true 时,表示进程Pi要求进入临界区。
此外,还设置了一个turn变量,用于指示允许进入临界区的进程 编号。 进程Pi 为了进入临界区先置flag[i]为true,并置turn为j,表示 应轮到进程j进入临界区。 接下去再判别flag[j] and turn=j的条件是否满足。若未满足即f alse,则可进入临界区;否则等待。或者说,当 flag[j]=false 或者turn= i时,进程pi可以进入临界区。前者表示pj未要求进入 临界区,后者表示仅允许Pi进入临界区。
重点
临界资源和临界区的概念; 记录型信号量机制; 利用信号量机制解决经典进程同步问题;
难点
利用软件方法解决进程互斥问题; 利用信号量机制解决经典进程同步问题;
3.1

进程同步的基本概念
资源共享关系 (Cooperation Among Processes by Sharing)
3.1.3
利用软件方法解决进程互斥问题
Pi: Pj: repeat repeat flag[i]:=true; flag[j]:=true; while flag[j] do no_op; while flag[i] do no_op; critical_section; critical_section; flag[i]:=false; flag[j]:=false; remainder section; remainder section; until false until false
3.1.4
利用硬件方法解决进程互斥问题
2. 利用TS实现进程互斥 为了实现诸进程对临界资源的互斥访问,可为每个临界 资源设置一个布尔变量 lock,并赋予其初值为false,以 表示资源空闲。 利用TS指令实现互斥的Pi进程可描述为:
repeat
while TS(lock) do no-loop; critical section; lock:= false; remainder section until false;
在某些进程之间还存在合作关系,例如一个程序的输入、计算、打印三 个程序段作为三个进程并发执行,由于这三个进程间存在着相互合作的关系 ,即先输入再计算、最后再打印的关系,所以这三个进程在并发执行时推进 序列受到限制,要保证其合作关系正确,进程间这种关系称为同步关系
3.1
进程同步的基本概念
3.1.1 临界资源 3.1.2 临界区 3.1.3 利用软件方法解决进程互斥问题 3.1.4 利用硬件方法解决进程互斥问题
3.1.4
利用硬件方法解决进程互斥问题
2. 利用Swap实现进程互斥
在利用Swap实现进程互斥时,可为临界资源设置一个全局布尔 变量lock,其初值为false(表示可用),在每个进程中再利用一个 局部布尔变量key。利用 Swap指令实现进程互斥的Pi进程可描述 为: repeat key:=true; 利用硬件指令能有效地实现过程互斥, repeat 但它却不能满足“让权等待”的准则, Swap(lock,key); 造成处理机时间的浪费, until key=false; 而且也很难将它用于解决较复杂的进程同步 问题。 critical section; lock:= false; remainder section until false;
相关文档
最新文档