进程_PV操作.ppt

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

进程的同步与互斥 何志学 主要内容: 1. 进程 2. 同步与互斥 3. PV操作与典型问题 进程的基本概念 1. 为什么要引入进程? 2. 进程具有哪些基本特征? 3. 进程有哪些基本状态? 4. PCB具有哪些作用,必须包含哪些内容? 进程 1. 进程 = 程序段 + 数据段 + PCB 2. 进程是进程实体的运行过程,是系统进行 资源分配和调度的一个独立单位。 3. 状态:就绪、执行、阻塞 特征:动态性、并发性、独立性、异步性 主要内容: 1. 进程 2. 同步与互斥 3. PV操作与典型问题 同步与互斥 1. 同步:多个相关进程在执行次序上的协调 如:单缓冲区 2. 互斥:在多道程序环境下,每次只允许一 个进程对临界资源进行访问 如:打印机 同步与互斥 3. 临界资源:在一段时间内,只允许一个进 程访问的资源。 临界区:在进程中访问临界资源的代码 4. 空闲让进、忙则等待、有限等待、让权等待 主要内容: 1. 进程 2. 同步与互斥 3. PV操作与典型问题 PV操作 1. 信号量的含义 2. 信号量的物理意义 3. 如何用信号量实现同步与互斥 PV操作 1. 记录型信号量 PV操作 2. wait(S)和signal(S)操作 PV操作实现同步与互斥 1. 用P、V操作实现进程同步 (1)分析每个进程的执行条件和释放条件,针对每个执行条件设置一个信号量,其初值根据初始情况确定。 (2)对每个进程做如下处理: ①在请求条件出执行P(执行条件信号量) ②在释放条件处执行V(释放条件信号量) PV操作实现同步与互斥 2. 用P、V操作实现进程互斥 假设有i个临界资源供给多个进程共享,对其实现互斥使用的方法为: (1)针对每一类临界资源设一个互斥信号量mutex,若某类临界资源有n个,初值为n;如果只有一个或者只能允许一个进程进入,则初值设为1. (2)在每个进程中对涉及临界资源的临界区做如下处理: P(mutex); CS; V(mutex); 同步与互斥问题 1. 判断该问题是用于解决同步还是互斥? 2. 哪些资源属于临界资源,如何设置信号量,如何设置初值? 3. 如何实现互斥或者同步? 典型问题: 1. 生产者-消费者 2. 哲学家进餐 3. 读者-写者 4. 理发师 5. 吸烟者 生产者-消费者问题--单缓冲区(1/9) 生产者-消费者问题--单缓冲区(2/9) Producer: begin repeat 生产产品 wait(mutex); 把产品放入到缓冲区; signal(mutex); until false; end Consumer : begin repeat wait(mutex); 从缓冲区中取走产品; signal(mutex); 消费产品; until false; end 生产者-消费者问题--单缓冲区(3/9) Producer: begin repeat 生产产品 wait(SB); 把产品放入到缓冲区; signal(SA); until false; end Consumer : begin repeat wait(SA); 从缓冲区中取走产品; signal(SB); 消费产品; until false; end 生产者-消费者问题--多缓冲区(4/9) 生产者-消费者问题--多缓冲区(5/9) Producer: repeat produce an item in nextp;  wait(empty); wait(mutex);  buffer[in]:=nextp;  in:=in+1 mod n;  signal(mutex); signal(full); until false; Consumer: repeat  wait(full); wait(mutex);  nextc:=buffer[out];  out:=(out+1) mod n;  signal(mutext); signal(empty);  consumer the item in

文档评论(0)

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

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

1亿VIP精品文档

相关文档