免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3856 | 回复: 16
打印 上一主题 下一主题

进程池与共享内存 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-21 14:14 |只看该作者 |倒序浏览
这是一个以前有人问过的问题(chdonald  问的:请教进程池开发的几点疑问),小弟功力尚浅还是有一些不明白。
即主进程在LISTEN到某端口上后启动N个子进程,由这N个初始的子进程共同针对一个listenfd进行ACCEPT,主进程用共享内存来监视子进程的状态,当发现IDLE的子进程少于某个阀值时,就启动几个子进程,如果IDLE子进程大于某个阀值时,就杀掉几个子进程
我觉得用共享内存是实现了,自进程与父进程之间的一些信息传递,这些信息主要是用来监控子进程的状态,但是我还是想不通,父进程应该怎么去处理,用一个无限循环去处理,很明显太浪费系统资源了,用信号进行处理。呵呵,有些地方还是不太明白请高手指点一下(signal(SIGCHILD,sig_server),这样处理可以嘛)
另外如果不用共享内存来处理还有别的方法嘛

论坛徽章:
0
2 [报告]
发表于 2005-03-21 15:12 |只看该作者

进程池与共享内存

既然没人回答,我先来说一下我得思路,抛砖引玉一下。
我在父进程里,设置一个自定义信号,当父进程扫描到子进程的空闲值大于阀值或小于阀值时,触发信号灯,由该信号处理,检测空闲子进程的数目进行比较,然后决定下一步怎么处理
这种方法可不可以需要注意哪些事情
还有没有别的处理方法
呵呵 希望大家不吝赐教

论坛徽章:
0
3 [报告]
发表于 2005-03-21 15:41 |只看该作者

进程池与共享内存

呵呵 其实我主要想知道父进程如何扫描子进程的状态 何时服务请求达到峰值
我是作一个控制台时刻监测何时达到峰值 还是用alarm()定时检查了
还是有别的什么方法了

论坛徽章:
0
4 [报告]
发表于 2005-03-21 15:42 |只看该作者

进程池与共享内存

>;>;父进程应该怎么去处理,用一个无限循环去处理,很明显太浪费系统资源了,用信号进行处理
在父进程中用alarm设置定时器,在SIGALRM信号处理程序中访问共享内存,判断空闲子进程数目

论坛徽章:
0
5 [报告]
发表于 2005-03-21 16:11 |只看该作者

进程池与共享内存

我也知道用这种方法 设一个alarm 但是那样同样浪费资源呀,并且时间间隔设的太小,资源浪费严重,设的太大,往往不能实时的反映服务高峰的到来
呵呵 难办呀
lisp
你觉得在写一个控制台程序时刻检测共享内存里的,进程状态这种方法怎么样呀 或是还有其它更好的办法嘛

论坛徽章:
0
6 [报告]
发表于 2005-03-21 16:27 |只看该作者

进程池与共享内存

还有一种方法 我在每个子进程通讯结束时检查共享内存里的子进程结构信息
对了我借用了 蓝色键盘的方法 在申请了一个管理子进程的结构在共享内存里
type struct  
{
     pid_t ppid;  /*进程pid*/
     int      pidnum;/*总进程的数量*/
     int      initnum;/*初始子进程数量*/
     int      idlemun /*空闲子进程的个数*/
     int      busymun /*非空闲子进程的个数*/
          .....
}
希望大家踊跃发言 不发言的也顶一下嘛

论坛徽章:
0
7 [报告]
发表于 2005-03-21 16:35 |只看该作者

进程池与共享内存

你写控制台程序来检测共享内存同样存在前面提到的问题吧
我没有用过进程池,很多细节的东西都不了解,借你这个问题学习一下   [/code]

论坛徽章:
0
8 [报告]
发表于 2005-03-21 16:53 |只看该作者

进程池与共享内存

呵呵 共同学习
我得理解是用控制台程序来监控的话 这样就对我得应用程序的影响比较小嘛
其实解决问题不是主要的主要是要用最好的方法解决问题
我也是对共享内存一知半解,
呵呵,共同学习是我得主要目的

论坛徽章:
0
9 [报告]
发表于 2005-03-21 17:04 |只看该作者

进程池与共享内存

〉〉我得理解是用控制台程序来监控的话 这样就对我得应用程序的影响比较小嘛
我觉得用主进程去监控和管理子进程应该是比较自然和符合逻辑的想法,如果你另外写监控程序的话,它还要同你原来的主进程通信,岂不是更麻烦、更浪费
刚刚翻了侠unp第一卷,第27章有介绍线程池的,不知道你看过没有,我准备仔细看看先

论坛徽章:
0
10 [报告]
发表于 2005-03-21 17:18 |只看该作者

进程池与共享内存

什么是侠unp?
呵呵请教了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP