Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
kehengzhong authored Nov 14, 2020
1 parent fd555b5 commit 4e95f11
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,17 +47,17 @@ ePump

#### 3.1.1 设备(iodev_t):

针对每个FD,设计了一个数据结构为iodev_t,将一个文件描述符FD看待为一个iodev_t设备,针对这个设备来管理读写状态、FD类型、要处理的读写事件、回调函数和回调参数、四元组地址等等. 我们把TCP监听socket、TCP连接socket(主动连接的、被动接收的)、UDP监听socket、UDP客户socket、Unix Socket、ICMP Raw Socket、UDP Raw Socket等等,都通过iodev_t设备来管理。
针对每个FD,用数据结构为iodev_t来管理,将文件描述符FD当作iodev_t设备,针对设备来管理读写状态、FD类型、要处理的读写事件、回调函数和回调参数、四元组地址等等. 我们把TCP监听socket、TCP连接socket(主动连接的、被动接收的)、UDP监听socket、UDP客户socket、Unix Socket、ICMP Raw Socket、UDP Raw Socket等等,都通过iodev_t设备来管理。

所有的iodev_t设备都会产生事件,ePump系统对iodev_t设备产生的事件进行处理,即通过事件驱动多线程来调用回调函数。

#### 3.1.2 定时器(iotimer_t):

类似iodev_t设备一样能产生驱动事件的还有定时器iotimer_t, 设定一个时间并启动定时器后,系统将从当前时刻起到指定时间到达时,产生Timeout事件。
类似iodev_t设备,能产生驱动事件的还有iotimer_t定时器, 设定一个时间并启动定时器后,系统将从当前时刻起到指定时间到达时,产生Timeout事件。

iotimer_t定时器有一次性的和周期性的,iotimer_t定时器数据结构管理定时器id、回调函数和回调参数、定时的时间等。

在Unix类OS系统中一个进程只能设置一个时钟定时器,由系统提供的接口来设置,常用的有alarm()和setitimer()。对于通信系统中大量存在的定时器应用,同时考虑跨平台性等需求,系统提供的定时器接口一般都不能满足需求。我们在ePump系统中设计了iotimer_t数据结构,可提供毫秒级精度、同时大并发数量的定时器功能实现。
在Unix类OS系统,一个进程只能设置一个时钟定时器,由系统提供的接口来设置,常用的有alarm()和setitimer()。对于通信系统中大量存在各种定时器需求,同时考虑跨平台性等,系统提供的定时器接口一般都不能满足需求。我们在ePump系统中设计了iotimer_t数据结构,可提供毫秒级精度、同时大并发数量的定时器功能实现。

ePump架构中把定时器当做一个重要的基础设施,与文件描述符设备一样被ePump线程监听和管理。

Expand Down

0 comments on commit 4e95f11

Please sign in to comment.