操作系统课程设计——哲学家进餐问题

上传人:ra****d 文档编号:102680332 上传时间:2022-06-07 格式:DOC 页数:34 大小:558KB
收藏 版权申诉 举报 下载
操作系统课程设计——哲学家进餐问题_第1页
第1页 / 共34页
操作系统课程设计——哲学家进餐问题_第2页
第2页 / 共34页
操作系统课程设计——哲学家进餐问题_第3页
第3页 / 共34页
资源描述:

《操作系统课程设计——哲学家进餐问题》由会员分享,可在线阅读,更多相关《操作系统课程设计——哲学家进餐问题(34页珍藏版)》请在装配图网上搜索。

1、目录1设计题目与要求1实验目的与设计要求11.2 初始条件12 总体设计思想及相关知识2总体设计思想22.2 临界区互斥编程原理3开发环境与工具33数据结构与模块说明43.1 数据结构4程序各模块流程图53.2.1 主程序模块53.2.2 状态改变模块63.2.3 返回哲学家状态模块73.2.4 返回餐具状态模块84. 源程序代码95. 测试及结果146. 课设总结16参考文献171设计题目与要求实验目的与设计要求实验目的:通过实现哲学家进餐问题的同步深入了解和掌握进程同步和互斥的原理。设计要求:哲学家有N个,也定全体到齐后开始讨论:在讨论的间隙哲学家进餐,每人进餐时都需使用刀、叉各一把,所有

2、哲学家刀和叉都拿到后才能进餐。哲学家的人数、餐桌上的布置自行设定,实现刀和叉的互斥使用算法的程序实现。1.2 初始条件(1)操作系统:windows(2)程序设计语言:C+(3)设定圆桌上有六个哲学家,三对刀叉,如下图摆放:图1-1 哲学家进餐问题设定图2 总体设计思想及相关知识总体设计思想哲学家的生活就是思考和吃饭,即思考,饿了就餐,再思考,循环往复。要求是:每一个哲学家只有在拿到位于他左右的刀叉后,才能够就餐;哲学家只能先拿一把刀或叉,再去拿另一把刀或叉,而不能同时去抓他旁边的两把餐具,也不能从其他哲学家手中抢夺餐具;哲学家每次就餐后必须放下他手中的两把餐具后恢复思考,不能强抓住餐具不放。

3、设计一个程序,能够显示当前各哲学家的状态和桌上餐具的使用情况,并能无死锁的推算出下一状态各哲学家的状态和桌上餐具的使用情况。即设计一个能安排哲学家正常生活的程序。为哲学家设计3种状态,即“等待”“进餐”“思考”。每个哲学家重复进行“等待”-“进餐”-“思考”的行动循环。其中:“等待”-“进餐”:只有一个哲学家处于等待进餐状态,且左右手两边的餐具都处于“空闲”状态时,可以发生这种状态改变。此状态改变发生后,哲学家拿起左右手两边的餐具。“进餐”-“思考”:此状态改变发生后,哲学家放下左右手上的餐具。餐具状态由“使用中”转变为“空闲”。“思考”-“等待”:哲学家思考结束后,无条件转入等待状态。由上所

4、述,程序中应设置6个元素的信号量数组,tools6,用来保持哲学家之间的同步。2.2 临界区互斥编程原理不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。每个进程中访问临界资源的那段代码称为临界区(Critical Section)。 每个进程中访问临界资源的那段程序称为临界区(Critical Section)(临界资源是一次仅允许一个进程使用的共享资源)。每次只准许一个进程进入临界区,进入后不允许其他进程进入。不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。本程序主要使用了EnterCriticalSection (&cs)和LeaveCritic

