(完整版)操作系统第二章习题答案3

合集下载

操作系统 第二章 习题

操作系统 第二章 习题

第二章练习题及参考答案一、单项选择题1.用户作业可以通过()方式由用户自己按照作业来进行操作。

A.脱机B.自动控制C.在线处理D.联机处理2.()是操作系统提供的一种专门语言,它由操作系统的专门机制解释处理。

A.C语言B.JCL语言C.Ada语言D.Pascal语言3.作业调度算法中()调度算法最有利于提高资源利用率。

A.先来先服务B.优先数C.响应比最高优先D.均衡4.终端用户在终端上控制作业的执行要经历四个阶段,最初阶段是()。

A.用户注册B.终端连接C.作业控制D.用户退出5.在下面作业调度算法中()调度算法最有利于小作业,从而提高系统吞吐能力。

A.先来先服务B.计算时间短的作业优先C.优先数D.响应比最高者优先6.当中央处理器处于目态时,它可以执行的指令是()。

A.计算机系统中的全部指令B.仅限于非特权指令C.仅限于防管指令D.仅限于特权指令7.作业调度算法常考虑因素之一是使系统有最高的吞吐率,为此应()。

A.不让处理机空闲B.能够处理尽可能多的作业C.使各类用户满意D.不使系统过于复杂8. 分时操作系统环境下运行的作业通常称为()。

A.后台作业B.长作业C.批量型作业D.终端型作业9.在作业调度算法中,若所有作业同时到达,则平均等待时间最短的算法是()。

A.先来先服务B.优先数C.响应比最高优先D.计算时间段的作业优先10.作业调度程序从处于()状态的作业队列中选取适当的作业投入运行。

A.执行B.提交C.完成D.后备11.既考虑作业等待时间,又考虑作业执行时间的调度算法是()。

A. 先来先服务B.优先数C.响应比最高优先D.均衡12.()是指从作业提交给系统到作业完成的时间间隔。

A.周转时间B.响应时间C.等待时间D.执行时间13.作业从进入后备队列到被调度程序选中的时间间隔称为()。

A.周转时间B.响应时间C.等待时间D.触发时间二、多项选择题1.响应比最高者优先调度算法是()调度算法的折衷。

计算机操作系统(习题集)第二章 答案

计算机操作系统(习题集)第二章 答案

计算机操作系统(习题集)第二章答案计算机操作系统(习题集)第二章答案第二章进程管理一、单项选择题1、在单一处理机上执行程序,多道程序的执行是在(b)进行的。

a.同一时刻b.同一时间间隔内c.某一紧固时刻d.某一紧固时间间隔内2、引入多道程序技术后,处理机的利用率(c)。

a.减少了b.有所改善c.大大提高d.没变化,只是程序的继续执行便利了3、顺序程序和并发程序的执行相比,(c)。

a.基本相同c.并发程序继续执行总体上继续执行时间慢b.有点不同d.顺序程序执行总体上执行时间快4、单一处理机上,将继续执行时间存有重合的几个程序称作(c)。

a.顺序程序b.多道程序c.并发程序d.并行程序5、进程和程序的本质区别就是(d)。

a.存储在内存和外存b.顺序和非顺序继续执行机器指令c.分时使用和独占使用计算机资源d.动态和静态特征6、进程就是程序在mammalian环境中的继续执行过程,它就是系统展开资源分配和调度的一个基本单位。

进程具备[1a]、[2d]、调度性、异步性和结构性等基本特征。

进程就是一次继续执行过程,具备生命期彰显了进程的[1]特征。

进程由程序段、[3b]、[4c]共同组成,其中[4]就是进程在系统中存有的唯一标识。

供选择的答案:[1][2]:a、动态性b、静态性c、共行性d、并发性e、可执行性f、易用性[3]:a、过程b、数据c、进程标识符d、函数[4]:a、fcbb、fifoc、pcbd、jcb7、进程执行时的间断性,决定了进程可能具有多种状态。

进程的基本状态有三种,在分时系统中,当一个进程拥有的时间片到时,则该进程即由[1d]进入[2a]。

如果出现因某种原因使得处理机空闲时,则需要从就绪队列中选择一进程,并将处理机分配给它,此时该进程进入[3d],这个过程是由[4c]来完成。

供选择的答案:[1][2][3]:a、准备就绪状态b、静止状态c、阻塞状态d、运转状态[4]:a、进程控制程序b、资源分配程序c、进程调度程序d、处理机分配程序8、为了叙述进程的动态变化过程,使用了一个与进程二者联系的(c),根据它而认知进程的存有。

