当前位置: 首页 > news >正文

济南网站建设系统wordpress企业门户网站

济南网站建设系统,wordpress企业门户网站,做英文网站价格,网站ico怎么用1、服务器版本介绍及实现 1、单进程单任务服务器(阻塞IO) 单进程模型,阻塞IO冲突,等待连接时无法读取数据,读取数据时无法连接 比较适合处理单任务,排队处理业务 伪代码 while(true) {addrlensizeof(c…

1、服务器版本介绍及实现

1、单进程单任务服务器(阻塞IO)

单进程模型,阻塞IO冲突,等待连接时无法读取数据,读取数据时无法连接

比较适合处理单任务,排队处理业务

伪代码

while(true)
{addrlen=sizeof(clientaddr);client_sock=accept(sock,&clientaddr,&addrlen);printf("显示连接信息");/*存储sock*//*IO处理*/while(RECV(buf)){//根据读取的数据,判定如何处理SEND(buf);//响应}
}

2、单进程多任务服务器(非阻塞IO)

代码

#include<sock.c>
#define server_ip "192.168.5.133"
#define server_port 9090int main()
{struct sockaddr_in client_addr;int server_sock;int client_sock;server_sock=net_initializer(NULL,server_port,128);socklen_t addrlen;printf("TCP IO Servers Running...\n");char cip[16];ssize_t len;client_info cf; char buf[1500];char* msg="Please try again\n";char tm[1024];int client_array[8000];for(int i=0;i<8000;i++)client_array[i]=-1;int flag;flag=fcntl(server_sock,F_GETFL);flag|=O_NONBLOCK;fcntl(server_sock,F_SETFL,flag);while(1){   addrlen=sizeof(client_addr);if((client_sock=ACCEPT(server_sock,(struct sockaddr*)&client_addr,&addrlen))>0){cf.sockfd=client_sock;inet_ntop(AF_INET,&client_addr.sin_addr.s_addr,cf.ip,16);cf.port=ntohs(client_addr.sin_port);first_response(cf);for(int i=0;i<8000;i++){if(client_array[i]==-1){client_array[i]=client_sock;break;}}}for(int i=0;i<8000;i++){if(client_array[i]!=-1){while((len=RECV(client_sock,buf,sizeof(buf),0))>0){if((strcmp(buf,"time\n"))==0){get_time(tm);SEND(client_sock,tm,strlen(tm),MSG_NOSIGNAL);bzero(tm,sizeof(tm));}else{SEND(client_sock,msg,strlen(msg),MSG_NOSIGNAL);}bzero(buf,sizeof(buf));}if(len==0){printf("client exit\n");close(client_sock);client_array[i]=-1;}}}}close(server_sock);printf("server done\n");return 0;
}

3、多进程多任务服务器(阻塞IO)

1、多进程模型流程

为了让服务端有更好的处理能力,单进程无法满足需求,所以要提升处理单元的数量,为每个客户端分配一个处理单元(Process),让客户端与处理单元绑定,有一个比较好的处理效果

避免阻塞冲突,因为每个处理进程都会分配一个客户端,相互之间没有影响

多进程模型优点

1、可以得到更多的系统时间片,提升服务器处理性能

2、具备并发性,某个进程阻塞,不会影响其他进程,不会导致服务器无法响应

3、即使某些进程放弃cpu,根据就近原则,服务器的其他进程也可以继续使用,cpu使用效率更高

多进程模型处理缺点

1、进程有庞大的内存开销与调度开销,并发数量取决于进程数量导致高并发

2、会出现大量创建销毁进程的开销,当客户端连接后再创建服务进程,不能及时响应

多进程设计思路

客户端调用connect函数连接服务端

服务端的父进程P只做连接,调用accept函数,accept函数返回值为一个新的套接字new_sock

连接成功,表示有新用户,此时父进程调用fork函数创建子进程,创建出了一个处理单元C

此时的子进程继承了父进程的new_sock,并且使用此套接字与客户端进行通信

多进程多任务的难点

回收,避免产生僵尸

只有父进程可以回收子进程,但如果父进程回收子进程,则会与连接操作产生冲突

因此,将父进程分为多个线程,主线程负责连接,普通线程负责回收

使用被动回收策略,父进程执行自身任务,子进程退出后,通知父进程,父进程再进行回收

将捕捉函数,改为回收函数,不按信号数量回收,应当将当前可回收的子进程全部回收释放,避免回收漏掉的问题

多进程模型的回收策略

多个线程,信号行为共享,但是屏蔽字不共享,每个线程拥有自己的屏蔽字

当进程调用函数陷入阻塞,如果在阻塞过程中,产生信号,系统会执行捕捉函数,阻塞函数会被中断

普通线程先设置捕捉,再解除屏蔽

http://www.yayakq.cn/news/141090/

相关文章:

  • 自己做的网站 打开了没有图片西安网站建设咪豆互联
  • 有哪些做数据分析的网站工商注册图片
  • dedecms 网站平面设计是什么意思
  • 网站建设兼职劳务协议网站做301根目录在哪里
  • 内网网站怎么建设世界三大设计奖
  • 成都科技网站建设电话多少钱二次开发创造作用
  • 深度科技商业官方网站my8777网域名查询
  • 淘宝网中国站电脑版登录网站的功能
  • 如何自己做购物网站网站建设服务商都有哪些
  • 网站建设和网站运营包括什么网站建设犀牛
  • 1高端网站建设凤岗网站建设公司
  • 服务器购买网站口碑好的秦皇岛网站建设哪家好
  • 购物网站首页设计建设网站能挣钱吗
  • 谷歌网站开发用什么框架wordpress网络图片不显示
  • 网站添加内容wordpress主题没法用
  • 环保企业的网站怎么做企业网络营销顾问
  • 中明建投建设集团 网站江阴哪家做网站便宜
  • 环保东莞网站建设技术支持网站备案信息核验单填写
  • 网站建设时间及简介wordpress从
  • 中国移动门户网站域名解析错误连不上网
  • 做网站 所需资源seo快排技术教程
  • 美橙建站怎么样网络小白如何建立个人网站
  • 济南模板建站多少钱网站建设任职要求
  • 专做网站漏扫的工具览心文档小程序怎么用
  • 网站更换主机注意网站网上商城建设
  • 如何给自己网站做优化花都建设局网站
  • 网站登录入口网页镇江html5
  • 网络运营推广方式有哪些北京seo优化推广
  • 网站域名行业动态网络游戏制作公司
  • 徐州企业建站系统模板网站后缀cc