版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1.哲学家的晚餐(50%)用于验证一个常见的冲突问题。在这个问题中,有5个哲学家坐在一个圆桌上。食物摆 在桌子中间,桌子上总共有 5把叉子,每个哲学家的左右手各有一把。因为吃饭时,哲学家需要同时使用左手和右手的叉子,所以哲学家必须和他左边和右边的哲学家共享叉子。在这个实验中,假定哲学家每次吃饭的时间长度为单位1,吃完一次后则放下两把叉子。如果等待10个单位时间长度之后,哲学家仍没有得到叉子吃饭,则被饿死。你需要设计一种方法 使得任何一个哲学家都不被饿死。需要考虑的问题:死锁! !当每个哲学家同时拿到左手的叉子时,同时,每个人又在等待右手的叉子。然而,没有哲学家会放下手中的叉子,所以永远没有人能
2、够开始吃饭。这种情况就会产生死锁并导致永远循环等待。提示:为了解决这个问题,你需要使用二进制信号量。为每个叉子创建一个信号量。拿到叉子可以通过调用semTake()来实现,放下叉子可以通过调用semGive()来实现。避免出现死锁,在死锁即将发生前解除死锁。通过定时器判断哲学家是否被饿死。TCP双机通信(40% )安装Tornado ULIP仿真网卡驱动,启动 2个带有网络的vxSim目标系统。参考实验给出的源代码tcpServer.c和tcpClient.c ,编程实现2个vxSim目标系统之间的 TCP通信。TFTP文件传输(10%)安装Tornado ULIP仿真网卡驱动, 启动带网络的
3、 vxSim目标系统,vxSim为tftp Client , 本地主机或远端主机为 tftp Server。T即 Client通过tftp协议从主机上读取一个自定义的文 本文件,并打印在 VxSim的控制台上。提示:在本地主机或远端主机上安装 tftp server软件(可以从网上下载)。首先要能配 置vxSim的WindSh能够ping通本地主机或远端主机。 VxSim必须支持tftp协议,支持ICMP 协议等。要求:.完成源代码编程,源代码随实验报告一起交。.完成实验报告,实验报告中每个实验应包括1)实验原理介绍;2)代码设计说明;3)截取程序运行Z果图片;4)程序调试记录,逐条说明。.将
4、实验报告(文件名为:学号姓名.doc,例如,045888程胜.doc),源代码目录(src*.c)用 WinZip 打包成学号姓名.zip,发送到 HYPERLINK mailto:censen censen QQ: 1801846附录1: TCP双机通信源代码/* tcpExample.h - header used by both TCP server and client examples */*定义结构体,保存待传输的信息,是否回应,以及信息长度*/#define SERVER_PORT_NUM#define SERVER_WORK_PRIORITY#define SERVER_STA
5、CK_SIZE#define SERVER MAX CONNECTIONS5001/* servers port number for bind() */100/* priority of servers work task */10000 /* stack size of servers work task */4/* max clients connected at a time */#define REQUEST_MSG_SIZE#define REPLY_MSG_SIZE1024/* max size of request message */500/* max size of rep
6、ly message */* structure for requests from clients to server */struct requestint reply;/* TRUE = request reply from server */int msgLen;/* length of message text */char messageREQUEST_MSG_SIZE; /* message buffer */;/* tcpClient.c - TCP client example */*TcpServer是下载到Client端的程序,其完成的功能是建立连接,通过套节字进行数据
7、传输,传输的数据包括信息,是否回应。出错,返回错误信息*/#include vxWorks.h#include sockLib.h#include inetLib.h#include stdioLib.h#include strLib.h#include hostLib.h#include ioLib.h#include tcpExample.hSTATUS tcpClient ( char * serverName )/* Server 机的 IP 地址 */struct requestmyRequest; /*定义的结构体,保存信息和回复请求以及信息长度*/ TOC o 1-5 h z s
8、truct sockaddr_in serverAddr; /* server 端的套节字地址*/charreplyBufREPL Y_MSG_SIZE;/*保存回复信息的数组 */charreply;/* 回复请求 */intsockAddrSize;/* server端的套节字地址结构体的长度*/intsFd;/*保存套节字的设备*/intmlen;/*信息长度*/*建立套节字,用于在两机之间进行数据传输*/if (sFd = socket (AF_INET, SOCK_STREAM, 0) = ERROR)perror (socket setup error!n);return (ERR
9、OR); /*套节字建立失败,返回错误信息*/sockAddrSize = sizeof (struct sockaddr_in);bzero (char *) &serverAddr, sockAddrSize);serverAddr.sin_family = AF_INET;serverAddr.sin_len = (u_char) sockAddrSize;serverAddr.sin_port = htons (SERVER_PORT_NUM);if (serverAddr.sin_addr.s_addr = inet_addr (serverName) = ERROR) &(serv
10、erAddr.sin_addr.s_addr = hostGetByName (serverName) = ERROR) perror (unknown server name);close (sFd);return (ERROR);/*服务端不存在,返回错误信息 */if (connect (sFd, (struct sockaddr *) &serverAddr, sockAddrSize) = ERROR)perror (connect);close (sFd);return (ERROR);/*连接客户机与目标机,如果失败返回错误信息*/printf (Message to send:
11、 n);mlen = read (STD_IN, myRequest.message, REQUEST_MSG_SIZE); /*从输入设备检 测保存到 myRequest.message 中*/myRequest.msgLen = mlen;myRequest.messagemlen - 1 = 0;ioctl(STD_IN,FIOFLUSH,NULL);printf(your message:%sn,myRequest.message);/ioctl(STD_OUT,FIOFLUSH,NULL);printf (Would you like a reply (Y or N): n);rea
12、d (STD_IN, &reply, 1); /*从输入设备检测是否要求服务器端回应*/ioctl(STD_IN,FIOFLUSH,NULL);switch (reply)case y:case Y: myRequest.reply = TRUE;break;default: myRequest.reply = FALSE;break;/* 如果输入 Y 或 y 则 myRequest.reply = TRUE ,反之为 FALSE*/ if (write (sFd, (char *) &myRequest, sizeof (myRequest) = ERROR)perror (write);close (sFd);return (ERROR); /* 将 message和 reply 保存到 sFd 中 */*以上过程完成将数据传到服务器端*/if (myRequest.reply)/* if expecting reply, read and display it */if (read (sFd, replyBuf, REPL Y_MSG_SIZE) 0)printf (MESSAGE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年浙科版七年级历史下册阶段测试试卷
- 2025年湘师大新版九年级地理上册月考试卷含答案
- 年产1000万把扳手技改项目可行性研究报告写作模板-申批备案
- 2025年冀教版九年级历史下册阶段测试试卷
- 2025年统编版九年级地理下册阶段测试试卷含答案
- 二零二五年度农家乐生态农业科技示范园合作开发合同范本4篇
- 二零二五版美甲店顾客满意度调查与分析合同模板3篇
- 二零二五宁波教育培训机构教师劳动合同4篇
- 2025年度水上交通船舶驾驶员派遣合同范本4篇
- 二零二五年度住宅小区智能化改造合同4篇
- 《向心力》 教学课件
- 结构力学数值方法:边界元法(BEM):边界元法的基本原理与步骤
- 2024年山东省泰安市高考语文一模试卷
- 工程建设行业标准内置保温现浇混凝土复合剪力墙技术规程
- 北师大版物理九年级全一册课件
- 2024年第三师图木舒克市市场监督管理局招录2人《行政职业能力测验》高频考点、难点(含详细答案)
- RFJ 006-2021 RFP型人防过滤吸收器制造与验收规范(暂行)
- 盆腔炎教学查房课件
- 新概念英语课件NCE3-lesson15(共34张)
- GB/T 3683-2023橡胶软管及软管组合件油基或水基流体适用的钢丝编织增强液压型规范
- 电视剧《琅琊榜》特色分析
评论
0/150
提交评论