第三章进程管理课后习题答案
第三章 进程 习题

G,若系统中并发运行的进程和资源之间满足互斥使用,保持和等待,非剥夺性和循环等待,则可判定系统中发生了死锁;
H,在对付死锁的策略中,解除死锁通常都是和检测死锁配套使用;
I,产生死锁的原因可归结为竞争资源和进程推进顺序不当;
J,在死锁的解决方法中,由于避免死锁采用静态分配资源策略,所以对资源的利用率不高.
如果某一进程获得除CPU外的所有所需运行资源,经调度,分配给它CPU,该进程将进入( ).
A,就绪状态B,运行状态
C,等待状态D,活动状态
如果某一进程在运行时,因某种原因暂停,此时将脱离运行状态,而进入( ).
A,自由状态B,停止状态
C,等待状态D,静止状态
进程从运行状态变为等待状态的原因是( ).
A,共享资源B,临界区
C,临界资源D,共享区
答案-1:C
临界区是指( ).
A,并发进程中用于实现进程互斥的程序段
B,并发程序中用于实现进程同步的程序段
C,并发程序中用于实现进程通信的程序段
D,并发程序中与共享变量有关的程序段
答案-6:D
进程是( ).
A,与程序等效的概念B,并发环境中程序的执行过程
C,一个系统软件D,存放在内存中的程序
在进程通信中,使用信箱方式交换信息的是( ).
A,低级通信B,高级通信C,共享存储器通信D,管道通信
答案:B(普通)
关于进程,下列叙述不正确的是( ).
A,进程包含了数据和运行其上的程序
B,同一个程序运行在不同的数据集合上时,构成了不同的进程
C,一个被创建了的进程,在它消亡之前,总是处于3种基本状态之一
(×)2,具有多道功能的操作系统一定是多用户操作系统.
计算机操作系统课后答案

计算机操作系统课后答案计算机操作系统课后答案第一章:操作系统概述1.1 操作系统的定义与作用操作系统是计算机系统中的核心软件,负责管理和控制计算机硬件资源,为用户和应用程序提供统一的接口和服务。
1.2 操作系统的发展历程操作系统的发展经历了批处理系统、分时系统、实时系统和网络操作系统等阶段,逐步提高了计算机的效率和可靠性。
1.3 操作系统的功能和特点操作系统的功能包括进程管理、内存管理、文件管理和设备管理等。
其特点包括并发性、共享性、虚拟性和异步性等。
第二章:进程管理2.1 进程的概念和属性进程是程序在执行过程中的一个实例,具有独立的地址空间和执行状态。
2.2 进程的调度算法常见的进程调度算法有先来先服务调度、短作业优先调度、高响应比优先调度和时间片轮转调度等。
2.3 进程同步与通信进程同步是指协调多个进程之间的执行顺序,进程通信是指进程之间的数据交换和共享。
第三章:内存管理3.1 内存管理的基本概念内存管理包括内存的分配和回收,以及地址转换和内存保护等操作。
3.2 内存分配的算法常见的内存分配算法有首次适应、最佳适应和最坏适应等。
3.3 虚拟内存的实现原理虚拟内存通过将主存和辅存进行映射,将不常用的数据和程序置换到辅存中,以提高内存利用率。
第四章:文件管理4.1 文件的概念和组织方式文件是存储在存储介质上的数据集合,文件组织方式包括顺序文件、索引文件和哈希文件等。
4.2 文件共享与保护文件共享是指多个进程可以同时访问同一个文件,文件保护是指对文件进行权限和访问控制。
4.3 文件系统的实现原理文件系统通过文件目录和文件控制块来管理文件和目录的存储和访问。
第五章:设备管理5.1 设备管理的基本概念设备管理包括设备的分配和回收,以及设备的驱动程序和设备控制器等。
5.2 设备独立性和设备分配算法设备独立性是指操作系统对设备的不同类型进行统一管理,设备分配算法有等待队列调度和优先级调度等。
5.3 设备中断和错误处理设备中断是指设备发出的中断信号,操作系统需要及时响应并处理中断。
操作系统第二版第三章课后习题答案

