- 1、本文档共66页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]进程管理
第三章 进程管理 3.1 进程的概念 3.2 进程的表示和调度状态 3.3 进程的控制 3.4 进程调度 3.5 线程及其管理 3.6 进程通讯 3.7 死锁 3.6 进程通讯 进程之间由于并发进程的合作以及对资源的共享,存在着相互制约的关系。 直接制约:为完成同一任务的进程需要相互协作,在某些位置相互等待、相互交换信息而产生的制约关系。(同步关系) 间接制约:进程间因相互竞争使用独占型资源而产生的制约关系。(互斥关系) 进程P1、 P2的互斥 设有两个进程P1、 P2, 它们共享同一变量count: P1: P2: R1∶=count; R2∶=count; R1∶=R1+1; R2∶=R2+1; count∶=R1; count∶=R2; 其中, R1 和R2 是处理机的两个通用寄存器。 临界区和临界资源 临界资源 CR (Critical Resource) 一次仅允许一个进程使用的资源称为临界资源。 (必须是互斥使用) 临界区 CS (Critical Section) 必须互斥执行的程序段称为临界区或互斥段。(该程序段实施对临界资源的操作) 临界区的使用原则 保证资源的互斥和有效地使用 当有若干进程要求进入它们的临界区时, 应在有限时间内使一进程进入临界区。 每次最多有一个进程处于临界区内。 进程在临界区内逗留应在有限时间范围内。 实现临界区互斥的锁操作法 为保证互斥,在临界资源使用前后对其进行控制。 锁操作法使用锁,用W来表示。 加锁原语用LOCK (W)表示 开锁原语用UNLOCK (W)表示 锁操作法 两个进程P1,P2使用如下程序实施进程的互斥: 进程P1 进程P2 LOCK (W) LOCK (W) S1 S2 UNLOCK (W) UNLOCK (W) 其中S1和S2分别为进程P1 和P2 的临界区。 锁操作法可以使用硬件机制和软件机制来实现。 “忙等待”现象 信号量(Semaphore) 信号量是一个与队列有关的整型变量, 其值仅能由P、V操作来改变。 操作系统使用信号量对进程和资源进行控制与管理: 公有信号量与所有并发进程有关,用于实现进程之间的互斥。 私有信号量只与制约进程和被制约进程有关,用于实现进程之间的同步。 P、V操作 P、V操作是定义在信号量S上的两个操作: P(S): ① S∶=S-1; ② 若S≥0,则调用P(S)的进程继续运行; ③ 若S0,则调用P(S)的进程被阻塞, 并把它插入等待信号量S的阻塞队列中。 V(S): ① S∶=S+1; ② 若S0,则调用V(S)的进程继续运行; ③ 若S≤0,从等待信号量S的阻塞队列中唤醒头一个进程, 然后调用V(S)的进程继续运行。 信号量和P、V操作 P、V操作是不可中断的程序段,即原语。 信号量大于等于零时表示可供并发进程使用的资源数,小于零时表示正在等待使用临界区的进程数。 PV操作对于每一个进程来说,都只能进行一次,而且必须成对使用。 利用信号量实现进程的互斥 设S为两进程互斥的公用信号量,初值为1,把临界区的程序段置于P(S)和V(S)之间,即可实现两进程的互斥。 例如进程P1 和进程P2 按如下安排, 即可实现互斥: 例1: 设有两个进程P1、 P2, 它们共享的变量count是一个临界资源,必须互斥地执行。 P1: P2: R1∶=count; R2∶=count; R1∶=R1+1; R2∶=R2+1; count∶=R1; count∶=R2; 其中, R1 和R2 是处理机的两个通用寄存器。 临界资源数为1,信号量初值为1 例2: 设一民航航班售票系统有n个售票处。每个售票处通过终端访问系统中的公用数据区,假定公共数据区中一些单元xk(k=1, 2, …)分别存放×月×日×次航班的现存票数。设P1,P2, …,Pn表示各售票处的处理进程,R1, R2, …, Rn表示各进程执行时所用的工作单元。 临界资源数为1,信号量初值为1 例3: 某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,厅外的购票者可立即进入,否则需要在外面等待。每个购票者可看成一个进程。??????? 临界资源数为1,信号量初值为20 利用信号量实现进程间的同步 一般来说, 信号量初值为 0, 两个进程之间的同步模型如下: 例1:
文档评论(0)