操作系统第二章习题答案3教学内容

合集下载

操作系统课后习题答案-汤子瀛(txt版)

操作系统课后习题答案-汤子瀛(txt版)
b. 若这种输入输出操作在主机控制下进行则称之为联机输入输出方式.
3. OS 具有哪几大特征?它的最基本特征是什么?
a. 并发(Concurrence),共享(Sharing),虚拟(Virtual),异步性(Asynchronism).
b. 其中最基本特征是并发和共享.
4. 内存管理有哪些主要功能?它们的主要任务是什么?
b. 产生死锁的原因有二,一是竞争资源,二是进程推进顺序非法;
c. 必要条件是: 互斥条件,请求和保持条件,不剥夺条件和环路等待条件.
第四章:
1. 何谓静态链接及装入时动态链接和运行时的动态链接?
a. 静态链接是指事先进行链接形成一个完整的装入模块,以后不再拆开的链接方---式;
b. 装入时动态链接是指目标模块在装入内存时,边装入边链接的链接方式;
操作系统课后习题
第一章:
1. 设计现代OS 的主要目标是什么?
方便性,有效性,可扩充性和开放性.
2. 何谓脱机I/O 和联机I/O?
a. 脱机输入输出方式(Off-Line I/O)是为了解决人机矛盾及CPU 和I/O 设备之间速度不匹配而提出的.它减少了CPU 的空闲等待时间,提高了I/O 速度.具体内容是将用户程序和数据在一台外围机的控制下,预先从低速输入设备输入到磁带上,当CPU 需要这些程序和数据时,在直接从磁带机高速输入到内存,从而大大加快了程序的输入过程,减少了CPU 等待输入的时间,这就是脱机输入技术;当程序运行完毕或告一段落,CPU 需要输出时,无需直接把计算结果送至低速输出设备,而是高速把结果输出到磁带上,然后在外围机的控制下,把磁带上的计算结果由相应的输出设备输出,这就是脱机输出技术.
6. 设备管理有哪些主要功能?其主要任务是什么?

操作系统学习指导与习题(含答案)

操作系统学习指导与习题(含答案)

三种基本状态可经一定的触发条件而转换。
进程是资源分配的基本单位,同时进程也可作为独立运行的基本单位,用户可以从进程
的观点来研究操作系统。但由于系统资源数量的有限,必然导致诸进程间竞争资源。用户进
程和系统进程之间、同一用户作业的内部进程之间、不同用户各作业的进程之间、各系统进
程之间都存在资源竞争问题。竞争资源的进程间存在着两种关系:(1)资源共享。虽然诸进
变迁、进程的组成、进程控制块的内容及作用);进程的控制(包括进程的建立、进程的撤消、
进程的阻塞、进程唤醒等);原语的含义、作用及内容;临界资源、临界区的基本概念;进
程互斥与同步的基本概念;P、V 操作的控制机理;进程间的通信;常用进程调度算法;死
锁的基本概念;产生死锁的原因和预防死锁产生的具体措施等。
计算机激光照排系统
A. 1
B. 2
C. 3
D. 4
10. 若操作系统看作是计算机资源的管理者,则下列不属于操作系统管理的资源的是
__________。
A. 程序
B. 内存
C. CPU
D. 中断
11. 操作系统的功能是进行文件管理、处理器管理、作业管理、设备管理和(
)管
理。
A. 存储器
B. 进程
C. 系统
户有着密不可分的关系,它在计算机系统中位于计算机裸机和计算机用户之间。 紧挨着硬
件的就是操作系统,它通过系统核心程序对计算机系统中的几类资源进行管理,如处理机、
存储器、输入/输出设备、数据与文档资源、用户作业等,并向用户提供若干服务,通过这
些服务将所有对硬件的复杂操作隐藏起来,为用户提供一个透明的操作环境。
于低级通信方式,该方式以控制进程并发执行为主要目的,而利用通信原语进行高级通信则

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

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

计算机操作系统(习题集)第二章答案计算机操作系统(习题集)第二章答案第二章进程管理一、单项选择题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源本质上不同前者是宏观上并发同时运行微观上是交替顺序执行后者则是宏观上并在实现多道程序设计时必须协调好资源使用者和被使用者之间的关系即对处理机资加以管理以实现处理机在各个可运行程序之间的分配与调度对内存资源加以管理将内存分配给各个运行程序还要解决程序在内存中的定位问题并防止内存中各个程序之间互相干扰或对操作系统的干扰对设备资源进行管理使各个程序在使用设备时不发生冲突
我们发展操作系统的目标就是:充分利用硬件,提供更好的服务。 13.请作一个调查,看看各种计算机的应用领域都在使用什么样的操作系统,他们分别是 什么类型的操作系统,调查的内容应该涵概现代操作系统的主要类别. 14.现有一下应用计算机的场合,请为其选择适当的操作系统。1)航天航空,核变研究; 2)国家统计局数据处理中心;3)学校学生上机学习编程 4)高炉炉温控制;5)民航定 票系统,6)发送电子邮件(在两个地区之间) 答:1)航天航空,核变研究:嵌入式操作系统
第三章 用户接口与作业管理 1.阐述程序,作业,作业步和进程之间的联系和区别。 答:
(1)作业 用户在一次计算过程中,或者一次事务处理过程中,要求计算机系统所做工作的总称 (2)作业步 一个作业可划分成若干部分,称为一个作业步 典型的作业控制过程: “编译”、“连接装配”、“运行” 2.一个具有分时兼批处理功能的操作系统应该怎样调度和管理作业?为什么? 品
计算机系统由硬件子系统和软件子系统组成。 计算机系统的构成包括:如图 1.2 计算机硬件系统的构成:如图 1.4 2.从功能以及程序涉设计的角度说明计算机系统中软件系统是如何构成的? 答:分为系统软件,支撑软件和应用软件三层。 3.什么是操作系统?请举例说明操作系统在计算机系统中的重要地位。 答:操作系统是计算机系统中的一个系统软件,是一些程序模块的集合。 它们能以尽量有效、合理的方式组织和管理计算机的软硬件资源,合理的组织计算机的工 作流程,控制程序的执行并向用户提供各种服务功能,使得用户能够灵活、方便、有效的 使用计算机,使整个计算机系统能安全高效地运行 4.请举一个实际的例子来说明操作系统的功能。 答:你能用用操作系统管理很多资源 5.为什么说“操作系统是控制硬件的软件”的说法不确切? 答:操作系统不仅能够控制硬件,也可以控制各种软件资源。 6.操作系统的基本特征是什么?说明他们之间的关系。 答:1.并发性 2.共享性