第三章死锁作业答案1,3,9,11,13,14, 161.什么是死锁?试举出一个生活中发生死锁的例子。
参考答案:所谓死锁,是指在一个进程集合中的每个进程都在等待仅由该集合中的另一个进程才能引发的事件而无限期地僵持下去的局面。
(也可以是:多个进程因竞争资源而造成的一种僵局,若无外力作用这些进程都将永远不能再向前推进。
)举例:1)书中例子“两辆汽车过窄桥发生冲突”2)公共汽车到站,车上的人要下车,车下的人要上车,挤在车门口。
结果是车上的人下不来,车下的人上不去。
3. 发生死锁的四个必要条件是什么?参考答案:发生死锁的四个必要条件是:互斥条件、占有且等待条件、不可抢占条件和循环等待条件。
9. 设想有一条带闸门的运河,其上有两座吊桥,它们在一条公路上,运河和公路的交通都是单方向的。
河上的交通工具是轮船。
当轮船距A桥100m时就鸣笛警告,若桥上无车辆,吊桥就吊起,直至轮船尾部过桥为止。
对吊桥B也做同样处理。
设轮船的长度为200m。
车辆和轮船任意前进时,是否会发生死锁?若会,说明理由。
怎样发现?并请提出一种防止死锁的办法。
参考答案:会产生死锁。
当轮船距A桥100m时鸣笛警告,此时若桥上无车辆,吊桥就吊起,但是B桥上有车辆,而且由于A桥吊起,车辆无法前进,B桥上的车辆无法下桥。
于是,轮船和车辆都不能前进,造成死锁现象。
一种防止死锁的办法是:当轮船距A桥100m时就鸣笛警告,车辆不能再上B桥。
当B桥上无车辆时,就吊起B 桥;然后,当A桥上无车辆,则吊起A桥。
轮船通过A桥和B桥后,两个吊桥放下,车辆可以通行。
(该方法相当于资源有序分配,也可以采用资源预分配策略,即同时吊起A、B两桥的方法,资源利用率相对较低。
)11. 死锁和“饥饿”之间的主要差别是什么?参考答案:①处于死锁状态的进程都占有一定的资源,而处于饥饿状态的进程永远都得不到所申请的资源②死锁是一种僵局,在无外力干预下,处于死锁状态的全部进程都不能前进,即它们都处于阻塞态,可能造成整个系统瘫痪;而出现饥饿时系统照常运行,只是某个或某几个进程永远也不能得到所需的全部服务③造成死锁的根本原因是资源有限且使用不当;而造成饥饿的原因是资源分配策略或调度策略不合适,如果采用先来先服务的资源分配策略就可以避免饥饿。
进程管理习题课参考答案