5、alSection (&cs)两个函数实现临界区互斥。EnterCriticalSection (&cs)用来进入临界区,LeaveCriticalSection (&cs)用来离开临界区。系统平台:WINDOW环境实现语言:C+开发工具:3数据结构与模块说明3.1 数据结构Philosopher-number:int-status:int+Philosopher(in num:int)+find() const:int+getinfo() const:int+Change():void图3-1 哲学家类的UML图程序中定义一个哲学家类,包含两个私有对象和四个公有对象。Number对象:报讯哲

6、学家的编号。Status对象:用于保存当前该哲学家的状态,0表示正在等待(即处于饥饿状态)1表示得到餐具正在吃饭,2表示正在思考Philosopher(int num)方法:哲学家类构造函数,参数num表示哲学家编号find() const方法:返回该哲学家编号getinfo() const方法:返回哲学家当前状态Change()方法:根据题目要求改变哲学家的状态(等待-进餐-思考-等待)另外,程序中包含一个公有对象,bool类型数组tools6,用来保存6把餐当前状态:true表示该餐具当前空闲,false表示该餐具当前正被使用。程序中还包含两个公有函数:print和toolstatus。P

7、rint用来返回一个哲学家的状态,toolstatus用来返回一个餐具的状态。各模块流程图 主程序模块图3-2 主程序模块流程图 状态改变模块图3-3 状态改变模块Change()流程图 返回哲学家状态模块图3-4 返回哲学家状态模块print()流程图3.2.4 返回餐具状态模块图3-5 返回餐具状态模块toolstatus(bool a)流程图4. 源程序代码/实验目的:通过实现哲学家进餐问题的同步深入了解和掌握进程同步和互斥的原理。/设计要求:哲学家有N个,也定全体到达后开始讨论:在讨论的间隙哲学家进餐,/每人进餐时都需使用刀、叉各一把,所有哲学家刀和叉都拿到后才能进餐。哲学家的人数、/

8、餐桌上的布置自行设定,实现刀和叉的互斥使用算法的程序实现。#include #include #include #include #include using namespace std; bool tools6;/全局变量,用餐工具CRITICAL_SECTION cs; /信号量, 在线程中使用,临界区class Philosopher private: int number;int status; /*标记当前哲学家的状态,0表示正在等待(即处于饥饿状态),1表示得到两支筷子正在吃饭,2表示正在思考*/public:Philosopher(int num=0): status(2), n

9、umber(num) int find() const return number; int getinfo() const return status; void Change() ; /状态改变函数; void Philosopher:Change() EnterCriticalSection (&cs) ; /进入临界区if(status=1)/正在进餐toolsnumber%6=true; /放下左手工具tools(number-1)%6=true; /放下右手工具status=2;/改变状态为思考 else if(status=2)/思考中 status=0; /改变状态为等待 el

10、se if(status=0)/等待中 if(toolsnumber%6&tools(number-1)%6) /左右手两边工具均为空闲状态toolsnumber%6=false; /拿起左手工具tools(number-1)%6=false; /拿起右手工具status=1; LeaveCriticalSection (&cs) ; string print(Philosopher *pA) /pA-Change(); int i=pA-getinfo(); string str; if(i=0) str=等待; else if(i=1) str=就餐; else str=思考; retur

11、n str; string toolstatus(bool a)string state;if(a=true)state=闲;if(a=false)state=用;return state;int main() char con = y; /判断是否继续for(int i=0;i6;i+) toolsi=true; /3组刀叉都未使用,初始化Philosopher P1(1),P2(2),P3(3),P4(4),P5(5),P6(6); InitializeCriticalSection (&cs) ; /初始化初始化临界区cout-状态说明示意图:-endl;cout哲学家0号的状态endl

