- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
哲學家晚餐問題-系統程式
同步的經典問題 牽涉到了大型並行控制的領域。 經常拿來測試新的同步機制的正確性。 這些問題的解法當中都使用了號誌作為同步的工具。 以臨界區域實作 : 生產者-消費者 有限緩衝區問題 用號誌來實作可簡單解決許多問題。 假設緩衝區中有 n 個欄位,每個欄位可以存放一個項目。 使用 mutex 號誌確保存取緩衝區時的互斥條件成立,並初始化為 1。 empty 和 full 兩個號誌則分別用來計算緩衝區中空的與使用過的欄位數目。 empty 號誌初始化為 n。 full 號誌初始化為 0。 有限緩衝區問題 (續) 生產者和消耗者的程式碼如下: 讀取者與寫入者問題 一個系統中經常會有數個行程共同分享同一份資料物件 只讀取這份分享資料的行程稱為讀取者。 只更新分享資料的行程稱為寫入者。 如果一個讀取者和一個寫入者同時存取所共享的資料,可能會發生錯誤。 這種同步的問題稱為讀取者與寫入者問題。 以整數 readcount 記錄正在讀取資料的讀取者數目,初始值為 0。 利用初始化為 1 的 mutex 和 wrt 兩個號誌形成兩種臨界區。 以號誌解決讀取者與寫入者問題 讀取者和寫入者問題的解法如下: 哲學家晚餐問題 (1) 哲學家們圍坐在一張圓桌一起共進晚餐。 桌上筷子數目與哲學家相等,每兩個哲學家之間共用一支筷子。 哲學家們會坐在餐桌上思考哲學問題。 當哲學家們想吃東西時會拿起左右各一支筷子進餐,拿齊兩支筷子的哲學家們可同時進餐,但不能搶奪別人手上的筷子。 當食物吃完後,哲學家會將兩支筷子都放下,並繼續思考哲學問題,其他哲學家可繼續用放下的筷子。 哲學家晚餐問題示意圖 以號誌解決哲學家晚餐問題 第 i 位哲學家的程式可寫成: 哲學家晚餐問題 上述作法可能會導致死結的發生。 假如每位哲學家都拿起了一支筷子而等待另一支筷子,則不會有任何一位哲學家可以拿到兩支筷子,所有的哲學家將會進入死結狀態。 下列作法可以避免哲學家晚餐問題發生死結: 在圓桌上放置 n+1 支筷子或限制最多只有 n-1 位哲學家可以同時進餐。 規定哲學家們必須要同時拿起左右兩支筷子。 規定奇數座位的哲學家要先拿起左方的筷子再拿起右方的筷子;而偶數座位的哲學家則先拿起右方的筷子再拿起左方的筷子。 以監督程式實作 – 哲學家晚餐問題 臨界區域 (Critical Region) 一種同步的方法 ** * 作者 : 陳鍾誠 單位 : 金門技術學院資管系 Email: ccc@.tw URL : .tw Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd. region buffer when (count n) { pool[in] = nextp; in = (in + 1) % n; count ++; } region buffer when (count 0) { nextc = pool[out]; out = (out + 1) % n; count --; } Producer Consumer Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd. Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty Ltd. do { … 產生一個新的項目放在 nextp … wait(empty); wait(mutex); … 將 nextp 加入到緩衝區中 … signal(mutex); signal(full); } while(1); do { wait(full); wait(mutex); … 將一個項目由緩衝區中 移到 nextc … signal(mutex); signal(empty); … 消耗放在 nextc 中的項目 … } while(1); 生 產 者 消 耗 者 Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile . Copyright 2004-2011 Aspose Pty
您可能关注的文档
- 医院感染隔离技术医院感染管理科.ppt
- 医学生物化学实验指导-上海交通大学医学院精品课程.doc
- 十二年國民基本教育課程發展指引.doc
- 医院信息系统-中国中医科学院中医药信息研究所.ppt
- 华师《通信原理概论》第二章通信信道课堂笔记-奥鹏教育.doc
- 南京大学科研成果简介.doc.doc
- 华彩天津.ppt
- 单元格引用-华南农业大学图书馆.ppt
- 南京航空航天大学研究生学位论文撰写要求-南京航空航天大学研究生院.doc
- 南北朝的对峙概述-Huawei.doc
- 2025年河南推拿职业学院单招语文2019-2024历年真题考点试卷含答案解析.docx
- 2025年河南推拿职业学院单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析.docx
- 金属家具舒适度与材料科学研究创新创业项目商业计划书.pdf
- 2024重庆伟航建设工程有限公司公开招聘1人笔试参考题库附带答案详解.pdf
- 2025年河南对外经济贸易职业学院单招英语2014-2024历年真题考点试卷摘选含答案解析.docx
- 人工挖孔桩工程劳务承包合同8篇.docx
- 2025年河南护理职业学院单招(数学)历年真题考点含答案解析.docx
- 2024重庆嘉寓房屋租赁有限责任公司员工招聘13人笔试参考题库附带答案详解.pdf
- 出租车转让协议9篇.docx
- 工程机械(设备)维修保养合同协议10篇.docx
文档评论(0)