《linux操作系统设计实践》

《linux操作系统设计实践》

ID:2010500

大小:109.50 KB

页数:14页

时间:2017-11-14

《linux操作系统设计实践》_第1页
《linux操作系统设计实践》_第2页
《linux操作系统设计实践》_第3页
《linux操作系统设计实践》_第4页
《linux操作系统设计实践》_第5页
资源描述:

《《linux操作系统设计实践》》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《LINUX操作系统设计实践》实验(小组)报告2007-2008学年第一学期学院: 数学与计算机学院专业:计算机科学与技术班级1班组长:张伟华学号:040500004组员:白鸿达030501103王 凡 030501121  报告时间:2008-1-8任课教师:  郭朝珍,程烨实验三综合应用实验【实验目的】本实验旨在提高对系统软件(操作系统)的理解。提高在Linux操作系统下的系统编程的综合能力。【实验预备内容】阅读教材《linuxC编程》及相关资料,充分了解进程间通信、控制、并发的方法,及Linux环境下开发程序的方法。【实验内容】在实验1和实验2的基础上

2、,灵活应用Linux操作系统的系统功能调用,结合以前学过的操作系统知识,在基本要求的基础上,自由设定应用背景,写出具有某些应用意义的综合程序,题材不限,要求支持多用户,例如:生产者——消费者问题,客户机——服务器模型类的程序方案(如买票)等。程序的运行和输出结果要求能够体现出运行的流程以及一定的时序关系,便于演示和理解;进程的等待,进程间的通信状态等信息要显示在界面上。【实验要求】在linux下编程实现服务端与客户端的通信【综合应用设计的需求分析及设计思路】在售票系统中加入了以下几个功能:1、用户注册:为本系统的安全做保障2、售票:本系统的核心3、查票:查询

3、票的种类、剩佘数目及票价4、新增票:增加票种5、换票:改变某种票的数量【程序流程图】1、查票2、买票3、加票4、换票0、退出运行程序查看票信息退出用户登入加入相应票完成注册买票注册用户继续ny退出输入票名及数量ny继续购买yn【程序代码及分析说明】structMsguser//usedformsg用于消息{longmtype;intcsid;intop;intnum;intnumbers;charusername[50];charuserpwd[50];}user;intuser_init();//用户初始化intticket_init();//票初始化in

4、tlogin();登陆voidticket_list(int);列出票情况intticket_book(int,int);//买票intnewuser();//新增用户intnewticket();//新增票intchangticket(int,int);//换票【实验运行环境(软硬件等)】在linux虚拟机下编译,运行程序【实验编译运行情况(包括运行界面)】首先运行服务端程序,再运行客户端程序。在客户端可以看到登陆,注册用户,查看票数,买票,以及新增票和改变票数(后面两个主要是用于服务端的初始化数据,做在客户端模拟)。首先先按2注册一个用户,输入用户名,输

5、入密码,再次输入密码,若一样才会成功,若不一样会要求重输,在服务端会打出addnewuser。成功后会返回上一个界面。这时要可以登陆。按1进入,输入用户名,输入密码送到服务端,验证正确后服务端会打印出login,并发消息给客户端通知成功,并在客户端显成登陆成功,否则会提示错误,重新选择。接下来用户可以选择查看票数或买票。首先先按3查看票数。这样发送一个信号到服务端后,服务端会将最新情况用消息传给客户端,并在客户端上显示票的代码,票的目的地以及票数。显示如下Codearriveaddressnumbers1beijing202fuzhou503guangzho

6、u35……………………………………………………Press1tobookticketorpress2toback这样,按2可以返回。按1可以买票进入买票界面,提示inputticketcodeandnumberstobuy输入 2 5,这样就可以购买到fuzhou的票5张。将信息传送到服务端后,服务端会判断是否轮到可以购买,是的话判断否剩余的票大于所需的数目,是即可以购买,否则不能购买,返回。(作为用于服务端初始化的新增票和改变票数主要是为了对服务端进行设置,当选择新增票,会要求输入票的目的地以及票数,并将其写入文件中保存,还有刚才上面的操作也都会写入文件保存

7、。改变票数则是当票数为0或不足时可以更新。操作与买票大致相同。)【设计的优缺点及改进方向】程序界面简洁,结构清晰,就于进程通信有了很好的运用,还有进文件的读与写操作,采用二进制流的方法,用以结构为单位进行读写,这样可以快速,有效的进行信息交换。由于采用了消息队列,服务端本应采用当有一个新的客户端就应采用fork新建一个进程去处理,然后采用信号灯对资源进行同步互斥的加锁,但想到如果客户端很多,这样效率非常低,所以一时没有采用这种方法,但由于消息队列本身就有排队了,而服务端接收一个消息处理一个,也就相当于有了加锁的相似之处,但这样如果用户数量众多,处理就不是那么

8、快了。还有在对文件的操作,本应采用数据库的,但由于条

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。