手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>Java技术>列表

Apache中多任务并发处理机制研究(1)

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
mpmt_os2

Unix

prefork

Windows

mpm_winnt

在详细深入的描述各个MPM之前,我们有必要了解一下MPM中所使用到的公共数据结构,主要包括两种:记分板和父子进程的通信管道。记分板类似于共享内存,主要用于父子进程之间进行数据交换,类似于白板。任何一方都可以将对方需要的信息写入到记分板上,同时任何一方也可以到记分板上获取需要的数据。

6.2 MPM公共数据结构

6.2.1记分板

6.2.1.1记分板概述

ApacheMPM中通常总是包含一个主服务进程以及若干个子进程,因此不可避免的存在主进程和子进程通信的问题。Apache中采用了两种主要的通信方法:记分板和管道。

记分板就是一块共享内存块,同时可以被父进程和子进程访问,通过共享实现了父子之间的通信。尽管如此,但是记分板则更主要用于父进程对子进程进行控制。在Apache中主进程的一个重要的职责就是控制空闲子进程的数目:如果空闲子进程过多,则父进程将终止一些子进程;如果空闲子进程太少,则父进程将创建一些新的空闲子进程以备使用。因此,父进程必须随时能够知道子进程的数目以便进行调整。子进程把自己的状态信息忙碌或者空闲写入到记分板中,这样通过读取记分板,父进程就可以知道子进程的数目了。

记分板的数据结构可以描述如下:

typedef struct {

global_score *global;

process_score *parent;

worker_score **servers;

} scoreboard;

该结构定义在scoreboard.h中,由该数据结构可见,Apache中的记分板可以记录三种类型的信息:全局信息、进程间共享信息以及线程间共享信息。

global_score是记分板中描述全局信息的结构,通常这些信息是针对整个

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!