操作系统第二章课后答案

操作系统第二章课后答案

第二章进程管理2、试画出下面4条语句的前趋图:S2: b:=z+1;S3: c:=a-b;S4: w:=c+1;3、程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的进程之间,形成了相互制约的关系,从而也就使得进程在执行期间出现间断性。

4、程序并发执行时为什么会失去封闭性与可再现性?因为程序并发执行时,就是多个程序共享系统中的各种资源,因而这些资源的状态就是由多个程序来改变,致使程序的运行失去了封闭性。

而程序一旦失去了封闭性也会导致其再失去可再现性。

5、在操作系统中为什么要引入进程概念?它会产生什么样的影响?为了使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制与描述,从而在操作系统中引入了进程概念。

影响: 使程序的并发执行得以实行。

6、试从动态性,并发性与独立性上比较进程与程序?a、动态性就是进程最基本的特性,可表现为由创建而产生,由调度而执行,因得不到资源而暂停执行,以及由撤销而消亡,因而进程由一定的生命期;而程序只就是一组有序指令的集合,就是静态实体。

b、并发性就是进程的重要特征,同时也就是OS的重要特征。

引入进程的目的正就是为了使其程序能与其它建立了进程的程序并发执行,而程序本身就是不能并发执行的。

c、独立性就是指进程实体就是一个能独立运行的基本单位,同时也就是系统中独立获得资源与独立调度的基本单位。

而对于未建立任何进程的程序,都不能作为一个独立的单位来运行。

7、试说明PCB的作用?为什么说PCB就是进程存在的唯一标志?a、PCB就是进程实体的一部分,就是操作系统中最重要的记录型数据结构。

PCB中记录了操作系统所需的用于描述进程情况及控制进程运行所需的全部信息。

因而它的作用就是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。

b、在进程的整个生命周期中,系统总就是通过其PCB对进程进行控制,系统就是根据进程的PCB而不就是任何别的什么而感知到该进程的存在的,所以说,PCB就是进程存在的唯一标志。

操作系统第二版第二章课后习题答案

操作系统第二版第二章课后习题答案

第二章进程和线程作业答案1,2,4,6,7,10,11,12,14, 211.在操作系统中为什么要引入进程概念它与程序的差别和关系是怎样的答:由于多道程序的并发执行时共享系统资源,共同决定这些资源的状态,因此系统中各程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。

用程序这个静态概念已经不能如实反映程序并发执行过程中的这些特征。

为此,人们引入“进程(Process)”这一概念来描述程序动态执行过程的性质。

进程和程序是两个完全不同的概念。

进程与程序的主要区别:进程和程序之间存在密切的关系:进程的功能是通过程序的运行得以实现的,进程活动的主体是程序,进程不能脱离开具体程序而独立存在。

2.PCB的作用是什么它是怎样描述进程的动态性质的答:PCB是进程组成中最关键的部分。

每个进程有惟一的进程控制块;操作系统根据PCB对进程实施控制和管理,进程的动态、并发特征是利用PCB表现出来的;PCB是进程存在的唯一标志。

PCB中有表明进程状态的信息,该进程的状态包括运行态、就绪态和阻塞态,它利用状态信息来描述进程的动态性质。

4. 用如图2-26所示的进程状态转换图能够说明有关处理机的大量内容。

试回答:①什么事件引起每次显着的状态变迁②下述状态变迁因果关系能否发生为什么(A)2→1 (B)3→2 (C)4→1答:(1)就绪→运行:CPU空闲,就绪态进程被调度程序选中运行→阻塞:运行态进程因某种条件未满足而放弃CPU的占用。

阻塞→就绪:阻塞态进程所等待的事件发生了。

运行→就绪:正在运行的进程用完了本次分配给它的时间片(2)下述状态变迁(A)2→1,可以。

运行进程用完了本次分配给它的时间片,让出CPU,从就绪队列中选一个进程投入运行。

(B)3→2,不可以。

任何时候一个进程只能处于一种状态,它既然由运行态变为阻塞态,就不能再变为就绪态。

(C)4→1,可以。

某一阻塞态进程等到的事件出现了,而且此时就绪队列为空,该进程进入就绪队列后马上又被调度运行。

操作系统第二章习题与解答

操作系统第二章习题与解答

02
03
选择题1解析
这道题考查的是操作系统 的定义,要求考生能够准 确理解并解释操作系统的 基本概念。
选择题2解析
这道题考查的是操作系统 的功能,要求考生能够列 举并解释操作系统的基本 功能。
选择题3解析
这道题考查的是操作系统 的分类,要求考生能够根 据不同的分类标准对操作 系统进行分类。
填空题析
多做练习题
通过多做练习题可以加深对基 本概念的理解,提高解题能力
和技巧。
THANKS
感谢观看
简答题2解析
这道题考查的是进程的状态转换, 要求考生能够简要描述进程的三种 状态转换及其条件。
简答题3解析
这道题考查的是内存管理的方式, 要求考生能够简要比较几种常见的 内存管理方式的优缺点。
04
重点回顾部分
本章重点概念回顾
进程
进程是程序的一次执 行,具有动态性、并 发性、独立性和制约 性。
线程
简答题
题目
简述死锁的预防和解除方法。
答案
死锁的预防方法包括避免循环等待和请求和保持条件 ,即对资源进行合理的分配和排序,避免出现循环等 待的情况;同时限制进程对资源的申请,防止出现请 求和保持条件。死锁的解除方法包括回退和记账法, 回退法是指让进程主动放弃已获得的资源,回到之前 的安全状态;记账法是指为每个资源设置计数器,当 出现死锁时,通过调整计数器的值来解除死锁。
线程是进程内的一条 执行路径,是系统进 行调度的基本单位。
死锁
死锁是指两个或多个 进程在执行过程中, 因争夺资源而造成的 一种互相等待的现象。
饥饿
饥饿是指一个或多个 进程无限期地等待, 而得不到所需资源的 现象。
调度算法
调度算法是根据一定 的规则和优先级,将 就绪队列中的进程分 配给处理器进行执行 的算法。

操作系统第二章练习 答案

操作系统第二章练习 答案

1.P、V 操作是 A 。

A.两条低级进程通信原语B.两组不同的机器指令C.两条系统调用命令D.两条高级进程通信原语2.设系统中有 n(n>2)个进程,且当前不在执行进程调度程序,试考虑下述4种情况,不可能发生的情况是 A 。

A.没有运行进程,有2个就绪进程,n 个进程处于等待状态。

B.有1个运行进程,没有就绪进程,n-1个进程处于等待状态。

C.有1个运行进程,有1个就绪进程,n-2个进程处理等待状态。

D.有1个运行进程,n-1个就绪进程,没有进程处于等待状态。

3.若 P、V 操作的信号量 S 初值为2,当前值为-1,则表示有 B 等待进程。

A. 0个B. 1个C. 2个D. 3个4.用 V 操作唤醒一个等待进程时,被唤醒进程的状态变为 B 。

A.等待B.就绪C.运行D.完成5.用 P、V 操作可以解决 A 互斥问题。

A.一切B.某些C.正确D.错误6.多道程序环境下,操作系统分配资源以 C 为基本单位。

A.程序B.指令C.进程D.作业7.从下面对临界区的论述中,选出一条正确的论述。

(1)临界区是指进程中用于实现进程互斥的那段代码。

(2)临界区是指进程中用于实现进程同步的那段代码。

(3)临界区是指进程中用于实现进程通信的那段代码。

(4)临界区是指进程中用于访问共享资源的那段代码。

(5)临界区是指进程中访问临界资源的那段代码。

8.(A)是一种只能由 wait 和 signal 操作所改变的整型变量,(A)可用于实现进程的(B)和(C),(B)是排他性访问临界资源。

A:(1)控制变量;(2)锁;(3)整型信号量;(4)记录型信号量。

B:(1)同步;(2)通信;(3)调度;(4)互斥。

C:(1)同步;(2)通信;(3)调度;(4)互斥。

9.对于记录型信号量,在执行一次 wait 操作时,信号量的值应当(A),当其值为(B)时,进程阻塞。

在执行 signal 操作时,信号量的值应当为(C),当其值为(D)时,应唤醒阻塞队列中的进程。

操作系统第二章复习题答案

操作系统第二章复习题答案

操作系统第二章复习题答案操作系统第二章复习题答案第一节:操作系统概述操作系统是计算机系统中的核心软件之一,它负责管理和控制计算机硬件资源,并提供用户与计算机之间的接口。

操作系统的主要功能包括进程管理、内存管理、文件系统管理和设备管理等。

第二节:进程管理1. 进程是指正在执行中的程序。

它包括程序计数器、寄存器集合和栈等信息。

进程的状态包括运行态、就绪态和阻塞态。

2. 进程调度是指根据一定的策略选择下一个执行的进程。

