[文学]3第2章 进程与线程2.ppt

  1. 1、本文档共108页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[文学]3第2章 进程与线程2

2.5 进程同步和通信 进程的同步和互斥 临界资源与临界区 互斥实现方式 信号量 信号量的一般应用 2.5 进程同步和通信 进程间的相互关系分为3种 互斥 同步 通信 2.5.1 进程的同步与互斥 1.同步 同步进程通过共享资源来协调活动,在执行时间的次序上有一定约束。虽然彼此不直接知道对方的名字,但知道对方的存在和作用。在协调动作的情况下,多个进程可以共同完成一项任务。 例如: 接力赛跑的接棒区; 流水线工作; 卡片读写:读卡器-缓存1-缓存2-打印机; 有计算进程Pc和打印进程Pp共同使用同一缓冲区BUF。计算进程反复把每次计算结果放入BUF,打印进程把计算进程放入BUF中的数据通过打印机打印。 要实现Pc和Pp的协同工作,提高效率,可做如下规定: 只有当取空BUF中的内容时Pc才能向其中写入新信息;只有当写满BUF时,Pp才能从中取出内容打印。 BUF中的内容取空时, Pp不应继续进行,需要等待Pc向其中送入新信息;反之,当BUF中的内容尚未取走时,Pc应等待,防止把原有的信息冲掉而造成信息丢失。 Pp与Pc是一种同步关系。 指系统中一些进程需要相互合作,共同完成一项任务。具体说,一个进程运行到某一点时要求另一伙伴进程为它提供消息,在未获得消息之前,该进程处于阻塞状态,获得消息后被唤醒进入就绪态。 2.5.1 进程的同步与互斥 2.互斥 在逻辑上这两个进程本来完全独立,毫无关系,只是由于竞争同一个物理资源而相互制约。 它们的运行不具有时间次序的特征。 例如: 交叉路口争用车道; 争抢篮板球; 一台打印机,多个进程竞争使用; 火车站售票,2个窗口同时出售同一车次的票。 2.5.1 进程的同步与互斥 对互斥进程,单独执行正确,但不能交叉执行,只要互斥进行,先后没有关系; 对同步进程,单独执行会产生错误,必须相互配合,有先后次序关系。 竞争条件(Race Condition),即两个或多个进程同时访问和操纵相同的数据时,最后的执行结果取决于进程运行的精确时序。 2.5.2 临界资源和临界区 包含有竞争条件的程序在运行时,结果不确定; 必须找到某种途径来阻值一个以上的进程同时使用这种资源 ——多进程共享这种资源时,必须互斥使用; 2.5.2 临界资源和临界区 临界资源:一次仅允许一个进程使用的资源称为临界资源。宿舍电话和打印机都属于临界资源。除此之外,还有内存变量、指针、数组等等也是临界资源。 临界区:在每个进程中访问临界资源的那段程序叫做临界区。一次只允许有一个程序在临界区中。 2.5.2临界资源和临界区 2.5.2 临界资源和临界区 临界区进入准则 如果若干进程要求进入空闲的临界区,一 次仅允许一个进程进入。(空闲则入) 任何时候,处于临界区内的进程不可多于一个。(忙则等待) 进入临界区的进程要在有限时间内退出。(有限等待) 如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。(让权等待) 根据准则设计入口区、出口区 2.5.3 实现进程互斥的方法 硬件方法 禁止中断 专用机器指令 软件方法 置锁变量法 信号量法 在操作系统或程序设计语音中提供某种级别的支持 2.5.3 实现进程互斥的硬件方法 —— 禁止中断 2.5.3 实现进程互斥的硬件方法 —— 禁止中断 一旦某个进程关闭中断后,如果不再开放中断,系统可能因此而终止 对多处理器系统不起作用 专用机器指令——TSL指令 机器指令缺点 可能导致忙等待 2.5.3 实现进程互斥的软件方法 2.5.3 实现进程互斥的软件方法 置锁变量法 为每类临界区设置一把锁,该锁有打开和关闭两状态 进程执行临界区程序的操作步骤 关锁 执行临界区程序 开锁 2.5.3 实现进程互斥的软件方法 置锁变量法 变量W表示锁,其值为0表示锁打开,其值为1表示锁关闭 关锁原语lock (W): while (W==1); W=1; 开锁原语unlock (W): W=0; 2.5.3 实现进程互斥的软件方法 例:设系统中有一台打印机,进程A和进程B都要使用它。变量W表示锁,其初值为0 2.5.4 信号量(semaphore) 1965年,由荷兰学者Dijkstra提出信号量方法。 信号量是一种解决进程同步、互斥问题的机制。 对信号量操作的限制: 1. 可以初始化为一个非负值; 2. 只能由P和V操作来访问; 2.5.4 信号量(semaphore) 信号量的实现有三种: 整型信号量 结构型信号量 二值信号量 2.5.4 信号量——整型信号量 设整型信号量S。 P、V原子操作伪代码: P(S){

文档评论(0)

skvdnd51 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档