- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课设说明书(操作系统)理发师问题
目 录
前 言 2
摘 要 3
正 文 4
1. 设计思想 4
2. 算法中用到的主要数据结构(采用类c语言定义) 6
3. 相关的各模块的伪码算法 7
4. 调试分析 9
5. 测试结果 10
6. 源程序(带注释) 13
总 结 18
参考文献 19
致 谢 20
附件Ⅰ 部分源程序代码 21
前 言
在早期的操作系统中一次只允许执行一个程序。这中执行方式使得程序在执行期间对系统有完全的控制权,每个程序能访问的系统中的所有资源。随着批处理系统和分时系统的出现,程序在系统中的运行不再是独立的,作为资源分配和独立运行的基本单位是进程,而且操作系统所具有的基本特征也是基于进程而形成的,姑应从进程的观点来研究操作系统。随着操作系统的进一步发展,许多现代的操作系统为了提高并发力度和降低并发开销,又引进了线程的概念。
进程之间存在相互制约的情况,通常称它为进程的互斥和同步。一次只能允许一个进程访问的共享资源称为临界资源,而每个进程访问临界资源的那段程序称为临界区。操作系统中实现进程互斥和同步的机制都称为同步机制,如 “锁”和“信号量”机制,通常采用某个标志实体来实现同步,一个控制这些同步机构的程序被称为同步原语。对信号量的操作,采用了一对严格设计的程序原语,称为PV原语,或者PV操作。理发师问题的实现就是一个利用信号量进行PV操作的多线程同步经典问题。设计程序实现此问题,要使得理发师的活动与顾客的活动得到各自真实的模拟。所执行的程序应体现:理发师在没有顾客的时候去睡觉,有顾客则工作;顾客在理发师工作时坐下等待,无座时离开,直至等到理发师为自己理发。摘 要
理发师问题是一个利用信号量进行PV操作的多线程同步经典问题。设计程序实现此问题,要使得理发师的活动与顾客的活动得到各自真实的模拟。所执行的程序应体现:理发师在没有顾客的时候去睡觉,有顾客则工作;顾客在理发师工作时坐下等待,无座时离开,直至等到理发师为自己理发。
关键词: 理发师;PV操作;顾客;多线程
正 文
设计思想
理发师问题是一种同步问题的抽象描述,该问题主要的活动单元是理发师和顾客到来这两个。其中,理发师有活动有理发和睡觉两个事件;顾客有到来,等待和离去三个事件。店里有固定的椅子数,上面坐着等待的顾客,顾客在到来这个事件时,需判断有没有空闲的椅子,理发师决定要理发或睡觉时,也要判断椅子上有没有顾客。所以,顾客和理发师之间的关系表现为:?
顾客—理发师之间的同步关系表现为:若无顾客,理发师便在理发椅上睡眠,等待。顾客到来时,先看等候的顾客数是否少于顾客椅子数,不是则离开,否则就留下来,声称要理发,并且等理发师醒来或闲下来,再理发。
顾客—理发师之间还有互斥关系:由于等候的顾客数变量是临界资源,所以顾客进屋等待理发时对该变量进行的加1操作,以及理发师起身准备给顾客理发时对该变量进行的减1操作必须互斥。
因此,引入3个信号量和一个控制变量:
(1) 控制变量count用来记录在椅子上等候理发的顾客数,由理发师线程和顾客线程共同访问,初值为0;
(2) 信号量customers用来记录等候理发的顾客数,并用作阻塞理发师线程,初值为0;
(3) 信号量barbers用来记录正在等候顾客的理发师数,并用作阻塞顾客线程,初值为1;
(4) 信号量mutex用于互斥对临界变量count的访问,初值为1.
PV操作代码int waiting=0 ; //等候理发的顾客数 int chairs=n; //为顾客准备的椅子数 semaphore customers=0, barbers=0,mutex=1; barber() { while(TRUE); //理完一人,还有顾客吗? P(cutomers); //若无顾客,理发师睡眠 P(mutex); //进程互斥 waiting := waiting – 1; //等候顾客数少一个 V(barbers); //理发师去为一个顾客理发 V(mutex); //开放临界区 cut-hair( ); //正在理发}
customer() { P(mutex); //进程互斥 if (waiting) { waiting := waiting+1; // 等候顾客数加1 V(customers); //必要的话唤醒理发师 V(mutex); //开放临界区 P(barbers); //无理发师, 顾客坐着养神 get-haircut( ); //一个顾客坐下等理/ } else V(mutex); //人满了,}
算法用到的主要数据结构(采用类c语言定义)
题目中要求描述理发师和顾客的行为,因此需要两类进程Barber ()和Customer()分别描述理发师和顾客的行为。当理
您可能关注的文档
- 老年人常见健康问题与护理刘秋芬 ppt课件.ppt
- 考研教育学强化班教育研究方法讲义-何鸿(最新整理By阿拉蕾).doc
- 美容营养学(上)重要_图文.ppt.ppt
- 罗氏制药医药经理销售培训_1527664947.ppt
- 考研英语作文必背句型 考研英语写作实用短语和句子[资料].doc
- 联合会换届大会和新年酒会策划方案.doc
- 耐克公司财务报表分析毕业论文(荐).doc
- 聚氨酯护套电缆挤出工艺探讨.doc
- 肉鸭-沼气-水产养殖-有机蔬菜产业链综合农业循环示范园可行性研究报告(可编辑).doc
- 聚焦主责深化三转扎实推进党风廉政建设-中国电子报.doc
- 基于人工智能教育平台的移动应用开发,探讨跨平台兼容性影响因素及优化策略教学研究课题报告.docx
- 高中生物实验:城市热岛效应对城市生态系统服务功能的影响机制教学研究课题报告.docx
- 信息技术行业信息安全法律法规研究及政策建议教学研究课题报告.docx
- 人工智能视角下区域教育评价改革:利益相关者互动与政策支持研究教学研究课题报告.docx
- 6 《垃圾填埋场渗滤液处理与土地资源化利用研究》教学研究课题报告.docx
- 小学音乐与美术教师跨学科协作模式构建:人工智能技术助力教学创新教学研究课题报告.docx
- 《航空航天3D打印技术对航空器装配工艺的创新与效率提升》教学研究课题报告.docx
- 教育扶贫精准化策略研究:人工智能技术在区域教育中的应用与创新教学研究课题报告.docx
- 《区块链技术在电子政务电子档案管理中的数据完整性保障与优化》教学研究课题报告.docx
- 《中医护理情志疗法对癌症患者心理状态和生活质量提升的长期追踪研究》教学研究课题报告.docx
最近下载
- 工程项目成本分析表(房建).xls VIP
- 道路交通标志和标线(GB5768-2009).docx VIP
- 2024年全国高级配电线路工技能考试题库及答案.docx VIP
- 颗粒级配曲线不均匀系数计算.xls VIP
- 建筑工程CAD网络课程项目申报书--.docx VIP
- 《我与地坛(节选)》同步练习 统编版高中语文必修上册.docx VIP
- 道路交通标志和标线+第1部分:总则.docx VIP
- 2025年秋季学期-2026年春季学期中小学校(幼儿园)大宗食材(肉蛋)采购及配送项目方案投标文件(技术方案).doc VIP
- 耐高压PICC置管课件.ppt VIP
- 功能性子宫出血病历模板.pdf VIP
文档评论(0)