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

合集下载

操作系统第二章课后答案

操作系统第二章课后答案

第二章进程管理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、有I/O频繁、I/O与计算机均衡和计算量大的三个作业,它们同时进入主存并行工作,请给每个作业赋于运行优先数,并说明理由。

4、脱机命令接口和联机命令接口有什么不同?5、简述作业的状态有哪些?作业调度是把什么状态的作业调入到内存?6、系统调用的执行过程大体上分成哪三步?7、命令解释程序有哪两种处理方法?8、解释作业和作业调度,作业调度选择作业的必要条件是什么?9、操作系统提供哪些便于用户控制交互式作业的使用接口?10、一个具有分时兼批处理功能的操作系统应怎样调度和管理作业?为什么?二、计算题和证明1、某系统采用不能移动已在主存储器中作业的可变分区方式管理主存储器,现有供用户使用的主存空间100K,系统配有4台磁带机,有一批作业见表。

表该系统采用多道程序设计技术,对磁带机采用静态分配,忽略设备工作时间和系统进行调度所花的时间,请分别写出采用优先数算法(数字越小优先级别越高),响应比高者优先算法、短作业优先算法、先来先服务算法选中作业执行的次序。

1,2,4,5,32、试证明短作业优先调度算法能达到最短平均周转时间。

证明:假定t个作业的执行时间分别是t1,t2,t3,....,t n,则总的周转时间为T=t1+(t1+t2)+…+(t1+t2+…+t n) (t1<t2<t3<....<tn)=nt1+(n-1)t2+....+t n即t1, t1,......., t1, t2,......., t2, t3,......., t3, t2,......., t n-1, t n-1, t n之和,此序列表示为Xx1,x2,x3,...... ,x n(n+1)/2,若任意其他执行序列,则其周转时间为S=s1+(s1+s2)+…+(s1+s2+…+s n)即s1, s1,......., s1, s2,......., s2, s3,......., s3, s2,......., s n-1, s n-1, s n之和,将此序列按照数大小进行排列,得到序列Y表示为y1,y2,y3,...... ,y n(n+1)/2,因为t1<t2<t3<....<tn,所以在序列X和Y的前n项肯定满足x i≤y i,因为Y 序列中最短的时间值(等于t1的值)不会多于n个,所以从第n+1项开始其值必大于等于t2,因此在序列X和Y的前n+1,2n-1项肯定满足x i≤y i,因为Y序列中最短的时间值和次短值(等于t1或t2的值)不会多于2n-1个,所以从第2n 项开始其值必大于等于t3,因此在序列X和Y的前2n,3n-3项肯定满足x i≤y i,依次类推得到,每项都满足x i≤y i,i=1,2,3,...,n(n+1)/2因此短作业优先调度算法平均周转时间最短3、有一个多道程序设计系统,采用不允许移动的可变分区方式管理主存中的用户空间,设用户空间为100K,主存空间的分配算法为最先适应分配算法,进程调度算法采用先来先服务算法,今有如表所示作业序列:假定所有作业都是计算型作业且忽略系统调度时间,请写出采用"计算时间短的作业优先算法"时作业的装入主存时间、开始执行时间、完成时间、周转时间以及它们的平均周转时间。

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

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

操作系统第二版课后习题答案操作系统第二版课后习题答案操作系统是计算机科学中的重要领域,它负责管理计算机硬件和软件资源,为用户提供良好的使用体验。

在学习操作系统的过程中,课后习题是巩固和深化知识的重要方式。

本文将为大家提供操作系统第二版课后习题的答案,帮助读者更好地理解和掌握操作系统的知识。

第一章:引论1. 操作系统的主要功能包括进程管理、内存管理、文件系统管理和设备管理。

2. 进程是指正在执行的程序的实例。

进程控制块(PCB)是操作系统用来管理进程的数据结构,包含进程的状态、程序计数器、寄存器等信息。

3. 多道程序设计是指在内存中同时存放多个程序,通过时间片轮转等调度算法,使得多个程序交替执行。

4. 异步输入输出是指程序执行期间,可以进行输入输出操作,而不需要等待输入输出完成。

第二章:进程管理1. 进程调度的目标包括提高系统吞吐量、减少响应时间、提高公平性等。

2. 进程调度算法包括先来先服务(FCFS)、最短作业优先(SJF)、优先级调度、时间片轮转等。

3. 饥饿是指某个进程长时间得不到执行的情况,可以通过调整优先级或引入抢占机制来解决。