12、;cout哲学家5号的状态叉3的状态刀1的状态哲学家1号的状态endl;cout 刀3的状态 叉1的状态endl;cout哲学家4号的状态叉2的状态刀2的状态哲学家2号的状态endl;cout哲学家3号的状态endl;cout餐具的状态,“用”表示使用中,“闲”表示空闲中。endl;cout-endl;cout哲学家们开始生活:endl;coutendl;coutendl;while(con=y) P1.Change();P2.Change();P3.Change();P4.Change();P5.Change();P6.Change();cout当前状态为:endl;coutP1.find(

13、)print(&P1)endl;coutP6.find()print(&P6)toolstatus(tools0)toolstatus(tools1)P2.find()print(&P2)endl;cout toolstatus(tools5) toolstatus(tools2)endl;coutP5.find()print(&P5)toolstatus(tools4)toolstatus(tools3)P3.find()print(&P3)endl;coutP4.find()print(&P4)endl;cout-endl;coutcon;Sleep(20); DeleteCritical

14、Section (&cs) ; /退出资源区return 0; 5. 测试及结果图5-1 程序运行开始界面图5-2 哲学家状态1图5-3 哲学家状态2图5-4 哲学家状态3图5-5 哲学家状态4图5-6 退出程序6. 课设总结经过了前后共2周的时间,我完成了这次课程设计。通过这次课程设计,我学到了许多课本上学不到的知识,注意到了许多课本上没有提到的东西。而且,通过这次设计,我得到了一个很好的理论联系实际的机会,锻炼了通过理论解决实际问题的能力。正所谓“实践出真知”,有些代码看上去没什么问题,但是实际运行起来就是不出正确结果。代码内部可能存在逻辑或语法等方面我们平时不会注意到的小问题,通过这次课

15、程设计,我积累了不少这样小问题的解决方法。设计中总会遇到这样那样的问题,遇到问题势必要自己分析问题,通过各种渠道解决问题,比如利用互联网。这次课程设计也加强了我上网查数检索问题的能力。有些时候,学习到的知识是次要的,重要的是学习知识的方法。参考文献1宗大华,宗涛,陈吉人著. 操作系统. 北京:人民邮电出版社,20092李爱华,程磊著. 面相对象程序设计(C+语言). 北京: 清华大学出版社,2010文案 编辑词条B 添加义项 ?文案,原指放书的桌子,后来指在桌子上写字的人。现在指的是公司或企业中从事文字工作的职位,就是以文字来表现已经制定的创意策略。文案它不同于设计师用画面或其他手段的表现手法

16、,它是一个与广告创意先后相继的表现的过程、发展的过程、深化的过程, 多存在于广告公司,企业宣传,新闻策划等。基本信息中文名称文案 外文名称Copy目录1发展历程2主要工作3分类构成4基本要求5工作范围6文案写法7实际应用折叠编辑本段发展历程汉字文案(wn n)是指古代官衙中掌管档案、负责起草文书的幕友,亦指官署中的公文、书信等;在现代,文案的称呼主要用在商业领域,其意义与中国古代所说的文案是有区别的。在中国古代,文案亦作 文按 。公文案卷。北堂书钞卷六八引汉杂事:先是公府掾多不视事,但以文案为务。晋书桓温传:机务不可停废,常行文按宜为限日。 唐戴叔伦答崔载华诗:文案日成堆,愁眉拽不开。资治通鉴

17、晋孝武帝太元十四年:诸曹皆得良吏以掌文按。花月痕第五一回: 荷生 觉得自己是替他掌文案。旧时衙门里草拟文牍、掌管档案的幕僚,其地位比一般属吏高。老残游记第四回:像你老这样抚台央出文案老爷来请进去谈谈,这面子有多大!夏衍秋瑾传序幕:将这 阮财富 带回衙门去,要文案给他补一份状子。文案音译文案英文:copywriter、copy、copywriting文案拼音:wn n现代文案的概念:文案来源于广告行业,是广告文案的简称,由copy writer翻译而来。多指以语辞进行广告信息内容表现的形式,有广义和狭义之分,广义的广告文案包括标题、正文、口号的撰写和对广告形象的选择搭配;狭义的广告文案包括标题、