常见的调度算法有先来先服务调度算法、短作业优先调度算法和时间片轮转调度算法等。

3. 进程同步是指协调多个进程的执行顺序,避免出现竞态条件和死锁等问题。

常见的进程同步机制有互斥锁、信号量和条件变量等。

第三节:内存管理1. 内存管理是指操作系统对内存资源的分配和回收。

常见的内存管理方式有分区管理和页式管理。

2. 分区管理将内存划分为多个固定大小的分区,每个分区只能分配给一个进程。

常见的分区分配算法有首次适应算法、最佳适应算法和最坏适应算法等。

3. 页式管理将内存和进程的地址空间划分为固定大小的页和页框,实现了虚拟内存的概念。

常见的页式管理算法有局部页面置换算法和全局页面置换算法等。

第四节:文件系统管理1. 文件系统管理是指操作系统对文件的组织和访问控制。

文件是计算机中存储数据的基本单位,它包括文件名、文件属性和文件数据等。

2. 文件系统通过目录结构来组织文件,常见的目录结构有单级目录结构、树状目录结构和索引节点结构等。

3. 文件系统提供了文件的读、写和删除等操作,同时还提供了文件保护和文件共享等功能。

第五节:设备管理1. 设备管理是指操作系统对计算机硬件设备的管理和控制。

常见的设备管理方式有设备驱动程序和设备控制块等。

2. 设备驱动程序是操作系统与硬件设备之间的接口,它负责将操作系统的请求转化为硬件设备可以理解的指令。

3. 设备控制块是操作系统对每个设备的描述,它包括设备类型、设备状态和设备队列等信息。

完整版本操作系统第二章作业含答案

完整版本操作系统第二章作业含答案

第二章作业1.操作系统中为何要引入进度的观点?为了实现并发进度中的合作和协调,以及保证系统的安全,操作系统在进度管理方面要做哪些工作?答:为了从变化角度动向地剖析研究能够并发履行的程序,真切的反响系统的独立性、并发性、动向性和互相限制,操作系统中不得不引入进度的观点。

为了防备操作系统及其重点的数据构造如:PCB等,遇到用户程序损坏,将办理机分为核心态和用户态。

对进度进行创立、撤除以及在某些进度状态之间的变换控制。

2.试描绘目前正在运转的进度状态改变时,操作系统进前进度切换的步骤。

答:分为两种状况:(1):运转状态就绪状态:依据进度的自己的状况插入到就绪行列的适合地点,系统回收办理及转入进度调动程序从头进行调动。

(2):运转状态→堵塞状态:系统会调用进度调动程序从头选择一个进度投入运转。

3.现代操作系一致般都供给多任务的环境,是回答以下问题。

为支持多进度的并发履行,系统一定成立哪些对于进度的数据构造?答:系统一定成立 PCB。

为支持进度的状态变迁,系统起码应当供哪些进度控制原语?答:堵塞、唤醒、挂起和激活原语。

当进度的状态变迁时,相应的数据构造发生变化吗?答:会依据状态的变迁发生相应的变化。

比如:将进度 PCB中进度的状态从堵塞状态改为就绪状态,并将进度从堵塞行列摘下,投入到就绪行列中。

4.什么是进度控制块?从进度管理、中止办理、进度通讯、文件管理、设施管理及储存管理的角度设计进度控制块应当包括的内容。

答: PCB:描绘进度自己的特色、状态、调动信息以及对资源据有状况等的数据构造,是进度存在的独一表记。

进度控制块所包括的内容:①进度信息描绘;② CPU信息状态;③进度调动信息;④进度控制和资源占用信息。

5.假定系统就绪行列中有 10个进度,这10个进度轮换履行,每隔 300ms轮换一次,CPU在进度切换时所花销的时间是 10ms,试问系统化在进度切换上的开支占系统整个时间的比率是多少?解: P=(10*10)/[(300+10)*10]=3.2%6.试述线程的特色及其与进度之间的关系。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第2章操作系统用户界面Page 362.1 什么是作业?什么是作业步?答:把在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次全部工作称为一个作业,从系统的角度看,作业则是一个比程序更广的概念。

它由程序、数据和作业说明书组成,系统通过作业说明书控制文件形式的程序和数据,使之执行和操作。

而且,在批处理系统中,作业是抢占内存的基本单位。

也就是说,批处理系统以作业为单位把程序和数据调入内存以便执行。

作业由不同的顺序相连的作业步组成。

作业步是在一个作业的处理过程中,计算机所做的相对独立的工作。