一、判断题正确的答案有:3、9、16、24、25、29、31、32、40、41、47、48、49。
二、填空题1、x>5(或x>=6)2、M<=4三、简答题1、答:多道:计算机内存中同时存放几道相对独立的程序。
宏观上并行:同时进入系统的几道程序都处于运行过程中,但都未运行完毕。
微观上串行:各道程序轮流的使用CPU,交替执行。
2、答:线程是在进程内用于调度和占有处理机的基本单位,它由线程控制表、存储线程上下文的用户栈以及核心栈组成。
进程是程序的一次动态执行过程,它也是系统资源分配的基本单位,它能和其他进程并发执行。
线程与进程的主要区别:进程是资源管理的基本单位,线程只是处理机调度的基本单位。
进程进行处理机切换和调度时间较长,而线程进行处理机切换和调度时间较短,不发生资源的变化。
线程和进程一样,都有自己的状态,也有相应的同步机制,不过由于线程没有单独的数据和程序空间,因此线程没有挂起状态。
进程的调度、同步机制大多数由操作系统内核完成,而线程的控制既可以由操作系统内核进行,也可以由用户控制进行。
3、假如生产者先执行P(s)操作,获得了对缓冲区的使用权,而此时缓冲区是满的,即在执行P(empty)时发生阻塞,无法向缓冲区存数。
因它占有了缓冲区的使用权,其他生产者和消费者进程无法访问缓冲区,因此产生了死锁。
4、若干进程访问一个不可共享的资源,这些资源称为临界资源。
使用临界资源的那一段程序称为临界区。
四、解答题1、答(1)因为S的当前值是-3,因此因为S处于阻塞状态的进程有3个;(2)因为每进行一次P(S)操作,S的值都减1,每执行1次V操作S的值加1,故信号量的初值为-3+5-2=0;2、设4个信号量:mux=1 (实现六个进程的互斥访问缓冲区)empty=2; (P1,P2进程可用的缓冲区数目)full1=0; (进程P1送往缓冲区的信息);full2=0; (进程P2送往缓冲区的信息);P1: P(empty);P (mux);WriteMessage( );V(mux);V(full1);P2: P(empty);P (mux);WriteMessage( );V(mux);V(full2);P11与P12:P(full1);P(mux);ReadMessage( );V(mux);V(empty);P21与P22:P(full2);P(mux);ReadMessage( );V(mux);V(empty);3、1)共需设置N个学生进程,1个教师进程2)信号量:mutex=1;in=out=0;wait=0;Student[i]{ P(mutex)进入考场V(mutex)V(in);P(wait)答卷子V(out);}Teacher{ for i=1 to NP(in);发卷子for i=1 to NV(wait);等待学生们交卷;for i=1 to NP(out);收齐卷子,离开考场}4、安全状态P1-> P3-> P4-> P0-> P2 (答案不唯一)5、P、V操作实现程序如下:student:=0;computer:=2m;enter:=0;finish:=0;test(i):=0;parbeginStudent i: BeginV(student); /*表示有学生到达,通知gateguard进程*/P(enter); /*学生是否可进入*/上机实习;V(finish); /*实习结束,通知教师,有需要检查的学生*/P(test(i)); /*等待教师检查完毕*/V(computer); /*释放计算机资源}End;.Teacher:BeginrepeatP(finish); /*是否有需要检查的学生,等待实习完成*/P(finish); /*是否有需要检查的学生,等待实习完成*/选出可检查的第i组学生;检查第i组学生实习结果;V(test(i)); /*检查完成*/V(test(i)); /*检查完成*/until falseEnd;Gategard:Beginrepeat.P(student); /*等待学生到达*/P(student); /*等待另一学生到达*/P(computer); /*是否有可用的计算机*/P(computer); /*是否有可用的计算机*/分配计算机;V(enter); /*设置学生1可进入标志*/V(enter); /*设置学生2可进入标志*/untile falseEnd;Parend;。
操作系统原理-第三章进程管理习题(1)

