您好,欢迎访问三七文档
操作系统课程设计报告售票员与乘客(信号量操作)2015年1月院系:信息工程学院专业:嵌入式物联网班级:姓名:学号:引言........................................................................................................................11.课程设计的目的.........................................................................................................22.课程设计内容.............................................................................................................23.课程设计要求............................................................................................................24.课程设计平台............................................................................................................35.需求分析.....................................................................................................................36.功能设计(数据结构及模块说明)........................................................................37.具体流程如下图........................................................................................................48.主要函数....................................................................................................................69.运行结果:................................................................................................................610.课程设计设计体会..............................................................................................911.参考文献..............................................................................................................9附加代码......................................................................................................................10售票员与乘客(信号量操作)11引言操作系统是信息管理与信息系统专业一门重要的专业理论课程,了解和掌握操作系统的基本概念、功能和实现原理,对认识整个计算机系统的工作原理十分重要。操作系统实验是操作系统课程的一个重要组成部分,通过试验环节的锻炼使同学们不仅能够对以前的所学过的基础知识加以巩固,同时能够通过上机实验,对操作系统的抽象理论知识加以理解,最终达到融会贯通的目的,因此,实验环节是同学们理解、掌握操作系统基本理论的一个重要环节。本实验指导书,根据教材中的重点内容设定了相应的实验题目,由于实验课程的学时有限,我们规定了必做题目和选做题目,其中必做题目必须在规定的上机学时中完成,必须有相应的预习报告和实验报告。选做题目是针对有能力或感兴趣的同学利用课余时间或上机学时的剩余时间完成售票员与乘客(信号量操作)121.课程设计的目的1.1这学期我们学习了操作系统,如今世界上的电脑早已普及,而在电脑中,操作系统的地位是众多软件不能及的,也是电脑最好的帮手。它能够实现人机交换和实现人为操作等特点。它还有利于软件的维护和继承,是电脑的必备。为了进一步巩固课堂上所学到的知识,深刻把握操作系统的重要概念及其特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了操作系统程序设计课程设计。让学生自己动手动脑,将书本上的知识运用到实践当中去,使知识能更好的融会贯通。为了达到这个目的,我们需要自己动手做一个操作系统的课程设计,在这个课程设计里我们需要根据我们手中现有的和已学过的软件与知识基础,独立的将它完成,只有这样,我们才能把理论变成实践,将知识真正的做到学以致用。这次课程设计主要研究了利用已学的操作系统、C语言、等语言和知识来利用操作系统概念和其中的一门或几门语言来编辑一个售票员与乘客(信号量操作)操作系统。1.2了解进程同步的概念,理解信号量机制的原理,掌握运用信号量解决进程同步问题的方法,进而学会运用进程的同步与互斥。2.课程设计内容售票员与乘客(信号量操作)3.课程设计要求售票员与乘客(信号量操作)13编程序模拟车站售票厅内进程同步问题,售票厅任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,厅外的购票者可立即进入,否则需要在外面等待。每个购票者可看成一个进程。4.课程设计平台vc6.05.需求分析本程序的功能是售票大厅的乘客和售票员的售票以及进入售票大厅的过程,其实也就是一个典型的信号量操作问题,其中主要的两点是1:售票大厅内的人数不能超过20,若超过,则前20人留下,其余到外面排队;2:售票厅中少于20名购票者时,厅外的购票者可立即进入。6.功能设计(数据结构及模块说明)6.1本程序的设计原理比较简单,就是两大部分,一是售票员的行车操作过程,另一个是乘客的进入大厅与出去大厅(以及售票,本程序不讨论售票过程)的过程。现在来说明如何具体实现乘客和售票员售票的相关过程。6.2首先,设置2个私有信号量,分别是乘客和售票员的。其中,乘客的私有信号量设置为spys,其初始值为0;售票员的私有信号量为spy,其初始值为1;以上的初值表示的是乘客和售票员的售票和进出大厅的一个具体初始状售票员与乘客(信号量操作)14态,具体的说也就是售票厅中少于20名购票者时,厅外的购票者可立即进入。人数多余20时,就立即出去多余的人。7.具体流程如下图售票员与乘客(信号量操作)15开始输入上班人数spyspy1Spy=1N输出:sorry!今天售票员不上班N输出:今天开一个窗口请排队,谢谢!Y下一位,乘客(spys)进入售票厅厅内spys20N乘客进入售票大厅输入进入售票厅人数j,售票厅总人数spys=spys+jY乘客太多了,只留下前20人。输入出去人数。售票厅人数为20已达最大人数,厅外乘客请耐心等待YSpy=2N员工有限,没有多余的员工今天开两个窗口,请排成两队,谢谢!Y厅内人数为20,其余乘客请到外面等待,谢谢售票窗口:下两位。两位乘客进入售票大厅售票员与乘客(信号量操作)168.主要函数intp1();//定义P操作函数,一个售票员执行的过程intp2();//定义p操作,两个售票员执行该过程intj=0;//人多时,减少的人数intv1();//V操作函数,一个售票窗口时购买者执行的过程intv2();//V操作函数,两个售票窗口时购买者执行的过程voidHello();//输出客套语句voidIntroduce();//本客运站人员介绍ck++;//v操作ck--;//相当于p操作9.运行结果:结束售票员与乘客(信号量操作)17售票员与乘客(信号量操作)18售票员与乘客(信号量操作)1910.课程设计设计体会10.1经过短暂的一周多的操作系统的程序设计,使我又学到了很多知识,尤其是运用操作系统,c语言知识去解决实际问题的能力又得到了很大的提高。尽管所设计的程序比较简单,但是程序中的每个功能的实现都经过了自己的一定认真的思考。由于把所学的知识做到很灵活的运用在实际中,对于现在的我还有一定的难度,故而,在设计的每个的环节中,都会多多少少的遇到一些问题,这就促使我去查阅各种资料,或者请教老师和同学,极大的提高我的专业素养,同时对在有些书上的理论知识在实际的运用,以及应该注意的问题有了比较深刻的售票员与乘客(信号量操作)110认识。当然,仍然有些理论问题不是很好的去运用,或者是了解的不深刻。这就使我在实践中所设计的程序有些功能并不是自己所想的那样的完美。不过,既然发现了问题的所在,我就不会放弃,直至问题得到解决。这些也同时反映出了平时运用知识去实践这方面做的太少,太缺乏经验。对所设计中将要面临的问题认识不够。是操作系统课程设计让我认识到了这些问题的存在。同时给我提供了去面对这些问题的平台。也使我充分的认识到在以后应该怎样去实践,怎样去学习一门计算机的课程或者语言,以及如何去运用这门课程或语言去解决实际问题等等。10.2通过本实验,综合了以往实验的要求,实现了一个售票大厅售票员与乘客的模拟操作系统,比较大的工作量使我紧一部清楚售票员和乘客之间的联系,从而通过函数实现,从上而下,逐步深入,基本符合结构化的要求。通过实验,训练了我的编程技巧,掌握相关文件系统管理的知识,逐渐熟悉操作系统的基本管理流程,有助于日后程序编写工作。总之,在经过这次操作系统的课程设计,使我认识到了自己很多的缺点,也是我学到新知识和新方法的一个机会。这给我在以后继续学好这门语言指明了方向。最后真心的感谢老师在我学习过程中和课程设计过程中对我的认真指导和耐心的帮助!售票员与乘客(信号量操作)11111.参考文献[1]张尧学主编.计算机操作系统教程(第三版).北京:清华大学出版社,2006[2]张尧学编.计算机操作系统教程(第三版)习题解答与实验指导.北京:清华大学出版社,2006[3]汤子瀛主编.计算机操作系统(第三版).西安:西安电子科技大学出版社,2001[4]张坤等编.操作系统实验教程.北京:清华大学出版社,2008[5]张丽芬等编.操作系统实验教程.北京:清华大学出版社,2006[6]屠祁等编.操作系统基础(第三版).北京:清华大学出版社,2000[7]冯耀霖等编.操作系统.西安:西安电子科技大学出版社,2001[8]左万历.计算机操作系统教程(第二版).北京:高等教育出版社,2004[9]谭浩强.《C语言程序设计》.北京:清华大学出版社2003[10]庞丽华.《操作系统原理》(第四版).北京.华中科技大学出版社2002售票员与乘客(信号量操作)112附加代码:#includestdio.h#includestdlib.h#includewindows.h#includeconio.h#defineMAX20intspys=1;intspy;intck=0;intn=MAX;intx;intp1();intp2();intj=0;intv1();intv2();voidHello();voidIntroduce();intmain(){Introduce();printf(输入上班人数:\n);scanf(%d,&spy);switch(spy){case0:{printf(sorry!今天售票员不上班!\n);break;}case1:{prin
本文标题:操作系统
链接地址:https://www.777doc.com/doc-3356681 .html