4. 死锁是指多个进程因为争夺资源而陷入无限等待的状态,可以通过资源预分配、避免环路等方式来避免死锁。

第三章:内存管理1. 内存管理的主要任务包括内存分配、内存保护、地址转换等。

2. 连续内存分配包括固定分区分配、可变分区分配和动态分区分配。

3. 分页和分段是常见的非连续内存分配方式,分页将进程的地址空间划分为固定大小的页,分段将进程的地址空间划分为逻辑段。

4. 页面置换算法包括最佳置换算法、先进先出(FIFO)算法、最近最久未使用(LRU)算法等。

第四章:文件系统管理1. 文件是操作系统中用来存储和组织数据的逻辑单位,可以是文本文件、图像文件、音频文件等。

2. 文件系统的主要功能包括文件的创建、删除、读取、写入等操作。

3. 文件系统的组织方式包括层次目录结构、索引结构、位图结构等。

计算机操作系统(第四版)课后习题答案第二章

计算机操作系统(第四版)课后习题答案第二章

第二章1.什么是前趋图?为什么要引入前趋图?答:前趋图(PrecedenceGraph)是一个有向无循环图,记为DAG(DirectedAcyclicGraph),用于描述进程之间执行的前后关系。

2.画出下面四条诧句的前趋图:S1=a:=x+y;S2=b:=z+1;S3=c:=a-b;S4=w:=c+1;答:其前趋图为:3.4.5.6.a.未建立任何进程的程序,都不能作为一个独立的单位来运行。

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

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

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

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

11.试说明进程在三个基本状态之间转换的典型原因。

答:(1)就绪状态→执行状态:进程分配到CPU资源(2)执行状态→就绪状态:时间片用完(3)执行状态→阻塞状态:I/O请求(4)阻塞状态→就绪状态:I/O完成12.为什么要引入挂起状态?该状态有哪些性质?答:引入挂起状态处于五种不同的需要:终端用户需要,父进程需要,操作系统需要,对换需要和负荷调节需要。

处于挂起状态的进程不能接收处理机调度。

10.在3)。

17.在撤销一个进程时所要完成的主要工作是什么?答:(1)根据被终止进程标识符,从PCB集中检索出进程PCB,读出该进程状态。

(2)若被终止进程处于执行状态,立即终止该进程的执行,臵调度标志真,指示该进程被终止后重新调度。

(3)若该进程还有子进程,应将所有子孙进程终止,以防它们成为不可控进程。

(4)将被终止进程拥有的全部资源,归还给父进程,或归还给系统。

计算机操作系统(第四版)课后习题答案第二章

计算机操作系统(第四版)课后习题答案第二章

第二章1.什么是前趋图?为什么要引入前趋图?答:前趋图(PrecedenceGraph)是一个有向无循环图,记为DAG(DirectedAcyclicGraph),用于描述进程之间执行的前后关系。

2.画出下面四条诧句的前趋图:S1=a:=x+y;S2=b:=z+1;S3=c:=a-b;S4=w:=c+1;答:其前趋图为:3.4.5.6.a.未建立任何进程的程序,都不能作为一个独立的单位来运行。

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

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

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

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

11.试说明进程在三个基本状态之间转换的典型原因。

答:(1)就绪状态→执行状态:进程分配到CPU资源(2)执行状态→就绪状态:时间片用完(3)执行状态→阻塞状态:I/O请求(4)阻塞状态→就绪状态:I/O完成12.为什么要引入挂起状态?该状态有哪些性质?答:引入挂起状态处于五种不同的需要:终端用户需要,父进程需要,操作系统需要,对换需要和负荷调节需要。

处于挂起状态的进程不能接收处理机调度。

10.在3)。

17.在撤销一个进程时所要完成的主要工作是什么?答:(1)根据被终止进程标识符,从PCB集中检索出进程PCB,读出该进程状态。

(2)若被终止进程处于执行状态,立即终止该进程的执行,臵调度标志真,指示该进程被终止后重新调度。

(3)若该进程还有子进程,应将所有子孙进程终止,以防它们成为不可控进程。

(4)将被终止进程拥有的全部资源,归还给父进程,或归还给系统。

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

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

第二章作业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 操作系统的定义与作用操作系统是计算机系统中的核心软件,负责管理和控制计算机硬件资源,为用户和应用程序提供统一的接口和服务。

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设计现代OS勺主要⽬标是什么?答:(1)有效性(2)⽅便性(3)可扩充性(4)开放性2. OS勺作⽤可表现在哪⼏个⽅⾯?答:(1)OS乍为⽤户与计算机硬件系统之间的接⼝(2)OS乍为计算机系统资源的管理者(3)O或现了对计算机资源的抽象13. OS有哪⼏⼤特征?其最基本的特征是什么?答:并发性、共享性、虚拟性和异步性四个基本特征;最基本的特征是并发性。