第三章进程管理习题一. 单选题1. UNIX操作系统的进程控制块中常驻内存的是()。
A.proc结构B.proc结构和核心栈C.ppda区D.proc结构和user结构2. 当()时,进程从执行状态转变为就绪状态。
A.进程被调度程序选中B.时间片到C.等待某一事件D.等待的事件发生3.在进程状态转换时,下列()转换是不可能发生的。
A.就绪态→运行态B.运行态→就绪态C.运行态→阻塞态D.阻塞态→运行态4.下列各项工作步骤中,()不是创建进程所必需的步骤。
A.建立一个PCBB.作业调度程序为进程分配CPUC.为进程分配内存等资源D. 将PCB链入进程就绪队列5.下列关于进程的叙述中,正确的是()。
A.进程通过进程调度程序而获得CPU。
B.优先级是进行进程调度的重要依据,一旦确定不能改变。
C.在单CPU系统中,任一时刻都有1个进程处于运行状态。
D.进程申请CPU得不到满足时,其状态变为等待状态。
6.从资源管理的角度看,进程调度属于()。
A.I/O管理B.文件管理C.处理机管理D.存储器管理7.下列有可能导致一进程从运行变为就绪的事件是()。
A.一次I/O操作结束B.运行进程需作I/O操作C.运行进程结束D.出现了比现运行进程优先权更高的进程8.一个进程释放一种资源将有可能导致一个或几个进程()。
A.由就绪变运行B.由运行变就绪C.由阻塞变运行D.由阻塞变就绪9.一次I/O操作的结束,有可能导致()。
A.一个进程由睡眠变就绪B.几个进程由睡眠变就绪C.一个进程由睡眠变运行D.几个进程由睡眠变运行10.当一个进程从CPU上退下来时,它的状态应变为()。
A.静止就绪B. 活动就绪C. 静止睡眠D. 活动睡眠11.为使进程由活动就绪变为静止就绪,应利用()原语?** B. ACTIVE C. BLOCK D. WAKEUP12.在下面的叙述中,不正确的是()。
A.一个进程可创建一个或多个线程B.一个线程可创建一个或多个线程C.一个线程可创建一个或多个进程D.一个进程可创建一个或多个进程13. 若系统中只有用户级线程,则处理机调度单位是()。
操作系统-徐甲同 2版 习题答案 第三章进程-死锁

计算机操作系统
第三章 进程管理
3.破坏“循环等待”条件 采用资源有序/顺序分配法: 把系统中所有资源编 号, 进程在申请资源时必须严格按资源编号的递增次 序进行,否则操作系统不予分配。打破环。 例如:1,2,3,…,10
计算机操作系统
第三章 进程管理
R1
A
B
此列子表明; 进程竞争资源有可能死锁。 但不一定就会死锁,这取决于各 进程的推进速度和对资源的请求 顺序。 死锁是一种与时间有关的错误。 进程竞争的资源应是互斥
R2
进程死锁例1的环路表示
3.4
计算机操作系统
第三章 进程管理
A r1
死锁的举例 例2:
进 程 A A r2 A r3 A r4 B r1 进 程 B B r2 B r3 B r4 请求 读卡 机请 求打 印机 释放 打卡 机 释放 读卡 机 读卡 机 请求 打印 机 请求 读卡 机 释放 打印 机 释放 读卡 机 打印 机
4、 Ar1 Br1 Ar2 Br2 Ar3 Ar4 Br3 Br4
3.6
计算机操作系统
第三章 进程管理
二、产生死锁的四个必要条件
1) 互斥条件(资源独占): 一个资源每次只能给一个进程使用 2) 不可剥夺条件(不可强占): 资源申请者不能强行的从资源占有者手中夺取资 源, 资源只能由占有者自愿释放 3) 请求和保持条件: (部分分配,占有申请) 在申请新的资源的同时保持对原有资源的占有。 4) 循环等待条件: 存在一个进程-等待资源环形链 {P1 , P2 , … , Pn}, 其中P1等待P2占有的资源, P2等待P3占有的资源, …, Pn等待P1占有的资源。
操作系统第四版课后习题答案