18、正文、口号的撰写。在中国,由于各个行业发展都相对不够成熟,人员素质也参差不齐,这使得文案的概念常常被错误引用和理解。最典型的就是把文案等同于策划,其实这是两种差别很大,有着本质区别的工作。只是由于文案人员常常需要和策划人员、设计人员配合工作,且策划人员也需要撰写一些方案,这使得很多人误认为文案和策划就是一回事,甚至常常把策划与文案的工作会混淆在一起(这也和发源于中国的策划学发展不够成熟有关)。广告文案广告文案很多企业中,都有了的专职的文案人员,只有当需要搞一些大型推广活动、做商业策划案、写可行性分析报告等需求量大的项目时,才需要对外寻求合作。以往一般企业都会找广告、文化传媒等公司合作。这些公司

19、一般都有专业的文案、设计团队,经验也相对丰富,但因为业务量大,范围广泛,在针对性方面会较为薄 弱。随着社会经济不断发展,对专业文案的要求更加严格,逐渐衍生了一些专注于文字服务的文案策划公司。这类企业发展速度很快,大多数都是从工作室形式转型而来,也有从文化传播机构独立出来的。随着中国广告业二十余年的迅猛发展,广告公司的经营范围,操作流程,工作方式都在变化,文案的角色由无闻转为配角,现正昂首阔步走向台面,成为主角,从前一则广告多是由设计出计划,再配图之后,文案轮为完稿,一则广告的计划多是由文案与美工共同完成,然后各自分工。说起文案的地位,日本是从1992年意识到文案的重要性,台湾是1998年。20

20、02年,大陆的一些中大型广告公司的老总几乎都在垂叹,好的文案太少了。好的文案往往愿意扎堆,从全国形式来看,这股潜规则正逐渐由华南广告重镇广州向华东中心上海转移。折叠编辑本段主要工作撰写报纸广告、杂志广告、海报; 撰写企业样本、品牌样本、产品目录; 撰写日常宣传文案白领一族文案白领一族单页、各类宣传小册子; 撰写DM直邮广告,包括信封、邮件正文; 撰写电视广告脚本,包括分镜头、旁白、字幕; 撰写电视专题片脚本; 撰写电视广告的拍摄清单; 撰写广播广告; 将海外版广告文案作 汉化(翻译); 撰写广告歌词,或汉化(翻译)外文歌词; 撰写各种形式的网络广告; 为网站栏目命名; 撰写网站内部文案; 撰写

21、 短信广告; 撰写各类广告作品的创意阐述; 撰写广告口号; 撰写产品包装文案,包括:品牌名、使用说明、产品成分等; 为产品或品牌命名,并作创意阐述; 为路演或活动命名,并作创意阐述; 撰写活动请柬及活动现场宣传品上的文字; 为各种礼品命名,并作创意阐述; 为专卖店命名,并作创意阐述; 撰写商店的橱窗或店内POP物料文案; 撰写软文、新闻式、故事式、评论式; 撰写策划书,或协助策划人员优化、润色方案文字; 协助客户企业内刊的编辑,提供主题方向,审核文字。 不同的环境对文案撰稿人有着不同的锤炼和要求。折叠编辑本段分类构成从现有的文案分类有很多种,按照4A标准,一般有四类:助理文案(ACW), 文案

22、(CW策划文案策划文案),高级文案(ACW),资深文案(SCW),其中稍微要区别的是高级文案与资深文案,前者要求的是文案的撰写能力,而后者不仅仅是文案的撰写能力还包括做文案的年资。有些4A公司设有文案主任(CE)一职,大体上与文案职责类似,有时候负责专项。另外有些个别公司还配有首席文案的职位(CCW),文案功力凤毛麟角,虽不具领导才能,但有的首席文案拿的工资却比创意总监还要高。大部分国内广告公司文案的种类繁杂,有房地产文案、创意文案、企划文案、品牌文案等。文案是由标题、副标题、广告正文、广告口号组成的。它是广告内容的文字化表现。在广告设计中,文案与图案图形同等重要,图形具有前期的冲击力,广告文