14?处理机管理有哪些主要功能?它们的主要任务是什么?答:处理机管理的主要功能是:进程管理、进程同步、进程通信和处理机调度;进程管理:为作业创建进程,撤销已结束进程,控制进程在运⾏过程中的状态转换。

进程同步:为多个进程(含线程)的运⾏______________________ 进⾏协调。

通信:⽤来实现在相互合作的进程之间的信息交换。

处理机调度:(1 )作业调度。

从后备队⾥按照⼀定的算法,选出若⼲个作业,为他们分配运⾏所需的资源(⾸选是分配内存)。

(2)进程调度:从进程的就绪队列中,按照⼀定算法选出⼀个进程,把处理机分配给它,并设置运⾏现场,使进程投⼊执⾏。

15?内存管理有哪些主要功能?他们的主要任务是什么?北京⽯油化⼯学院信息⼯程学院计算机系3/48《计算机操作系统》习题参考答案余有明与计07和计G09勺同学们编著3/48答:内存管理的主要功能有:内存分配、内存保护、地址映射和内存扩充。

内存分配:为每道程序分配内存。

内存保护:确保每道⽤户程序都只在⾃⼰的内存空间运⾏,彼此互不⼲扰。

地址映射:将地址空间的逻辑地址转换为内存空间与对应的物理地址。

内存扩充:⽤于实现请求调⽤功能,置换功能等。

16?设备管理有哪些主要功能?其主要任务是什么?答:主要功能有:缓冲管理、设备分配和设备处理以及虚拟设备等。

主要任务:完成⽤户提出的I/O请求,为⽤户分配I/O设备;提⾼CPU和I/O设备的利⽤率;提⾼I/O速度;以及⽅便⽤户使⽤I/O设备.17?⽂件管理有哪些主要功能?其主要任务是什么?答:⽂件管理主要功能:⽂件存储空间的管理、⽬录管理、⽂件的读/写管理和保护。

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

第二章进程管理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是进程存在的唯一标志。

8. 试说明进程在三个基本状态之间转换的典型原因.a. 处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态变为执行状态。

b. 当前进程因发生某事件而无法执行,如访问已被占用的临界资源,就会使进程由执行状态转变为阻塞状态。

c. 当前进程因时间片用完而被暂停执行,该进程便由执行状态转变为就绪状态。

9. 为什么要引入挂起状态?该状态有哪些性质?a. 引入挂起状态主要是出于4种需要(即引起挂起的原因): 终端用户的请求,父进程请求,负荷调节的需要,操作系统的需要。

b. 被挂起的进程是处于静止状态,并且不能直接被处理机调度。

17. 为什么进程在进入临界区之前应先执行“进入区”代码?而在退出前又要执行“退出区”代码?为了实现多个进程对临界资源的互斥访问,必须在临界区之前加一段用于检查临界资源是否正在被访问的代码,如未被访问,该进程可进入临界区对此临界资源进行访问;如正被访问,则该进程不能进入临界区访问临界资源。

在退出临界区后,执行恢复访问标志的代码为“退出区”,而在退出前执行“退出区”代码主要是为了使其它进程能再访问此临界资源。

18. 同步机构应遵循哪些基本准则?为什么?a. 空闲让进、忙则等待、有限等待、让权等待四条准则b. 为实现进程能互斥地进入到自己的临界区19. 试从物理概念上说明记录型信号量wait和signal。

Wait(S):当S.value>0时,表示目前系统中这类资源还有可用的,执行一次wait操作,意味着进程请求一个单位的该类资源,是系统中可供分配的该类资源减少一个,因此描述为S.value:=S.value-1;当S.value<0时,表示该类资源已分配完毕,因此进程应调用block原语,进行自我阻塞,放弃处理机,并插入到信号量链表S.L中。

Signal(S):执行一次signal操作,意味着释放一个单位的可用资源,使系统中可供分配的该类资源数增加一个,故执行S.value:=S.value+1操作。

若加1后S.value≤0,则表示在该信号量链表中,仍有等待该资源的进程被阻塞,因此应调用wakeup原语,将S.L链表中的第一个等待进程唤醒。

22. 试写出相应的程序来描述图2-17所示的前驱图。

