|
计算机科学 2002
A Study on the Technology of Dynamic Multithread POOL in TCP Server
|
Abstract:
一、引言在传统的Unix系统下,当一进程需要另一实体去完成某一子任务时,它就创建一个子进程进行处理。多年来,在U-nix系统下的大多数支持并行访问的网络Server都是按这种模式设计和运行的,当父进程接受到来自网络的一个Client的连接时,它就fork一个子进程,并由该子进程去处理这个Client的请求。这种方法存在两个问题: fork的开销比较大,要从父进程到子进程进行存储copy和复制父进程的各种描述等有关信息。并行实现中常采用copy-on-write优化技术来避免在fork时进行从父进程到子进程的立即数据复制,而是当子进程需要相应的数据时再进行复制。尽管如此,fork的开销仍然不能明显地减小。在fork后,需要进程间通信(IPC)在父子进程间进行信息传递。在fork之前,这种信息传递当然是容易的,因为它是在fork时进行直接复制的。但是,从子进程往父进程返回时就有大量的工作要做。