- 博客(28)
- 资源 (3)
- 收藏
- 关注
转载 libevent 源码深度剖析十三
libevent 源码深度剖析十三—— libevent 信号处理注意点前面讲到了 libevent 实现多线程的方法,然而在多线程的环境中注册信号事件,还是有一些情况需要小心处理,那就是不能在多个 libevent 实例上注册信号事件。依然冠名追加到 libevent 系列。 以 2 个线程为例,做简单的场景分析。1 首先是创建并初始化线程 1 的 libevent 实例 b
2013-05-30 13:22:40 642
转载 libevent源码深度剖析十二
libevent源码深度剖析十二——让libevent支持多线程张亮 Libevent本身不是多线程安全的,在多核的时代,如何能充分利用CPU的能力呢,这一节来说说如何在多线程环境中使用libevent,跟源代码并没有太大的关系,纯粹是使用上的技巧。1 错误使用示例 在多核的CPU上只使用一个线程始终是对不起CPU的处理能力啊,那好吧,那就多创
2013-05-30 13:18:21 682
转载 libevent源码深度剖析十一
libevent源码深度剖析十一——时间管理张亮 为了支持定时器,Libevent必须和系统时间打交道,这一部分的内容也比较简单,主要涉及到时间的加减辅助函数、时间缓存、时间校正和定时器堆的时间值调整等。下面就结合源代码来分析一下。1 初始化检测 Libevent在初始化时会检测系统时间的类型,通过调用函数detect_monotonic()完成,
2013-05-30 13:17:43 535
转载 libevent源码深度剖析十
libevent源码深度剖析十——支持I/O多路复用技术张亮 Libevent的核心是事件驱动、同步非阻塞,为了达到这一目标,必须采用系统提供的I/O多路复用技术,而这些在Windows、Linux、Unix等不同平台上却各有不同,如何能提供优雅而统一的支持方式,是首要关键的问题,这其实不难,本节就来分析一下。1 统一的关键 Libevent
2013-05-30 13:17:12 568
转载 libevent源码深度剖析九
libevent源码深度剖析九——集成定时器事件张亮 现在再来详细分析libevent中I/O事件和Timer事件的集成,与Signal相比,Timer事件的集成会直观和简单很多。Libevent对堆的调整操作做了一些优化,本节还会描述这些优化方法。1 集成到事件主循环 因为系统的I/O机制像select()和epoll_wait()都允许程序制
2013-05-30 13:10:15 742
转载 libevent源码深度剖析八
libevent源码深度剖析八——集成信号处理张亮 现在我们已经了解了libevent的基本框架:事件管理框架和事件主循环。上节提到了libevent中I/O事件和Signal以及Timer事件的集成,这一节将分析如何将Signal集成到事件主循环的框架中。1 集成策略——使用socket pair 前一节已经做了足够多的介绍了,基本方法就是
2013-05-30 12:23:11 690
转载 libevent源码深度剖析七
libevent源码深度剖析七——事件主循环张亮 现在我们已经初步了解了libevent的Reactor组件——event_base和事件管理框架,接下来就是libevent事件处理的中心部分——事件主循环,根据系统提供的事件多路分发机制执行事件循环,对已注册的就绪事件,调用注册事件的回调函数来处理事件。1 阶段性的胜利 Libevent将I/O事
2013-05-30 11:51:51 654
转载 libevent源码深度剖析六
libevent源码深度剖析六——初见事件处理框架张亮 前面已经对libevent的事件处理框架和event结构体做了描述,现在是时候剖析libevent对事件的详细处理流程了,本节将分析libevent的事件处理框架event_base和libevent注册、删除事件的具体流程,可结合前一节libevent对event的管理。1 事件处理框架-event_base
2013-05-30 11:43:26 608
转载 libevent源码深度剖析五
libevent源码深度剖析五——libevent的核心:事件event张亮对事件处理流程有了高层的认识后,本节将详细介绍libevent的核心结构event,以及libevent对event的管理。1 libevent的核心-event Libevent是基于事件驱动(event-driven)的,从名字也可以看到event是整个库的核心。event
2013-05-30 11:14:00 673
转载 libevent源码深度剖析四
libevent源码深度剖析四——libevent源代码文件组织1 前言详细分析源代码之前,如果能对其代码文件的基本结构有个大概的认识和分类,对于代码的分析将是大有裨益的。本节内容不多,我想并不是说它不重要!2 源代码组织结构Libevent的源代码虽然都在一层文件夹下面,但是其代码分类还是相当清晰的,主要可分为头文件、内部使用的头文件、辅助功能函数、日志、
2013-05-30 11:01:45 690
转载 libevent源码深度剖析三
libevent源码深度剖析三——libevent基本使用场景和事件流程张亮1 前言学习源代码该从哪里入手?我觉得从程序的基本使用场景和代码的整体处理流程入手是个不错的方法,至少从个人的经验上讲,用此方法分析libevent是比较有效的。2 基本应用场景基本应用场景也是使用libevnet的基本流程,下面来考虑一个最简单的场景,使用livevent设置定
2013-05-30 11:00:06 880
转载 clock_gettime系统调用详解
注意1.精确级别,纳秒级别原型long sys_clock_gettime (clockid_t which_clock, struct timespec *tp);which_clock参数解释CLOCK_REALTIME:系统实时时间,随系统实时时间改变而改变,即从UTC1970-1-1 0:0:0开始计时,中间时刻如果系统时间被用户该成其他,则对应的时间相应改变CLO
2013-05-30 10:50:01 35376
转载 Linux设备驱动程序学习-Linux设备模型(总线、设备、驱动程序和类)
文章的例子和实验使用《LDD3》所配的lddbus模块(稍作修改)。总线总线是处理器和一个或多个设备之间的通道,在设备模型中, 所有的设备都通过总线相连, 甚至是内部的虚拟"platform"总线。总线可以相互插入。设备模型展示了总线和它们所控制的设备之间的实际连接。在 Linux 设备模型中, 总线由 bus_type 结构表示, 定义在 :struct bus
2013-05-29 14:58:15 700
转载 Linux驱动之设备模型(1)
1.Overviewl 设备模型是2.6内核引入的新特性,提供了一个独立的机制专门来表示设备,并描述其在系统中的拓扑结构,使得系统具有以下优点:n 代码重复最小化n 提供诸如引用计数这样的统一机制n 可以列举系统中所有的设备,观察它们的状态,并查看它们连接的总线n 可以将系统中的全部设备结构以树的形式完整、有效地展现出来n 可以将设备和其
2013-05-26 19:55:05 773
转载 Web缓存(Varnish方案)
arnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang (http://www.vg.no) 使用3台Varnish代替了原来的12台squid,性能居然比以前更好。Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多。在1975年时,储存媒介只有两种:内存
2013-05-18 18:41:52 829
转载 Linux C函数之文件及目录函数
文件及目录函数(37)chdir, chmod, chown, chrootfchdir, fchmod, fchown, ftruncatelchown, truncate,get_current_dir_name, getcwd, getwdopendir, closedir, readir, scandir, seekdir, rewinddir, telld
2013-05-18 18:29:26 883
转载 Varnish3原理学习
Varnish is a state of the art web accelerator. Its mission is to sit in front of a web server an cache the content. It makes your web site go fast. 以上是官方对varnish的解释,varnish的具体作用就不解释,你如果打算看这篇文章的
2013-05-09 10:35:15 1261
转载 varnish工作原理详细讲解
Varish Configuration Language 简称VCL,通过它我们可以完成一些复杂的逻辑处理。下面将详细介绍: Backend declarations: Java代码 backend www { .host = "www.example.com"; .port = "80"; .connect_t
2013-05-08 16:11:44 7144
转载 varnish几个工具命令行工作情况
varnish通过几个辅助命令行工具观察varnish的工作情况:varnishlog:varnish的日志是写入共享内存的,可以使用varnishlog命令行工具读取 Java代码 [admin@localhost ~]$ varnishlog -c //上面的命令将输出客户端的请求信息
2013-05-08 16:06:20 3106 2
转载 varnish使用汇总
Q:如何配置varnish缓存到硬盘?A:http://softbeta.iteye.com/blog/1681716 Q:如果debug VCL?A:http://stackoverflow.com/questions/12576248/how-to-debug-vcl-in-varnish Q:怎样不重启varnish让新的vcl生效?A
2013-05-08 15:29:03 1020
转载 高性能HTTP加速器Varnish(性能调优篇)
varnish是否能稳定、快速的运行,与Linux本身的优化以及varnish自身参数的设置有很大关系,在varnish安装配置完成后,还必须从操作系统和varnish配置参数两个方面对varnish服务器进行性能优化,从而最大程度上发挥varnish的性能。一、优化linux内核参数内核参数是用户和系统内核之间交互的一个接口,通过这个接口,用户可以在系统运行的同时动态的更新内核配
2013-05-07 15:51:02 855
转载 高性能HTTP加速器Varnish(管理维护篇)
一、varnishd指令Varnish启动的命令是/usr/local/varnish/sbin/varnishd,此命令参数较多,用法比较复杂,在命令行执行“/usr/local/varnish/sbin/varnishd –h”即可得到varnishd的详细用法,表2-6列出了varnishd常用参数的使用方法和含义。表1命令参数 参数含义 -a address:port 表示v
2013-05-07 15:48:58 1059
转载 高性能HTTP加速器Varnish(安装配置篇)
一、安装VarnishVarnish的安装非常简单,下面逐步介绍:1、安装前的准备 Varnish安装环境如下表1所示:表1主机名 操作系统 IP地址Varnish-server CentOS release 5.4 192.168.12.246Web-server CentOS re
2013-05-07 15:14:29 732
转载 Linux+varnish安装配置
1、Varnish简介Varnish是一款高性能且开源的反向代理服务器(Reverse Proxy Server),挪威最大的线上报纸Verdens Gang使用3台Varnish代替了原本的12台Squid, 性能比以前更好。Varnish的作者Poul-Henning Kamp是FreeBSD核心的开发人员之一,他认为现在的电脑比起1975年已经复杂许多。在那个时代,存储媒介只有两
2013-05-07 13:48:52 1209
转载 高性能HTTP加速器Varnish(概念篇)
一、 Varnish概述 Varnish是一款高性能且开源的反向代理服务器和HTTP 加速器,它的作者Poul-Henning Kamp是FreeBSD核心的开发人员之一,Varnish采用全新的软件体系机构,和现在的硬件体系配合紧密。作者认为现在的电脑比起1975年已经复杂许多。在1975年时,储存媒介只有两种:内存与硬盘。但现在计算机系统的内存除了主存外,还包括CPU内的L1、L2,甚至有
2013-05-06 12:07:24 744
转载 proc源码解析(一)--proc文件系统的内容
在linux系统中,伪文件系统是系统中重要的组成部分,它与普通文件的最大差别在于它的易失性。普通文件都有固定的存储介质,而伪文件系统则存储在内存中,这也使得伪文件系统在系统掉电后,它保存的内容就会挥发掉。Linux系统中存在以下几类伪文件系统:1.procfs:proc提供内核和用户交互的平台,由于其文件格式是ASCII,所以用户可以使用cat,vim,echo等命令查看或修改文件,当然必
2013-05-04 21:08:32 650
转载 linux内核可装载模块(lkm)传参机制 module_param()/module_param_string()
对于如何向模块传递参数,Linux kernel 提供了一个简单的框架。其允许驱动程序声明参数,并且用户在系统启动或模块装载时为参数指定相应值,在驱动程序里,参数的用法如同全局变量。 使用下面的宏时需要包含头文件。 通过宏module_param()定义一个模块参数: module_param(name, type, perm); name既是用户看到的参数名,又是模块内接
2013-05-04 20:53:16 1115
转载 S3C6410处理器介绍
S3C64xx系列的应用处理器芯片是三星主推的,三星目前推出了S3C6400和S3C6410,都是基于ARM11架构的,而且硬件管脚兼容,应该说大致的功能基本相同,比较明显的区别就是S3C6410带有2D/3D硬件加速。大致看了一下,S3C6410是一个强大的应用处理器,我不是在这里做广告,呵呵,因为我正在使用它,有了它,可以做很多东西。 下面,我对S3C6410做个简单介绍,该芯片大
2013-05-02 17:08:35 781
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人