操作系统练习 同步问题 有答案

合集下载

操作系统练习题_及答案解析

操作系统练习题_及答案解析

操作系统练习题第一章引言(一单项选择题1 操作系统是计算机系统的一种( 。

A.应用软件B. 系统软件c. 通用软件D.工具软件2.操作系统目的是提供一个供其他程序执行的良好环境,因此它必须使计算机( A.使用方便B. 高效工作C.合理使用资源D.使用方便并高效工作3.允许多个用户以交互方式使用计算机的操作系统是( 。

A.分时操作系统B. 批处理单道系统C.实时操作系统D.批处理多道系统4.下列系统中( 是实时系统。

A.计算机激光照排系统B. 办公自动化系统C.化学反应堆控制系统D.计算机辅助设计系统5.操作系统是一种系统软件,它( 。

A.控制程序的执行B. 管理计算机系统的资源C.方便用户使用计算机D.管理计算机系统的资源和控制程序的执行6.计算机系统把进行( 和控制程序执行的功能集中组成一种软件,称为操作系统A.CPU 管理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.SPOOL技术用于( 。

操作系统试题及答案

操作系统试题及答案

操作系统试题及答案一、选择题1. 操作系统的主要功能是什么?A. 文件管理B. 设备管理C. 内存管理D. 所有选项都是答案:D2. 进程和程序有什么区别?A. 进程是程序的执行实例B. 程序是进程的代码C. 进程是程序的存储D. 程序是进程的输出答案:A3. 在现代操作系统中,虚拟内存的作用是什么?A. 提供额外的存储空间B. 允许程序使用更多的内存C. 允许操作系统管理内存D. 允许多个程序同时运行答案:B4. 死锁的四个必要条件是什么?A. 互斥、占有和请求、不可剥夺、循环等待B. 互斥、占有和请求、可剥夺、循环等待C. 互斥、释放和请求、不可剥夺、循环等待D. 互斥、占有和请求、不可剥夺、非循环等待答案:A5. 什么是分页和分段?A. 分页是内存管理的一种技术,分段是文件管理的一种技术B. 分页是文件管理的一种技术,分段是内存管理的一种技术C. 分页和分段都是内存管理的技术D. 分页和分段都是文件管理的技术答案:C二、简答题1. 简述操作系统的五大基本功能。

答:操作系统的五大基本功能包括:进程管理、内存管理、文件系统管理、设备管理以及用户接口。

2. 解释什么是进程和线程,并说明它们之间的关系。

答:进程是程序的执行实例,是操作系统进行资源分配和调度的一个独立单位。

线程是进程中的一个实体,是CPU调度和执行的单位,一个进程可以包含多个线程。

3. 描述死锁的四个必要条件,并给出一个死锁的实例。

答:死锁的四个必要条件包括:互斥条件(资源不能被多个进程同时使用)、占有和请求条件(进程正在占有某些资源,同时请求其他资源)、不可剥夺条件(已分配给进程的资源,在未使用完之前不能被强制夺走)、循环等待条件(存在一种进程资源的循环等待关系)。

实例:银行家算法中,如果多个客户同时请求资源,且每个客户都占有一些资源,同时请求其他资源,就可能发生死锁。

三、论述题1. 论述操作系统中进程调度的几种基本算法,并比较它们的优缺点。

操作系统练习同步问题有答案

操作系统练习同步问题有答案

操作系统练习题:1 在南开大学和大学之间有一条弯曲的小路,其中从S到T一段路每次只允许一辆自行车通过,但中间有一个小的“安全岛”M(同时允许两辆自行车停留),可供两辆自行车已从两端进小路情况下错车使用,如图所示。

试设计一个算法使来往的自行车均可顺利通过。

解答:首先中间的安全岛M仅允许两辆自行车通过,应作为临界资源设置信号量。

但仔细分析发现,在任何时刻进入小路的自行车最多不会超过两辆(南开和天大方向各一辆),因此不需为安全岛M设置信号量。

在路口S处,南开出发的若干辆自行车应进行路口资源的争夺,以决定谁先进入小路SK段,为此设置信号量S,用以控制路口资源的争夺;同理,设置信号量T,控制天大方向自行车对路口T的争夺。

又小路SK段仅允许一辆车通过,设置信号量SK初值为1,同理设置小路LT段信号量LT初值为1。

程序如下:S := l; T:=1; SK :=1; LT:=1;Parbegin进程P:(南开方向自行车)beginP(S) ; {与其它同方向的自行车争夺路口S}P(SK); {同对面自行车争夺路段SK}通过SK;进入M;**V (SK);{一旦进入M,便可释放路段SK}P (LT) ; {同对面的自行车争夺路段LT}通过LT;V (LT);{将路段LT释放}V(S); {将路口S释放给同方向的正在路口S处等待的自行车}end,进程Q:(天大方向自行车)beginP(T);P(LT);通过LT;进入M;V(LT);P(SK);通过SK;V(SK);V(T);End;Parend。

说明**:P进程进入安全岛M后,释放了路段SK,但没有释放路口S,原因在于它是向对面的4进程释放路段资源SK,而在P进程离开小路LT后,才会将路口S 释放给其他P进程,如不这样,就会死锁。

请考虑如下情况:两个方向各有一辆车前进,若在P进程到达安全岛M后,执行V (S)及V (SK)操作,则有可能使得同方向的其它P进程得到路段SK的使用权,而进入小路;同理,Q进程到达安全岛后执行V (LT)及V (T)操作,有可能使得同方向的其它Q进程得到路段LT 而进入小路。

计算机操作系统练习题及答案

计算机操作系统练习题及答案

计算机操作系统练习题及答案计算机操作系统练习题及答案1. 进程管理1.1 什么是进程?答:进程是计算机中正在运行的程序的实例,它具有独立的内存空间和执行环境。

1.2 进程与线程的区别是什么?答:进程是一个执行环境,包含了程序代码、数据以及执行状态等。

线程是进程中的一个单独执行流程,共享进程的资源。

1.3 进程调度算法有哪些?答:常见的调度算法有FCFS(先来先服务)、SJF(短作业优先)、优先级调度、时间片轮转等。

1.4 进程同步的方法有哪些?答:常用的进程同步方法有互斥锁、信号量、条件变量等。

2. 内存管理2.1 什么是虚拟内存?答:虚拟内存是操作系统提供给进程使用的一种抽象概念,它可以将物理内存和磁盘空间结合起来,扩大了进程的内存空间。

2.2 页面置换算法有哪些?答:常见的页面置换算法有FIFO(先进先出)、LRU(最近最少使用)、Clock等。

2.3 分页与分段的区别是什么?答:分页是将进程的虚拟地址空间分成固定大小的页,而分段是将进程的虚拟地址空间划分成多个不同大小的段。

3. 文件系统3.1 什么是文件系统?答:文件系统是操作系统用来组织和管理存储设备上文件和目录的机制。

3.2 常见的文件系统有哪些?答:常见的文件系统有FAT32、NTFS、EXT4等。

3.3 什么是磁盘碎片?答:磁盘碎片是指文件在存储空间上不连续存储的情况,导致读写效率降低。

附件:1. 进程调度算法比较表格---- 算法 ---- 优点 ---- 缺点--------------------------------------------------------------------------------- FCFS ---- 简单 ---- 长作业等待时间长 -------- SJF ---- 最短作业先执行 ---- 对长作业不公平 -------- 优先级调度 ---- 可以根据优先级调整顺序 ---- 低优先级作业可能饥饿 -------- 时间片轮转 ---- 公平 ---- 上下文切换开销大 ----法律名词及注释:1. 虚拟内存:计算机操作系统将应用程序运行所需的内存划分为逻辑上连续的地址空间,提供给应用程序使用的内存空间。

计算机操作系统练习题及答案

计算机操作系统练习题及答案

计算机操作系统练习题及答案计算机操作系统练习题及答案⒈进程管理⑴什么是进程?答案:进程是计算机中正在运行的程序的实例,是资源分配的基本单位。

⑵进程与线程的区别是什么?答案:进程是操作系统进行资源分配和调度的基本单位,拥有独立的地质空间和资源。

线程是进程的执行单位,是进程内部的一个独立执行流程,共享该进程的地质空间和资源。

⑶进程间通信的方式有哪些?答案:管道、信号量、消息队列、共享内存、套接字等。

⒉内存管理⑴什么是内存管理?答案:内存管理是操作系统对系统内存资源进行分配、管理和调度的过程。

⑵什么是虚拟内存?答案:虚拟内存是一种扩充了的内存地质空间,将物理内存和磁盘空间结合起来,使得程序能够访问超出物理内存大小的数据。

⑶什么是页面置换算法?答案:页面置换算法是内存管理中决定哪些页面被置换出去的策略,常见的算法有FIFO、最近最少使用(LRU)、最不经常使用(LFU)等。

⒊文件系统⑴什么是文件系统?答案:文件系统是操作系统用于组织和管理计算机存储设备上文件和目录的一种机制。

⑵文件系统的常见组织方式有哪些?答案:常见的文件系统组织方式有层次式文件系统、索引式文件系统、日志式文件系统等。

⑶文件系统中的文件访问权限有哪些?答案:常见的文件访问权限有读取、写入、执行等。

附件:无法律名词及注释:⒈版权法:保护原创作品的法律规定。

⒉商标法:保护商标的使用权和专用权的法律规定。

⒊专利法:保护发明创造的权益的法律规定。

⒋计算机软件保护条例:对计算机软件的保护进行规定的法律法规。

操作系统习题(附参考答案)

操作系统习题(附参考答案)

操作系统习题(附参考答案)一、单选题(共100题,每题1分,共100分)1、下列存储器中,速度最快的是()。

A、内存B、寄存器C、CacheD、磁盘正确答案:B2、时钟中断事件属于()中断事件。

A、程序B、自愿性C、外部D、输入/输出正确答案:C3、可变分区存储管理系统中,若采用最佳适应分配算法,“空闲区表”中的空闲区可按()顺序排列。

A、大小从大到小B、大小从小到大C、地址从大到小D、地址从小到大正确答案:B4、从静态的角度看,下列选项中哪一个是进程必须拥有而程序所没有的?()A、常量数据B、全局变量C、进程控制块D、代码正文正确答案:C5、()不是管程的组成部分。

A、对局部于管程内的数据结构设置初始值的语句B、对管程内数据结构进行操作的一组过程C、局部于管程的共享数据结构D、管程外过程调用管程内数据结构的说明正确答案:D6、下列关于父进程和子进程的叙述中,正确的是()。

A、子进程执行完了,父进程才能执行B、父进程创建了子进程,因此父进程执行完了,子进程才能执行C、撤销子进程时,应该同时撤销父进程D、撤销父进程时,应该同时撤销子进程正确答案:D7、某计算机系统中有8台打印机,有K个进程竞争使用,每个进程最多需要3台打印机。

该系统可能会发生死锁的K的最小值是()。

A、3B、4C、2D、5正确答案:B8、分页虚拟存储管理系统中,若采用FIFO页面置换算法,则当分配的物理页面数增加时,缺页中断的次数()。

A、减少B、可能增加也可能减少C、增加D、不变正确答案:B9、产生内存抖动的主要原因是()。

A、内存空间太小B、CPU运行速度太慢C、CPU调度算法不合理D、页面置换算法不合理正确答案:D10、()存储管理兼顾了段式在逻辑上清晰和页式在存储管理上方便的优点。

A、分页B、段页式C、可变分区D、分段正确答案:B11、发生死锁的必要条件有四个,要预防死锁的发生,可以破坏这四个必要条件,但破坏()条件是不太实际的。

操作系统练习题+参考答案

操作系统练习题+参考答案

操作系统练习题+参考答案一、单选题(共100题,每题1分,共100分)1、若系统中有5个并发进程涉及某个相同的变量A,则变量A的相关临界区由()个临界区构成。

A、1B、3C、5D、6正确答案:C2、在分页虚拟存储管理系统中,采用某些页面置换算法,会出现Belady 异常现象,即进程的缺页次数会随着分配给该进程的页面数量的增加而增加。

下列算法中,可能出现Belady现象的是()。

①LRU算法②FIFO 算法③OPT算法A、仅2B、仅1、2C、仅1、3D、仅2、3正确答案:A3、下列关于管道通信的叙述中,正确的是()。

A、一个管道可以实现双向数据传输B、管道的容量仅受磁盘容量大小的限制C、进程对管道进行读操作和写操作都可能被阻塞D、一个管道只能有一个读进程或一个写进程对其操作正确答案:C4、不属于基本操作系统的是()。

A、网络操作系统B、实时操作系统C、分时操作系统D、批处理操作系统正确答案:A5、采用SPOOLing技术的目的是()。

A、提高独占设备的利用率B、提高程序的运行速度C、提高主机的效率D、减轻用户的编程负担正确答案:A6、在()的控制下,计算机系统能及时处理由过程控制反馈的数据,并作出响应。

A、分时操作系统B、实时操作系统C、批处理操作系统D、多处理机操作系统正确答案:B7、在分页虚拟存储管理中,当发现要访问的页面不在主存时,则由硬件发出()。

A、输入输出中断B、时钟中断C、缺页中断D、越界中断正确答案:C8、()可以用来解决临界区问题。

A、时间片轮转算法B、银行家算法C、LRU算法D、Test正确答案:D9、可变分区存储管理系统中,若采用最佳适应分配算法,“空闲分区表”中的空闲区应该按()顺序排列。

A、地址从大到小B、大小从大到小C、地址从小到大D、大小从小到大正确答案:D10、进程从运行状态转换到阻塞状态可能是由于()。

A、现运行进程执行了signal操作B、现运行进程时间片用完C、现运行进程执行了wait操作D、进程调度程序的调度正确答案:C11、()不是进程的特征。

操作系统习题(有答案)

操作系统习题(有答案)
P0 1 5 2 0 0 0 0 0 0 0 1 2 1 5 3 2 true
P2 1 5 3 2 1 0 0 2 1 3 5 4 2 8 8 6 true
P3 2 8 8 6 0 0 2 0 0 6 3 2 2 14 11 8 true
P4 2 14 11 8 0 6 4 2 0 0 1 4 2 14 12 12 true
P1 2 14 12 12 0 7 5 0 1 0 0 0 3 14 12 12 true
由以上分析可知,在该时刻存在着一个安全序列{P0,P2,P3,P4,P1},故系统是安全的。
如果进程P1要求(0,4,2,0),系统假定可为P1分配资源,由此形成的资源变化情况如图示:
已分配资源矩阵需求资源矩阵最多资源矩阵可用资源向量
Lecture 4
1、一个磁盘有19456个柱面,16个读写头,并且每个磁道有63个扇区。磁盘以5400rpm的速度旋转,在相邻的磁道之间寻道时间是2ms。假定读写头在磁道0上,则读整个磁盘需要多少时间?
答:(19456*16*1/5400+(19456-1)*2=3498ms
2、在一个磁盘上,有1000个柱面,从0~999。假定最后服务的请求是在磁道756上,并且读写磁头正在向磁道0移动。在按照FIFO顺序排列的队列中包含了如下磁道上的请求:811、348、153、968、407、500。用下面的算法计算为了满足所有的磁盘队列中的请求,磁盘臂必须移的磁盘的数目。
(2)分配内在索引结点
如果该文件已被其他用户打开,此时只需对在第一步中所找到的i结点,执行其引用计数加1的操作;否则,应为被打开文件分配一内存i结点,并调用磁盘读过程将磁盘i结点的内容拷贝到内存i结点中,并设置i.count为1。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

操作系统练习题:1 在南开大学和天津大学之间有一条弯曲的小路,其中从S到T一段路每次只允许一辆自行车通过,但中间有一个小的“安全岛”M(同时允许两辆自行车停留),可供两辆自行车已从两端进小路情况下错车使用,如图所示。

试设计一个算法使来往的自行车均可顺利通过。

解答:首先中间的安全岛M仅允许两辆自行车通过,应作为临界资源设置信号量。

但仔细分析发现,在任何时刻进入小路的自行车最多不会超过两辆(南开和天大方向各一辆),因此不需为安全岛M设置信号量。

在路口S处,南开出发的若干辆自行车应进行路口资源的争夺,以决定谁先进入小路SK段,为此设置信号量S,用以控制路口资源的争夺;同理,设置信号量T,控制天大方向自行车对路口T的争夺。

又小路SK段仅允许一辆车通过,设置信号量SK初值为1,同理设置小路LT段信号量LT初值为1。

程序如下:S := l; T:=1; SK :=1; LT:=1;Parbegin进程P:(南开方向自行车)beginP(S) ; {与其它同方向的自行车争夺路口S}P(SK); {同对面自行车争夺路段SK}通过SK;进入M; **V (SK);{一旦进入M,便可释放路段SK}P (LT) ; {同对面的自行车争夺路段LT}通过LT;V (LT);{将路段LT释放}V(S); {将路口S释放给同方向的正在路口S处等待的自行车}end,进程Q:(天大方向自行车)beginP(T);P(LT);通过LT;进入M;V(LT);P(SK);通过SK;V(SK);V(T);End;Parend。

说明**:P进程进入安全岛M后,释放了路段SK,但没有释放路口S,原因在于它是向对面的4进程释放路段资源SK,而在P进程离开小路LT后,才会将路口S释放给其他P进程,如不这样,就会死锁。

请考虑如下情况:两个方向各有一辆车前进,若在P进程到达安全岛M后,执行V (S)及V (SK)操作,则有可能使得同方向的其它P进程得到路段SK的使用权,而进入小路;同理,Q进程到达安全岛后执行V (LT)及V (T)操作,有可能使得同方向的其它Q进程得到路段LT而进入小路。

此时共有四辆车在整个路径中,最终出现死锁状态。

2某寺庙,有小、老和尚若干,有一水缸,由小和尚提水入缸(向缸中倒水)供老和尚饮用。

水缸可容10桶水,水取自同一井中。

水井径窄,每次只能容一个捅取水。

水桶总数为3个。

每次人、取缸水仅为1桶,且不可同时进行。

试给出有关从缸中取水和向缸中倒水的算法描述。

解答:应首先考虑清楚本题需要几个进程。

从井中取水后向缸中倒水为连续动作,可算同一进程,从缸中取水为另一进程。

再考虑信号量.有关互斥的资源有水井(一次仅一个水桶进出)和水缸(一次入、取水为一桶),分别为之设信号量mutexl , mutex2控制互斥;另有同步问题存在:三个水桶无论从井中取水还是人出水缸都是一次一个,应为之设信号量count,抢不到水桶的进程只好等待;还有水缸满时,不可人水,设信号量empty控制入水量.水缸空时不可出水,设信号量full,控制出水量。

mutexl:=1;mutex2:=1; empty:=10; full:=0 ; count:=3;parbegin入水: beginLl: P(empty);P( count) ;P (mutexl) ;从井中取水;V(mutext1);P(mutex2);送入水缸;V(mutex2);V(count);V(full);Goto Ll;End;取水: beginL2: P(full);P(count);P(mutex2) ;从缸中取水;V (mutex2) ;V(empty);V(count);Goto L2;End;Parend.3桌子上有一只盘子,最多可容纳两个水果,每次只能放入或取出一个水果。

爸爸专向盘子中放苹果(apple),妈妈专向盘子中放橘子(orange),两个儿子专等吃盘子中的橘子,两个女儿专等吃盘子中的苹果。

请用P, V操作来实现爸爸、妈妈、儿子、女儿之间的同步与互斥关系。

解答:盘子为互斥资源,因可以放两个水果,empty初值为2; father 放苹果前先看看有无空间,若有则抢盘子,放apple。

后向女儿发信号(V (apple)); mother放橘子前先看看有无空间,若有则抢盘子,放橘子后向儿子发信号(V (orange));女儿先看有无苹果,若有则抢盘子,取走苹果后将盘子置空(V (empty));儿子先看有无橘子,若有则抢盘子,取走橘子后将盘子置空。

该题是生产者/消费者问题的变形,有两对生产者和消费者。

生产者需指明是给哪个消费者的产品,但消费者取走产品后无须特别通知某个生产者,因为空出的缓冲区(盘子)可由两个生产者随意争夺。

设信号量mutex初值为1,控制对盘子的互斥访问;apple表示盘中苹果个数,orange表示盘中橘子个数,初值均为0.parbeginfather:beginLl:P( empty);P(mutex );放苹果;。

V (mutex);V(apple);Goto Ll ;End;mother:beginL2: P(empty) ;P(mutex);放橘子;V (mutex ); V(orange); Coto L2;End;daughter:beginL3: P(apple); P(mutex);取苹果V (mutex);V(empty);Goto L3 ;End;son:beginL4: P(orange);P(mutex);取橘子V (mutex);V (empty) ;Goto L4;End;Parend4. 在4×100米接力赛中,4个运动员之间存在如下关系,运动员1跑到终点把接力棒交给运动员2;运动员2一开始处于等待状态,在接到运动员1传来的接力棒后才能往前跑,他跑完100米后交给运动员3,运动员3也只有在接到运动员2传来的棒后才能跑,他跑完100米后交给运动员4,运动员4接到棒后跑完全程。

请试用信号量机制对其上过程进行分析。

解答:P1: P2: P(Sl); P3: P(S2); P4: P(S3);起跑,前进l00m; 起跑,前进l00m; 起跑,前进l00m; 起跑,前进l00m;V(S1); V(S2); V(S3);到达终点。

5. 在公共汽车上,司机和售票员各行其职,司机负责开车和到站停车;售票员负责售票和开、关车门;当售票员关好车门后驾驶员才能开车行驶。

试用wait和signal操作实现司机和售票员的同步。

问题描述:设公共汽车上,司机和售票员的活动分别如下:司机的活动:启动车辆:正常行车;到站停车。

售票员的活动:关车门;售票;开车门。

在汽车不断地到站、停车、行驶过程中,这两个活动有什么同步关系?用信号量和P 、V 操作实现它们的同步。

问题分析:在汽车行驶过程中,司机活动与售票员活动之间的同步关系为:售票员关车门后,向司机发开车信号,司机接到开车信号后启动车辆,在汽车正常行驶过程中售票员售票,到站时司机停车,售票员在车停后开门让乘客上下车。

因此,司机启动车辆的动作必须与售票员关车门的动作取得同步;售票员开车门的动作也必须与司机停车取得同步。

应设置两个信号量:S1、S2 ;S1表示是否允许司机启动汽车(其初值为0 )S2表示是否允许售票员开门(其初值为0 )用P 、v 原语描述如下:var S1,S2 : semaphore ;S1=0;S2=0;cobeginprocedure driverbeginwhile TRUEbeginP(S1);Start;Driving;Stop;v(S2);endendprocedure Conductorbeginwhile TRUEbegin关车门;v(s1);售票;p(s2);开车门;上下乘客;endendcoend6.有一只铁笼子,每次只能放入一只动物,猎手向笼子里放入老虎,农民向笼子里放入猪;动物园等待取笼子里的老虎,饭店等待取笼子里的猪。

现请用wait和signal操作写出能同步执行的程序。

var Sempty, Stiger, Spig,: semaphore:= 1,0,0;beginparbeginHunter: beginrepeatwait(Sempty);<put tiger in cage>;signal(Stiger);until false;end;Farmer: beginrepeatwait(Sempty);<put pig in cage>;signal(Spig);until false;end;Zoo: beginrepeatwait(Stiger);<take tiger>;signal(Sempty);until false;end;Hotel: beginrepeatwait(Spig);<take pig>;signal(Sempty); until false;end;parend;end;7. 假设有3个并发进程P,Q,R,其中P负责从输入设备上读入信息,并传送给Q,Q将信息加工后传送给R,R负责打印输出。

进程P,Q共享一个有m个缓冲区组成的缓冲池;进程Q,R共享一个有n个缓冲区组成的缓冲池(假设缓冲池足够大,进程间每次传输信息的单位均小于等于缓冲区长度),请写出满足上述条件的并发程序。

var mutex1,mutex2,Sip,Siq,Soq,Sor:semaphore:=1,1,m,0,n,0;beginparbeginProcess Pbeginrepeat<读入信息>wait(Sip);wait(mutex1);<数据放入缓冲区>signal(mutex1);signal(Siq);until falseend;Process Qbeginrepeatwait(Siq);wait(mutex1);<从缓冲区中取出数据>signal(mutex1);signal(Sip);<数据处理〉wait(Soq);wait(mutex2);<处理后的数据放入缓冲区>signal(mutex2);signal(Sor);until falseend;Process Rrepeatwait(Sor);wait(mutex2);<把数据送入打印机完成打印>;signal(mutex2);signal(Soq);until falseendparendend8. 理发店里有一位理发师,一把理发椅和n把供等候理发的顾客坐的椅子。

如果没有顾客,理发师便在理发椅上睡觉,当一个顾客到来时,他必须先叫醒理发师,如果理发师正在理发时又有顾客来到,则如果有空椅子可坐,他们就坐下来等;如果没有空椅子,他就离开。

相关文档
最新文档