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

计算机操作系统(王永茂)第2章进程管理-3.pptVIP

计算机操作系统(王永茂)第2章进程管理-3.ppt

  1. 1、本文档共77页,可阅读全部内容。
  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文档。上传文档
查看更多
【问题1】 要求写一个函数或方法,能显示出一个int类型数组的元素个数及元素的内容. 【问题1】 要求写一个函数或方法,能显示出一个int类型数组的元素个数及元素的内容. 这样传递给函数showArray()时,就只是一个参数。 但这个方案比第一个方案多增加了一结构体的概念,而且结构体中的数组int?a[10],它的元素个数也是固定的,p.Len的值只能是10,当 p.Len为其他的值时就会出错。 【问题1】 要求写一个函数或方法,能显示出一个int类型数组的元素个数及元素的内容. 通过动态分配的方法,实现了数组元素个数的任意分配,并且其数组个数的属性Len如实地表达出了数组的个数,而不需要我们操心. 该解决方法要比前两个解决方法都要进步,但是做的工作也多了一点,这里就涉及到了一个动态分配的概念,而且一定要使用delete这个函数来释放掉动态分配的内存,否则会造成内存泄露, 显然,多增加了一些代码编写的风险. 此问题如何方便有效地得到解决的? 其解决问题的思路,与这个方法是一样的,就是使数组被封装进一个类中,使之成为一个对象来考虑. 一个类就是一个扩展的struct。除了定义数据成员,你还可以为其添加成员函数。 【问题1】 要求写一个函数或方法,能显示出一个int类型数组的元素个数及元素的内容. 同步操作分散:信号量机制中,同步操作分散在各个进程中,使用不当就可能导致各进程死锁(如P、V操作的次序错误、重复或遗漏) 易读性差:要了解对于一组共享变量及信号量的操作是否正确,必须通读整个系统或者并发程序 用户负担:由用户自己编写控制代码,加重用户负担 管程的引入 1973年,Hoare和Hanson所提出;其基本思想是把信号量及其操作原语封装在一个对象内部 即:将共享变量以及对共享变量能够进行的所有操作集中在一个模块中 管程的定义:管程是关于共享资源的数据结构及一组针对该资源的操作过程所构成的软件模块。 管程的组成 管程示意图 条件变量的引入 管程执行过程 条件变量 条件变量 生产者/消费者问题(管程) 生产者/消费者问题(管程) 生产者/消费者问题(管程) 生产者/消费者问题(管程) 资源竞争导致僵持的解决方法:   (1) 至多只允许有四位哲学家同时去拿左边的筷子,最终能保证至少有一位哲学家能够进餐,并在用毕时能释放出他用过的两只筷子,从而使更多的哲学家能够进餐。   (2) 仅当哲学家的左、右两只筷子均可用时,才允许他拿起筷子进餐。   (3) 规定奇数号哲学家先拿他左边的筷子,然后再去拿右边的筷子,而偶数号哲学家则相反。按此规定,将是1、2号哲学家竞争1号筷子;3、4号哲学家竞争3号筷子。即五位哲学家都先竞争奇数号筷子,获得后,再去竞争偶数号筷子,最后总会有一位哲学家能获得两只筷子而进餐。 【解决方法1】 调用一个显示数组元素个数和元素内容的函数时,将数组与说明此数组元素个数一并作为参数传递过去。 #include iostream.h void showArray(int Array[],int Len) { int i; for(i=0;iLen;i++) /*显示数组元素的内容*/ coutArray[i] ; } void main() { int Array[10]; /*这就是要显示的数组, 设置了10个元素*/ int Len=10; /*用一个int类型变量记录此数组的元素个数*/ int i; cout请输入10个整数:; for (i=0;iLen;i++) /*初始化数组*/ cinArray[i]; showArray(Array,Len); /*调用显示数组元素个数及内容的函数*/ } 【解决方法2】 将数组和描述它元素个数的数值通过结构体放在了一起. struct intArray /*定义一个intArray结构体*/ { int Len; /*这是本结构体表示的数组的元素个数*/ int a[10]; }; #include iostream.h struct intArray

文档评论(0)

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

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档