操作系统课后习题答案

合集下载

计算机操作系统(第3版)课后习题答案(完整版)

计算机操作系统(第3版)课后习题答案(完整版)

计算机操作系统(第3版)课后习题答案(完整版)1.设计现代OS的主要目标是什么?答:(1)有效性(2)方便性(3)可扩充性(4)开放性2.OS的作用可表现在哪几个方面?答:(1)OS作为用户与计算机硬件系统之间的接口(2)OS作为计算机系统资源的管理者(3)OS实现了对计算机资源的抽象3.为什么说OS实现了对计算机资源的抽象?答:OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第一层次抽象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。

OS 通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。

4.试说明推动多道批处理系统形成和发展的主要动力是什么?答:主要动力来源于四个方面的社会需求与技术发展:(1)不断提高计算机资源的利用率;(2)方便用户;(3)器件的不断更新换代;(4)计算机体系结构的不断发展。

5.何谓脱机I/O和联机I/O?答:脱机I/O 是指事先将装有用户程序和数据的纸带或卡片装入纸带输入机或卡片机,在外围机的控制下,把纸带或卡片上的数据或程序输入到磁带上。

该方式下的输入输出由外围机控制完成,是在脱离主机的情况下进行的。

而联机I/O方式是指程序和数据的输入输出都是在主机的直接控制下进行的。

6.试说明推动分时系统形成和发展的主要动力是什么?答:推动分时系统形成和发展的主要动力是更好地满足用户的需要。

主要表现在:CPU 的分时使用缩短了作业的平均周转时间;人机交互能力使用户能直接控制自己的作业;主机的共享使多用户能同时使用同一台计算机,独立地处理自己的作业。

7.实现分时系统的关键问题是什么?应如何解决?答:关键问题是当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,在用户能接受的时延内将结果返回给用户。

解决方法:针对及时接收问题,可以在系统中设Z多路卡,使主机能同时接收用户从各个终端上输入的数据;为每个终端配Z缓冲区,暂存用户键入的命令或数据。

《Linux操作系统(第2版))》课后习题答案

《Linux操作系统(第2版))》课后习题答案

《 Linux 操作系统(第 2 版)》课后习题答案1.6练习题一、选择题1. Linux 最早是由计算机爱好者B开发的。

A. Richard PetersenB. Linus TorvaldsC. Rob PickD. Linux Sarwar2.下列 C 是自由软件。

A. Windows XPB. UNIXC. LinuxD. Windows 20003.下列B不是 Linux的特点。

A. 多任务B.单用户C. 设备独立性D. 开放性4.Linux 的内核版本 2.3.20 是A的版本。

A. 不稳定B. 稳定的C. 第三次修订D. 第二次修订5.Linux 安装过程中的硬盘分区工具是D。

A. PQmagicB. FDISKC. FIPSD. Disk Druid6.Linux 的根分区系统类型是 C 。

A. FATl6B. FAT32C. ext4D. NTFS二、填空题1. GNU 的含义是: GNU's Not UNIX 。

2.Linux 一般有 3 个主要部分:内核( kernel)、命令解释层( Shell 或其他操作环境)、实用工具。

3.安装 Linux 最少需要两个分区,分别是swap 交换分区和 /(根)分区。

4.Linux 默认的系统管理员账号是root。

三、简答题(略)1.简述 Red Hat Linux 系统的特点,简述一些较为知名的Linux 发行版本。

2.Linux 有哪些安装方式?安装 Red Hat Linux 系统要做哪些准备工作?3.安装 Red Hat Linux 系统的基本磁盘分区有哪些?4.Red Hat Linux 系统支持的文件类型有哪些?2.6练习题一、选择题1.C命令能用来查找在文件TESTFILE中包含四个字符的行?A. grep ’????’TESTFILEB. grep’⋯.’TESTFILEC. grep’^????$’TESTFILED. grep’^⋯ .$’TESTFILE2.B命令用来显示/home及其子目录下的文件名。

操作系统第五版费祥林-课后习题答案参考

操作系统第五版费祥林-课后习题答案参考