23、案具有较深的影响力。广告标题:它是广告文案的主题,往往也是广告内容的诉求重点。它的作用在于吸引人们对广告的注目,留下印象,引起人们对广告的兴趣。只有当受众对标语产生兴趣时, 才会阅读正文。广告标语的设计形式有:情报式,问答式、祈使式、新闻式、口号式、暗示式、提醒式等。广告标语撰写时要语言简明扼要,易懂易记,传递清楚,新颖个性,句 子中的文字数量一般掌握在12个字以内为宜。广告副标题:它是广告方案的补充部分,有一个点睛的作用。主要表现在对标题的补充及让人感觉,前面的不懂,在这里全部让人了解。广告正文:广告正文是对产品及服务,以客观的事实、具体的说明,来增加消费者的了解与认识,以理服人。广告正文撰

24、写使内容要实事求是,通俗易懂。不论采用何种 题材式样,都要抓住主要的信息来叙述,言简易明。广告口号:口号是战略性的语言,目的是经过反复和相同的表现,以便名域其他企业精神的不同,使消费者掌握商品或服务的个性。这以成为推广商品不可或缺的要素。广告 口号常有的形式:联想式、比喻式、许诺式、推理式、赞扬式、命令式。广告口号的撰写要注意简洁明了、语言明确、独创有趣、便于记忆、易读上口。所谓广告文案是以语辞进行广告信息内容表现的形式。广告文案有广义和狭义之分,广义的广告文案就是指通过广告语言、形象和其他因素,对既定的广告主题、广告创意所 进行的具体表现。狭义的广告文案则指表现广告信息的言语与文字构成。广义

25、的广告文案包括标题、正文、口号的撰写和对广告形象的选择搭配;狭义的广告文案包括标题、正文 、口号的撰写。折叠编辑本段基本要求1)准确规范、点明主题准确规范是文案中最基本的要求。要实现对广告主题和广告创意的有效表现和对广告信息的广告文案广告文案有效传播,首先要求广告文案中语言表达规范完整,避免语法错误或表达残缺。其次,广告文案中所使用的语言要准确无误,避免产生歧义或误解。第三,广告文案中的语言要符合语 言表达习惯,不可生搬硬套,自己创造众所不知的词汇。第四,广告文案中的语言要尽量通俗化、大众化,避免使用冷僻以及过于专业化的词语。2)简明精炼、言简意赅文案在文字语言的使用上,要简明扼要、精练概括。

26、首先,要以尽可能少的语言和文字表达出广告产品的精髓,实现有效的广告信息传播。其次,简明精练的广告文案有助于吸引广告受众的注意力和迅速记忆下广告内容。第三, 要尽量使用简短的句子,以防止受众因繁长语句所带来的反感。3)生动形象、表明创意文案中的生动形象能够吸引受众的注意,激发他们的兴趣。国外研究资料表明:文字、图像能引起人们注意的百分比分别文字是35%, 图像是65%,文案创作时采用生动活泼、新颖独特的语言的同时,附助以一定的图像来配合。4)优美流畅、上口易记文案是广告的整体构思,对于由其中诉之于听觉的广告语言,要注意优美、流畅和动听,使其易识别、易记忆和易传播,从而突出广告定位,很好地表现广告

27、主题和广告创意,产生良好的广告效果。同时,也要避免过分追求语言和音韵美,而忽视广告主题,生搬硬套,牵强附会,因文害意。折叠编辑本段工作范围策划文案和创意文案一)策划文案:工作主要是将策划工作人员的策划思路形成文字。毋庸置疑,公司很多策划人员均有很强的策划水平和丰富的策划经验,但有时候手上同时进行几个案子,同时时间又比较紧的情况下,文案可以在充分理解策划意图的情况下帮助策划人员完成策划方案的写作。这其中有几个内容:1.必须充分了解本案的运作背景,包括宏观市场信息和微观市场动态。2.掌握整个策划的战略指导思想。3.以通俗易懂、言简意赅的论述方式将策划思想反映在字里行间。4.到比较专业的问题或障碍的

