查看: 2112|回复: 1

[其他] MCF52259的网页并发处理

[复制链接]

该用户从未签到

1

主题

1

帖子

0

新手上路

Rank: 1

积分
0
最后登录
1970-1-1
发表于 2013-2-20 11:54:44 | 显示全部楼层 |阅读模式
MCF52259芯片的操作系统(mqx)是怎么样对网页并发做处理的(请说说一些操作步骤,如怎么设置httpd_struct里面的参数等等)? 涉及到共同处理的数据 又是用什么方式处理的?
我知道答案 目前已有0人回答
回复

使用道具 举报

该用户从未签到

12

主题

66

帖子

0

新手上路

Rank: 1

积分
156
最后登录
1970-1-1
发表于 2013-2-22 18:24:13 | 显示全部楼层

RE:MCF52259的网页并发处理

我也正好做这个,在论坛求解无果之后,终于在美国的freescale社区找到了答案。
首先,对于浏览器的并发访问,MQX RTCS是有很好的限制机制的,每个浏览器的request请求在http server里会以session的形式体现,也就是如果同时有2个用户访问你的server,就会同时产生两个session用以把请求传递到你的cgi中,而且在你处理此cgi后,又会通过各自的session将数据提交给浏览器。在MQX RTCS/httpd/httpd_cnfg.h中,HTTPDCFG_DEF_SES_CNT这个宏定义规定了并发用户的数量,默认最大并发请求是2。所以在默认情况下,最多只能有两个用户并发访问你的server。
其次,并不是设置完最大并发数量之后你的server就高枕无忧了,你还要考虑每个页面的数据是否会导致你的http task的stack溢出...如果你浏览器和你的嵌入式服务器之间的数据量,和你在cgi里申请的buffer超出http task默认stack大小的时候,那必将会导致http task的stack溢出,你的程序势必会出问题,这点你可以根据自己的实际情况,cgi中使用buffer的大小,粗略的估算一下所使用的stack的大小,http task默认stack的大小好像是3500(bytes)(我记不太清楚了)。切记不要让你的stack溢出,否则浏览器并发访问还是会出问题。
最后,对于web网管和其他网管同时访问公共ram的问题,你可以用lwsem_wait和lwsem_post来做一下互斥。这点在操作系统中也很常用,至于MQX提供的轻量级信号量(lwsem)怎么用,你看看user guide,跑跑demo就知道了。
希望上述这些可以帮上你的忙,让你顺利的解决问题~!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-21 01:25 , Processed in 0.085467 second(s), 22 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表