操作系统第五版费祥林-课后习题答案参考1. 习题一a) 内容描述:- 系统调用是操作系统提供给用户程序的一组接口,用于访问操作系统的功能和服务。

- 系统调用是以进程的方式运行的,通过软中断或硬中断触发,并返回一个状态值,表示系统调用的执行结果。

b) 答案:系统调用的主要目的是提供一种安全的方式,让用户程序能够访问操作系统的特权功能。

通过系统调用,用户程序可以进行文件操作、网络通信、进程管理等功能。

2. 习题二a) 内容描述:- 进程是计算机中正在运行的程序的实例。

- 进程由程序代码、相关数据和执行上下文组成。

- 进程拥有自己的虚拟内存空间、寄存器状态和资源。

- 进程可以通过操作系统的调度机制进行切换和调度。

b) 答案:进程的主要特征包括并发性、独立性和随机性。

并发性指的是多个进程可以同时存在和执行;独立性指的是进程拥有独立的资源和执行上下文;随机性指的是进程的执行顺序和时间不确定。

3. 习题三a) 内容描述:- 死锁是指两个或多个进程因为竞争有限的资源而无法继续执行的状态。

- 死锁发生的原因包括互斥、占有且等待、不可抢占和循环等待。

b) 答案:死锁的预防和避免是操作系统中重要的问题。

预防死锁的方法包括破坏死锁产生的条件,如破坏互斥条件、破坏占有且等待条件等;避免死锁的方法包括资源分配图和银行家算法。

4. 习题四a) 内容描述:- 页面置换算法是操作系统中用于管理虚拟内存的重要手段。

- 页面置换算法的目标是在有限的物理内存空间中有效地管理大量的进程和页面。

- 常见的页面置换算法有FIFO、LRU和LFU等。

b) 答案:页面置换算法的选择依赖于系统的具体需求和资源限制。

FIFO算法是最简单的页面置换算法,它总是选择最先进入内存的页面进行置换;LRU算法则是根据页面最近被访问的频率进行置换;LFU算法是根据页面被访问的次数进行置换。

5. 习题五a) 内容描述:- 文件系统是操作系统中负责管理文件和目录的一组服务和数据结构。

(完整版)操作系统第五版费祥林_课后习题答案解析参考

(完整版)操作系统第五版费祥林_课后习题答案解析参考

第一章操作系统概论1、有一台计算机,具有IMB 内存,操作系统占用200KB ,每个用户进程各占200KB 。

如果用户进程等待I/O 的时间为80 % ,若增加1MB 内存,则CPU 的利用率提高多少?答:设每个进程等待I/O 的百分比为P ,则n 个进程同时等待刀O 的概率是Pn ,当n 个进程同时等待I/O 期间CPU 是空闲的,故CPU 的利用率为1-Pn。

由题意可知,除去操作系统,内存还能容纳4 个用户进程,由于每个用户进程等待I/O的时间为80 % , 故:CPU利用率=l-(80%)4 = 0.59若再增加1MB 内存,系统中可同时运行9 个用户进程,此时:cPu 利用率=l-(1-80%)9 = 0.87故增加IMB 内存使CPU 的利用率提高了47 % :87 %/59 %=147 %147 %-100 % = 47 %2 一个计算机系统,有一台输入机和一台打印机,现有两道程序投入运行,且程序A 先开始做,程序B 后开始运行。

程序A 的运行轨迹为:计算50ms 、打印100ms 、再计算50ms 、打印100ms ,结束。

程序B 的运行轨迹为:计算50ms 、输入80ms 、再计算100ms ,结束。

试说明(1 )两道程序运行时,CPU有无空闲等待?若有,在哪段时间内等待?为什么会等待?( 2 )程序A 、B 有无等待CPU 的情况?若有,指出发生等待的时刻。

答:画出两道程序并发执行图如下:(1)两道程序运行期间,CPU存在空闲等待,时间为100 至150ms 之间(见图中有色部分)(2)程序A 无等待现象,但程序B 有等待。