例如,编辑输入是一个作业步,它产生源程序文件;编译也是一个作业步,它产生目标代码文件。

2.2 作业由哪几部分组成?各有什么功能?答:作业由三部分组成:程序、数据和作业说明书。

程序和数据完成用户所要求的业务处理工作,系统通过作业说明书控制文件形式的程序和数据,使之执行和操作。

2.3 作业的输入方式有哪几种?各有什么特点?答:作业的输入方式有5种:(1)联机输入方式:用户和系统通过交互式会话来输入作业。

(2)脱机输入方式:利用低档个人计算机作为外围处理机进行输入处理,存储在后援存储器上,然后将此后援存储器连接到高速外围设备上和主机相连,从而在较短的时间内完成作业的输入工作。

(3)直接耦合方式:直接耦合方式把主机和外围低档机通过一个公用的大容量外存直接耦合起来,从而省去了在脱机输入中那种依靠人工干预来传递后援存储器的过程。

(4)SPOOLING系统:SPOOLING又可译作外围设备同时联机操作。

在SPOOLING系统中,多台外围设备通过通道或DMA器件和主机与外存连接起来。

作业的输入输出过程由主机中的操作系统控制。

(5)网络输入方式:网络输入方式以上述几种输入方式为基础。

当用户需要把在计算机网络中某一台主机上输入的信息传送到同一网中另一台主机上进行操作或执行时,就构成了网络输入方式2.4 试述 SPOOLING 系统的工作原理。

答:在SPOOLING系统中,多台外围设备通过通道或DMA器件和主机与外存连接起来。

作业的输入输出过程由主机中的操作系统控制。

操作系统中的输入程序包含两个独立的过程,一个过程负责从外部设备把信息读入缓冲区;另一个是写过程, 负责把缓冲区的信息送到外存输入井中。

在系统输入模块收到作业输入请求信号后,输入管理模块中的读过程负责将信息从输入装置读入缓冲区。

当缓冲区满时,由写过程将信息从缓冲区写到外存输入井中。

读过程和写过程反复循环,直到一个作业输入完毕。

当读过程读到一个硬件结束标志之后,系统再次驱动写过程把最后一批信息写入外存并调用中断处理程序结束该次输入。

然后,系统为该作业建立作业控制块JCB,从而使输入井中的作业进入作业等待队列,等待作业调度程序选中后进入内存。

2.5 操作系统为用户提供哪些接口?它们的区别是什么?答:操作系统为用户提供两个接口界面。

一个是系统为用户提供的各种命令接口界面。

用户利用这些操作命令来组织和控制作业的执行或管理计算机系统。

另一个接口是系统调用。

编程人员使用系统调用来请求操作系统提供服务。

操作系统的命令控制界面就是用来组织和控制作业运行的。

2.6 作业控制方式有哪几种?调查你周围的计算机的作业控制方式。

答:作业控制的主要方式有两种:联机和脱机方式。

脱机控制方式利用作业控制语言来编写表示用户控制意图的作业控制程序,也就是作业说明书。

作业控制语言的语句就是作业控制命令。

不同的批处理系统提供不同的作业控制语言。

联机控制方式不要求用户填写作业说明书,系统只为用户提供一组键盘或其他操作方式的命令。

用户使用系统提供的操作命令和系统会话,交互地控制程序执行和管理计算机系统。

2.7 什么是系统调用?系统调用与一般用户程序有什么区别?与库函数和实用程序有什么区别?答:系统调用是操作系统提供给编程人员的唯一接口。

编程人员利用系统调用,在源程序一级动态请求和释放系统资源,调用系统中已有的系统功能来完成那些与机器硬件部分相关的工作以及控制程序的执行速度等。

因此,系统调用像一个黑箱子那样,对用户屏蔽了操作系统的具体动作而只提供有关的功能。

区别:系统调用是在核心层执行,调用它们需要一个类似于硬件中断处理的中断处理机制来提供系统服务。

2.8 简述系统调用的实现过程。

答:用户在程序中使用系统调用,给出系统调用名和函数后,即产生一条相应的陷入指令,通过陷入处理机制调用服务,引起处理机中断,然后保护处理机现场,取系统调用功能号并寻找子程序入口,通过入口地址表来调用系统子程序,然后返回用户程序继续执行。

2.9 为什么说分时系统没有作业的概念?答:因为在分时系统中,每个用户得到的时间片有限,用户的程序和数据信息直接输入到内存工作区中和其他程序一起抢占系统资源投入运行,而不必进入外存输入井等待作业调度程序选择。

