通过实例学习, 构建一个投票(Polls)Application, 目标结果包含两个site, 一个site用来显示投票问题以及投票结果(即将展示出来的网站), 另一个site用来管理Poll实例的增删改查(即后台内容管理CMS).1. 创建工程django-admin.py startprojec...
分类:
移动开发 时间:
2015-04-03 22:19:58
阅读次数:
294
note:epoll使用mmap加速内核与用户空间的消息传递。 这点实际上涉及到epoll的具体实现了。无论是select,poll还是epoll都需要内核把FD消息通知给用户空间,如何避免不必要的内存拷贝就 很重要,在这点上,epoll是通过内核于用户空间mmap同一块内存实现的。
分类:
其他好文 时间:
2015-03-31 21:58:40
阅读次数:
104
poll机制作用:相当于一个定时器,时间到了还没有资源就唤醒进程。
主要用途就是:进程设置一段时间用来等待资源,如果时间到了资源还没有到来,进程就立刻从睡眠状态唤醒不再等待。当然这只是使用于这段时间以后资源对于该进程已经无用的情况。
内核中poll机制的实现过程:
sys_poll函数在include/linux/syscalls.h中声明
//函数定义前加宏asmlinkage...
分类:
其他好文 时间:
2015-03-21 06:25:45
阅读次数:
176
本文主要是为熟悉Linux下网络编程,实现一个简单的网络聊天室程序。 以Poll实现I/O复用技术来同时处理网络连接和用户输入,实现多个用户同时在线群聊。
其中客户端实现两个功能:一:从标准输入读入用户数据,并将用户数据发送到服务器;二:接收服务器发送的数据,并在标准输出打印。
服务端功能为:接收客户端数据,并将客户数据发送到登录到该服务端的所有客户端(除数据发送的客户端外)。...
分类:
其他好文 时间:
2015-03-20 22:08:22
阅读次数:
186
Linux select 机制深入分析
作为IO复用的实现方式,select是提高了抽象和batch处理的级别,不是传统方式那样阻塞在真正IO读写的系统调用上,而是阻塞在select系统调用上,等待我们关注的描述符就绪。当然现在更好的方式是epoll,比如Java中的NIO底层就是用的epoll。这篇文章只是为了搞懂select机制的原理,不看源码就不能说懂这些IO复用手...
分类:
系统相关 时间:
2015-03-20 14:29:27
阅读次数:
220
1、I/O模型 一个输入操作通常包括两个不同阶段:等待数据准备好;从内核到进程拷贝数据。阻塞I/O模型非阻塞I/O模型I/O复用模型:内核发现进程指定的一个或多个I/O条件就绪,它就通知进程,由select和poll两个函数支持信号驱动I/O模型:内核在描述字就绪时发送SIGIO信号通知进程异步I....
分类:
其他好文 时间:
2015-03-19 23:22:12
阅读次数:
127
14.select和poll的区别?Poll和epoll的区别?
(1)select和poll的区别:(参考:http://blog.csdn.net/mituan2008/article/details/6695177)
二者根本的不同是:select()的fd_set是一个位掩码(bit mask),因此fd_set有固定的长度。内核在被编译的时候,可以不受这个长度的限制,因为sel...
分类:
系统相关 时间:
2015-03-19 00:56:12
阅读次数:
279
Client:
#define _GNU_SOURCE 1
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define BUFFER_SIZE 64
int main()
{
const char *ip="12...
分类:
系统相关 时间:
2015-03-16 17:52:16
阅读次数:
182
select的限制用select实现的并发服务器,能达到的并发数一般受两方面限制:1)一个进程能打开的最大文件描述符限制。这可以通过调整内核参数。可以通过ulimit -n(number)来调整或者使用setrlimit函数设置,但一个系统所能打开的最大数也是有限的,跟内存大小有关,可以通过cat /proc/sys/fs/file-max 查看/**示例: getrlimit/setrlimit...
分类:
其他好文 时间:
2015-03-14 21:50:34
阅读次数:
212