程序B 有等待时间段为180rns 至200ms 间(见图中有色部分)3 设有三道程序,按A 、B 、C优先次序运行,其内部计算和UO操作时间由图给出。

试画出按多道运行的时间关系图(忽略调度执行时间)。

完成三道程序共花多少时间?比单道运行节省了多少时间?若处理器调度程序每次进行程序转换化时lms , 试画出各程序状态转换的时间关系图。

(完整版)操作系统教程第5版课后标准答案

(完整版)操作系统教程第5版课后标准答案

操作系统教程第5版课后答案费祥林、骆斌编著第一章操作系统概论习题一一、思考题1.简述现代计算机系统的组成及层次结构。

答:现代计算机系统由硬件和软件两个部分组成。

是硬件和软件相互交织形成的集合体,构成一个解决计算问题的工具。

硬件层提供基本可计算的资源,包括处理器、寄存器、内存、外存及I/O设备。

软件层由包括系统软件、支撑软件和应用软件。

其中系统软件是最靠近硬件的。

2、计算机系统的资源可分成哪几类?试举例说明。

答:包括两大类,硬件资源和信息资源。

硬件资源分为处理器、I/O设备、存储器等;信息资源分为程序和数据等。

3.什么是操作系统?操作系统在计算机系统中的主要作用是什么?答:操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。

操作系统在计算机系统中主要起4个方面的作用。

(1)服务用户观点——操作系统提供用户接口和公共服务程序(2)进程交互观点——操作系统是进程执行的控制者和协调者(3)系统实现观点——操作系统作为扩展机或虚拟机(4)资源管理观点——操作系统作为资源的管理者和控制者4.操作系统如何实现计算与操作过程的自动化?答:大致可以把操作系统分为以下几类:批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统。

其中批处理操作系统能按照用户预先规定好的步骤控制作业的执行,实现计算机操作的自动化。

又可分为批处理单道系统和批处理多道系统。

单道系统每次只有一个作业装入计算机系统的主存储器运行,多个作业可自动、顺序地被装入运行。

批处理多道系统则允许多个作业同时装入主存储器,中央处理器轮流地执行各个作业,各个作业可以同时使用各自所需的外围设备,这样可以充分利用计算机系统的资源,缩短作业时间,提高系统的吞吐率5.操作系统要为用户提供哪些基本的和共性的服务?答:(1)创建程序和执行程序;(2)数据I/O和信息存取;(3)通信服务;(4)差错检测和处理。

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

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

第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.设计现代OS的主要目标是什么?答:(1)有效性(2)方便性(3)可扩充性(4)开放性2.OS的作用可表现在哪几个方面?答:(1)OS作为用户与计算机硬件系统之间的接口(2)OS作为计算机系统资源的管理者(3)OS实现了对计算机资源的抽象3.为什么说OS实现了对计算机资源的抽象?答:OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第一层次抽象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。

OS 通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。

4.试说明推劢多道批处理系统形成和収展的主要劢力是什么?答:主要动力来源于四个方面的社会需求与技术发展:(1)不断提高计算机资源的利用率;(2)方便用户;(3)器件的不断更新换代;(4)计算机体系结构的不断发展。

5.何谓脱机I/O和联机I/O?答:脱机I/O 是指事先将装有用户程序和数据的纸带或卡片装入纸带输入机或卡片机,在外围机的控制下,把纸带或卡片上的数据或程序输入到磁带上。

该方式下的输入输出由外围机控制完成,是在脱离主机的情况下进行的。

而联机I/O方式是指程序和数据的输入输出都是在主机的直接控制下进行的。

6.试说明推劢分时系统形成和収展的主要劢力是什么?答:推动分时系统形成和发展的主要动力是更好地满足用户的需要。

主要表现在:CPU 的分时使用缩短了作业的平均周转时间;人机交互能力使用户能直接控制自己的作业;主机的共享使多用户能同时使用同一台计算机,独立地处理自己的作业。

7.实现分时系统的关键问题是什么?应如何解决?答:关键问题是当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,在用户能接受的时延内将结果返回给用户。