因此,分时系统没有作业控制表,也没有作业调度程序。

2.10 Linux操作系统为用户提供哪些接口?试举例说明。

答:操作系统为用户提供两种接口,即面向操作命令的借口Shell 和面向编程用户的接口,即系统调用。

常见的Shell命令如:login,logout,vi,emacs,cp,rm,ls,cc,link,adduser,chowm,ch mod,service,pgrep等;常见的系统调用如:read,write,openg,close,creat,mount,fork,wait,exit,socke t等。

2.11 编写一个简单的 Shell 程序,完成一个已有数据文件的复制和打印。

答: # ..\xt\02\cplp.sh# copy filecat copy.c > copy.bak# print filecat copy.c > /dev/lp2.12 用Linux文件读写的相关系统调用,编写一个copy程序。

答:// \home\os\xt\02\copy.c// usage copy src dst#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <stdlib.h>#include <stdio.h>#define BUFSIZE 8192int main(int argc,char* argv[]) {printf("argv[0] : %s\n",argv[0]);printf("argv[1] : %s\n",argv[1]);printf("argv[2] : %s\n",argv[2]);if (argc!=3) {printf("\nusage : copy src dst \n");return -1;}int src,dst;char buf[BUFSIZE];int n;src = open(argv[1],O_RDONLY);dst = open(argv[2],O_RDWR | O_CREAT | O_TRUNC,S_IRUSR | S_IWUSR | S_IXUSR);while ((n=read(src,buf,BUFSIZE)) > 0 ) {if (write(dst,buf,n)!=n)printf("write error !");}if (n<0)printf("read error !");close(src);close(dst);printf("\nSuccess !!!!\n");exit(0);}2.13 略第3章进程管理Page 8.33.10 设在书 3.6节中所描述的生产者-消费者问题中,其缓冲部分为m个长度相等的有界缓冲区组成,且每次传输数据长度等于有界缓冲区长度,以及生产者和消费者可对缓冲区同时操作。

重新描述发送过程deposit(data)和接收过程remove(data)。

答:1:设第i块缓冲区的公用信号量为mutex[i],保证生产者进程和消费者进程对同一块缓冲区操作的互斥,初始值为1。

2:设信号量 avail 为生产者进程的私有信号量,初始值为m。

3: 设信号量 full 为消费者进程的私有信号量,初始值为0。

Deposit(data)BeginP(avail)选择一个空缓冲区 buf[i]P(mutex[i])buf[i] ← dataV(full)V(Mutex[i])EndRemove(data)BeginP(full)选择一个满缓冲区 buf[i]P(mutex[i])Data ← buf[i]V(avail)V(Mutex[i])End3.11 两进程PA,PB通过两FIFO缓冲区队列连接(如图),每个缓冲区长度等于传送消息长度。

进程PA,PB之间的通信满足如下条件:(1) 至少有一个空缓冲区存在时,相应的发送进程才能发送一个消息。

(2) 当缓冲队列中至少存在一个非空缓冲区时,相应的接收进程才能接收一个消息。

(3) 接受与发送进程可以同时操作缓冲区队列。

试描述发送过程send(i,data)和接收过程receive(i,data)。

这里i代表缓冲队列。

答:1:定义数组 buf[0](图中上面的缓冲区),buf[1](图中下面的缓冲区)2:设 bufempty[0],buffull[1] 为PA的私有信号量,初始值分别为n,03:设 bufempty[1],buffull[0] 为PB的私有信号量,初始值分别为n,0send(i,data)beginP(bufempty[i])按FIFO方式选择一个空缓冲区 buf[i][j]Buf[i][j] ← dataV(buffull[i]);Endremove(i,data)beginP(buffull[i])按FIFO方式选择一个满缓冲区 buf[i][j]Buf[i][j] ← dataV(bufempty[i]);End3.14 设有5个哲学家,共享一张放有五把椅子的桌子,每人分得一把椅子。

但是,桌子上总共只有5支筷子,在每人两边分开各放一支。

哲学家们在肚子饥饿时才试图分两次从两边拾起筷子就餐。

条件:(1) 只有拿到两支筷子时,哲学家才能吃饭。

(2) 如果筷子已在他人手上,则该哲学家必须等待到他人吃完之后才能拿到筷子。

(3) 任一哲学家在自己未拿到两支筷子吃饭之前,决不放下自己手中的筷子。

试:(1) 描述一个保证不会出现两个邻座同时要求吃饭的通信算法。

相关文档
最新文档