B1() Bn2(); send()/*发送消息* for(i=0;i<=n2-1;i++) p(empty[i]) p(mutex) 将消息放入缓冲区 for(i=0;i<=n2-1;i++) receive(i)/进程Bi接收消息*/ p(full[i]) p(mutex) 将消息从缓冲区取出 v(mutex v (empty li]) Ai()/*因发送进程A1l,A2,…,An1的程序类似,这里只给出进程Ai的描述.* while (1) send () Bi()/*因接收进程B1,B2,…,Bn2的程序类似,这里只给出进程Bi的描述.*/ while (1) receive (i)
{ cobegin Al( ); A2( ); An1( ); B1( ); B2( ); Bn2( ); Coend } send( ) /*发送消息*/ { int i; for (i=O;i<=n2-1; i++) p(empty[i]); p(mutex); 将消息放入缓冲区; v(mutex); for(i=0;i<=n2-1;i++) v(full[i]); } receive (i) /*进程 Bi 接收消息*/ { p(full[i]); p(mutex); 将消息从缓冲区取出; v(mutex); v(empty[i]); } Ai( ) /*因发送进程 A1,A2,…,An1 的程序类似,这里只给出进程 Ai 的描述.*/ { while(1) { send( ); } } Bi() /*因接收进程 B1,B2,…,Bn2 的程序类似,这里只给出进程 Bi 的描述.*/ { while(1) { receive(i); } }
92模拟试题(二) 判断改错题(判断下列命题的正确性,并对错误命题说明理由,正确命题不加说明。) (10分) 1.可以将操作系统看作是一个资源分配器,用来控制I/0设备和用户的程序。 2.死锁的形成只与资源分配策略有关,而与并发进程的执行速度无关 3.在引入线程的操作系统中,线程是资源分配和调度的基本单位。 4.分页存储管理方案易于实现用户使用内存空间的动态扩充 5.特权指令只能在管态下执行,而不能在算态下执行。 二.单项选择题(10分) 1.在下列语言中属于脱机作业控制语言的是 A.作业控制语言B.汇编语言C.会话式程序设计语言D.解释 BASIC 2.操作系统中采用了以空间换时间的技术 A. SPOoLing技术B.覆盖技术C.通道技术 D.虚拟存储技术 是进程调度算法。 A.时间片轮转法B.先来先服务方法C.响应比高者优先法D.均衡调度算法 4.在UNIX文件系统中,为了对盘空间的空闲块进行有效的管理,采用的方法是 A.空白文件目录法B.FAT C.空闲块成组链接法 D.位示图法 5.资源的静态分配法破坏了产生死锁的必要条件的 A.互斥控制 B.非剥夺控制 C.逐次请求 D.环路条件 6.在批处理操作系统中 映了作业的运行情况,并且是作业存在的唯一标志。 A.作业状态 B.作业类型 C.作业控制块D.作业优先级 7.临界区是 A.一段共享数据区B.一个缓冲区C.一段互斥执行的程序段D.一个互斥资源 8.在请求分页存储管理中,当所访问的页面不在内存时,便产生缺页中断,缺页中断 是属于 A.I/O中断 B.程序中断 C.访管中断 D.外中断 9.时钟中断是属于 A.硬件故障中断 B.程序中断C.输入输出中断D.外部中断 10.操作系统通过 对进程进行管理。 A.进程 B.进程控制块 C.进程启动程序 进程控制区 三.填空(20分) 1.操作系统提供给用户的接口主要有 和 2.为了实现地址变换,在分页系统中设置了页表寄存器,其中存放了 和 进程未执行时,上述信息将存放在 中 3.在中断驱动方式中,CPU是以为单位对I/0进行干预的;DMA方式时,是以 为单位进行干预的;I/0通道方式是以 为单位进行干预的。 4.文件存储空间的分配可采取多种方式,其中, 方式可使文件顺序访问的效率最 高;方式则可解决文件存储空间中的碎片问题,但却不支持对文件的随机访问;而UNIX 采用的则是 方式 5.进程的最基本的特征是 在UNIX系统中,可通过系统调用来创建进 6.使用共享文件进行进程通信的方式被称为 而发送进程利用操作系统提供的发 送命令,直接将格式化的消息发送给目标进程的通信方式则称为
9.2 模拟试题(二) 一.判断改错题(判断下列命题的正确性,并对错误命题说明理由,正确命题不加说明。) (10 分) 1.可以将操作系统看作是一个资源分配器,用来控制 I/O 设备和用户的程序。 2.死锁的形成只与资源分配策略有关,而与并发进程的执行速度无关。 3.在引入线程的操作系统中,线程是资源分配和调度的基本单位。 4.分页存储管理方案易于实现用户使用内存空间的动态扩充。 5.特权指令只能在管态下执行,而不能在算态下执行。 二.单项选择题(10 分) 1.在下列语言中属于脱机作业控制语言的是_________。 A.作业控制语言 B.汇编语言 C.会话式程序设计语言 D.解释 BASIC 2.操作系统中____________采用了以空间换时间的技术。 A.SPOOLing 技术 B.覆盖技术 C.通道技术 D.虚拟存储技术 3.___________是进程调度算法。 A.时间片轮转法 B.先来先服务方法 C.响应比高者优先法 D.均衡调度算法 4.在 UNIX 文件系统中,为了对盘空间的空闲块进行有效的管理,采用的方法是____。 A.空白文件目录法 B.FAT C.空闲块成组链接法 D.位示图法 5.资源的静态分配法破坏了产生死锁的必要条件的________。 A.互斥控制 B.非剥夺控制 C.逐次请求 D.环路条件 6.在批处理操作系统中,_____反映了作业的运行情况,并且是作业存在的唯一标志。 A.作业状态 B.作业类型 C.作业控制块 D.作业优先级 7.临界区是_____________。 A.一段共享数据区 B.一个缓冲区 C.一段互斥执行的程序段 D.一个互斥资源 8.在请求分页存储管理中,当所访问的页面不在内存时,便产生缺页中断,缺页中断 是属于__________。 A.I/O 中断 B.程序中断 C.访管中断 D.外中断 9.时钟中断是属于 A.硬件故障中断 B.程序中断 C.输入输出中断 D.外部中断 10.操作系统通过_____________对进程进行管理。 A.进程 B.进程控制块 C.进程启动程序 D.进程控制区 三.填空(20 分) 1.操作系统提供给用户的接口主要有________、______和_________。 2.为了实现地址变换,在分页系统中设置了页表寄存器,其中存放了_____和________;当 进程未执行时,上述信息将存放在________中。 3.在中断驱动方式中,CPU 是以_______为单位对 I/0 进行干预的;DMA 方式时,是以_____ 为单位进行干预的;I/O 通道方式是以_________为单位进行干预的。 4.文件存储空间的分配可采取多种方式,其中,_________方式可使文件顺序访问的效率最 高;_____方式则可解决文件存储空间中的碎片问题,但却不支持对文件的随机访问;而 UNIX 采用的则是__________方式。 5.进程的最基本的特征是______和______在 UNIX 系统中,可通过系统调用_____来创建进 程。 6.使用共享文件进行进程通信的方式被称为_______;而发送进程利用操作系统提供的发 送命令,直接将格式化的消息发送给目标进程的通信方式则称为_____________
7.在用信号量实现对临界资源的互斥访问时,若信号量的初值为2,当前值为-1,表示有 个进程等待使用该资源。 8.引入进程的主要目的是 进程存在的惟一标志是 四.简答题(30分) 1.什么是多道程序技术?在操作系统中引入该技术,带来了哪些好处? 2.虚拟存储器具有哪些基本特征?实现虚拟存储器的几个关键技术是什么? 3.一个比较完善的文件系统应该具有哪些功能? 4.RAID是通过什么方法来提高磁盘的I/0速度和可靠性的 5.何谓死锁?为什么将所有资源按类型赋予不同的序号,并规定所有的进程按资源号递增 的顺序申请资源后,系统便不会产生死锁? 6.试说明访管指令、特权指令和系统功能调用之间的区别和联系。 五.综合题(30分) 1.计算进程PC和打印进程P01、P02共享一个单缓冲区〉计算进程负责计算,并把计算结 果放入单缓冲中:打印进程P01、P02则负责从单缓冲中取出计算结果进行打印,而且对每 个计算结果,P01和P02都需分别打印一次。请用记录型信号量描述上述进程间的同步关系 2.假设磁盘有20个磁道,磁盘请求队列中是一些随机请求,它们按照到达的次序分别处 于98、183、37、122、14、124、65、67号磁道上,当前磁头在53号磁道上,并向磁道号减 小的方向上移动。请给出按FCFS、SSTF、SCAN及 CSCAN算法进行磁盘调度时满足请求的次 序,并计算出它们的平均寻道长度。 3.假设某多道程序设计系统中有供用户使用的内存100K,打印机1台。系统采用可变分区 方式管理内存:对打印机采用静态分配,并假设输入输出操作的时间忽略不计;采用最短剩余 时间优先的进程调度算法,进程剩余执行时间相同时采用先来先服务算法;进程调度时机选 择在执行进程结束时或有新进程到达时。现有一进程序列如下 进程号进程到达时间要求执行时间要求主存量申请打印机数(台) 841 15K 假设系统优先分配内存的低地址区域,且不许移动己在主存中的进程,请 (1)给出进程调度算法选中进程的次序,并说明理由 (2)全部进程执行结束所用的时间是多少? 模拟试题(二)答案 判断题改错题 1.对 2.错,原因:与进程执行速度有关 3.错,线程是调度的基本单位,进程是资源分配的基本单位 4.错,原因:分段存储管理易于实现用户使用内存空间的动态扩充。 5对 二.单项选择题 1.A2.D3.A4.C5.C6.C7.C8 D10.B 填空 1.命令接 图形接口 程序接口
7.在用信号量实现对临界资源的互斥访问时,若信号量的初值为 2,当前值为 -1,表示有 _________个进程等待使用该资源。 8.引入进程的主要目的是_________,进程存在的惟一标志是_______。 四.简答题(30 分) 1.什么是多道程序技术?在操作系统中引入该技术,带来了哪些好处? 2.虚拟存储器具有哪些基本特征?实现虚拟存储器的几个关键技术是什么? 3.一个比较完善的文件系统应该具有哪些功能? 4.RAID 是通过什么方法来提高磁盘的 I/O 速度和可靠性的? 5.何谓死锁?为什么将所有资源按类型赋予不同的序号,并规定所有的进程按资源号递增 的顺序申请资源后,系统便不会产生死锁? 6.试说明访管指令、特权指令和系统功能调用之间的区别和联系。 五. 综合题(30 分) 1.计算进程 PC 和打印进程 P01、P02 共享一个单缓冲区〉计算进程负责计算,并把计算结 果放入单缓冲中:打印进程 P01、P02 则负责从单缓冲中取出计算结果进行打印,而且对每一 个计算结果,P01 和 P02 都需分别打印一次。请用记录型信号量描述上述进程间的同步关系。 2.假设磁盘有 200 个磁道,磁盘请求队列中是一些随机请求,它们按照到达的次序分别处 于 98、183、37、122、14、124、65、67 号磁道上,当前磁头在 53 号磁道上,并向磁道号减 小的方向上移动。请给出按 FCFS、SSTF、SCAN 及 CSCAN 算法进行磁盘调度时满足请求的次 序,并计算出它们的平均寻道长度。 3.假设某多道程序设计系统中有供用户使用的内存 100K,打印机 1 台。系统采用可变分区 方式管理内存:对打印机采用静态分配,并假设输入输出操作的时间忽略不计;采用最短剩余 时间优先的进程调度算法,进程剩余执行时间相同时采用先来先服务算法;进程调度时机选 择在执行进程结束时或有新进程到达时。现有一进程序列如下: 进程号 进程到达时间 要求执行时间 要求主存量 申请打印机数(台) 1 0 8 15K 1 2 4 4 30K 1 3 10 1 60K 0 4 11 20 20K 1 5 16 14 10K 1 假设系统优先分配内存的低地址区域,且不许移动己在主存中的进程,请: (1)给出进程调度算法选中进程的次序,并说明理由。 (2)全部进程执行结束所用的时间是多少? 模拟试题(二)答案 一.判断题改错题 1.对 2.错,原因:与进程执行速度有关。 3.错,线程是调度的基本单位,进程是资源分配的基本单位 4.错,原因:分段存储管理易于实现用户使用内存空间的动态扩充。 5.对 二.单项选择题 1.A 2.D 3.A 4.C 5.C 6.C 7.C 8.B 9.D 10.B 三.填空 1.命令接口 图形接口 程序接口
2.页表长度 页表在内存中的起始地址 该进程的进程控制块。 3.字节 数据块 组数据块。 4.连续分配 隐式链接分配混合索引分配。 5.动态性 并发性 fork 6.管道通信直接通信。 7.1 8.使程序能够正确地并发执行进程控制块PCB。 四.简答题 1.多道程序技术是指在内存中同时存放若干个作业,并使西IT共享系统的资源,同时运 行的技术 在操作系统中引入多道程序技术带来了以下好处 (1)提高CPU的利用率。当内存中仅放一道程序时,每逢该程序运行中发出I/0请求后,CPU 空闲,必须在其I/0完成后才能继续执行:尤其是I/0设备的低速性,更使CPU的利用率显著 降低。在引入多道程序设计技术后,由于可同时把若干道程序装入内存,并可使它们交替地执 行,这样,当正在运行的程序因I/0而暂停执行时,系统可调度另一道程序执行,从而可保持 CPU处于忙状态,使CPU的利用率提高。 (2)可提高内存和U0设备的利用率。为了能运行较大的作业,通常内存都具有较大的容量, 但由于80%以上的作业都属于中、小型作业,因此在单道程序的环境下也必定造成内存的浪 费。类似地,系统中所配置的多种类型的I/0设备,在单道程序环境下,也不能充分利用。如 果允许在内存中装入多道程序,并允许它们并发执行,则无疑会有如提高内存和I/0设备的 利用率 (3)增加系统吞吐量。在保持CP、I/0设备不断忙碌的同时写也必然会大幅度地提高系统 的吞吐量,从而降低作业加工所需费用。 2.虚拟存储器的基本特征有 ()多次性:作业只要部分装入内存便可后动执行;其余部分可待需要时再调入内存,即 个作业将分成多次装入内存 (2)对换性:在进程运行期间,允许将那些暂不使用的程序和数据从内存魄至外存的对换区 (换出),待以后需要时再将它们从外存调入内存(换入)。 (3)离散性:实现虚拟存储器必须采用离散的分配技术,而连续的分配技术无法实现虚拟存 储器的功能 4)虚拟性:虚拟存储器只是在逻辑上扩充内存容量,而实际的内存容量并没有真正扩大 实现虚拟存储器的关键技术有以下两个 ①请求调页(段)技术:这是指及时将进程所要访问的、不在内存中的页(段)调入内存 该功能是由硬件(缺页(段)中断机构)发现缺页(段)和软件(将所需页(段)调入内存)配合实 现的。 ②置换页(段)技术:当内存中已无足够空间用来装入即将调入的页(段)时,为了保证进程 能继续运行,系统必须换出内存中的部分页(段),以腾出足够的空间,将所嚣的页(段)调入内 存。具体的置换操作并不复杂,其关键是应将哪些页(段)换出,即采取什么置换算法 3.一个比较完善的文件系统应该具备以下功能 (1)文件存储空间的管理:通过文件存储空间的管理,使文件”各得其所",并且尽量提高文 件存储空间的利用率 (2)目录管理:通过目录管理,实现对文件的按名存取,提高对文件的检索速度,解决文件的 命名冲突问题(允许文件重名),并实现多个文件的共享。 (3)文件的读写管理:通过对文件的读写管理,能快速地从磁盘上读出文件中的数据,或快
2.页表长度 页表在内存中的起始地址 该进程的进程控制块。 3.字节 数据块 一组数据块。 4.连续分配 隐式链接分配 混合索引分配。 5.动态性 并发性 fork 6.管道通信 直接通信。 7.1 8.使程序能够正确地并发执行 进程控制块 PCB。 四. 简答题 1.多道程序技术是指在内存中同时存放若干个作业,并使西 IT 共享系统的资源,同时运 行的技术。 在操作系统中引入多道程序技术带来了以下好处: (1)提高 CPU 的利用率。当内存中仅放一道程序时,每逢该程序运行中发出 I/O 请求后,CPU 空闲,必须在其 I/0 完成后才能继续执行:尤其是 I/O 设备的低速性,更使 CPU 的利用率显著 降低。在引入多道程序设计技术后,由于可同时把若干道程序装入内存,并可使它们交替地执 行,这样,当正在运行的程序因 I/O 而暂停执行时,系统可调度另一道程序执行,从而可保持 CPU 处于忙状态,使 CPU 的利用率提高。 (2)可提高内存和 UO 设备的利用率。为了能运行较大的作业,通常内存都具有较大的容量, 但由于 80%以上的作业都属于中、小型作业,因此在单道程序的环境下也必定造成内存的浪 费。类似地,系统中所配置的多种类型的 I/0 设备,在单道程序环境下,也不能充分利用。如 果允许在内存中装入多道程序,并允许它们并发执行,则无疑会有如提高内存和 I/0 设备的 利用率。 (3)增加系统吞吐量。在保持 CPU、I/0 设备不断忙碌的同时写也必然会大幅度地提高系统 的吞吐量,从而降低作业加工所需费用。 2.虚拟存储器的基本特征有: (1)多次性:作业只要部分装入内存便可后动执行;其余部分可待需要时再调入内存,即一 个作业将分成多次装入内存。 (2)对换性:在进程运行期间,允许将那些暂不使用的程序和数据从内存魄至外存的对换区 (换出),待以后需要时再将它们从外存调入内存(换入)。 (3)离散性:实现虚拟存储器必须采用离散的分配技术,而连续的分配技术无法实现虚拟存 储器的功能。 (4)虚拟性:虚拟存储器只是在逻辑上扩充内存容量,而实际的内存容量并没有真正扩大。 实现虚拟存储器的关键技术有以下两个: ①请求调页(段)技术:这是指及时将进程所要访问的、不在内存中的页(段)调入内存。 该功能是由硬件(缺页(段)中断机构)发现缺页(段)和软件(将所需页(段)调入内存)配合实 现的。 ②置换页(段)技术:当内存中已无足够空间用来装入即将调入的页(段)时,为了保证进程 能继续运行,系统必须换出内存中的部分页(段),以腾出足够的空间,将所嚣的页(段)调入内 存。具体的置换操作并不复杂,其关键是应将哪些页(段)换出,即采取什么置换算法。 3.一个比较完善的文件系统应该具备以下功能: (1)文件存储空间的管理:通过文件存储空间的管理,使文件"各得其所",并且尽量提高文 件存储空间的利用率。 (2)目录管理:通过目录管理,实现对文件的按名存取,提高对文件的检索速度,解决文件的 命名冲突问题(允许文件重名),并实现多个文件的共享。 (3)文件的读写管理:通过对文件的读写管理,能快速地从磁盘上读出文件中的数据,或快
速地将数据写到磁盘用。 (4)文件的安全性管理:采用一系列措施〈如多级文件保护措施)对系统中的文件进行保护 以防文件被盗窃、修改和破坏。 (5)提供用户接口:向用户提供-个统二的、使用方便的接口,使用户可通过该接口方便地 取得文件系统的服务(如文件存取服务,创建文件、删除文件、修改文件等文件管理服务) 4.RAID利用一台磁盘阵列控制器来统一管理和控制一组(儿台到儿十台〉磁盘驱动器,用 户数据和系统数据可分布在阵列的所有磁盘中,而阵列中的所有磁盘驱动器可并行交叉地进 行数据传输,因此它可大大地提高数据传输的速度 RAID方案可分成RAID0-RAID7这几级,除了RAID外,其他各级都采用了容错技术。如 RAID采用了磁盘镜像功能,阵列中的每个磁盘都有一个镜像盘;RAID3则专门使用了一台奇 偶校验盘,其中每气位用来存放根据其他磁盘中同一位置的数据位计算出来的奇偶校验码, 从而使得某个磁盘发生故障时,3可通过其余设备重新构造数据:RAIP5将奇偶校验码以螺旋 方式散布到各个数据盘中;RAID6中采用了两种不同的校验算法计算校验码,并将它们保存 在不同磁盘中,因此RAID可显著地提高磁盘的可靠性。 5.所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,若无外力作用, 这些进程都将无法再向前推进 此时系统不会发生死锁的原因是死锁产生的必要条件之一循环等待条件不可能成立。因 为多个进程之间只可能存在占据较低序号资源的进程等待占据较高序号资源的进程释放资 源的情况,但不可能存在反向的等待,因此,它们之间绝对不会形成循环等待链 6.访管指令是一类机器指令,执行访管指令可以引起访管中断。访管指令不是特权指 令,它可以在算态下执行,也可以在管态下执行:特权指令也是一类机器指令,特权指令只能 在管态下执行;系统调用不是机器指令,每个系统调用命令相当于一个函数,该函数实现操作 系统提供的一种子功能。用户编程时也可以使用这些系统调用命令 在系统调用命令中,总是包含一条访管指令,当系统调用执行到访管指令时,就引起访管 中断。在进入中断处理程序后便由算态进入管态,在管态下,可以执行特权指令以完成操作系 统提供的功能。当中断处理程序结束后又从管态返回到算态。 当用户程序想要操作系统提供服务时,就可在用户程序中使用系统调用命令,它是操作 系统与用户的编程接口。 五.综合题 1.为了实现计算进程和打印进程之间的同步,并使单缓冲中的每个计算结果都被两个打 印进程分别打印一次,可设置四个信号量: fulll表示缓冲中是否有可供Po1打印的计算结 果,fu1l2表示缓冲中是否有可给P02打印的计算结果: empty l、 empty2则表示计算结果是否 已被P01、P02取走,只有当一个结果被两个打印进程都取走后,缓冲区才变空,计算进程才可 将下一个计算结果放入单缓冲。相应的同步算法可描述如下 Var empty l, empty2, fulll, full2: semaphore: =1, 10, 0 begin Pc: begin repeat compute next number P(empty 1) P(empty 2) dd the number to buffer; v(full1)
速地将数据写到磁盘用。 (4)文件的安全性管理:采用一系列措施〈如多级文件保护措施)对系统中的文件进行保护, 以防文件被盗窃、修改和破坏。 (5)提供用户接口:向用户提供-个统二的、使用方便的接口,使用户可通过该接口方便地 取得文件系统的服务(如文件存取服务,创建文件、删除文件、修改文件等文件管理服务)。 4.RAID 利用一台磁盘阵列控制器来统一管理和控制一组(儿台到儿十台〉磁盘驱动器,用 户数据和系统数据可分布在阵列的所有磁盘中,而阵列中的所有磁盘驱动器可并行交叉地进 行数据传输,因此它可大大地提高数据传输的速度。 RAID 方案可分成 RAID0-RAID7 这几级,除了 RAID0 外,其他各级都采用了容错技术。如 RAID1 采用了磁盘镜像功能,阵列中的每个磁盘都有一个镜像盘;RAID3 则专门使用了一台奇 偶校验盘,其中每气位用来存放根据其他磁盘中同一位置的数据位计算出来的奇偶校验码, 从而使得某个磁盘发生故障时,3 可通过其余设备重新构造数据:RAIP5 将奇偶校验码以螺旋 方式散布到各个数据盘中;RAID6 中采用了两种不同的校验算法计算校验码,并将它们保存 在不同磁盘中,因此 RAID 可显著地提高磁盘的可靠性。 5.所谓死锁,是指多个进程在运行过程中因争夺资源而造成的一种僵局,若无外力作用, 这些进程都将无法再向前推进。 此时系统不会发生死锁的原因是死锁产生的必要条件之一循环等待条件不可能成立。因 为多个进程之间只可能存在占据较低序号资源的进程等待占据较高序号资源的进程释放资 源的情况,但不可能存在反向的等待,因此,它们之间绝对不会形成循环等待链。 6.访管指令是一类机器指令,执行访管指令可以引起访管中断。访管指令不是特权指 令,它可以在算态下执行,也可以在管态下执行;特权指令也是一类机器指令,特权指令只能 在管态下执行;系统调用不是机器指令,每个系统调用命令相当于一个函数,该函数实现操作 系统提供的一种子功能。用户编程时也可以使用这些系统调用命令。 在系统调用命令中,总是包含一条访管指令,当系统调用执行到访管指令时,就引起访管 中断。在进入中断处理程序后便由算态进入管态,在管态下,可以执行特权指令以完成操作系 统提供的功能。当中断处理程序结束后又从管态返回到算态。 当用户程序想要操作系统提供服务时,就可在用户程序中使用系统调用命令,它是操作 系统与用户的编程接口。 五. 综合题 1.为了实现计算进程和打印进程之间的同步,并使单缓冲中的每个计算结果都被两个打 印进程分别打印一次,可设置四个信号量:full1 表示缓冲中是否有可供 PO1 打印的计算结 果,full2 表示缓冲中是否有可给 P02 打印的计算结果:emptyl、empty2 则表示计算结果是否 已被 P01、P02 取走,只有当一个结果被两个打印进程都取走后,缓冲区才变空,计算进程才可 将下一个计算结果放入单缓冲。相应的同步算法可描述如下: Var empty1,empty2,full1,full2:semaphore:=1,10,0; begin parbegin PC :begin repeat compute next number; P(empty1); P(empty2); add the number to buffer; V(full1);