解决方法:针对及时接收问题,可以在系统中设臵多路卡,使主机能同时接收用户从各个终端上输入的数据;为每个终端配臵缓冲区,暂存用户键入的命令或数据。

操作系统课后习题及答案

操作系统课后习题及答案

第一章1.下面不属于操作系统的是(C )A、OS/2B、UCDOSC、WPSD、FEDORA2.操作系统的功能不包括(B )A、CPU管理B、用户管理C、作业管理D、文件管理3.在分时系统中,当时间片一定时,(B ),响应越快。

A、内存越大B、用户越少C、用户越多D、内存越小4.分时操作系统的及时性是指( B )A、周转时间B、响应时间C、延迟时间D、A、B和C5.用户在程序设计的过程中,若要得到系统功能,必须通过(D )A、进程调度B、作业调度C、键盘命令D、系统调用6.批处理系统的主要缺点是( C )A、CPU使用效率低B、无并发性C、无交互性D、都不是第二章1、若信号量的初值为2,当前值为-3,则表示有(C )个进程在等待。

A、1B、2C、3D、52、在操作系统中,要对并发进程进行同步的原因是(B )A、进程必须在有限的时间内完成B、进程具有动态性C、并发进程是异步的D、进程具有结构性3、下列选项中,导致创进新进程的操作是(C )I用户成功登陆II设备分配III启动程序执行A、仅I和IIB、仅II和IIIC、仅I和IIID、I,II,III4、在多进程系统中,为了保证公共变量的完整性,各进程应互斥进入临界区。

所谓的临界区是指(D )A、一个缓冲区B、一个数据区C、一种同步机构D、一段程序5、进程和程序的本质区别是(B )A、内存和外存B、动态和静态特征C、共享和独占计算机资源D、顺序和非顺序执行计算机指令6、下列进程的状态变化中,(A )的变化是不可能发生的。

A、等待->运行B、运行->等待C、运行->就绪D、等待->就绪7、能从1种状态变为3种状态的是(D )A、就绪B、阻塞C、完成D、执行8、下列关于进程的描述正确的是(A )A、进程获得CPU是通过调度B、优先级是进程调度的重要依据,一旦确定就不能改变C、在单CPU系统中,任何时刻都有一个进程处于执行状态D、进程申请CPU得不到满足时,其状态变为阻塞9、CPU分配给进程的时间片用完而强迫进程让出CPU,此时进程的状态为(C )。

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

5.1为什么对调度程序而言,区分CPU约束程序和I/O约束程序很重要?答:在运行I/O操作前,I/0限制的程序只运行很少数量的计算机操作。

而CPU约束程序一般来说不会使用很多的CPU。

另一方面,CPU约束程序会利用整个时间片,且不做任何阻碍I/O操作的工作。

因此,通过给I/O约束程序优先权和允许在CPU 约束程序之前运行,可以很好的利用计算机资源。

5.3考虑用于预测下一个CPU区间长度的指数平均公式。

将下面的值赋给算法中的参数的含义是什么?A.a=0 且t0=100 msB.a=0.99 且t0=10 ms答:当a=0且t0=100 ms时,公式总是会预测下一次的CPU区间为100毫秒。

当a=0.99且t0=10毫秒时,进程将给予更高的重量以便能和过去相比。

因此,调度算法几乎是无记忆的,且简单预测未来区间的长度为下一次的CPU执行的时间片。

5.4考虑下面一组进程,进程占用的CPU区间长度以毫秒来计算:进程区间时间优先级P110 3P2 1 1P3 2 3P4 1 4P5 5 2假设在0时刻进程以P1、P2、P3、P4、P5的顺序到达。

a.画出4 个Gantt 图分别演示用FCFS、SJF、非抢占优先级(数字小代表优先级高)和RR(时间片=1)算法调度时进程的执行过程。

b.每个进程在每种调度算法下的周转时间是多少?c.每个进程在每种调度算法下的等待时间是多少?d.哪一种调度算法的平均等待时间最小?答a.FCFS:SJF:非抢占优先级:RR:b.周转时间:c.等待时间:d.从上表中可以看出SJF的等待时间最小。

