《考研-操作系统基础知识归纳和总结 2.docx》由会员分享,可在线阅读,更多相关《考研-操作系统基础知识归纳和总结 2.docx(91页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品名师归纳总结考研 基础学问总结什么是操作系统?它有什么基本特点?(哈工大 2000年试题)【解答】操作系统:操作系统是运算机系统中的一个系统软件。它是一些程序模块的集合, 这些程序模块治理和掌握运算机中的硬件和软件资源,合理的组织运算机工作流程,以便有效的利用这些资源为用户供应一个功能强、使用便利的工作环境,从而在用户及运算机之间起到接口的作用。操作系统的基本特点是并行性、共享性、不确定性。判定:操作系统程序都是在核心态下才能运行。(大连理工高校 2000年试题)【分析】操作系统是一组掌握和治理运算机硬件和软件资源、合理的对各类作业进行调度以及便利用户的程序的集合。操作系统供应的服务,一部
2、分必需在核心态下才能运行,如进程调度、目录服务等。仍有一些功能, 如 DOS 下的外部命令,就可以由用户调用,运行在用户态下。【解答】错误。批处理系统的主要缺点是:(清华高校 1996年试题) A CPU 利用率低。 B不能并发执行。C缺少交互性。D以上都不是。【解答】挑选 C。填空:多道运行的特点之一是宏观上并行, 它的含义是( )。(华中科技高校 2000年试题)【分析】多道运行的特点是多道性、宏观上并行、微观上串行。多道性是指运算机主存中同时存放几道相互独立的程序。宏观上并行是指同时进入系统的几道程序都处于运行过程中,即它们先后开头了各自的运行,但都未运行完毕。微观上串行是指主存中的多道
3、程可编辑资料 - - - 欢迎下载精品名师归纳总结序轮番或分时的占有处理机交替执行。【解答】并发程序都已经开头执行,但都未终止。判定:在分时系统中,响应时间 时间片用户数,因此为改善响应时间,常用的原就是使时间片越小越好。(东南高校 1996年试题)【分析】时间片越小,进程切换所用的开销就相对越大。因此时间片不是越小越好,一般使用户键入的常用命令能在一个时间片内处理完毕即可。【解答】错误。实时系统应具备的两个基本特性是()和( )。(北京理工高校 2000年试题)【分析】实时系统是顺应实时掌握和实时信息处理的需要而产生的。 所谓实时是表示准时、即时,而实时系统是指系统能准时(或即时)响应外部大
4、事的恳求,在规定的时间内完成对该大事的处理,并掌握全部实时任务和谐一样的运行。实时系统的应用领域打算了它的特性是:具有实时时钟治理功能。能进行过载爱护。高牢靠性。【解答】准时性高牢靠性实时信息处理是实时应用的一种,例如()和( )都是实时信息处理的例子。(华中科技高校 2000年试题)【解答】飞机订票系统、图书资料查询系统现代操作系统的基本功能是治理运算机系统的硬件、软件资源,这些治理工作分为 A 治理、B 治理、C 治理、D 治理、E 和通信事务治理。(东南高校 2000年试题)【解答】A处理机 B储备器治理 C设备 D文件 E作业【扩展】挑选:操作系统的( )治理部分负责对进程调度。A主储
5、备器 B掌握器 C运算器 D处理机这里要防止把处理机与系统结可编辑资料 - - - 欢迎下载精品名师归纳总结构中所说的处理机的组成混淆起来。挑选 D。为了支持多道程序运行,储备治理必需要实现的主要功能有()、( )和主存扩充。(华中科技高校 1997年试题)【分析】在多道程序运行环境下,程序员无法预知储备治理模块将把他们的程序安排到主存的什么的方,而且程序员也期望摆脱储备的址、储备空间大小等细节问题。因此储备治理模块应当供应的址重定位才能。另外,由于主存中可同时存放多道程序,为了防止程序间相互干扰,储备治理模块必需供应储备爱护手段。【解答】储备无关性、储备爱护挑选:衡量整个运算机性能指标的参数
6、有:(北京理工高校 1999年试题)A用户接口。B资源利用率。C作业步的多少。D 吞吐量。 E周转时间。【分析】操作系统的性能与运算机系统工作的优劣有着亲密的联系。评判操作系统的性能指标一般有:系统的牢靠性。 系统的吞吐率(量),是指系统在单位时间内所处理的信息量, 以每小时或每天所处理的各类作业的数量来度量。系统响应时间,是指用户从提交作业到得 到运算结果这段时间,又称周转时间。系统资源利用率,指系统中各个部件、各种设备 的使用程度。它用在给定时间内, 某一设备实际使用时间所占的比例来度量。 可移植性。【解答】挑选 B、D、E。【扩展】判定:资源的利用率高和系统的工作效率高是一回事() 。(
7、东南高校试题) 解答:系统的工作效率,也就是吞吐率。从上述分析可知,此题应判错误。3.2 规律结构判定:数据库治理程序需要调用操作系统程序, 操作系统程序的实现也需要数据可编辑资料 - - - 欢迎下载精品名师归纳总结库系统的支持。()(大连理工高校 2000年试题)【分析】从操作系统虚拟机的结构来看, 最核心层是裸机, 紧挨着的一层是操作系统, 这一层把应用程序和裸机隔离开来,使得应用程序看起来似乎运行在一个虚拟机器上。题中说法没有正确反映应用程序与操作系统的关系。【解答】错误。简答:操作系统有哪几种结构设计方法?简述其中之一的特点。(武汉高校 2000年试题)【解答】操作系统有无结构、层次
8、结构和客户 /服务器模型等 3 种结构设计方法。现今大多数操作系统采纳的是层次结构。 层次结构是结构设计方法的一种, 使用这种方法进行设计时,可以形成正确、结构清晰的软件系统,从而达到牢靠、可适应、可移植的设计目标。在层次式结构下,操作系统的各模块应处于什么位置、各模块之间的关系特别清晰。一个分层结构操作系统由裸机, 用户,CPU 调度和 P、V 操作,文件治理,作业治理,内存治理,设备治理,命令治理等部分组成。试按层次结构的原就从内到外将各部分重新排列。(中国科学院运算技术争论所 1997年试题)【解答】按层次结构的原就从内到外依次为: 裸机,CPU 调度和 P、V 操作,内存治理,作业治理
9、,设备治理,文件治理,命令治理,用户。在运算机系统中,为什么要区分管态与目态?操作系统为什么能为用户程序供应各种服务?(西安电子科技高校 1999年试题)【解答】操作系统是运算机系统中最重要的系统软件, 为了能正确的进行治理和掌握, 其本身是不能被破坏的。因此,系统采纳了区分处理机状态的方法,为操作系统程序建立一个爱护环境。这样,用户程序只能在管态下运行,只能执行非特权指令,只能拜访自己的储备区,从而爱护了操作系统程序的正常运行。操作系统虚拟机为用户供应了一个帮助解决问题的装置。 操作系统为用户供应两种类型的用户界面, 其一是命令接口,包括键盘命令、作业掌握语言、图形化用户界面等。可编辑资料
10、- - - 欢迎下载精品名师归纳总结其二是系统调用,又称程序接口。通过这两种界面,操作系统把它的全部操作命令的集合出现给用户(或用户程序),从而实现了为用户服务。判定:用户程序通常可以直接拜访系统缓冲区中的数据。( )(大连理工高校 2000年试题)【分析】由前面表达可知, 用户程序工作在目态下, 只能直接拜访自己的储备区, 拜访系统缓冲区必需通过操作系统的服务。【解答】错误。挑选:你认为以下哪几种指令应当在核心状态下执行。(上海交通高校 1999 年试题,10 分)1. 屏蔽全部中断。2读时钟周期。3设置时钟日期。4转变储备映像图。 5存取某的址单元的内容。 6停机。【解答】1、2、4、6
11、必需在核心状态下执行。简答:试说明中断在进程掌握中的推动作用。(南开高校 2000年试题)(8 分)【解答】中断是实现操作系统功能的基础, 是构成多道程序运行环境的根本措施, 是进程掌握中的推动力气。例如,外设完成中断或恳求使用外设的访管中断的显现,将导致I/O 治理进程投入运行。申请或释放主存而发出的访管中断,将导致在主存中创建一个进程 而且开头运行。时钟中断或 I/O 完成中断,可导致处理机调度工作的执行。操作员从键盘发出终止执行的命令,可以终止当前进程的运行。所以,中断是进程运行的引导,是 它们被激活的驱动源。挑选:中断发生时,由硬件爱护并更新程序指令计数器 PC,而不是由软件完成, 主
12、要是为了( )(华中科技高校 1998年试题)A. 提高处理速度。B使中断程序易于编制。 C节约内存。 D能进入中断处理程序并能正确返回。【分析】一次中断过程分为中断进入(由硬件负责)和中断处理过程(由软件负责) 。在中可编辑资料 - - - 欢迎下载精品名师归纳总结断进入过程中,第一储存 PC、PS 值,然后从中断向量的址中得到 PC、PS 值放入寄存器。软件的中断处理过程是,先储存现场信息和参数传递,再执行中断处理程序,最终复原和退出中断。简要的说,一次中断,两次爱护现场。分步爱护现场的缘由是,进入软件的中断处理后, PC、PS寄存器里被填上了新内容,因此, PC、PS的爱护只能由硬件完成
13、。【解答】 答案是 D。【扩展】中断响应的实质是什么?从上述分析可知,中断响应的实质是交换指令执行的址和处理器状态信息。填空:中断优先级是由硬件规定的, 如要调整中断的响应次序, 可通过。北京高校 1997年试题【分析】中断优先级是由硬件规定的,其次序是不能由软件更换的。要调整中断的响应次序, 只能通过中断屏蔽。【解答】中断屏蔽3.3 用户界面与 OS 实例在答卷上用连线把下面左右两列词连起来形成最恰当的 5 对。(东南高校 2000年试题)左列:右列:(1)Linux(1)面对对象(2) UNIX(2)网络操作系统(3) Windows NT(3)微内核(4) Mach 3.0(4)自由软件
14、(5) OS/2(5)C 语言【分析】UNIX 的核心代码大部分是用 C 语言写的。Windows NT 是当然的网络操作系统。可编辑资料 - - - 欢迎下载精品名师归纳总结Linux 是 UNIX 的一种,详细讲 Linux 是一套兼容于 System V以及 BSD UNIX 的操作系统,也是遵循 POSIX 规范的一个操作系统。Linux 于 1991年 4 月由芬兰人 Linus Benedict Torvalds在赫尔辛基高校独立开发,并由此开创了自由软件的先河。当 UNIX 日渐巨大复杂而难以把握时,人们提出了 Microkernel 的概念,就是把 Kernel 去芜存菁,仅留
15、下重要的部分,以此减低 Kernel 的复杂度。Mach 就是在 Carnegie-Mellon(卡耐基梅隆CMU )高校产生的一个 Microkernel(微核心)操作系统( 1980 年)。Mach 最普遍的版本是 Mach 2.5。它是很多商业 UNIX 如 DEC OSF/1、NextStep的基础。Mach 3.0才是真正纯粹的完全 Microkernel 化版本。OS/2采纳 32 位抢先多任务体系结构, 采纳客户机服务器策略, 在对等层环境既是一个客户机又是一个服务器。 OS/2可以同时运行 Windows 3.1、DOS 和 OS/2 的应用软件。OS/2的图形用户界面称为 W
16、orkPlace She。ll 它使用面对对象的标记和拖放界面(在这一点上, Windows NT也是)。用户可以对工具和文件夹进行个人化以简化对重要信息的拜访。【解答】连线见下图:3.4 进程的描述与掌握什么是进程掌握块?试从进程治理、 进程通信、中断处理、文件治理、储备治理、设备治理的角度设计进程掌握块应包含的项目。(北京高校 1999年试题)【分析】北京高校 1990年、1992年、1995年、1997年都以名词说明的形式考查了 PCB 这一学问点。1999 年再次考查这一学问点,并提高了考试要求,即要求懂得 PCB 结构中可编辑资料 - - - 欢迎下载精品名师归纳总结各重量的含义。熟
17、记我们在前面列出的进程掌握原语的形式描述有助于加深对这个题的懂得。【解答】进程掌握块(PCB)是为描述进程的运动变化过程而采纳的一个与进程相联系的数据结构,用于记录系统治理进程所需的信息,描述进程的瞬时特点。它是进程的唯独实体,操作系统通过 PCB 而感知进程的存在。为了完成进程治理、 进程通信、中断处理、文件治理、储备治理、设备治理等各项任务,进程 PCB 结构必需如下项目:进程的标识符 name:每个进程都必需有唯独的标识符,可以用字符或编号表示。在创建一个进程时,由创建者给出进程的标识,唯独的标识进程,与其他进程区分。进程当前运行状态 status:说明本进程目前处于何种状态(运行、就绪
18、、等待) ,作为进程调度时安排处理机的主要依据。当前队列指针 next:登记了处于同一状态的下一个 PCB 的的址,以此将处于同一状态的全部进程链接起来。比如在一个就绪队列中,当前活动进程堵塞,就需要依据当前队列指针调度下一个就绪进程进入运行。总链指针 all_q_next:将全部的进程链接起来,进程 PCB 中的该项内容总是指向总链中的下一个 PCB 的址。这在有的场合是很便利的, 比如当创建一个进程时, 需要判定创建者给出的标识符名是否唯独,此时沿总链往下查找就比较便利。可编辑资料 - - - 欢迎下载精品名师归纳总结程序开头的址 start_add:r从今处获得进程开头的址。进程开头的的
19、址。当一个进程被调度进入运行时, 需要可编辑资料 - - - 欢迎下载精品名师归纳总结CPU现场爱护区 cpustatu:s 通常爱护的信息有工作寄存器、 指令计数器以及程序状态字等,供进程调度时使用。当一个进程由运行转入其他状态时,需要把这些信息储存起来。当一个进程投入运行时,又需要把这些内容写入相应的寄存器。同时进行中断处理也需要储存 CPU 现场。通信信息 communication information:是指每个进程在运行过程中与别的进程进行通信时所记录的有关信息。家庭联系 process family:有的系统答应一个进程创建自己的子进程,这样,会组成一个进程家庭。在 pcb 中必
20、需指明本进程与家庭的联系,如它的子进程和父进程的标识符。占有资源清单 own_resourc,e 用于设备治理。进程优先级 priority,在中断处理、进程调度过程中都需要比较进程之间的优先级。上述项目是一般 PCB 结构应包含最基本内容。不同的操作系统所使用的 PCB 结构是不同的。在 UNIX 系统中, 为完成储备治理、文件治理,仍在 PCB 结构中设有 i 结点可编辑资料 - - - 欢迎下载精品名师归纳总结指针、主存的址、当前中断爱护区内 r0 等内容。判定:进程是基于多道程序技术而提出来的。其最基本的特性是并发性和动态性。 进程的执行也即在各种基本状态之间多次转换的过程。但只有处于
21、就绪、堵塞、执行这 3 种状态的进程位于内存。(中科院软件所 2000年试题)【解答】错误。去掉并发性。进程在新、死状态上只经过一次。 进程都在内存中。一个单 CPU 的操作系统共有 n 个进程,不考虑进程状态过渡的情形:(北京高校1995年试题)给出运行进程的个数。给出就绪进程的个数。给出等待进程的个数。【分析】单处理机在任一时刻只能处理一道程序, 在不考虑状态过渡的情形下, 任一进程只有 3 种状态,即运行、就绪和等待。但此时该系统其他条件未知(如资源安排情形),故无法确定就绪进程和等待进程的数目。【解答】1。不肯定。不肯定。填空:为了实现进程由等待状态转换成就绪状态的状态变化,操作系统应
22、供应 原语。(华中科技高校 2001年试题)【解答】 唤醒原语。什么是线程?试说明线程与进程的关系。(南京高校 2000 年试题)【解答】在引入线程的 OS中,线程是进程中的一个实体,是被系统调度和分派的基本单位。进程与线程既区分、又联系。进程是任务调度的单位,也是系统资源的安排单位。而线程是进程中的一条执行路径,当系统支持多线程处理时,线程是任务调度的单位, 但不是系统资源的安排单位。每个进程至少有一个执行线程。可编辑资料 - - - 欢迎下载精品名师归纳总结3.5 同步、互斥与通信何谓临界区?下面给出的实现两个进程互斥的算法是安全的吗?为什么? (中国科学技术高校 1998 年试题)#de
23、fine TRUE;#define FALSE; int flag2;flag0 = flag1 = FALSE; enter-crtseciint i; WHILEflag1-i;flagi = TRUE; leave-crtseciint i; flagi = FALSE;process i: /* i = 0 OR i = 1 */.enter-crtse(c i); /*进入临界区 */IN CRTICAL SECTION可编辑资料 - - - 欢迎下载精品名师归纳总结Leave-crtse(c.【解答】i); /*离开临界区 */可编辑资料 - - - 欢迎下载精品名师归纳总结一次仅
24、答应一个进程使用的资源称为临界资源,在进程中对于临界资源拜访的程序段称为临界区。从概念上讲,系统中各进程在规律上是独立的,它们可以按各自独立的速度向前推动。但由于它们共享某些临界资源,而产生了临界区问题。对于具有临界区问题的共行进程,它们之间必需互斥,以保证不会同时进入临界区。这种算法是担心全的。 由于,在进入临界区的操作 enter-crtsec不 是一个原子操作,假如两个进程同时执行完其循环(此前两个 flag 均为 False),就这两个进程可以同时进入临界区。举例说明 P、V 操作为什么要求设计成原语(即对同一信号量上的操作必需互斥)。(北京高校 1993 年试题)可编辑资料 - -
25、- 欢迎下载精品名师归纳总结【分析】这是一个概念题,要求考生对 P、V 操作有较深刻的懂得。【解答】P 操作的流程如下所示。PROCEDURE PSBEGINlock out interrupts;S := S-1;IF S 0 THEN BEGINstatusq := blockeda;insertQ,q; unlock interrupts; scheduler;END;ELSE unlock interruptsEND;设信号量 S 的初值为 1,当一个 P 操作执行完S := S-1后,S 的值为 0,该 P 操作不应被堵塞。但如 P 操作不是一个原语,也就是说在一个 P 操作执行的过
26、程中可以有另一个 P 操作同时在执行,假如第 2 个 P 操作在第 1 个 P 操作执行判定语句 IF S0前也执行了S:= S-1操作,就这时的 S 值为-1。这时第一个 P 操作将会被堵塞。这样的 P操作不符合 P 操作的语义。同样的,对于 V 操作,其流程为:PROCEDURE VSBEGINlock out interrupts;S := S + 1;IF S 0 THEN BEGINtape_units := tape_units-1;可编辑资料 - - - 欢迎下载精品名师归纳总结i := 0;WHILE i 0 THEN可编辑资料 - - - 欢迎下载精品名师归纳总结BEGINt
27、ape_units := tape_units - 1; i = 0;WHILEi = 4 DO BEGINx := i; tapei := 1; exitEND;i := i + 1; END;wait_tape := false; END;END; VS; END;PROCEDURE release_tapex:integer; BEGINPS;tape_units := tape_units + 1; tapex := 0;可编辑资料 - - - 欢迎下载精品名师归纳总结VS;End;3.6 算法设计题进程 A 和 B 利用公共缓冲池交换数据。 设缓冲池有 N 个缓冲块,进程 A 每次生
28、成一个数据块存入一空缓冲区, 进程 B 每次从缓冲池中取出一个满的缓冲块。 试用信号量及 P、V 操作实现进程 A 和 B 的同步。(中山高校 1996年试题)【分析】此题是标准的生产者消费者问题。 与上题相比,使用了多缓冲区, 需要增加一个信号量。另外,环形缓冲池和环形队列治理也是考点之一。【解答】Var mutex,empty,full:semaphore:1,n,0; buffer : ARRAY0.n-1 of item;in, out :integer:= 0,0; BEGINCOBEGIN:A: BEGIN L1:produce a date block;Pempty;Pmutex
29、;Bufferin := nextp;in : = in + 1 mod nVmutex;Vfull;GOTO L1;END;可编辑资料 - - - 欢迎下载精品名师归纳总结B: BEGIN L2:Pfull;Pmutex;Nextpc := Bufferout; out : = out + 1 mod n Vmutex;Vempty;consume the item in nextc GOTO L2;END;GOTO L2; END;【扩展】此题应留意以下几点:(1) 在全部的程序中 Pmutex和 Vmutex应成对显现。(2) 对资源信号量 empty和 full 的 P、V 操作也必需
30、成对显现,但它们是处于不同的程序中,正是这一点保证了互斥共享。(3) 在每个程序中的 P 操作次序不能颠倒,应先执行对资源信号量的操作,再执行对互斥信号量的操作,否就可能引起进程死锁。设有一个具有 N 个信息元素的环形缓冲区, A 进程次序的把信息写入缓冲区, B进程依次的从缓冲区读出信息。回答以下问题:(中国科学院软件争论所 1996年试题)表达 A、B 两进程的相互制约关系。 判别以下用 P、V 操作表示的同步算法是否正确?如不正确,试说明理由,并修改成正确算法。VAR buffer: ARRAY 0.N-1 OF T;in,out: 0.N-1;VAR S1,S2: Semaphore;
31、 S1 := 0; S2 := N;in := out := 0; PROCEDURE A:BEGIN REPEAT生产数据 m;PS2;可编辑资料 - - - 欢迎下载精品名师归纳总结Bufferin := m;in := in + 1 MOD N;VS1;forever END;PROCEDURE B:BEGIN REPEAT VS2;m := bufferout;消费 m;out := out + 1 MOD N; PS1;forever END;【分析】此题是一个标准的生产者 -消费者问题。题中所给的算法与标准算法不同,但考生不能因此就说这个算法不正确。考生须认真分析试题中所给出的算法
32、。在此题中,进程 B 在使用缓冲区前(读缓冲区)无需进行任何 P 操作,即进程 B 不会因任何缘由被堵塞。这与题目中的掌握要求不相符。因此这个算法实现是错误的。此外,对缓冲区的拜访也没有用互斥信号量进行掌握。【解答】A 和 B 两进程的相互制约关系如下:当缓冲区满时, A 进程不行以写, 必需等待。当缓冲区空时, B 进程不行以读,必需等待。该算法有错,它对读进程进入临界区未加限制。当缓冲区为空时,也可以进入临界区读信息。当存在多个读进程和多个写进程时,仍需要引入一个信号量S0 以防止同时读或同时写。改进后的算法如下:VAR buffer: ARRAY 0.N-1 OF T;in,out: 0
33、.N-1;VAR S0,S1,S2: Semaphore; S0 := 1; S1 := 0; S2 := N;in := out := 0;可编辑资料 - - - 欢迎下载精品名师归纳总结PROCEDURE A:BEGIN REPEAT生产数据 m;PS2;PS0;Bufferin := m;in := in + 1 MOD N;VS0;VS1;forever END;PROCEDURE B:BEGIN REPEAT PS1;PS0;m := bufferout;out := out + 1 MOD N; VS0;VS2;消费 m; forever END;【扩展】此题是一类判别错误和改错题
34、。这类题目一般是用来检查考生对一些典型算法的把握程度的。在此题中,是考查考生对生产者消费者问题的把握。解答这类问题时,第一需要对标准算法娴熟把握,其次,仍需对算法的变化做到心中有数。不要把正确的变化列为出错点。例如本例中,假如题目中的算法给出的 V 操作次序与标准算法不同, 考生就不能认为其解答是错误的。由于在掌握算法中, V 操作的次序不会影响算法的正确性。可编辑资料 - - - 欢迎下载精品名师归纳总结今有 3 个并发进程 R、M 和 P,它们共享了一个可循环使用的缓冲区 B,缓冲区B 共有 N 个单元。进程 R 负责从输入设备读信息, 每读一个字符后,把它存放在缓冲区B 的一个单元中。
35、进程 M 负责处理读入的字符, 如发觉读入的字符中有空格符, 就把它改成,。进程 P 负责把处理后的字符取出并打印输出。当缓冲区单元中的字符被进程P 取出后,就又可用来存放下一次读入的字符。请用P、V 操作为同步机制写出它们能正确并发执行的程序。(南京高校 1997年试题)【分析】此题是 3 个进程之间的同步问题。明显 R 与 M、R 与 P、P 与 M 之间均应有一缓冲区指针。与之对应有 3 个信号量。【解答】Var full,changed,empty,mutex:integer; Var fullP,changedP,emptyP:integer;Var ch:char ;Var cha
36、rray ARRAY0.n of char; fullP:= 0;emptyP:= 0;changedP:= 0;full := 0; empty := n; changed := 0; mutex := 0; R: BEGINgetcharch;PEmpty;Pmutex; charrayfullP :=ch;fullP := fullP + 1 mod n; Vmutex;Vchanged;END;M:BEGIN可编辑资料 - - - 欢迎下载精品名师归纳总结Pchanged;Pmutex;ch := charraychangedP; if ch = thench = ,;changedP
37、 := changedP + 1 mod n; Vfull;Vchanged;END;P:BEGINPfull;Pmutex;ch := charrayemptyP; putcharch;emptyP := emptyP + 1 mod n; Vmutex;Vempty;END;【扩展】此题在进程同步之外, 仍考查了考生基本编程才能及环形队列操作。 考生应当留意这个信号。尽管 P、V 操作本身已有肯定难度,但仍旧存在结合其他学问点命题,以进一步增加难度的可能。我们可以列举一些学问点综合的方向。比如说,在读者写者问题中,可以结合UNIX 文件系统附带考查文件打开、关闭等操作。可以把P、V 操作和
38、实际的资源治理问题结合起来,等等。多个进程共享一个文件, 其中只读文件的称之为读者, 其余只写文件的称为写者。读者可以同时读,但是写者只能独立的写。(中科院软件所 1995年试题)说明进程间的相互制约关系,应设哪些信号量?用 P、V 操作写出其同步算法。修改上述的同步算法,使得它对写者优先,即一旦有写者到达,后续的读者都必需等待,而无论是否有读者在读文件。可编辑资料 - - - 欢迎下载精品名师归纳总结【分析】此题要求写出的算法与前面的题目略有不同。这里的两类进程(读者和写者进程) 的掌握是不相同的。对于写者进程,只能独占文件,即当有写者进程时不能有其他进程运行。对于读者进程,可以与其他的读者进程共享文件,即当有读者进程的,只答应其他的读者进程运行,而不答应写者进程运行。此外,当全部正在运行的读