Linux 高性能服务器编程:高性能定时器

Linux 高性能服务器编程:高性能定时器 5

bingliaolong Linux 3年前 7 0

高性能定时器 时间论 基于排序链表的定时器存在一个问题:添加定时器的效率偏低 时间论解决了这个问题 上图所示时间论,(实线)指针指向轮子的一个槽(slot)。 它恒定的速度顺时针转动,每转动一步就指向下一个槽(虚线指向的槽),每次转动称为一个滴答(tick)。 一个滴答的时间称为...

Linux 高性能服务器编程:定时器

Linux 高性能服务器编程:定时器

bingliaolong Linux 3年前 4 0

概述 网络程序需要处理的第三类事件是定时器事件,比如定期检测一个客户连接的活动状态。 服务器程序通常管理着众多定时事件,因此有效地组织这些定时事件,使之能在预期的时间点被触发且不影响服务器的主要逻辑,对于服务器的性能有着至关重要的影响。 为此,需要将每个定时事件分别封装成定时器,...

Linux » Linux 高性能服务器编程:信号

Linux » Linux 高性能服务器编程:信号 6

bingliaolong Linux 3年前 6 0

概述 信号是由用户 、系统或者进程发送给目标进程的信息,以通知目标进程某个状态的改变或系统异常。 Linux信号产生条件: 对于前台进程,用户可以通过输入特殊的终端字符来给它发送信号。 比如Ctrl+C通常会给进程发送一个中断信号。 系统异常。 比如浮点数异常和非法内存段访问。 ...

Linux 高性能服务器编程:I/O复用二

Linux 高性能服务器编程:I/O复用二 3

bingliaolong Linux 3年前 4 0

三组I/O复用对比 概述 上述select,poll和epoll都能同时监听多个文件描述符。它们将等待由timeout参数指定的超时时间,直到一个或多个文件描述符上有事件发生时,返回值是就绪的文件描述符的数量。返回0表示没有事件发生。 这3个函数都通过某种结构体变量来告诉内核监听...

Linux 高性能服务器编程:I/O复用一

Linux 高性能服务器编程:I/O复用一 2

bingliaolong Linux 3年前 8 0

概述 I/O复用使得程序能同时监听多个文件描述符,这对提高程序的性能很重要。 通常,网络程序在下列情况下需要使用I/O复用技术: 客户端程序要同时处理多个socket。 客户端程序要同时处理用户输入和网络连接。 TCP服务器要同时处理监听socket和连接socket。 服务器要...

Linux 高性能服务器编程:高性能服务器架构二

Linux 高性能服务器编程:高性能服务器架构二 7

bingliaolong Linux 3年前 5 0

两种高效的并发模式 并发编程的目的是让程序“同时”执行多个任务。 如果程序是计算密集型的,并发编程并没有优势,反而由于任务的切换使效率降低。 但如果程序是I/O密集型的,比如经常读写文件,访问数据库等,则情况就不同了。 由于I/O操作的速度远没有CPU计算速度快,所以让程序阻塞I...

Linux 高性能服务器编程:高性能服务器架构一

Linux 高性能服务器编程:高性能服务器架构一 8

bingliaolong Linux 3年前 2 0

服务器模型 C/S模型 TCP/IP协议在设计和实现上并没有客户端和服务器的概念,在通信过程中所有机器都是对等的。 C/S模型的逻辑很简单。 服务器启动后,首先创建一个或多个监听socket,并调用bind函数将其绑定到服务器感兴趣的端口上。 然后调用listen函数等待客户连接...

Linux 高性能服务器编程:服务器程序规范

Linux 高性能服务器编程:服务器程序规范 5

bingliaolong Linux 3年前 3 0

概述 守护进程 Linux服务器程序一般以后台进程形式运行。后台进程又称为守护进程(daemon)。 它没有控制终端,因而也不会意外接收到用户收入。 守护进程的父进程通常是init进程(PID为1的进程)。 日志 Linux服务器程序通常有一套日志系统,它至少能输出日志到文件,有...

Linux 高性能服务器编程:高级I/O函数

Linux 高性能服务器编程:高级I/O函数 5

bingliaolong Linux 3年前 5 0

pipe pipe用于创建一个管道,以实现进程间通信。 pipe函数的参数是一个包含两个int的数组指针。 该函数成功时返回0,并将一对打开的文件描述符值填入其参数指向的数组。 如果失败,返回-1并设置errno。 通过pipe创建的这两个文件描述符fd[0]和fd[1]分别构成...

扫一扫二维码分享