![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux 高性能服务器编程
文章平均质量分 54
hanqingkuo
爱好学习新知识,爱好编程,希望自己的产品能让更多人使用
展开
-
Proactor 与 reactor的区别
在高性能的IO设计中,有两个比较著名的模式Reactor和Proactor模式, 其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作。 Reactor模式和Proactor模式。 其实阻塞与非阻塞都可以理解为同步范畴下才有的概念, 对于异步,就不会再去分阻塞非阻塞。 对于用户进程,接到异步通知后,就直接操作进程用户空间里的数据好了。 首原创 2016-10-24 21:31:15 · 428 阅读 · 0 评论 -
select poll epoll的区别
这三组系统调用都能同时监听多个文件描述符,他们将等待由timeout指定的超时时间,直到一个文件或者多个文件描述符上有事件发生时返回,返回值就是就绪的文件描述符的数量,返回0表示没有事件发生。 事件集的不同: select的参数类型fd_set没有将文件描述符与事件绑定,它仅仅是一个文件描述符的集合,因此select需要穿入三个这种类型的参数来传入输出可读可写和异常事件,由于内核原创 2016-11-10 08:21:43 · 339 阅读 · 0 评论 -
IA之32位体系下Linux系统下虚拟地址空间映射(上)
(一)inter X86体系发展 (1)在8080-8085这两种体系中,CPU位数均为8位,也就意味着ALU(算术逻辑单元)一次能够计算的整数的最大字节数为1byte,即ALU的宽度为8位,数据总线的条数为8条;地址总线的条数为16条,可寻址能力为2^16=64k,; (2)在8086又开始了一个新的体系,CPU位数为16位;从80386之后CPU位数就真正开始为32位,地址总线为20条。 ...原创 2019-04-16 19:22:47 · 174 阅读 · 0 评论 -
IA之32位体系下Linux系统下虚拟地址映射(下)
在上篇我们讲到段机制实现了逻辑地址到线性地址的映射,接下来检测是否开启分页机制,如果未开启分页机制此时的线性地址就是物理地址;如果开启了分页机制,那么此时的线性地址(虚拟地址)需要经过多级页表映射找到其物理地址。 在介绍之前我们先认识了解一下CPU中的寄存器,主要分为三类,如下图所示: 对于页表映射机制来说根据CPU位数的不同,他们的页表映射级数不同,32位为二级映射,36位...原创 2019-04-16 19:25:48 · 177 阅读 · 0 评论