- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
Linux基础教程-第2章处理机管理(3)阻塞原语当正在运行的进程需要等待某一事件,由自己调用阻塞原语把自己阻塞起来成为等待状态。阻塞原语主要完成保护CPU现场的工作,即首先中断处理机保存该进程的CPU现场,然后把被阻塞的进程置为等待状态,插入到相应的等待队列,最后转入进程调度程序,从就绪队列中选择一个进程投入运行。(4)唤醒原语当处于等待状态的进程所等待的事件出现时,由发现者进程调用唤醒原语唤醒被阻塞的进程。进程控制原语由系统执行。同时,操作系统还提供了一些用于进程控制的系统调用和操作命令,用户可以通过程序或者命令的方式控制进程。Linux基础教程-第2章处理机管理2.2.5进程约束现代操作系统中,程序并发执行,多个进程各自独立地运行,同时竞争和共享系统中有限的资源,这种竞争与合作构成了系统进程之间的约束关系。每个进程独立地申请和释放系统资源,把申请某一类资源的进程称为该类资源的消费者,把释放同类资源的进程称为该类资源的生产者,就得到描述进程约束关系的一般模型:生产者-消费者问题,也称为有界缓冲区问题。比较简单的情况,两进程共享一个长度为N(N0)的有界缓冲区,一个进程Pp往缓冲区中送数据,是生产者,另一个进程Pc从缓冲区中读取数据,是消费者,如图2.4,下面来讨论它们间的约束关系。Linux基础教程-第2章处理机管理图2.4简单的生产者-消费者问题Linux基础教程-第2章处理机管理首先,生产者进程Pp和消费者进程Pc共享同一个有界缓冲区,对这个缓冲区的操作必须是独占的。这种不允许多个并发进程交叉执行的资源称为临界资源,临界的程序段资源称为临界部分或临界区。临界资源是由于不同并发进程共享某个资源造成的,不可能通过增加资源的方法解决。这种因为共享某一公有资源而引起的在临界资源内不允许并发进程交叉执行的现象,称为进程间的间接约束。由于对临界资源的共享,而产生了临界区问题。对于有着临界区问题的并行进程之间必须互斥,以保证不会同时进入临界区。Linux基础教程-第2章处理机管理其次,对生产者进程Pp和消费者进程Pc访问共享有界缓冲区的顺序有严格的要求。具体来讲,这种限制为:(1)消费者进程Pc要接收数据时,有界缓冲区必须至少有一个单元是满的;(2)生产者进程Pp要发送数据时,有界缓冲区必须至少有一个单元是空的。这样存在一组相互独立的并发进程,各自的执行结果互为对方的执行条件,从而限制各进程执行速度的过程,称为进程间的直接制约。存在直接制约关系,相互发送消息进行互相合作、互相等待,各自按照一定的速度向前推进的过程称为同步。Linux基础教程-第2章处理机管理消费者进程和生产者进程之间因为共享缓冲区,相互竞争而间接制约,具有互斥关系,同时相互以对方的运行结果为条件而直接制约,也具有同步的关系,是一对同时具有竞争和合作的进程。在并发系统中,进程之间相互制约,具有同步和互斥是相当普遍的现象。这种进程之间的相互关系,依靠单个进程自身的力量是无法解决的,必须以进程间的相互通信为基础,互相发送信息,才能协调解决。具体的同步、互斥实现方案有很多种,分别基于不同的通信方式。Linux基础教程-第2章处理机管理2.2.6进程通信进程间通信是协调解决多个进程之间的约束关系,实现进程共同进展的关键技术,是多道系统中控制进程并发执行必不可少的机制。进程间的通信有两种方式:一是互相发送少量的控制信息,一般只传递一个或者几个字节的数据,进程利用这些简单的信息,实现互斥和同步,控制运行速度,这种简单的通信方式被称为进程间的低级通信;另外一种方式称为进程间的高级通信,基本不涉及进程执行速度控制,用来在进程之间传递大量的信息,由于这种通信方式主要用于交换信息,因此,在开发本地进程间通信的同时,也为远程进程间的通信,和计算机网络的开发及控制奠定了基础。Linux基础教程-第2章处理机管理1.进程通信类型按照通信进程双方的地位,可以把进程通信分为:主从式、会话式、消息或邮箱机制以及共享存储区四种类型。(1)主从式主进程一方在整个通信过程中处于绝对的控制地位,它可以直接控制从进程的动作,自由地使用从进程的资源和数据。(2)会话式一方进程提供服务,另外一方进程在得到服务方的许可之后,可以使用其提供的服务。在通信过程中,双方的连接关系固定,客户进程提出服务请求,服务进程根据情况控制服务的状态和内容。Linux基础教程-第2章处理机管理(3)消息或邮箱机制通信双方具有平等的地位,和现实生活中的邮件类似。通信双方通过缓冲区或邮箱存放被传送的数据,不需要建立双方直接的连接关系。申请通信的发起方进程不管接收方进程的状态,把信息直接送入双方共享的缓冲区(
文档评论(0)