第4章进程及进程管理习题四答案介绍.pdf_第1页
第4章进程及进程管理习题四答案介绍.pdf_第2页
第4章进程及进程管理习题四答案介绍.pdf_第3页
第4章进程及进程管理习题四答案介绍.pdf_第4页
第4章进程及进程管理习题四答案介绍.pdf_第5页
已阅读5页,还剩17页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

操作系统原理与 Linux 系统实验课后习题参考答案 沈华 湖北工业大学计算机学院 Email: 1 习题四参考答案(习题四参考答案(P P6969) 4-1 试解释下列名词:程序的顺序执行、程序的并发执行。试解释下列名词:程序的顺序执行、程序的并发执行。 答:答:一个程序由若干个程序段组成,而这些程一个程序由若干个程序段组成,而这些程序段的执行必须是顺序的,这种序段的执行必须是顺序的,这种 程序执行的方式就称为程序的顺序执行程序执行的方式就称为程序的顺序执行。若干个程序段同时在系统中运行,这若干个程序段同时在系统中运行,这 些程序的执行在时间上是重迭的,一个程序段的执行尚未结束,另一个程序段些程序的执行在时间上是重迭的,一个程序段的执行尚未结束,另一个程序段 的执行已经开始,即使这种重迭是很小的,也称这几个程序段是并发执行的。的执行已经开始,即使这种重迭是很小的,也称这几个程序段是并发执行的。 4-2 什么是与时间有关的错误?试举例说明。什么是与时间有关的错误?试举例说明。 答:答:当程序并发执行时,系统处于一个复杂的动态组合状态,各程序执行的相当程序并发执行时,系统处于一个复杂的动态组合状态,各程序执行的相 对速度不确定,这使得(即使初始条件相同对速度不确定,这使得(即使初始条件相同)这些程序多次并发执行得到的结)这些程序多次并发执行得到的结 果不同,其中有一个结果是正确的,而其他的是错误的果不同,其中有一个结果是正确的,而其他的是错误的。这些错误与并发程序这些错误与并发程序 执行的相对速度有关,是与时间有关的错误执行的相对速度有关,是与时间有关的错误。例如,。例如,三个并发执行程序三个并发执行程序的的誊抄誊抄。 其中,其中,get 程序负责从输入序列程序负责从输入序列 f 中读取字符,并送到缓冲区中读取字符,并送到缓冲区 s 中中;copy 程序把缓程序把缓 冲区冲区 s 中的数据复制到缓冲区中的数据复制到缓冲区 t 中去中去;put 程序从缓冲区程序从缓冲区 t 中取出数据打印。中取出数据打印。若程若程 序写出:序写出: while(誊抄未完成)誊抄未完成) cobegin copy; put; get; coend copy、 put、 get 三个程序段并发执行, 就有六种组合:三个程序段并发执行, 就有六种组合: (假设此时的状态为:(假设此时的状态为: f=(r1, r2, ., rn);s=r2,t=r1,g=(r1)) 1、copy; put; get 2、copy; get; put 3、put; copy; get 4、put; get; copy 5、get; copy; put 操作系统原理与 Linux 系统实验课后习题参考答案 沈华 湖北工业大学计算机学院 Email: 2 6、get; put; copy 易知易知,如果按照,如果按照 1 和和 2 的执行顺序可以得到正确的誊抄结果,而的执行顺序可以得到正确的誊抄结果,而 3、4、5、6 的的 执行顺序都会到错误的誊抄结果(即产生了与时间相关的错误) 。执行顺序都会到错误的誊抄结果(即产生了与时间相关的错误) 。 4-3 什么是进程?进程与程序的主要区别是什么?什么是进程?进程与程序的主要区别是什么? 答:进程,即是一个具有一定独立功能的程答:进程,即是一个具有一定独立功能的程序关于某个数据集合的一次活动。序关于某个数据集合的一次活动。 进程与程序的主要区别是:进程与程序的主要区别是: (1)程序是指令的有序集合,是一个静态概念,其本身没有任何运行的含义,)程序是指令的有序集合,是一个静态概念,其本身没有任何运行的含义, 进程是程序在处理机上的一次执行过程,是一个动态概念。进程是程序在处理机上的一次执行过程,是一个动态概念。 (2)程序作为软件资料可长期保存,而进程是有生命期的,因创建而产生、因)程序作为软件资料可长期保存,而进程是有生命期的,因创建而产生、因 调度而执行、因得不到资源而暂停、因撤消而消亡。调度而执行、因得不到资源而暂停、因撤消而消亡。 (3)程序是记录在介质上指令的有序集合,而进程则由程序、数据和进程控制)程序是记录在介质上指令的有序集合,而进程则由程序、数据和进程控制 块块 3 部分组成。部分组成。 (4)进程与程序之间无一一对应关系。不同的进程可以包含同一程序,同一程)进程与程序之间无一一对应关系。不同的进程可以包含同一程序,同一程 序在执行中也可以产生多个进程。序在执行中也可以产生多个进程。 (5)进程是一个独立)进程是一个独立的运行单位,也是系统进行资源分配和调度的独立单位。的运行单位,也是系统进行资源分配和调度的独立单位。 而程序无此概念。而程序无此概念。 4-4 图图 4-2 标明程序段执行的先后次序。其中标明程序段执行的先后次序。其中 I 表示输入操作、表示输入操作、C 表示计算操作、表示计算操作、 P 表示打印操作,下角标说明是对哪个作业进行上述操作。请指明:表示打印操作,下角标说明是对哪个作业进行上述操作。请指明: (1)哪些操作必须有先后次序,其原因是什么?)哪些操作必须有先后次序,其原因是什么? (2)哪些操作可以并发执行,其原因又是什么?)哪些操作可以并发执行,其原因又是什么? 答:答: (1)Ii必须先于必须先于 Ci执行,执行,Ci必须先于必须先于 Pi执行,这是因为同一个作业的这三执行,这是因为同一个作业的这三 个操作之间具有逻辑上的严格的先后执行次序;个操作之间具有逻辑上的严格的先后执行次序;Ii必须先于必须先于 Ii+1执行,执行,Ci必须先必须先 于于 Ci+1执行,执行,Pi必须先于必须先于 Pi+1执行,这是因为执行,这是因为 Ii和和 Ii+1共享输入设备、共享输入设备、Ci和和 Ci+1 共享共享 CPU、Pi和和 Pi+1共享输出设备共享输出设备。 (2)Ii+1和和 Ci、Pi-1可以并发执行,因为这三个进程分属于不同的作业,且它们可以并发执行,因为这三个进程分属于不同的作业,且它们 占据的是不同的资源。占据的是不同的资源。 操作系统原理与 Linux 系统实验课后习题参考答案 沈华 湖北工业大学计算机学院 Email: 3 4-5 如如下下图所示,设一誊抄程序,将图所示,设一誊抄程序,将 f 中记录的序列正确誊抄到中记录的序列正确誊抄到 g 中,这一程序中,这一程序 由由 get、copy、put 三个程序段组成,它们分别负责获得记录、复制记录、输出三个程序段组成,它们分别负责获得记录、复制记录、输出 记录。请指出这三个程序段对记录。请指出这三个程序段对 f 中的中的 m 个记录进行处理时各种操作的先后次序,个记录进行处理时各种操作的先后次序, 并画出誊抄此记录序列的先后次序图。 (假设并画出誊抄此记录序列的先后次序图。 (假设 f 中有中有 1,2,m 个记录,个记录,s,t 为设置在主存中的软件缓冲区,每为设置在主存中的软件缓冲区,每次只能装一个记录。 )次只能装一个记录。 ) 答:答: (不是很明白题目的要求,所以给出三个程序段正确完成誊抄的算法)(不是很明白题目的要求,所以给出三个程序段正确完成誊抄的算法) 。 输入:输入:f 输出:输出:g 1. if (f 不为空不为空) then 2. 3. get(s, f); /从从 f 中读入一个字符放入缓冲区中读入一个字符放入缓冲区 s 4. while(1) 5. 6. if (s 中的字符不是结束符中的字符不是结束符) then 7. 8. copy(t, s); 9. cobegin 10. get(s, f); 11. put(g, t); 12. coend 13. 14. else 15. 16. copy(t, s); 17. put(g, t); 18. break; 操作系统原理与 Linux 系统实验课后习题参考答案 沈华 湖北工业大学计算机学院 Email: 4 19. 20. /while 21. 4-6 进程有哪几个基本状态?进程有哪几个基本状态?在一个系统中为什么必须区分出这几种状态在一个系统中为什么必须区分出这几种状态。 答:进程有三个基本状态:运行状态、就绪状态和等待状态(又称阻塞、挂起、答:进程有三个基本状态:运行状态、就绪状态和等待状态(又称阻塞、挂起、 睡眠) 。睡眠) 。 因为因为多道程序设计技术的引入,使多道程序设计技术的引入,使得多个进程可以并发执行。并发执行的进程得多个进程可以并发执行。并发执行的进程 之间由于合作具有直接制约关系或由于共享资源具有间接制约关系,使得它们之间由于合作具有直接制约关系或由于共享资源具有间接制约关系,使得它们 的执行过程具有“执行的执行过程具有“执行暂停暂停执行执行暂停暂停执行执行”的动态特”的动态特 征,因此需要对进程在其生命周期内所处于的不同状态进行区分,以便对进程征,因此需要对进程在其生命周期内所处于的不同状态进行区分,以便对进程 进行分析、管理和控制。进行分析、管理和控制。 4-7 试用图画出批处理系统的进程状态变迁图。试用图画出批处理系统的进程状态变迁图。 答:答:如下所示如下所示。 4-8 试用图画出分时系统的进程状态变迁图。试用图画出分时系统的进程状态变迁图。 答:答:如下所示如下所示。 操作系统原理与 Linux 系统实验课后习题参考答案 沈华 湖北工业大学计算机学院 Email: 5 4-9 某系统进程状态变迁图如下图所示,请回答下列问题:某系统进程状态变迁图如下图所示,请回答下列问题: (1)什么原因会导致发现变迁)什么原因会导致发现变迁 2、3、4? (2)当)当观察系统中进程时,可能看到某一进程产生的一次状态变迁将引起另一观察系统中进程时,可能看到某一进程产生的一次状态变迁将引起另一 进程作一次状态变迁,这两个变迁称为因果变迁。在什么情况,一个进程的变进程作一次状态变迁,这两个变迁称为因果变迁。在什么情况,一个进程的变 迁迁 3 能立即引起另一个进程的变迁能立即引起另一个进程的变迁 1? (3)下述因果变迁是否可能发生?如果可能的话,在什么情况下发生?)下述因果变迁是否可能发生?如果可能的话,在什么情况下发生? a. 2-1 b. 3-2 c. 4-1 答:答: (1)如图中所示)如图中所示。 (2)正在运行的进程因请求资源未得到满足而变为等待状态的变迁正在运行的进程因请求资源未得到满足而变为等待状态的变迁 3,必然引,必然引 起一个就绪进程被调度执行的变迁起一个就绪进程被调度执行的变迁 1(只要就绪队列不为空)(只要就绪队列不为空) 。 (3)a.正运行的进程因时间片到变为就绪状态的变迁正运行的进程因时间片到变为就绪状态的变迁 2,必然引起一个就绪进必然引起一个就绪进 程被调度执行的变迁程被调度执行的变迁 1。 操作系统原理与 Linux 系统实验课后习题参考答案 沈华 湖北工业大学计算机学院 Email: 6 b. 3-2 不可能。不可能。 c.当一进程从等待状态变为就绪状态的变迁当一进程从等待状态变为就绪状态的变迁 4,在该进程的优先级最高且系统采,在该进程的优先级最高且系统采 用抢占式调度时用抢占式调度时,就会引起该进程又被调度执行的变迁就会引起该进程又被调度执行的变迁 1。 4-10 某系统进程状态除了三个基本状态外,又增加了创建状态、完成状态某系统进程状态除了三个基本状态外,又增加了创建状态、完成状态两两种种 新的状态,试用图画出增加新状态后的进程状态变迁图,并说明发生每一种变新的状态,试用图画出增加新状态后的进程状态变迁图,并说明发生每一种变 迁的原因迁的原因。 答:如下所示。答:如下所示。 运行 就绪阻塞 终止 创建 创建完成 等待某事件 的发生 等待的事件 的发生了 进程调度程 序的调度 善后处理 工作完成 4-11 什么是进程控制块?它有什么作用?什么是进程控制块?它有什么作用? 答:答:存放进程的管理和控制信息的数据结构称为存放进程的管理和控制信息的数据结构称为进程控制块。它是进程管理和进程控制块。它是进程管理和 控制的最重要的数据结构,控制的最重要的数据结构,系统通过它感知进程的存在系统通过它感知进程的存在。 4-12 什么是线程?线程和进程有什么区别?什么是线程?线程和进程有什么区别? 答:答:线程有时也称为轻量级进程,它是比进程更小的活动单位,它是进程中的线程有时也称为轻量级进程,它是比进程更小的活动单位,它是进程中的 一个执行路径。一个进程可以有多个执行路径即线程。一个执行路径。一个进程可以有多个执行路径即线程。 线程和进程的主要区别如下:线程和进程的主要区别如下: (1)线程是进程的一个组成部分。一个进程可以有多个线程,而且至少有一个)线程是进程的一个组成部分。一个进程可以有多个线程,而且至少有一个 可执行的线程。可执行的线程。 (2)进程是资源分配的基本单位,它拥有自己的地址空间和各种资源。线程是)进程是资源分配的基本单位,它拥有自己的地址空间和各种资源。线程是 处理机调度的基本单位,它只能和其他线程共享进程的资源,而本身并不具有处理机调度的基本单位,它只能和其他线程共享进程的资源,而本身并不具有 任何资源。任何资源。 操作系统原理与 Linux 系统实验课后习题参考答案 沈华 湖北工业大学计算机学院 Email: 7 (3)进程的多个线程都在进程的地址空间内活动。这样,在以线程为单位进行)进程的多个线程都在进程的地址空间内活动。这样,在以线程为单位进行 处理机调度和切换时,由于不发生资源变化特别是地址空间的变化,因此切换处理机调度和切换时,由于不发生资源变化特别是地址空间的变化,因此切换 时间较短。而以进程为单位进行处理机调度和切换时,由于涉及到资源转移及时间较短。而以进程为单位进行处理机调度和切换时,由于涉及到资源转移及 现场保护等问题,将导致切换时间变长和资源利用率降低。现场保护等问题,将导致切换时间变长和资源利用率降低。 (4)线程和进程一样,都有自己的状态和相应的同步机制。但是,由于线程没)线程和进程一样,都有自己的状态和相应的同步机制。但是,由于线程没 有自己单独的程序和数据空间,因而不能像进程的程序和数据那样交换到外存有自己单独的程序和数据空间,因而不能像进程的程序和数据那样交换到外存 去。去。 (5)因为同一进程内的线程共享内存和文件,因此它们之间相互通信无须调用因为同一进程内的线程共享内存和文件,因此它们之间相互通信无须调用 内核内核。 (6)进程的调度和控制大多由)进程的调度和控制大多由操作系统的内核完成,而线程的控制既可以由操操作系统的内核完成,而线程的控制既可以由操 作系统内核完成,也可以由用户控制完成。作系统内核完成,也可以由用户控制完成。 4-13 试说明进程创建的主要功能是什么?试说明进程创建的主要功能是什么? 答:答:进程创建的主要功能是形成被创建进程所对应的进程控制块进程创建的主要功能是形成被创建进程所对应的进程控制块 PCB。 4-14 用于进程控制的原语主要有哪几个?每种原语的执行将使进程的状态发生用于进程控制的原语主要有哪几个?每种原语的执行将使进程的状态发生 什么变化?什么变化? 答:答: (1)创建原语,创建一个就绪状态的进程,使进程从创建状态变迁为就绪)创建原语,创建一个就绪状态的进程,使进程从创建状态变迁为就绪 状态; (状态; (2)撤销原语,使进程从执行状态变迁为完成状态; ()撤销原语,使进程从执行状态变迁为完成状态; (3)阻塞原语,使)阻塞原语,使 进程从运行状态变迁为阻塞状态; (进程从运行状态变迁为阻塞状态; (4)唤醒原语,使进程从阻塞状态变迁为就)唤醒原语,使进程从阻塞状态变迁为就 绪状态。绪状态。 4-15n 个并发进程共用一个公共变量个并发进程共用一个公共变量 Q, 写出用记录型信号量实现, 写出用记录型信号量实现 n 个进程互斥个进程互斥 时的程序描述,给出信号量的取值范围,请说明每个取值的物理意义时的程序描述,给出信号量的取值范围,请说明每个取值的物理意义。 答:如下所示。答:如下所示。 v cobegin process i: begin /i = 1,2,n 操作系统原理与 Linux 系统实验课后习题参考答案 沈华 湖北工业大学计算机学院 Email: 8 P 对公共变量对公共变量 Q 的访问的访问 V end coend 信号量信号量 mutex 的取值范围为:的取值范围为:mutex.value 1, - (n-1)。 值为值为 1 时,表示没有进程访问公共变量时,表示没有进程访问公共变量 Q; 值为值为 0 时,表示有一个进程正在访问公共变量时,表示有一个进程正在访问公共变量 Q; 值值0 时,表示有一个进程正在访问公共变量时,表示有一个进程正在访问公共变量 Q,同时又,同时又| mutex.value |个进程个进程 等待访问公共变量等待访问公共变量 Q。 4-16 图图 4-30(a)、4-30(b)分别给出了两个分别给出了两个进程流图。试用信号灯的进程流图。试用信号灯的 P、V 操作实操作实 现如现如图图中所示进程之间的同步,并写出程序描述。中所示进程之间的同步,并写出程序描述。 答:答:(a) main() var s12, s13, s14 : semaphore := 0, 0, 0; cobegin s f p5 p6 p7 s f P1 P2 P3 P4 图图4.22(a) 图图4.22(b) 操作系统原理与 Linux 系统实验课后习题参考答案 沈华 湖北工业大学计算机学院 Email: 9 P1(); P2(); P3(); P4(); coend P1() p1 execute; V(s12); V(s13); V(s14); P2() P(s12); p2 execute; P3() P(s13); p3 execute; P4() P(s14); p4 execute; (b) 操作系统原理与 Linux 系统实验课后习题参考答案 沈华 湖北工业大学计算机学院 Email: 10 main() var s57, s67 : semaphore := 0, 0; cobegin P5(); P6(); P7(); coend P5() p5 execute; V(s57); P6() P6 execute; V(s67); P7() P(s57); P(s67); P7 execute; 4-17 如下图所示的进程流图中,有五个进程合作完成某一任务。说明这五个进如下图所示的进程流图中,有五个进程合作完成某一任务。说明这五个进 程之间的同步关系,并用信号灯的程之间的同步关系,并用信号灯的 P、V 操作实现之,要求写出程序描述。操作实现之,要求写出程序描述。 操作系统原理与 Linux 系统实验课后习题参考答案 沈华 湖北工业大学计算机学院 Email: 11 s s f f P P1 1 P P2 2 P P3 3 P P4 4 P P5 5 答:答:五个进程间的同步关系是:五个进程间的同步关系是:P2、P3、P4必须等待必须等待 P1执行完后方能开始执行;执行完后方能开始执行; P5必须等待必须等待 P2和和 P4均执行完后才能开始执行均执行完后才能开始执行。 main() var s12, s13, s14, s35, s45 : semaphore := 0, 0, 0, 0, 0; cobegin P1(); P2(); P3(); P4(); P5(); coend P1() p1 execute; V(s12); V(s13); V(s14); P2() P(s12); p2 execute; P3() 操作系统原理与 Linux 系统实验课后习题参考答案 沈华 湖北工业大学计算机学院 Email: 12 P(s13); p3 execute; V(s35); P4() P(s14); p4 execute; V(s45); P5() P(s35); P(s45); p2 execute; 4-18 如如下下图所图所示,示,get、copy、put 三进程共用两个缓冲区三进程共用两个缓冲区 s、t(其大小为每次(其大小为每次 存放一个记录) 。存放一个记录) 。get 进程负责不断地把输入记录送入缓冲区进程负责不断地把输入记录送入缓冲区 s 中,中,copy 进程负进程负 责从缓冲区责从缓冲区 s 中取出记录复制到缓冲区中取出记录复制到缓冲区 t 中,而中,而 put 进程负责从缓冲区进程负责从缓冲区 t 中取出中取出 记录打印。试用记录打印。试用 P、V 操作实现这三个进程之间的同步,并写出程序描述。操作实现这三个进程之间的同步,并写出程序描述。 答答: main() / sa 表示缓冲区表示缓冲区 S 是否为空,是否为空,sb 表示是否为满表示是否为满 缓冲区S 缓冲区T get copy put 操作系统原理与 Linux 系统实验课后习题参考答案 沈华 湖北工业大学计算机学院 Email: 13 / ta 表示缓冲区表示缓冲区 T 是否为空,是否为空,tb 表示是否为满表示是否为满 var sa, sb, ta, tb : semaphore := 1, 0, 1, 0; cobegin get; copy; put; coend get() while(1) P(sa); input data to buffer S; V(sb); copy () while(1) P(sb); copy data from buffer S; V(sa); P(ta); input copy-data to buffer T; V(tb); put() 操作系统原理与 Linux 系统实验课后习题参考答案 沈华 湖北工业大学计算机学院 Email: 14 while(1) P(tb); output data to buffer S; V(ta); 4-19 什么是进程的互斥什么是进程的互斥?什么是进程的?什么是进程的同步?同步和互斥这两个概念有什么联同步?同步和互斥这两个概念有什么联 系和区别?系和区别? 答:在操作系统中,当一个进程进入临界区使用临界资源时,另一个进程必须答:在操作系统中,当一个进程进入临界区使用临界资源时,另一个进程必须 等待,当占用临界资源的进程退出临界区后,另一进程才被允许去访问此临界等待,当占用临界资源的进程退出临界区后,另一进程才被允许去访问此临界 资源。我们称进程之间的这种相互制约关系为互斥。资源。我们称进程之间的这种相互制约关系为互斥。 进程同步是指多个相关进程在执行次序上的协调。这些进程相互合作,在一些进程同步是指多个相关进程在执行次序上的协调。这些进程相互合作,在一些 关键点上可能需要互相等待或互通消息。关键点上可能需要互相等待或互通消息。 实际上进程互斥也是一种同步,它协调多个进程互斥进入同一个临界资源对应实际上进程互斥也是一种同步,它协调多个进程互斥进入同一个临界资源对应 的临界区。的临界区。 4-20 在生产者在生产者-消费者问题中,消费者问题中,设置了三个信号灯,一个是用于互斥的信号灯设置了三个信号灯,一个是用于互斥的信号灯 mutex,其初值为,其初值为 1;另外两个信号灯是:;另外两个信号灯是:full(初值为(初值为 0,用来指示缓冲区内是,用来指示缓冲区内是 否有物品)和否有物品)和 empty(初值为(初值为 n,表示可利用的缓冲区数目) 。试写出此时的生,表示可利用的缓冲区数目) 。试写出此时的生 产者产者-消费者问题的描述。消费者问题的描述。 解:解: main() message buffern; int in = 0, out = 0; semaphore mutex = 1, full = 0, empty = n; cobegin producer(); 操作系统原理与 Linux 系统实验课后习题参考答案 沈华 湖北工业大学计算机学院 Email: 15 consumer(); coend producer() while(生产未完成生产未完成) 生产一个产品生产一个产品 m; P(empty); P(mutex); bufferin=m; in=(in+1) mod n; V(mutex); V(full); consumer() while(消费未完成消费未完成) P(full); P(mutex); b=bufferout; out=(out+1) mod n; V(mutex); V(empty); 消费一个产品消费一个产品 b; 操作系统原理与 Linux 系统实验课后习题参考答案 沈华 湖北工业大学计算机学院 Email: 16 4-21 判断下列同步算法是否有错,如果有错,判断下列同步算法是否有错,如果有错,请指出错误原因并更正。请指出错误原因并更正。 (1)三三个个进程进程并发并发活动活动的的进程进程流图流图如如下图下图所示所示,其其同步同步算法算法描述描述如下如下: s s f f P P1 1 P P2 2 P P3 3 main semaphore s= -1; cobegin p1(); p2(); p3(); coend p1() V(s); p2() V(s); 操作系统原理与 Linux 系统实验课后习题参考答案 沈华 湖北工业大学计算机学院 Email: 17 p3() P(s); 答:答:如果如果先先执行执行 P3,则则进程进程 P3 将将阻塞阻塞,此时此时 s 的的值值为为-2。之后之后 P1 和和 P2 执行执行到到 V(s)都都会会执行执行唤醒唤醒操作操作,出错出错。应该应该设置设置两个两个私有私有信号信号灯灯,一个一个用于用于 P1 和和 P3 之间之间,另另一个一个用于用于 P2 和和 P3 之间之间。程序程序描述描述如下如下所示所示: main semaphore s13 = 0, s23 = 0; cobegin p1(); p2(); p3(); coend p1() V(s13); p2() V(s23); p3() 操作系统原理与 Linux 系统实验课后习题参考答案 沈华 湖北工业大学计算机学院 Email: 18 P(s13); P(s23); (2)设设 a、b 两两个个进程进程共用共用一个一个缓冲区缓冲区 t,a 向向 t 写入写入信息信息,b 则则从从 t 读出读出信息信息, 算法算法框框图图如如下下图图所示所示。 A进程进程 向向t写入信息写入信息 V(s) B进程进程 P(s) 从从t读出信息读出信息 答:答:此题此题有有两个两个同步同步关系关系: (1)A 向向 t 写写信息信息前前,先先要要询问询问 t 是否是否为为空空,如果如果为为 空空则则向向 t 中中写入写入信息信息,并并通知通知进程进程 B 缓冲区缓冲区中中有有信息信息供供其其读出读出,否则否则阻塞阻塞。 (2) B 从从 t 中中读出读出信息信息前前,先先询问询问 t 中中是否是否有有信息信息,如果如果有有,则则从从 t 中中读出读出,并并通知通知 A 缓冲区缓冲区中中的的信息信息已已读出读出可以可以向向其其写入写入新新信息信息了了,否则否则阻塞阻塞。 此外此外还有还有一个一个互斥互斥关系关系:进程进程 A 和和 B 对对缓冲区缓冲区 t 互斥互斥使用使用。 因为因为缓冲区缓冲区的的大小大小为为 1, 且且只有只有一个一个生产生产者者进程进程 (A 进程进程) 和和一个一个消费消费者者进程进程 (B 进程进程) ,因此因此两个两个私有私有信号信号灯灯在在完成完成两个两个进程进程同步同步关系关系的的同时同时也也实现实现了了两个两个进程进程 对对缓冲区缓冲区 t 的的互斥互斥访问访问(因为因为 t 就就两种两种状态状态空空或或满满,空空的的时候时候 A 能能用

温馨提示

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

评论

0/150

提交评论