5.5下面哪种调度算法能导致饥饿?a.先到先服务b.最短作业优先c.轮转法d.优先级答:最短作业优先和优先级调度算法能导致饥饿。

因为对于优先级较低的作业来说,最短作业优先和优先级调度算法会使其无穷等待CPU,长期得不到调用,这就导致了饥饿问题,也叫无穷阻塞。

5.9考虑下面的动态改变优先级的抢占式优先级调度算法。

大的优先级数代表高优先级。

当一个进程在等待CPU 时(在就绪队列中,但未执行),优先级以α速率改变;当它运行时,优先级以β速率改变。

所有的进程在进入等待队列时被给定优先级为0。

参数α和β可以进行设定得到许多不同的调度算法。

a.β>α>0是什么算法?b.α<β<0时是什么算法?答:a.FCFS先到先服务调度算法。

当进程进入到就绪队列时,其PCB链接到队列的尾部,优先级以α速率改变;当CPU空闲时,CPU分配给位于队列头的进程,优先级加快,以β速率改变,接着该运行进程从队列中删除。

b.LIFO后进先服务调度算法。

同上,当进程进入到就绪队列时,优先级以α速率改变,等待后进的进程先调度,之后轮到该进程时,优先级加快,以β速率改变,完成调度。

6.1第一个著名的正确解决两个进程的临界区问题的软件方法是Dekker设计的。

两个进程P0和P1共享以下变量:boolean flag[2]; /*initially false*/int turn;进程Pi(i==0或1)的结构见6.25,,另一个进程为Pj(j==0或1)。

证明这个算法满足临界区问题的所有三个要求。

