国立中正大学资讯工程学系大三A班九十二学年度-国立中正大学资工系.PDF

国立中正大学资讯工程学系大三A班九十二学年度-国立中正大学资工系.PDF

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

學號: 姓名: 系級: 國立中正大學資訊工程學系大三 A 班 九十二學年度第一學期作業系統期中考試 答案卷 (1) A variable is shared among different processes and can be accessed simultaneously by several processes, subject to the following constraint: “The sum of all PIDs of the processes currently accessing the variable must be less than 200.” Write a monitor to coordinate access to the variable. (20%) monitor coordinate_access { enum { request, grant, release} state[n]; var pid: integer; var pid_sum : integer; var self[n] : condition; void request_var(int i) { state[i] = request; test(i); if(state[i] != grant) self[i].wait; } void release_var(int i) { state[i] = release; pid_sum -= self[i].pid; for(int j = 0; j n; j++) if( j != i state[j] == request) test(j); } 1 學號: 姓名: 系級: void test(int i) { if(pid_sum + self[i].pid 200) { state[i] = grant; pid_sum += self[i].pid; self[i].signal; } } void init() { pid_sum = 0; } } coordinate_access.request_var(i); ……… access ……… coordinate_access.release_var(i); (2) Three jobs 1, 2, 3 have arrival times, burst times, and priorities as follows. Smaller numbers imply higher priorities. Job

文档评论(0)

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

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

1亿VIP精品文档

相关文档