(完整版)操作系统第二章课后答案

(完整版)操作系统第二章课后答案

第二章进程管理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. 进程调度是指根据一定的策略选择下一个执行的进程。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

《计算机操作系统教程》第三版答案

《计算机操作系统教程》第三版答案

第一章操作系统概述课后习题1. 硬件将处理机划分为两种状态,即管态和目态,这样做给操作系统设计带来什么好处 ? 答:便于设计安全可靠的操作系统。

管态和目态是计算机硬件为保护操作系统免受用户程序的干扰和破坏而引入的两种状态。

通常操作系统在管态下运行,可以执行所有机器指令;而用户程序在目态下运行,只能执行非特权指令。

如果用户程序企图在目态下执行特权指令,将会引起保护性中断,由操作系统终止该程序的执行,从而保护了操作系统。

2. 何为特权指令?举例说明之。

如果允许用户执行特权指令,会带来什么后果?答:只能在态下才能执行的指令称为特权指令。

如开关中断、置程序状态寄存器等。

如果允许用户执行特权指令,它将不仅影响当前运行的程序,而且还有可能影响操作系统的正常运行,甚至整个系统。

3. 中断向量在机器中的存储位置是由硬件确定的,还是由软件确定的 ? 答:中断向量在机器中的位置是由硬件确定的。

例如,在 INTEL 80x86 CPU 中,内存空间0x00000——0x003ff为中断向量空间。

4. 中断向量的内容是由操作系统程序确定的还是由用户程序确定的?答:中断向量的内容是由操作系统程序确定的。

向量的内容包括中断处理程序的入口地址和程序状态字(中断处理程序运行环境),中断处理程序是由操作系统装入内存的,操作系统将根据装入的实际地址和该中断处理程序的运行环境来填写中断向量。

5. 中断向量内的处理机状态位应当标明是管态还是目态 ? 为什么? 答:应当标明是管态。

该状态由系统初试化程序设置,这样才能保证中断发生后进入操作系统规定的中断处理程序。

6. 中断和程序并发之间的关系是什么?答:中断是程序并发的必要条件。

如果没有中断,操作系统不能获得系统控制权,无法按调度算法对处机进行重新分配,一个程序将一直运行到结束而不会被打断。

7. 说明“栈”和“堆”的差别.答:栈是一块按后进先出(FIFO)规则访问的存储区域,用来实现中断嵌套和子程序调用的参数和返回断点。

操作系统课后部分习题及答案

操作系统课后部分习题及答案

第2章操作系统的运行环境2.2 现代计算机为什么设置目态/管态这两种不同的机器状态?现在的lntel80386设置了四级不同的机器状态(把管态又分为三个特权级),你能说出自己的理解吗?答:现在的Intel 80386把执行全部指令的管态分为三个特权级,再加之只能执行非特权指令的目态,这四级不同的机器状态,按照系统处理器工作状态这四级不同的机器状态也被划分管态和目态,这也完全符合处理器的工作状态。

2.6 什么是程序状态字?主要包括什么内容?答:如何知道处理器当前处于什么工作状态,它能否执行特权指令,以及处理器何以知道它下次要执行哪条指令呢?为了解决这些问题,所有的计算机都有若干的特殊寄存器,如用一个专门的寄存器来指示一条要执行的指令称程序计数器PC,同时还有一个专门的寄存器用来指示处理器状态的,称为程序状态字PSW。

主要内容包括所谓处理器的状态通常包括条件码--反映指令执行后的结果特征;中断屏蔽码--指出是否允许中断,有些机器如PDP-11使用中断优先级;CPU的工作状态--管态还是目态,用来说明当前在CPU上执行的是操作系统还是一般用户,从而决定其是否可以使用特权指令或拥有其它的特殊权力。

2.11 CPU如何发现中断事件?发现中断事件后应做什么工作?答:处理器的控制部件中增设一个能检测中断的机构,称为中断扫描机构。

通常在每条指令执行周期内的最后时刻中扫描中断寄存器,询为是否有中断信号到来。

若无中断信号,就继续执行下一条指令。

若有中断到来,则中断硬件将该中断触发器内容按规定的编码送入程序状态字PSW的相应位(IBM-PC中是第16~31位),称为中断码。

发现中断事件后应执行相中断处理程序,先由硬件进行如下操作:1、将处理器的程序状态字PSW压入堆栈2、将指令指针IP(相当于程序代码段落的段内相对地址)和程序代码段基地址寄存器CS的内容压入堆栈,以保存被子中断程序的返回地址。

3、取来被接受的中断请求的中断向量地址(其中包含有中断处理程序的IP,CS的内容),以便转入中断处理程序。

  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) 描述一个保证不会出现两个邻座同时要求吃饭的通信算法。

相关文档
最新文档