28、时候,应及时与策划人员沟通,保证策划方向的一致性。5.贯彻战略方针的同时,也可就战略思想的表达方式和文字提述上提出一些合理化建议,从而更好地展现策划的战略核心点。二)创意文案:主要是将广告作品的表现及形式用完整的文字表达出来,其中,除了产生画面的构想之外,还包括广告语言的表现内容(如平面的标题、引文、正文、随文,广告语等,影视的音效、旁白、字幕、广告语等)。其中至关重要的就是新颖的创意和传神的文字表现。而这些智慧的闪光绝对不是拍一下脑门子就能出来的。这其中包括了以下内容:1.通过各个层面,特别是swot方面深入理解,从而找出项目的核心优势。2.把握目标消费群的心态。3.掌握宏观政策及大市场对项

29、目本身的影响。4.场策划人员和设计人员保持密切联系,随时沟通。5.市场上类似房产项目的文案及创意,力求全面加以突破。6.获悉开发商对文案创作的要求,调整文字内容和形式。折叠编辑本段文案写法商家要吸引、留住消费者必须注重细节的提高和改善,而其中,文案就是不可忽视的一大细节。下面是一些能吸引买家的写文案方法:折叠九宫格思考法拿一张白纸,用笔先分割成9宫格。中间那格填上你的商品名,接下来开始在其它8格填上可以帮助此商品销售的众多可能优点。这是强迫创意产生的简单练习法,我也常用这种方式构思出企划案或演讲PPT的结构。折叠要点衍伸法把该商品型录上的商品特点照抄下来,然后每个要点后面加以延伸。如果你真的很

30、懒,照抄型录商品卖点也可,但文字会比较没有人味,说服力道会稍差。折叠三段式写作法这是仿新闻学中倒三角写作法。第一段,请精要地浓缩全文的销售话术,因为多数人都没耐心看全文。第二段,请依照型录要点衍伸法,逐一说明该商品的众多特色。到底是点列还是一段长文章较好,要看你的文字功力。文字功力欠佳就点列式写出卖点即可。最后一段是钩子,主要任务是要叫人【Buy Now】,所以一般是强化商品USP(Unique Selling Point,独特销售卖点)、价格优势或赠品。折叠编辑本段实际应用市场研究没有正确的市场导向,任何文案或创意都是天马行空的奇思怪想。的确,再优美的文字用在不适宜的场合中都可能导致整个策划

31、执行的失败。一篇优秀的文案,一定是在对市场有深入的了解后方能下笔的。 例如不同地区的经济发展水平、文化构成、风土人情、产业结构比重等等皆有很大差异,同一地区不同年龄、阶层人士的世界观、思维观、道德观和价值观也参差不齐,加上特定环境、特定历史背景或政策规文赋予某些项目的特殊意义,都会对文案产生深远的影响。 所以无市场,文案便如枯井之蛙,其作品不仅缺乏远见,生命力也极为低下。沟通与互助在创作一幅作品时,常常发生这种情况:设计人员与文案人员一开始没有很好的沟通;结果是设计人员设计出来的作品文案看来好像是曲解了原意,而将文案配上去时候,设计人员又认为文案的风格与画面差入甚大。矛盾自然就出现了。 其实文案和设计,乃至市场、企划、媒体等各部门工作人员都应随时保持高效的沟通。通篇来看,文案的工作是将市场的调查分析结果作为其创作的翔实论据、企划的核心思想作为其创作的指引方向,媒体投放的渠道作为其创作的特定模式,设计排版作为其创作的具体表现。因此,每一个环节都是动态维系着的。在做一个文稿之前,与各个部门广泛沟通,并做到互爱互助,才能在一个凝聚力超强的团队中展现出自己独特的个性和才华

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!