a. Var a, b, c, d, e, f, g, h; semaphore:= 0, 0, 0, 0, 0, 0, 0, 0;beginparbeginbegin S1; signal(a); signal(b); end;begin wait(a); S2; signal(c); signal(d); end;begin wait(b); S3; signal(e); end;begin wait(c); S4; signal(f); end;begin wait(d); S5; signal(g); end;begin wait(e); S6; signal(h); end;begin wait(f); wait(g); wait(h); S7; end;parendend23. 在生产者—消费者问题中,如果缺少了signal(full)或signal(empty),对执行结果将会有何影响?如果缺少了signal(full),那么表明从第一个生产者进程开始就没有对信号量full值改变,即使缓冲池存放的产品已满了,但full的值还是0,这样消费者进程在执行wait(full)时会认为缓冲池是空的而取不到产品,那么消费者进程则会一直处于等待状态。

如果缺少了signal(empty),例如在生产者进程向n个缓冲区投满产品后消费者进程才开始从中取产品,这时empty=0,full=n,那么每当消费者进程取走一个产品时empty 并没有被改变,直到缓冲池中的产品都取走了,empty的值也一直是0,即使目前缓冲池有n个空缓冲区,生产者进程要想再往缓冲池中投放产品会因申请不到空缓冲区而被阻塞。

24. 在生产者—消费者问题中,如果将两个wait操作即wait(full)和wait(mutex)互换位置,或者将signal(mutex)和signal(full)互换位置,结果会如何?在生产者—消费者问题中,如果将两个wait操作,即wait(full)和wait(mutex)互换位置后,可能引起死锁。

考虑系统中缓冲区全满时,若一生产者进程先执行了wait(mutex)操作并获得成功,则当再执行wait(empty)操作时,它将因失败而进入阻塞状态,它期待消费者进程执行signal(empty)来唤醒自己,在此之前,它不可能执行signal(mutex)操作,从而使试图通过执行wait(mutex)操作而进入自己的临界区的其他生产者和所有消费者进程全部进入阻塞状态,这样容易引起系统死锁。

若signal(mutex)和signal(full)互换位置后只是影响进程对临界资源的释放次序,而不会引起系统死锁,因此可以互换位置。

25. 我们为某临界资源设置一把锁W,当W=1时表示关锁;当W=0时表示锁已打开,试写出开锁和关锁原语,并利用它们去实现互斥。

整型信号量:lock(W): while W=1 do no-opW:=1;unlock(W): W:=0;记录型信号量:lock(W): W:=W+1;if(W>1) then block(W.L)unlock(W): W:=W-1;if(W>0) then wakeup(W.L)例子:Var W:semaphore:=0;beginrepeatlock(W);critical sectionunlock(W);remainder sectionuntil false;end26. 试修改下面生产者——消费者问题解法中的错误:producer:beginrepeat……produce an item in nextp;wait(mutex);wait(full);buffer(in):=nextp;……signal(mutex);until false;endconsumer:beginrepeat……wait(mutex);wait(empty);nextc:=buffer(out);out:=out+1;signal(mutex); consume item in nextc;until false; end27. 试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法。

三种解决方法中的任意一种即可(略)。

PPT6228. 在测量控制系统中的数据采集任务时,把所采集的数据送往一单缓冲区;计算任务从该单缓冲区中取出数据进行计算。

试写出利用信号量机制实现两任务共享单缓冲区的同步算法。

a. Var mutex, empty, full: semaphore:=1, 1, 0;gather:beginrepeat……gather data in nextp;wait(empty);wait(mutex);buffer:=nextp;signal(mutex);signal(full);until false;end compute:beginrepeat……wait(full);wait(mutex);nextc:=buffer;signal(mutex);signal(empty);compute data in nextc;until false;endb. Var empty, full: semaphore:=1, 0;gather:beginrepeat……gather data in nextp;wait(empty);buffer:=nextp;signal(full);until false;endcompute:beginrepeat……wait(full);nextc:=buffer;signal(empty);compute data in nextc;until false;end31. 参考ppt76页32. 参考ppt91页33. 试比较进程间的低级通信工具与高级通信工具.用户用低级通信工具实现进程通信很不方便,因为其效率低,通信对用户不透明,所有的操作都必须由程序员来实现,而高级通信工具则可弥补这些缺陷,用户可直接利用操作系统所提供的一组通信命令,高效地传送大量的数据。

36. 为什么要在OS中引入线程?在OS中引入进程的目的,是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量。

在OS中再引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。

相关文档
最新文档