第三章作业2.docVIP

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章作业2.doc

10.是说明同步和互斥这两个概念有什么区别? 进程同步: 进程同步也是进程之间直接的制约关系,是为完成某种任务而建立的两个或多个线程,在运行过程中, 某进程可能要在某些同步点上等待另一伙伴(协作进程)为它提供消息, 在未获得消息之前, 该进程处于等待状态, 获得消息后被唤醒进入就绪态, 此后, 才能继续运行。这种关系可用“进程-进程”来描述。 进程互斥进程互斥是进程之间的间接制约关系。当一个进程进入临界区使用临界资源时,另一个进程必须等待。只有当使用临界资源的进程退出临界区后,这个进程才会解除阻塞状态。“进程-资源-进程”来描述。 11.什么是临界资源和临界区?对临界区管理的基本要求是什么? 临界资源(互斥资源): 系统中一次只允许一个进程访问的资源。这些资源既包括I/O设备, 如打印机等资源, 也包括软件资源, 如共享变量、共享文件等。 临界区(互斥区): 并发执行的进程中, 访问临界资源的必须互斥执行的程序段叫临界区。 对临界区管理的基本要求: 当有若干进程要求进入它们的临界区时,应在有限时间内使一进程临界区。 B.每次最多有一个进程处于临界区内。 C.进程在临界区内逗留应在有限时间范围内。 13.试给出P、V操作的定义。如何用P、V操作实现进程间的互斥,并说明信号量的物理意义? P操作原语的定义: P(S):顺序执行下述两个动作: 信号量的值减1,即S=S-1; 如果S≥ 0,则该进程继续执行; 如果S0,则把该进程的状态设置为阻塞态,把它相应的PCB放入相应队列中,并放弃处理机,进行等待(直至其它进程在S上执行V操作,把它释放出来为止) Procedure P(Var S:Semaphore) begin S:=S-1; if S0 then W(S) end; V操作原语的定义: V(S)顺序执行下述两个动作: S值加1,即S=S+1 如果S0,则该进程继续运行; 如果S≤ 0,则唤醒等待信号量S阻塞队列中的头一个进程(把阻塞态改为就绪态),执行V操作的进程继续运行。 Procedure S(Var S:Semaphore) begin S:=S+1; if S=0 then R(S) end; 用P、V操作实现进程间的互斥 设S为两进程互斥的公用信号量,初值为1,表明该临界资源未被占用。只需要把临界区的程序设置于P(S)和 V(S)之间,即可实现两进程的互斥。 进程P1 进程P2 P(S) P(S) S1 S2 V(S) V(S) 其中的S1、S2是两互斥的程序段,即P1、P2的临界区 信号量的物理意义 在操作系统中,信号量是表示资源的实体,是一个与队列有关的整型变量,其值仅能由P、V操作来改变。 14.如何用P、V操作实现进程间的同步?在同步和互斥中,信号量初值的设置有何不同? 用P、V操作实现进程间的同步 信号量初值为0,两个进程之间的同步模型如下: 进程P1 进程P2 L1:P(S) L2:V(S) 在这种同步操作中,进程p1受到进程P2的制约,而进程P2却不受进程P1的制约,所以是非对称的。 在同步中,信号量初值的设置为0;在互斥中,信号量的初值设置为1。 15.试分析生产者—消费者问题的同步过程,并写出相应程序? 设三个信号量: 1、信号量S,初值为1,表示没有产品进入临界区,用于互斥; 2、信号量n1,表示可用缓冲区个数,初值为k 3、信号量n2,表示产品个数,初值为0 生产者—消费者进程描述如下: 问题分析: 当生产者生产出一个产品,对信号量n1进行p操作,n1减1,表示申请占用一个缓冲区。只有n1大于等于0则继续执行,当n1小于0是进程阻塞。若n1大于等于0,再对S进行p操作,此时S=0,该进程继续执行,产品放入缓冲区,再对S进行v操作,此时S=1,继续执行,对产品个数n2进行v操作,即产品个数加1. 当有消费者消费产品时,对产品个数n2进行p操作,即产品个数减1,只有n2大于等于0则继续执行,当n2小于0是进程阻塞。若n,2大于等于0,继续对S进行p操作,此时S=0,产品从缓冲区取出,再对S进行v操作,S=1,继续执行,对缓冲区个数进行v操作,即缓冲区个数加1. 相应程序: begin B: array[0..n-1]of integer; P,R: integer; S,Sn,So: semaphore; p:=R:=0 S:=1; Sn:=n; So:=0; cobegin process pr

文档评论(0)

wwvfz702 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档