Linux 2.4版本的内核之前,Nginx的事件驱动方式是使用的poll、select函数。进程需要等待连接上有事件发生(收到数据)时,需要把所有连接都告诉内核,由内核找出哪些连接上有事件发生。由于需要把大量连接从用户空间拷贝到内核空间,所以开销巨大,因此,使用poll、select事件驱动方式,最大并发数量只能达到几千。Linux 2.6版本之后添加了epoll函数接口,使得最大并发数量可以达...
分类:
其他好文 时间:
2014-07-13 17:27:34
阅读次数:
311
read属于系统调用,它的缓存是基于内核的缓冲,是记在内核空间的. 而fgetc是标准函数, 是在用户空间I/O缓冲区的比如用fgetc读一个字节,fgetc有可能从内核中预读1024个字节到I/O缓冲区中,再返回第一个字节,这时该文件在内核中记录的读写位置是1024,而在FILE结构体中记录的读写...
分类:
其他好文 时间:
2014-07-09 13:43:13
阅读次数:
282
多线程编程
Linux线程概述
线程模型
线程是程序中完成一个独立任务的完整执行序列,即一个可调度的实体。根据运行环境和调度者的身份,线程可分为内核线程和用户线程。内核线程,在有的系统上也称为LWP(Light Weigth Process,轻量级进程),运行在内核空间,由内核来调度;用户线程运行在用户空间,由线程库来调度。当进程的一个内核线程获得CPU的使用权时,它就加载并...
分类:
编程语言 时间:
2014-07-08 19:45:08
阅读次数:
219
Linux 进程间通信(IPC):
Linux系统中除了进程和进程之间通信,我想大家也应该关注用户空间与内核空间是如何通信的,比方说netlink等等。除了传统进程间通信外像Socket通信也需要掌握的!
/*--------------------------------------------------------------------------
* Project: aipc...
分类:
系统相关 时间:
2014-06-17 23:08:03
阅读次数:
331
select,poll,epoll简介selectselect本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是:1
单个进程可监视的fd数量被限制2 需要维护一个用来存放大量fd的数据结构,这样会使得用户空间和内核空间在传递该结构时复制开销大3 对socket进行...
分类:
其他好文 时间:
2014-06-12 11:04:07
阅读次数:
207
“zero-file-copy”是仅仅提供给NIO传输方式使用的特性。这个特性允许你以很快并且高效的方式从文件系统之来传输内容。这个特性把本地文件中的字节内容可以不通过从内核空间复制到用户空间的情况下通过网络传输出去。...
分类:
Web程序 时间:
2014-06-02 15:06:34
阅读次数:
365
proc为一个内核数据结构接口,用户空间和内核空间可以通过该接口通信,
与普通文件不同的是,这些虚拟文件的内容都是动态创建的。
proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。
它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序
可以通过 proc得到系统的信息,并可以改变内核的某些参数。
proc
文件系统可以被用于收集有用的关于系统和运行中的内...
分类:
系统相关 时间:
2014-06-02 12:37:22
阅读次数:
388
一、lvs组件介绍lvs的组件由两部分组成:工作在内核空间的ipvs模块和工作在用户空间ipvsadm工具。其中ipvsadm是规则生成工具,而ipvs是一个使规则生效的工具。二、ipvsadm详解
分类:
其他好文 时间:
2014-05-20 17:57:55
阅读次数:
276
异步IO
在操作系统中,程序运行的空间分为内核空间和用户空间。我们常常提起的异步I/O,其实质是用户空间中的程序不用依赖内核空间中的I/O操作实际完成,即可进行后续任务。同步IO的并行模式多线程单进程
多线程的设计之处就是为了在共享的程序空间中,实现并行处理任务,从而达到充分利用CPU的效果。多.....
分类:
Web程序 时间:
2014-05-19 12:46:00
阅读次数:
529