操作系统第四版课后习题答案操作系统第四版课后习题答案在学习操作系统的过程中,课后习题是巩固知识的重要环节。
本文将为大家提供操作系统第四版课后习题的答案,帮助大家更好地理解和掌握相关知识。
第一章引论1. 操作系统的定义是什么?答:操作系统是计算机系统中的一个软件,它管理和控制计算机硬件资源,为用户和应用程序提供一个简单、一致的接口。
2. 操作系统的主要功能有哪些?答:操作系统的主要功能包括进程管理、内存管理、文件系统管理、设备管理和用户接口等。
3. 解释并区分多道程序和多任务操作系统。
答:多道程序操作系统是指能够同时运行多个程序的操作系统,通过时间片轮转的方式实现程序的并发执行。
而多任务操作系统是指能够同时运行多个任务的操作系统,任务之间可以是并行执行的。
第二章进程管理1. 进程和程序的区别是什么?答:进程是程序在执行过程中的实体,包括程序计数器、寄存器和栈等,而程序是存储在磁盘上的可执行文件。
2. 什么是进程控制块(PCB)?答:进程控制块是操作系统中用来管理和控制进程的数据结构,包括进程的标识符、状态、优先级、程序计数器和寄存器等信息。
3. 进程的状态有哪些?答:进程的状态包括就绪状态、运行状态和阻塞状态。
第三章内存管理1. 什么是虚拟内存?答:虚拟内存是一种扩展内存的技术,将磁盘空间作为辅助内存来扩展物理内存的容量。
2. 什么是页面置换算法?答:页面置换算法是用于虚拟内存管理中的一种算法,当物理内存不足时,根据一定的策略选择一个页面将其从内存中置换出去,以便为新的页面腾出空间。
3. 什么是内存分配算法?答:内存分配算法是用于管理和分配内存的一种算法,包括连续分配、非连续分配和分段分页等。
第四章文件系统管理1. 文件系统的作用是什么?答:文件系统是操作系统中用于管理和组织文件的一种机制,它提供了对文件的创建、读写、删除等操作。
2. 什么是文件控制块(FCB)?答:文件控制块是操作系统中用于管理文件的数据结构,包括文件的属性、位置、大小和权限等信息。
操作系统原理与实践教程(第三版)第3章习题答案

