【考研】2026/7/12 政治2026/7/12金融资本由工业垄断资本和银行垄断资本融合在一起而形成的一种垄断资本。金融资本形成的主要途径包括金融联系、资本参与和人事参与。金融寡头指操纵国民经济命脉并在实际上控制国家政权的少数垄断资本家或垄断资本家集团。他们在经济领域中的统治主要是通过“参与制”实现的。参与制即金融寡头通过掌握一定数量的股票来层层控制企业的制度。在政治上金融寡头对国家机器的控制主要是通过同政府的“个人联合”来实现的。金融寡头还通过建立政策咨询机构等方式对政府的政策施加影响并通过掌握新闻出版、广播电视、科学教育、文化体育等上层建筑的各个领域,左右国家的内政外交及社会生活。垄断资本的实质在于获取垄断利润垄断利润垄断资本家凭借其在社会生产和流通中的垄断地位而获得的超过平均利润的高额利润。垄断利润的形成关键在于垄断组织在经济生活中起了决定性作用从而阻碍了资本在各部门之间的自由转移限制了利润平均化的趋势这样一来垄断资本家有可能长期获得大大超过平均利润的垄断利润。垄断利润的来源。垄断资本所获得的高额利润归根到底来自无产阶级和其他劳动人民所创造的剩余价值。垄断利润的实现方式。垄断利润主要是通过垄断组织制定的垄断价格来实现的。垄断价格是垄断组织在销售或购买商品时,凭借其垄断地位规定的、旨在保证获取最大限度利润的市场价格。垄断价格垄断高价、垄断低价。垄断高价指垄断组织出售商品时规定的高于生产价格的价格。垄断低价指垄断组织在购买非垄断企业所生产的原材料等生产资料时规定的低于生产价格的价格。垄断价格的产生没有否定价值规律。 它是价值规律在垄断资本主义阶段作用的具体体现。国家垄断资本主义是国家政权和私人垄断资本融合在一起的垄断资本主义。国家垄断资本主义的产生是垄断资本主义生产关系在自身范围内的部分质变标志着资本主义发展进入新的阶段。国家垄断资本主义是科技进步和生产社会化程度进一步提高的产物是资本主义基本矛盾进一步尖锐化的必然结果。社会生产力的发展要求资本主义生产资料在更大范围内被支配从而促进了国家垄断资本主义的产生。经济波动和经济危机的深化推动国家垄断资本主义的产生。危机的发展和加深靠私人资本的力量根本难以应付。缓和社会矛盾、协调利益关系的需求促使国家垄断资本主义的产生。国家垄断资本主义的主要形式国家所有并直接经营企业。国家与私人共有、合营企业。国家通过多种形式参与私人垄断资本的再生产过程国家向私人垄断企业大量订货为私人垄断企业提供有保证的国家市场国家通过各种形式的津贴和补助直接、间接地资助私人垄断企业国家通过社会福利开支提高社会购买力扩大消费需求为私人垄断企业创造市场条件。宏观调节主要是国家运用财政政策、货币政策等经济手段对社会总供给和总需求进行调节以实现经济快速增长、充分就业、物价稳定和国际收支平衡的基本目标。微观调控反托拉斯法、公共事业规制、社会经济规制。国家垄断资本主义是垄断资本主义的新发展它对资本主义经济的发展产生了积极的作用。第一国家垄断资本主义的出现在一定程度上有利于社会生产力的发展。第二国家断资本主义在一定范围内突破了私人垄断资本的狭隘界限,在一定程度上适应了社会化大生产的要求有利于缓解资本主义生产的无政府状态。第三通过国家的收入再分配手段劳动人生活水平有所改善和提高。第四在国家垄断资本主义的参与和干预下各主要资本主义国家的农业、工业、商业、通信业及交通运输业的现代化水平迅速提高社会生产和社会生活的面貌改观、这些国家国民经济的现代化进程加快。国家垄断资本主义在本质上是资产阶级国家力量同垄断组织力结合在一起的垄断资本主义它在一定程度上促进生产力发展的同时却加大了对劳动人民的剥削和掠夺更好地保证了垄断资产阶级获得高额垄断利润更有利于维护资本主义制度。它的出现是资本主义经济制度内的经济关系调整并没有从根本上消除资本主义的基本矛盾。国家垄断资本主义尽管有各种不同的具体形式其实质都是私人垄断资本利用国家机器来为其发展服务的手段是私人垄断资本为了维护垄断统治和获取高额垄断利润而与国家政权相结合的一种垄断资本主义形式。20 世纪 70 年代初由于资本主义发展不平衡的加深和国际货币体系内在矛盾的激化布雷顿森林体系崩溃。随后西方国家普遍走上了金融自由化和金融创新的道路。金融自由化与金融创新是金融垄断资本得以形成和壮大的重要制度条件。金融自由化和金融创新推动资本主义经济的金融化程度不断提高。第一金融自由化促使由工业垄断资本与银行垄断资本融合而成的金融寡头发生分化以大银行和非银行金融机构为主体的金融垄断资本脱离实体经济独立发展。第二金融垄断资本通过形形色色的金融衍生工具在金融市场呼风唤雨、巧取豪夺使财富以惊人的速度膨胀。第三在金融垄断资本的推动下垄断资本主义的金融化程度不断提高金融业在国民经济中的地位大幅上升金融资本在资本主义国家国内生产总值和利润总额中所占的比例越来越大。第四随着实体经济的资本利润率下降面对激烈竞争实体经济部门不得不把利润的一部分投向金融领域导致金融资本的急剧膨胀制造业就业人数严重减少以金融为核心的服务业就业人数逐步增加虚拟经济越来越脱离实体经济。第五随着金融垄断资本势力的爆炸性增长金融垄断资本的控制能力大大提升不但学握了越来越多的社会财富而且还通过控制政府决策部门和决策过程实现对整个国家的政治控制利用国家机器维护自身的利益。金融垄断资本快速发展的作用一方面促进了资本主义经济的发展另一方面也造成了经济过度虚拟化导致金融危机频繁发生不仅给资本主义经济带来灾难也给全球经济带来灾难。英语2026/7/12①Their analysisruled outthe possibilitythat it was firms political influence, rather than their CSR stand, thataccounted fortheleniency: companies that contributed more to political campaigns did not receive lower fines.他们的分析排除了这种可能性即公司的政治影响而不是他们的企业社会责任立场导致了宽大处理:对政治运动贡献更多的公司并没有收到更低的罚款。ruled out 排除使不可能accounted for 解释导致占...比例leniency n. 宽大仁慈②The Conservatives planning reform explicitly gives rural development priority overconservation, even authorising “off-plan buildingwhere local people might object.保守党的规划改革明确将农村发展置于保护之上甚至授权在当地人可能反对的地方进行“非规划”建设。conservation n. 保护数学2026/7/12专业课2026/7/12调度程序调度器用于调度和分派CPU的组件。由三部分组成①排队器将系统中的所有就绪程序按照一定的策略排成一个或多个队列以便于调度程序选择。每当有一个进程转变为就绪态时排队器便将它插入相应的就绪队列②分派器依据调度程序所选的进程将其从就绪队列中取出将CPU分配给新进程③上下文切换器在对CPU进行切换时发生两对上下文的切换操作将当前进程的上下文保存到其PCB中再装入分派程序的上下文以便分派程序运行移出分派程序的上下文将新选进程的CPU现场信息装入CPU的各个相应寄存器可以进行进程调度与切换的情况①创建新进程后父进程和子进程都处于就绪态因此需要决定是运行父进程还是运行子进程调度程序可以合法地决定其中一个进程先运行②进程正常结束或异常终止后必须从就绪队列中选择某个进程运行。若没有就绪进程则通常运行一个系统提供的闲逛进程③当进程因I/O请求、信号量操作或其他原因此被阻塞时必须调度其他进程运行④当I/O设备准备就绪后发出I/O中断原先等待I/O的进程从阻塞态变为就绪态此时需要决定是让新的就绪进程投入运行还是让中断发生时运行的进程继续执行不能进行进程调度与切换的情况①在处理中断的过程中。中断处理过程复杂在实现上很难做到进程切换而且中断处理是系统工作的一部分逻辑上不属于某一进程不应被剥夺 CPU 资源②需要完全屏蔽中断的原子操作过程中。如加锁、解锁、中断现场保护、恢复等原子操作。在原子过程中连中断都要屏蔽更不应该进行进程调度与切换进程调度的方式①非抢占调度方式非剥夺方式指当一个进程正在CPU上执行时即使有某个更为重要或紧迫的进程进入就绪队列仍然让正在执行的进程继续执行直到该进程运行完成如正常结束、异常终止或发生某种事件如等待I/O操作、在进程通信或同步中执行了Block原语而进入阻塞态时才将CPU分配给其他进程②抢占调度方式剥夺方式指当一个进程正在CPU上执行时若有某个更为重要或紧迫的进程需要使用CPU则允许调度程序根据某种原则去暂停正在执行的进程将CPU分配给这个更为重要或紧迫的进程闲逛进程当进程切换时若系统中没有就绪进程则会调度闲逛进程ldle Process运行它的PID为0。若没有其他进程就绪则该进程就一直运行并在指令周期后测试中断。闲逛进程的优先级最低没有就绪进程时才会运行闲逛进程只要有进程就绪就会立即让出CPU。闲逛进程不需要CPU之外的资源它不会被阻塞两种线程的调度①用户级线程调度因为内核并不知道线程的存在所以内核还是和以前一样选择一个进程并给予时间控制。由进程中的调度程序决定哪个线程运行②内核级线程调度内核选择一个特定线程运行通常不用考虑该线程属于哪个进程。对被选择的线程赋予一个时间片若超过了时间片则会强制挂起该线程调度目标①CPU利用率CPU利用率 CPU有效工作事件 / CPU有效工作时间 CPU空闲等待时间②系统吞吐量单位时间内CPU完成作业的数量③周转时间指从作业提交到作业完成所经历的时间是作业等待、在就绪队列中排队、在CPU上运行及I/O操作所花费时间的总和平均周转时间指多个作业周转时间的平均值带权周转时间指作业周转时间与作业实际运行时间的比值平均带权周转时间指多个作业带权周转时间的平均值④等待时间指进程处于等待CPU的时间之和⑤响应时间指从用户到提交请求到系统首次产生响应所用的时间进程切换上下文切换切换 CPU 到另一个进程需要保存当前进程状态并恢复另一个进程的状态进程上下文采用进程PCB表示包括CPU寄存器的值、进程状态和内存管理信息等。当进行上下文切换时内核将旧进程状态保存在其PCB中然后加载经调度而要执行的新进程的上下文。在切换过程中进程的运行环境产生实质性的变化上下文切换的流程:挂起一个进程将CPU上下文保存到PCB包括程序计数器和其他寄存器将进程的PCB移入相应的队列如就绪、在某事件阻塞等队列选择另一个进程执行并更新其PCB恢复新进程的CPU上下文跳转到新进程PCB中的程序计数器所指向的位置执行上下文切换的消耗上下文切换通常是计算密集型的即它需要相当可观的CPU时间在每秒几十上百次的切换中每次切换都需要纳秒量级的时间所以上下文切换对系统来说意味着消耗大量的CPU时间。有些CPU提供多个寄存器组这样上下文切换就只需要简单改变当前寄存器组的指针上下文切换与模式切换模式切换用户态和内核态之间的切换。模式切换时CPU 逻辑上可能还在执行同一进程。用户进程最开始都运行在用户态若进程因中断或异常进入内核态运行执行完后又回到用户态刚被中断的进程运行。用户态和内核态之间的切换不是上下文切换因为没有改变当前的进程。上下文切换只能发生在内核态它是多任务操作系统中的一个必需的特性CPU调度算法①先来先服务FCFS调度算法作业调度、进程调度在作业调度中FCFS调度算法每次从后备作业队列中选择最先进入该队列的一个或几个作业将它们调入内存分配必要的资源创建进程并放入就绪队列在进程调度中FCFS调度算法每次从就绪队列中选择最先进入该队列的进程将CPU分配给它使之投入运行直到运行完成或因某种原因此阻塞时才释放CPU注意对短作业不利如果前面是长作业但不会饥饿有利于CPU繁忙型作业不利于I/O繁忙型作业②短作业优先SJF调度算法短作业优先SJF调度算法从后备队列中选择一个或几个估计运行时间最短的作业将它们调入内存运行短进程优先SPF调度算法从就绪队列中选择一个估计运行时间最短的进程将CPU分配给它使之立即执行直到完成或发生某事件而阻塞时才释放CPU注意对长作业不利长作业一直等待可能会产生“饥饿”现象SPF算法默认非抢占式当然还有抢占式SPF调度算法最短剩余时间优先调度算法③高响应比优先调度算法主要用于作业调度上述两种的折中同时考虑了每个作业的等待时间和估计的运行时间。在每次进行作业调度时先计算后备作业队列中每个作业的响应比从中选出响应比最高的作业投入运行响应比 等待时间 要求服务时间/ 要求服务时间注意克服了”饥饿”现象④优先级调度算法作业调度、进程调度在作业调度中优先级调度算法每次从后备作业队列中选择优先级最高的一个或几个作业将它们调入内存分配必要的资源创建进程并放入就绪队列。在进程调度中优先级调度算法每次从就绪队列中选择优先级最高的进程将CPU分配给它使之投入运行根据新的更高优先级进程能否抢占正在执行的进程非抢占式优先级调度算法当一个进程正在CPU上运行时即使有某个优先级更高的进程进入就绪队列仍让正在运行的进程继续运行直到由于其自身的原因此让出CPU时任务完成或等待事件才将CPU分配给就绪队列中优先级最高的进程抢占式优先级调度算法当一个进程正在CPU上运行时若有某个优先级更高的进程进入就绪队列则立即暂停正在运行的进程将CPU分配给优先级更高的进程根据进程创建后其优先级是否可以改变静态优先级优先级是在创建进程时确定的且在进程的整个运行期间保持不变。确定静态优先级的主要依据有进程类型、进程对资源的要求、用户要求。注意可能出现优先级低的进程长期得不到调度的情况动态优先级创建进程时先赋予进程一个优先级但优先级会随进程的推进或等待时间的增加而改变以便获得更好的调度性能。例如规定优先级随等待时间的增加而提高于是对于优先级初值较低的进程在等待足够长的时间后也可获得CPU一般来说进程优先级的设置系统进程 用户进程交互型进程 非交互型进程I/O型进程 计算型进程⑤时间片轮转RR调度算法分时系统系统将所有的就绪进程按FCFS策略排成一个就绪队列每隔一定的时间如 30ms使产生一次时钟中断激活调度程序进行调度将CPU分配给就绪队列的队首进程并令其执行一个时间片。在执行完一个时间片后即使进程并未运行完成它也必须释放出被剥夺CPU给就绪队列的新队首进程而被剥夺的进程返回到就绪队列的末尾重新排队等候再次运行⑥多级队列调度算法在系统中设置多个就绪队列将不同类型或性质的进程固定分配到不同的就绪队列。每个队列可实施不同的调度算法因此系统针对不同用户进程的需求很容易提供多种调度策略。同一队列中的进程可以设置不同的优先级不同的队列本身也可以设置不同的优先级。在多 CPU 系统中可以很方便为每个CPU设置一个单独的就绪队列每个CPU可实施各自不同的调度策略这样就能根据用户需求将多个线程分配到一个或多个 CPU 上运行⑦多级反馈队列调度算法融合了前面几种算法的有点设置多个就绪队列并为每个队列赋予不同的优先级。第1级队列的优先级最高第2级队列的优先级次之其余队列的优先级逐个降低赋予各个队列的进程运行时间片的大小各不相同。在优先级越高的队列中每个进程的时间片就越小。每个队列都采用FCFS算法。新进程进入内存后首先将它放入第1级队列的末尾按FCFS原则等待调度。当轮到该进程执行时如它能在该时间片内完成便可撤离系统。若它在一个时间片结束时尚未完成调度程序将其转入第2级队列的末尾等待调度若它在第2级队列中运行一个时间片后仍未完成再将它放入第3级队列以此类推。当进程最后被降到第n级队列后在第n级队列中便采用时间片轮转方式运行按队列优先级调度。仅当第1级队列为空时,才调度第2级队列中的进程运行;仅当第 1~i-1级队列均为空时才会调度第i级队列中的进程运行。若CPU正在执行第i级队列中的某个进程时又有新进程进入任何一个优先级较高的队列此时须立即将正在运行的进程放回到第i级队列的末尾而将 CPU 分配给新到的高优先级进程⑧基于公平原则的调度算法保证调度算法保证调度算法向用户做出明确的性能保证而非优先运行保证。一种很实际且很容易实现的保证是若系统中有n个用户登录则每个用户都保证获得1/n的CPU时间又如若在单用户系统中有n个进程正在运行则每个进程都保证获得1/n的 CPU 时间公平分享调度算法公平分享调度算法保证所有用户能获得相同的CPU 时间或所要求的时间比例。在这种方式下不论用户启动多少进程都能保证每个用户分配到应得的 CPU 份额多处理机调度①非对称多处理机AMP大多采用主从式操作系统内核驻留在主机上而从机上只运行用户程序进程调度由主机负责。当从机空闲时便向主机发送一个索求进程的信号在主机中有一个就绪队列只要队列不为空主机便从队首摘下一个进程分配给索求进程的从机。这种分配方式实现简单缺点是主机太忙容易成为系统瓶颈②对称多处理机SMP所有处理机都是相同的因此由调度程序将任何一个进程分配给任何一个CPU处理器亲和性当一个进程从一个CPU移到其他CPU上时应将第一个CPU的缓存设置为无效然后重新填充第二个CPU的缓存这种操作的代价较高因此系统应尽量避免将进程从一个CPU移到另一个CPU而应试图让一个进程运行在同一个CPU上负载平衡负载均衡对于SMP系统应尽量保证所有CPU的以便充分利用多处理机的优点否则一个或多个 CPU 会空闲而其他CPU会处于高负载状态且有一些进程处于等待状态。负载平衡应设法将负载平均分配到SMP系统的所有CPU上然而负载平衡通常会抵消处理器亲和性带来的好处保持一个进程运行在同一个CPU上的好处是可以利用它在该 CPU的缓存。而将进程从一个 CPU 迁移到另一个 CPU 会失去这个好处因此在某些系统中只有当不平衡达到一定程度后才移动进程多处理机调度方案公共就绪队列系统中仅设置一个公共就绪队列所有CPU共享同一个就绪队列。这种方案很好地实现了负载平衡因为CPU一旦空闲它就立刻从公共就绪队列中选择一个进程运行。缺点是各进程可能频繁地在不同的CPU上运行处理器亲和性不好提升处理器亲和性的方法有两种软亲和、硬亲和软亲和指由调度程序尽量保持一个进程到某个CPU上但这个进程也可以迁移到其他CPU上硬亲和指由用户进程通过系统调用主动请求系统分配到固定的CPU上私有就绪队列系统为每个CPU设置一个私有就绪队列当CPU空闲时就从各自的私有就绪队列中选择一个进程运行。这种方案很好地实现了处理器亲和性缺点是必须进行负载平衡平衡负载的方法通常有两种推迁移、拉迁移推迁移一个特定的系统程序周期性检査每个CPU的负载若发现不平衡则从超载CPU的就绪队列中“推”一些进程到空闲CPU的就绪队列从而平均分配负载。拉迁移若一个 CPU 负载很低则从超载 CPU 的就绪队列中“拉”一些进程到自己的就绪队列在系统中推迁移和拉迁移常被并行实现同步与互斥①临界资源一次仅允许一个进程使用的资源对临界资源的访问必须互斥地进行临界区访问临界资源地那段代码临界资源的访问过程进入区为了进入临界区使用临界资源在进入区要检查可否进入临界区若能进入临界区则应设置正在访问临界区的标志以阻止其他进程同时进入临界区临界区临界段进程中访问临界资源的那段代码退出区将正在访问临界区的标志清除剩余区代码中的其余部分②同步直接制约关系指为完成某种任务而建立的两个或多个进程这些进程因为需要协调它们的运行次序而等待、传递信息所产生的制约关系③互斥间接制约关系当一个进程进入临界区使用临界资源时另一个进程必须等待当占用临界资源的进程退出临界区后另一进程才允许去访问此临界资源为禁止两个进程同时进入临界区空闲让进临界区空闲时可以允许一个请求进入临界区的进程立即进入临界区忙则等待当已有进程进入临界区时其他试图进入临界区的进程必须等待有限等待对请求访问的进程应保证能在有限时间内进入临界区防止进程无限等待让权等待原则上应该遵循但非必须当进程不能进入临界区时应立即释放处理器防止进程忙等待实现临界区互斥的基本方法软件实现方法①单标志法违背”空闲让进“准则// 进程P0 while(turn ! 0); // 进入区 critical section; // 临界区 turn 1; // 退出区 rmainder section; // 剩余区 ​ // 进程P1 while(turn ! 1); // 进入区 critical section; // 临界区 turn 0; // 退出区 rmainder section; // 剩余区②双标志先检查法违背”忙则等待“准则// 进程P0 while(flag[1]); // 进入区 flag[0] true; // 进入区 critical section; // 临界区 flag[0] false; // 退出区 rmainder section; // 剩余区 ​ // 进程P1 while(flag[0]); // 进入区 flag[1] true; // 进入区 critical section; // 临界区 flag[1] false; // 退出区 rmainder section; // 剩余区③双标志后检查法违背”空闲让进“”有限等待“准则// 进程P0 flag[0] true; // 进入区 while(flag[1]); // 进入区 critical section; // 临界区 flag[0] false; // 退出区 rmainder section; // 剩余区 ​ // 进程P1 flag[1] true; // 进入区 while(flag[0]); // 进入区 critical section; // 临界区 flag[1] false; // 退出区 rmainder section; // 剩余区④Peterson算法违背”让权等待“准则相较于前三个是最好的// 进程P0 flag[0] true; // 进入区 turn 1; // 进入区 while(flag[1] turn1) // 进入区 critical section; // 临界区 flag[0] false; // 退出区 remainder section; // 剩余区 ​ // 进程P1 flag[1] true; // 进入区 turn 0; // 进入区 while(flag[0] turn0) // 进入区 critical section; // 临界区 flag[1] false; // 退出区 remainder section; // 剩余区硬件实现方法①中断屏蔽方法关中断→临界区→开中断②硬件指令方法——TestAndSet指令TS指令原子操作但不能”让权等待“// TS指令 boolean TestAndSet(boolean *lock){ boolean old; old *lock; *lock true; return old; } ​ // 互斥实现 while TestAndSet(lock); // 进入区 critical section; // 临界区 lock false; // 退出区 remainder section; // 剩余区③硬件指令方法——Swap指令不能”让权等待“可能导致”饥饿“现象boolean key true; // 进入区 while(key ! false) // 进入区 Swap(lock, key); // 进入区 critical section; // 临界区 lock false; // 退出区 remainder section; // 剩余区互斥锁自旋锁解决临界区最简单的工具。但是缺点是”忙等待“acquire(){ // 获得锁的定义 while(!available) ; // 忙等待 available false; // 获得锁 } release(){ // 释放锁的定义 available true; // 释放锁 }信号量两个标准的原语wait()和signal()访问简写成P()和V()即P操作和V操作整型信号量被定义为一个用于表示资源数量的整型量S。初始化、wait操作、signal操作。不能”让权等待“wait(S){ while(S 0); // 资源数量不够一直循环等待 S S-1; } signal(S){ S S1; }记录型信号量不存在”忙等“现象用链表记录等待资源的进程// 记录型信号量 typedef struct{ int value; struct process *L; }semaphore; ​ void wait(semaphore S){ S.value--; if(S.value 0){ // 让权等待 add this process to S.L; block(S.L); } } ​ void signal(semaphore S){ S.value; if(S.value 0){ remove a process P from S.L; wakeup(P); } }利用信号量实现进程互斥进程互斥semaphore S 1; // 初始化信号量初值为1 P1(){ ... P(S); critical section of P1; V(S); ... } P2(){ ... P(S); critical section of P2; V(S); ... }利用信号量实现同步同步semaphore S 0; // 初始化信号量初值为0 P1(){ x; // 执行语句x V(S); // 告诉进程P2语句x已完成 ... } P2(){ ... P(S); // 检查语句x是否运行完成 y; // 获得x的运行结果执行语句y ... }利用信号量实现前驱关系semaphore a12a13a24a36a46a560; // 初始化信号量 S1(){ ...; V(a12);V(a13); // S1已经运行完成 } S2(){ P(a12); // 检查S1是否运行完成 ...; V(a24);V(a25); // S2已经运行完成 } S3(){ P(a13); // 检查S1是否已经运行完成 ...; V(a36); // S3已经运行完成 } S4(){ P(a24); // 检查S2是否已经运行完成 ...; V(a46); // S4已经运行完成 } S5(){ P(a25); // 检查S2是否已经运行完成 ...; V(a56); // S5已经运行完成 } S6(){ P(a36); // 检查S3是否已经运行完成 P(a46); // 检查S4是否已经运行完成 P(a56); // 检查S5是否已经运行完成 ...; }分析进程同步和互斥问题对的方法步骤①关系分析找出问题中的进程数并分析它们之间的同步和互斥关系②整理思路找出解决问题的关键点并根据做过的题目找出求解的思路③设置信号量根据上面的两步设置需要的信号量确定初值完善整理