d o{flag[i]=TRUE;while(flag[j]){if(turn==j){flag[i]=false;while(turn==j); //do nothingflag[i]= TRUE;}}//critical sectionturn==j;flag[i]=FALSE;//remainder section}while(TRUE);答:这个算法满足临界区问题的三个要求:(1)在标记和返回变量的使用中,互斥条件是保证的。

如果两个进程将它们的标识设为真,那么只有一个进程会成功进行,即轮到的那个进程。

当另一个进程更新它的返回变量时,等待的那个进程只能进入它的临界区域。

(2)就绪的进程,通过标志,返回变量。

这个算法没有提供严格的交替。

如果一个进程想要进入它们的临界区域,它可以将它的标识设为真,然后进入它们的临界区域。

当退出它的临界区域,它可以设置转向其他进程的值。

如果这个进程想要在其他进程之前再次进入它的临界区域,它会重复这样的进程:进入它的临界区域,在退出时转向另一个进程。

(3)在双T 返回变量的使用过程中,临界等待受阻。

假设两个进程想要进入它们的责任所在的临界区域。

它们都将它们的标志的值设为真;而只有轮到的那个线程可以执行;其他的线程处于等待状态。

如果临界等待没有受阻,当第一个进程重复“进入-退出”它的临界区域这一过程。

Dekker 算法在一个进程中设置一个转向另一个进程的值,从而保证另一个进程接下来进入它的临界区域。

6.2 第一个将等待次数降低到n-1范围内的正确解决n个进程临界区问题的软件解决方法是由Eisenberg和Mcguire设计的。

这些进程共享以下变量:enum pstate{idle, want in, in cs};pstate flag[n];int turn;flag的所有成员被初始化为idle;turn的初始值无关紧要(在0和n-1之间)。

进程pi的结构见图6.26。

试证明这个算法满足临界区问题的所有三个要求。

do{while(TRUE){flag[i] = want in;j = turn;while(j != i){if(flag[j] != idle){j = turn;elsej = (j+1)%n;}flag[i] = in cs;j = 0;while((j<n) && (j == I || flag[j] != in cs))j++;if((j >= n) && (turn == I || flag[turn] == idle))break;}//critical sectionj =(turn + 1)%n;while(flag[j] == idle)j = (j + 1)%n;turn = j;flag[i] = idle;//remainder section}while(TRUE);答:(1)互斥:注意到一个进程只有在下列条件满足时才能进入临界区域:没有其他进程在CS 中有设置的标识变量。

保证没有两个进程同时进入临界区域。

(2)有空让进:当多进程同时在CS 中设置它们的标识变量时,检查是否有其他进程在cs 中设置标识变量。

这种情况发生时,所有的进程意识到这里存在进程竞争,在外层while(1)的循环下进入下一次迭代,重置它们的标识变量到want 中。

这个进程仅能进入临界区域。

(3)有限等待:当进程k 在打算进入临界区域时,它的标识不再置为空闲。

任何序号不在轮次和k 之间的进程不能进入临界区域。

与此同时,所有序号落在轮次和k 之间且又想要进入临界区域的进程能够进入临界区域(这是基于系统一直在进步的事实),这个轮次值变得越来越接近k。

最后,要么轮次变为k,要么没有哪些序号在轮次和k 之间的进程,这样进程k 就进入临界区域了。

6.9试说明如果wait()和signal()操作不再是原子化操作,那么互斥可能是不稳定的。

答:买卖操作自动递减和信号量有关的值。

如果两个买卖操作在信号量的值为 1 的信号量上执行,而且这两种操作不是自动执行的,那么这两个操作在进展中会递减信号量的值,从而干扰互斥。

6.11理发店问题。

一家理发店有一间有n把椅子的等待室和一间有一把理发椅的理发室。

如果没有顾客,理发师就去睡觉。

如果顾客来时所有的椅子都有人,那么顾客就会离去。

如果理发师在忙,而又有空闲的椅子,那么顾客会坐在其中一个空闲的椅子上。

如果理发师在睡觉,顾客会摇醒他。

编写一个程序来协调理发师和顾客。

答:当系统中某一进程使用某一资源时,可以看作是消耗,且该进程称为消费者。

而当某个进程释放资源时,则它就相当一个生产者。

因此此题可看作是n个生产者和1个消费者问题。

顾客作为生产者,每到来一个就使计数器count增加1,以便让理发师理发(相当于消费)至最后一个顾客(相当于产品)。

并且,第1个到来的顾客应负责唤醒理发师;如果不是第1个到达的顾客,则在有空椅子的情况下坐下等待,否则离开理发店(该消息可由计数器count获得),所以可以通过一个有界缓冲区把理发师和顾客联系起来通过对信号进行P、V操作来实现有关问题和相关描述。

控制变量waiting 用来记录正在等候顾客的理发师数;信号量customers用来记录等候理发的顾客数,并用作阻塞理发师进程;信号量barbers用来记录正在等候顾客的理发师数,并用作阻塞顾客进程。

信号量mutex用于互斥。

初始化:int long waiting(0);//正在等待的顾客的数目customers,barbers,mutex:semaphore;customers:0;barbers:=1;waiting:=0;mutex:=NULL;理发师进程:barber()begindo{P(customers);//若无顾客,理发师睡眠p(mutex);//进程互斥waiting--;//等候顾客减1V(barbes);//理发师为下一个顾客理发V(mutex);//开放临界区cut-hair();//正在理发}while(TURE)//是否还有顾客顾客进程:customer()begindo{P(mutex);//进程互斥if(waiting){waiting++;//等待顾客数加1V(customers);//唤醒理发师V(mutex);//开放临界区P(barbers);//理发师没空,顾客等候get-haircut;//顾客准备理发}elseV(utex);//无空闲位,顾客离开}while(TRUE)6.15试论述读者-写者问题的操作公平性及吞吐量,并设计一个新方法解决读者-写者问题且不会产生饥饿。

答:读者-作者问题中吞吐量是受利益多的读者所影响的,而不是让一个作家独占式地获得。

另一个方面,有利于读者则可能会导致饥饿的作者。

在读者-写者问题中能够通过保持和等待进程有关的时间来避免。

当作者完成他的任务,那么唤醒那些已经等了最长期限的进程。

当读者到达和注意到另一个读者正在访问数据库,那么它只有在没有作者等待的情况下才能进入临界区域。

相关文档
最新文档