- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
进程的相互制约关系 在多道环境中,进程可并发执行,同时又要共享资源,这些资源有些可以共享使用(如硬盘),有些以独占方式使用(如打印机),由此将产生一系列的矛盾,产生错综复杂的相互制约的关系。 制约关系产生的原因: 资源共享 进程合作 (四)进程互斥 一、进程互斥的概念 1. 临界资源 例1:两个进程A、B共享一台打印机 若不加以控制,两个进程的输出结果可能交织在一起,很难区分。 例2:两个进程共享一个变量x 设: x代表某航班已卖出的机座数,初值为0。p1和p2为两个售票进程,功能是对共享变量x的值加1。 这两个进程在一个处理机C上并发执行,分别具有内部寄存器r1和r2。 两进程并发执行的两种可能次序: 序列A 序列B p1: r1 := x ; p1: r1 := x ; r1 := r1 + 1 ; p2: r2 := x; x := r1 ; r2 := r2 + 1 ; P2: r2 := x ; x := r2 ; r2 := r2 + 1 ; p1: r1 := r1 + 1 ; x := r2 ; x := r1 ; 特点:当两个进程公用一个变量时,它们必须顺序的访问,一个进程对公用变量操作完毕后,另一个进程才能去访问和修改这一变量。 (1)什么是临界资源 一次(一段时间内)仅允许一个进程使用的资源。 物理设备:输入机、打印机、磁带机 软件资源:公用变量、数据、表格、队列等 (3)什么是互斥 在操作系统中,当某一进程正在访问某一存储区域时,不允许其他进程来读出或者修改存储区的内容,否则,就会发生后果无法估计的错误。进程间的这种相互制约的关系称为互斥。 例如:进程A正在执行CSa段时,进程B就不能进入CSb段执行。 进程A 进程B … … x = 0 CSb x = x + 1 CSa … … x = x + 1 … 操作系统如何保证进程的互斥呢? (1)保证进入 当有若干个进程欲进入临界区时,应在有限的时间内使其进入; (2)排它性 每次至多有一个进程处于临界区; (3)有限性 进程在临界区内仅逗留有限的时间; 进程在进入临界区前仅等待有限的时间。 ?这些原则如何实现呢? 二. 锁和上锁、开锁操作 1. 什么是锁 用变量w代表某种资源的状态,w称为“锁” 2. 进程使用临界资源的操作 3. 操作系统如何实现锁 硬件方式 中断屏蔽法:禁止一切中断发生 代价高,影响并发性 不安全,将禁止一切中断的权利给了普通用户 局限性:不适合多CPU,进程只能禁止本CPU的中断 硬件指令法:设置“测试并设置”指令 一条指令完成读写两个操作 忙等待、饥饿现象 软件方式 锁机制(上锁/开锁原语) 信号灯机制 4. 上锁原语和开锁原语 (1)上锁原语 算法 lock 输入:锁变量w 输出:无 { test : if (w为1) goto test ;/* 测试锁位的值 */ else w = 1 ; /* 上锁 */ } 改进的算法 5. 用上锁原语和开锁原语实现进程互斥 假设有两个进程共享打印机,两个进程中使用打印机的程序段为临界区。 为保证打印的正确,设置打印机的锁位print,其初值为“0”,表示打印机可用。 三. 信号灯和P、V操作 什么是信号灯 信号灯是整型变量。 s ≥ 0时,表示绿灯,进程可继续执行。 s 0时,表示红灯,进程停止执行。 信号灯是一个确定的二元组(s,q),s是一个具有非负初值的整型变量,q是一个初始状态为空的队列。操作系统利用信号灯的值对并发进程和共享资源进行控制和管理。 注意:创建信号灯时,应准确说明信号灯s的意义和初值。 2. P、V操作 (1)P操作 P操作定义 对信号灯s的P操作记为P(s)。 P(s)是一个不可分割的原语操作,即取信号灯值减1,若相减结果为负,则调用P(s)的进程被阻,并插入到该信号灯的等待队列中,否则可以继续执行。 (2) V操作 V操作定义 对信号灯s的V操作记为V(s)。 V(s)是一个不可分割的原语操作,即取信号灯值加1,若相加结果大于零,进程继续执行, 否则,要帮助唤醒在信号灯等待队列上的一个进程。 3. 用信号灯的P、V操作实现进程互斥 设:mutex为互斥信号灯,初值为1。 用两个进程共享打印机的例子 如何验证信号灯设置的准确性: 第一步:语法检查 创建信号灯时,应准确说明信号灯的意义和初值 除初始化外,仅能由
您可能关注的文档
- 《论语》十二章课件(38页).ppt
- 十二星座希腊神话.ppt
- 《归去来兮辞》知识点归纳及检测26.ppt
- 《归去来兮辞》Q1.ppt
- 十二星男会给你怎样的幸福.ppt
- 《归去来兮辞》课件1.ppt
- 《论语》十二章课件(64页).ppt
- 《归去来兮辞》课件9.ppt
- 十二生肖的意义[1].ppt
- 《诗经》二首《氓》《采薇》课件(21页).ppt
- 2024年湖南省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年江西省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年安徽省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年福建省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年广东省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年河北省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年河南省高考英语试卷(含答案解析)+听力音频.docx
- 2024年湖北省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年湖南省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年江苏省高考英语试卷(含答案解析)+听力音频+听力原文.docx
文档评论(0)