网站大量收购闲置独家精品文档,联系QQ:2885784924

第三章 操作系统.ppt

  1. 1、本文档共88页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 操作系统 3.1 操作系统导论 3.1.1 什么是操作系统 所谓操作系统就是能有效地管理计算机系统中的各种软、硬件资源,合理地组织计算机的工作流程,为用户创造良好工作环境的系统软件。 3.1.2 操作系统的分类 1、批处理操作系统 2、分时系统 3、实时系统 3.1.4 操作系统的特征 1、并发性 2、共享性 (1)互斥共享 (2)同时访问 3、虚拟 2、共享性 计算机系统中的硬件资源和软件资源为各用户所共同使用。 (1)互斥共享 (2)同时访问 P原语操作过程: P操作记为 P(S),其中S为一信号量,其执行顺序完成以下两个动作: (1)?????? S=S?1,表示申请使用一个资源; (2)??????若S?0,表示系统中有资源可用,现进程可继续执行。 (3)??????若S?0,表示系统中没有可用资源,则置该进程阻塞状 态,到S信号量 的队列中去等待,直到其他进程在S上执 行V操作释放它为止。 在信号量数据结构之上定义了两个原语,他们是P原语和V原语。 V操作记为 V(S),其中S为一信号量,其执行顺序完成以下两个动作: (1)?????? S=S+1,表示释放一个资源; (2)??????若S?0,表示系统中没有等待该资源的进程,现进程 可继续执行。 (3) 若S?0,表示系统中有等待该资源的进程,则唤醒S信 号量队列中的第一个进程,使其插入到就绪队列,继 续执行现进程。 V原语操作过程: 同步条件 ? ? ? ? ? ? 进程A 进程B S=0 C: P(S) V(S) 同步点 (1)实现进程同步 3、P-V操作的应用 查询进程S 把查询结果写到缓冲区 V(S1) P(S2 ) 打印进程P P(S1) 把缓冲区内容打印输出 V(S2) S1:表示缓冲区中是否已有可供打印的查询结果,初值为S1=0 S2:表示缓冲区中的查询结果是否已被打印进程取走,初值为S1= 0 ? ? ? ? ? ? ? ? ? ? ? ? 进程A的临界区 进程B的临界区 P(S) P(S) 进程A 进程B 初值S=1 V(S) V(S) (2)实现进程互斥 Y=COUNT Y=Y+1 COUNT=Y 临界区 V(S) P(S) 进程B X=COUNT X=X+1 COUNT=X 临界区 V(S) P(S) 进程A S=1 (3)实现进程同步与互斥——生产者与消费者问题 生产者与消费者问题是最著名的进程同步与互斥问题。他描述了一组生产者向一组消费者提供消息,他们共享一个有界缓冲池,生产者向其中投放消息,消费者从中取得消息。 生产者与消费者问题是许多相互合作进程的一种抽象。例如,在输入时,输入进程是生产者,计算进程是消费者。在输出时,计算进程是生产者,打印进程是消费者。 1 2 3 ……… N P1 P2 P3 Pm C1 C2 C3 Cn 有 界 缓 冲 池 … … 生产者 消费者 同步问题: 1.只要缓冲池未满,生产者便可将消息送入缓冲池,否则等待。 2.只要缓冲池未空,消费者便可从缓冲池中取走一个消息,否则等待。 互斥问题: 1.生产者与生产者之间、消费者与消费者之间互斥访问缓冲池。 2.生产者和消费者之间互斥访问缓冲池。 生产者与消费者之间的同步与互斥问题 公用信号量S:初值为1,表示没有进程进入临界区。 私用信号量S0:初值为0,表示产品数目。 私用信号量Sn:初值为n,表示缓冲区中空位置个数。 ? 为实现生产者与消费者的同步与互斥,设两个私用信号量和一个公用信号量: 同步互斥算法: 生产者进程P1 P(Sn) P(S) 缓冲区 产品 V(S0) V(S) 消费者进程C1 P(S0) P(S) 取产品 V(Sn) V(S) 公用信号量S=1,互斥信号量。 私用信号量S0=0,表示产品数目。 私用信号量Sn=n,表示缓冲区中空位置个数 采用时间片轮转法: Sn=n t=0 S0=0 S=1 同步互斥算法: 生产者进程P1 P(Sn) P(S) 缓冲区 产品 V(S0) V(S) 消费者进程C1 P(S0) P(S) 取产品 V(Sn) V(S) 公用信号量S=1,互斥信号量。 私用信号量S0=0,表示产品数目。 私用信号量Sn=n,表示缓冲区中空位置个数 采用时间片轮转法: Sn=n-1 t=1 S0=0

文档评论(0)

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

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

1亿VIP精品文档

相关文档