一、tcp并发服务器概述
一个好的服务器,一般都是并发服务器(同一时刻可以响应多个客户端的请求)。并发服务器设计技术一般有:多进程服务器、多线程服务器、I/O复用服务器等。
二、多进程并发服务器
在 Linux 环境下多进程的应用很多,其中最主要的就是网络/客户服务器。多进程服务器是当客户有请求时,服务器用一个子进程来处理客户请求。父进程继续等待其它客户的请求。这种方法的...
                            
                            
                                分类:
系统相关   时间:
2015-06-15 16:34:10   
                                阅读次数:
143
                             
                         
                    
                        
                            
                            
                                头文件: #include 
函数说明:
FILE * popen ( const char * command , const char * type );
int pclose ( FILE * stream );
说明:(参考unix环境高级编程)
popen() 函数通过创建一个管道,调用 fork 产生一个子进程,执行一个 shell 以运行命令来开启一个进程。这个进...
                            
                            
                                分类:
其他好文   时间:
2015-06-15 09:14:43   
                                阅读次数:
187
                             
                         
                    
                        
                            
                            
                                1.子进程和父进程各有内存空间,2. 子进程和父进程执行是随机的。3.进程包含线程,一个进程有多个线程,每个线程都有自己单独的栈和寄存器。 为什么呢?如果线程没有自己单独的栈,函数调用就会出乱子,因为栈中存放函数调用的顺序。 寄存器,也一样,容易出错。干脆划分属于自己线程中的那个寄存器。4.进程的属...
                            
                            
                                分类:
系统相关   时间:
2015-06-13 01:05:34   
                                阅读次数:
156
                             
                         
                    
                        
                            
                            
                                Java在调用Shell时,要不断读取进程中标准输出和错误输出流的信息,否则缓冲区被写满就会造成子进程阻塞而无法继续运行下去,可起两个线程不断读取标准输出、错误流信息而不被阻塞importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStream;
import..
                            
                            
                                分类:
编程语言   时间:
2015-06-11 11:13:55   
                                阅读次数:
227
                             
                         
                    
                        
                            
                            
                                在阅读完《unix 网络编程:卷一》之后,感觉作者真是unix下编程的大师级的人物。而对于我个人而言,每次阅读完一本技术书籍之后,一定还是得自己重新再写一遍程序(换点内容),复习书本中的内容(大致结构,或者说思想,相同),否则,你很难做到真的理解并掌握的地步。Okay,今天我带来的是服务器模型中的第一种,也是最基本最常用的一种模型–TCP并发服务器,每个客户一个子进程。先简单介绍一下:TCP并发服务...
                            
                            
                                分类:
系统相关   时间:
2015-06-10 22:39:52   
                                阅读次数:
251
                             
                         
                    
                        
                            
                            
                                # kill -pid注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。为了防止这些所谓的“僵尸进程”,应确保在杀死父进程之前,先杀死其所有的子进程。确定要杀死进程的PID或PPID# ps...
                            
                            
                                分类:
系统相关   时间:
2015-06-10 10:22:13   
                                阅读次数:
201
                             
                         
                    
                        
                            
                            
                                判题分两部分
1.其中judged为服务进程,d即daemon。负责轮询数据库,提取判题队列。当发现新任务时产生judge_client进程。
2.judge_client进程为实际判题程序,负责准备运行环境、数据,运行并监控目标程序的系统调用,采集运行指标,判断运行结果。
Judged流程
初始化:
1.创建子进程pid_judged,并设置为会话的领头进程(u...
                            
                            
                                分类:
其他好文   时间:
2015-06-09 17:08:13   
                                阅读次数:
211
                             
                         
                    
                        
                            
                            
                                pipe实现进程间通信,首先关闭第一个子进程的读入端,然后关闭第二个子进程的写入端#include#include#includeint main(){	int fd[2];	pipe(fd);	pid_t pid = fork();	if(pid==0)	{ close(fd[0]); write...
                            
                            
                                分类:
系统相关   时间:
2015-06-08 19:31:07   
                                阅读次数:
130
                             
                         
                    
                        
                            
                            
                                4、fetch子进程如果收到的后端响应报文的ttl值小于0(失效了),或者响应报文中有Set-cookie首部,或者首部Vary等于“*”,则设定响应报文的ttl值为120秒,返回关键字hit_for_pass进行处理subvcl_fetch{
if(beresp.ttl<=0s||
beresp.http.Set-Cookie||
beresp.http.Vary=="*..
                            
                            
                                分类:
其他好文   时间:
2015-06-07 21:41:37   
                                阅读次数:
209
                             
                         
                    
                        
                            
                            
                                LAMP+LVS+KEEPALIVED(一)1、apache工作模式及参数说明(1)prefork模式prefork是Unix平台上的默认(缺省)MPM,使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接,效率高,但内存占用量比较大。(2)worker模式worker使用多个子进程,每个子进..
                            
                            
                                分类:
其他好文   时间:
2015-06-06 23:47:56   
                                阅读次数:
139