摘要:
RT 阅读全文
摘要:
下列内建函数旨在兼容Intel Itanium Processor-specific Application Binary Interface, section 7.4. 因此,这些函数区别于普通的GCC内建函数,不使用”__builtin_”前缀. 这些函数被重载,可以传入多种类型的参数.Inte 阅读全文
摘要:
高并发服务器常由多线程+IO复用服务器(one event loop per thread) 两种I/O多路复用模式:Reactor和Proactor 一般地,I/O多路复用机制都依赖于一个事件多路分离器(Event Demultiplexer)。分离器对象可将来自事件源的I/O事件分离出来,并分发 阅读全文
摘要:
结构 1. handles 资源的标志.这些资源通常包含网络连接,文件,定时器,同步对象等.handles 被用在注册服务器来标记socket,以便同步事件复用(Synchronous Event Demultiplexer)能等待这些资源就绪.注册服务器对两种事件感兴趣,一是连接事件(connet 阅读全文
摘要:
原文: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.87.3870&rep=rep1&type=pdf Abstract 动态内存分配器(malloc/free)在多线程环境下依靠互斥锁来保护共享数据的一致性。使用锁在性能,可用性 阅读全文
摘要:
在多线程应用中,程序员会使用互斥锁(mutex)来同步线程进入可访问共享资源的代码区域的行为。受这些锁保护的代码区域被称为关键代码段(Critical Section)。如果关键代码段中已存在一个线程,那么其他任何线程都不可进入该代码段。 线程应该尽量缩短在关键代码段花费的时间,进而减少其他线程在代 阅读全文
摘要:
进程捕捉到信号对其进行处理时,进程正在执行的正常序列就被信号处理程序临时中断,它首先执行该信号处理程序中的指令。如果从信号处理程序返回(例如没有调用exit或longjmp),则继续执行在捕捉到信号时进程正在执行的正常指令序列。 1. 在信号处理程序中,我们要保证调用”异步信号安全”的函数,即可重入 阅读全文
摘要:
1.进程管理模式 PHP-FPM由1个master进程和N个worker进程组成。其中,Worker进程由master进程fork而来。 PHP-FPM有3种worker进程管理模式。 1. Static 初始化时调用fpm_children_make(wp,0,0,1)函数fork出pm.max_ 阅读全文
摘要:
四种I/O方式的对比 1. Buffered I/O read(file, tmp_buf, len); write(socket, tmp_buf, len); 上下文切换:4次 CPU copy:2次 步骤1:read()系统调用使上下文从用户态切换到内核态。DMA engine从磁盘中读取文件 阅读全文
摘要:
1.什么是false sharing 在对称多处理器(SMP)系统中,每个处理器均有属于自己的本地高速缓存区。 如图,CPU0和CPU1有各自的本地高速缓存区(cache)。线程0和线程1会用到不同的变量,它们在内存中彼此相邻。内存以64字节分割高速缓存行,我们假设红色变量与蓝色变量恰好分配在同一条 阅读全文