第3章处理器管理(1) 为什么程序并发执行会产生间断性特征,并失去封闭性和可再现性?解:之所以产生间断性特征是因为多个程序在并发执行时,需要为了完成同一项任务而相互合作,并发执行的程序间的这种相互制约导致了“暂停—执行—暂停”的间断性运行规律。
失去封闭性是因为程序在并发执行时,多个程序需要共享系统中的多种资源。
所以,这些资源的状态是由多个程序改变的,从而使程序的运行失去了封闭性。
失去可再现性是因为程序在并发执行时,由于失去了封闭性,从而导致其失去可再现性。
(2) 什么是进程?为什么要在操作系统中引入进程?解:进程是可并发执行且具有独立功能的程序在一个数据集合上的运行过程,它是操作系统进行资源分配和调度的基本单位。
“进程”概念是人们为了使程序能够并发执行,并且能对并发的程序加以描述和控制而引入的。
(3) 试从并发性、独立性、动态性上比较程序和进程的不同。
解:●并发性是进程的重要特征,同时也是OS 的重要特征。
引入进程的目的正是为了使其程序能和其它进程的程序并发执行,而程序是不能并发执行的。
●独立性是指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。
而对于未建立任何进程的程序,都不能作为一个独立的单位参加运行。
●动态性是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程有一定的生命期;而程序只是一组有序指令的集合,是静态实体。
(4) 什么是PCB?它具有什么作用?为什么说PCB是进程存在的唯一标识?解:进程控制块(Process Control Block,PCB)是操作系统为了管理进程而设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程。
它的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能和其它进程并发执行的进程.因为系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
进程管理习题1现代操作系统中为什么要引入“进程”概念? 它与程序有什么区别?答:之所以要引入进程的概念,是因为在一些可以并发的程序段之间,存在着某种相互制约的关系,每个程序段的执行不仅要受到其它程序执行的制约,而且还要动态地依赖系统资源的分配情况,因此每个可以并发执行的程序段就会因外界条件的限制而不能运行,被迫处于阻塞状态。
仅用程序的概念无法表示程序的走走停停以及程序运行过程中对资源的竞争现象,因此需要采用一种动态的概念描述并发程序这种走走停停的现象,这就产生了进程的概念。
进程和程序的区别:(1)进程是程序的执行过程,是动态的过程,属于一种动态概念。
程序是一组有序静态指令和数据的集合,用来指示处理机的操作,是一种静态概念。
(2)从结构上看,每个进程实体是由程序段和相应的数据段两部分构成,并且进程结构中还要包含PCB,即进程控制块。
(3)一个进程可以涉及到一个或几个程序的执行;反之,同一程序可以对应多个进程,即同一个程序段可以在不同数据集合上运行,可以构成不同的进程。
(4)进程能真实地描述并发执行的过程,而程序仅仅是静态指令堆积的序列。
(5)进程有可创建其他进程的功能,而一般的程序不具有创建其它程序的功能。
(6)每一个程序都是在一个进程现场中运行的。
2叙述进程的并发性和制约性。
答:并发性是进程的重要特征。
即多道程序中多个进程同时向前推进的过程,没个进程总是与其它进程并发地执行的。
进程的制约性是指一个进程的运行受到另一进程的制约。
比如有的进程可能正在等待另一进程的计算结果而无法运行,或者进程所需的资源被别的进程占有而无法运行。
3进程的含义是什么? 如何构造和描述进程?答:进程是程序的一次执行。
进程由“进程控制块+程序+数据”构成,用进程控制块描述进程。
4有三个并发进程,R负责从输入设备读入信息并传送给M,M将信息加工并传送给P,P将打印输出,写出下列条件下的并发程序。
(1) 双缓冲区,每个区大小为K。
(2) 单缓冲区,其大小为K。
答:(1)双缓冲区,每个区大小为K,信号量初值如下:mutexR=mutexP=1;emptyR=emptyP=k;fullR= fullP=0;变量的初值如下:inR=outR=inP=outP=0;用类Pascal编写程序如下:varmutexR,mutexP,emptyR,fullR,emptyP,fullP: semaphere; inR,outR,inP,outP: integer;buffer: array 0..k-1 of item;bufferP: array 0..k-1 of item;procedure Rbeginwhile true dobegin输入数据data1;P (emptyR);P (mutexR);bufferR(inR):=data1;inR:=(inR+1) mod (k);V(mutexR);V(fullR);endend;procedure Mbeginwhile true dobeginP(fullR);P(mutexR);data2:=bufferR(outR);outR:=(outR+1)mod (k);V(mutexR);V(emptyR);对data2进行加工;P(emptyP);P(mutexP);bufferP(inP):=data2;inP:=(inP+1)mod (k);V(mutexP);V(fullP);endend;procedure P:beginwhile true dobeginP(fullP);P(mutexP)data3:=bufferP(outP);outP:=(outP+1)mod(k);V(mutexP);V(emptyP);打印 data3;endend;beginseminitinal(mutexR.v,1;mutexP.v,1;emptyR.v,k;fullR.v,0;em ptyP.v,k;fullP.v,0);inR:=0;outR:=0;inP:=0;outP:=0;cobeginR;M;P;coendend.(2)单缓冲区,大小为kvarempty,full,ok,mutex : semaphere;inR,outR,inP,outP : integer;buffer : array 0..k-1 of item;procedure R:beginwhile true dobegin输入数据 data1;P(empty);P(mutex);buffer(inR):=data1;inR:=(inR+1) mod (k);V(mutex);V(full)endend;procedure M:beginwhile ture dobeginP(full);P(mutex);data2:==buffer(outR);outR:=(outR+1) mod (k);V(mutex);对data2 加工;P(mutex);buffer(inP):=data2;inP:=(inP+1)mod (k);V(mutex);V(ok);endend;proedure P:beginwhile ture dobeginP(ok);P(mutex);data3:=buffer(outP);outP:=(outP+1) mod(k);V(mutex);V(empty);打印data3;end;endbeginseminitial(empty.v,k;full.v,0;ok.v,0;mutex.v,1);inR:=0;outR:=0;inP:=0;outP:=0;cobeginR;M;P;coendend.5 在生产者与消费者问题的算法中,交换两个V操作的次序会有什么结果?交换两P 操作的次序呢? 说明理由。
答:交换两P操作的次序有可能造成死锁。
例如,当无空缓冲区时,如果此时生产者先做互斥操作,即:P(mutex),然后才做同步操作P(empty),由于此时empty=-1造成生产者被阻塞。
当消费者执行到互斥操作P(mutex)时,由于生产者已执行过P(mutex)并未作释放,所以此时mutex=-1,造成消费者也被阻塞,生产者等消费者释放空缓冲区,而消费者则等待生产者释放临界资源的使用权,所以两个进程都无法向前推进而造成死锁。
交换两个V操作的次序不会发生死锁。
6 设有三个进程A、B、C,其中A与B构成一对生产者与消费者(A为生产者,B为消费者),共享一个由n个缓冲块组成的缓冲池;B与C也构成一对生产者与消费者(此时B 为生产者,C为消费者),共享另一个由m个缓冲块组成的缓冲池。
用P、V操作描述它们之间的同步关系。
答:varmutexA,emptyA,fullA,mutexC,emptyC,fullC : semaphere; i,j,a,b : integer;bufferA : array 0..n-1 of itembufferC : array 0..m-1 of item;procedure produceA:生产者进程Abeginwhile ture dobeginProduce next product;P(emptyA);P(mutexA);bufferA(i) :=products;i:=(i+1) mod(n) ;V(mutexA);V(fullA)endendprocedure consumer_procedurerB: 消费者和生产者进程B beginwhile ture dobeginP(fullA);P(mutexA);Goods:=buffer(j);j:=(j+1)mod(n);V(mutexA);V(emptyA);Consume goods and Produce next product C;P(emptyC);P(mutexC);BufferC(a):=product C;a:=(a+1) mod(m);V(mutexC);V(fullC)endend;procedure consumerC ; 消费者C进程beginwhile ture dobeginP(fullC);P(mutexC);Goods:=bufferC(b);b:=(b+1) mod(m);V(mutexC);V(emptyC);Consume product;endend;beginSeminitsal(mutexA.v,1;mutexC.v,1;emptyA.v,n;emptyC.v,m;fullA.V,0;fullC.V,0);i:=0;j:=0;a:=0;b:=0;cobeginproduce Aconsumer_procedurerB;consumerCcoendend.7 有一阅览室,共有100个座位。
读者进入时必须先在一张登记表上登记,该表为每一座位列一表目,包括座号和读者姓名。
读者离开时要消掉登记内容。
试用P、V操作描述读者进程的同步结构。
答:varmutex : semaphere;信号量,用于互斥full : semaphere; 信号量,用于同步table : array 0..n-1 of item; 登记表procedure reader; 读者进程beginP(full);P(mutex);Register_name(table);V(mutex);Reading;P(mutex);Delet_name(table);V(mutex);V(full)end;beginseminitsal(mutex.v,1; full.v,100); 初始化cobeginreader;reader;...coendend.8.引入线程的目的是什么?答:引入线程的目的是提高程序执行的并行度。
9 引入管程的目的是什么?答:引入管程的目的把分散的临界区集中起来管理,为每个可共享的资源设立一个专门的机构来统一管理各进程对该共享资源的访问。
这样使互斥操作更安全,既便于系统管理共享资源,又能保证互斥访问。
10 用管程实现读者与写者关系。
管程部分描述如下:monitor rw;condition wrt;var readcount: integer;procedure entry read _start( );beginreadcount:=readcount+1;end;procedure entry read_finish( );beginreadcount:=readcount-1;if readcount=0 then singal(wrt)end;procedure entry write( );beginif readcount>0 then wait(wrt);perform writing;endbeginreadcount:= 0endend;主程序部分:procedure writter:beginrepeatrw.write( );until false;endprocedure reader:beginrepeatrw.read_start( );perform reading;rw.read_finish( );until false;endcobeginreader;writter;coend.11 何谓进程通信?答:进程通信是指进程之间的信息交换。