当前位置: 首页 > news >正文

档案网站建设视频揭阳cms建站模板

档案网站建设视频,揭阳cms建站模板,百度 网站改版了,烟台seo管理写在前面 epoll是开发linux高性能服务器的必备技术至#xff0c;epoll本质#xff0c;是服务端程序员的必须掌握的知识。 七、epoll的原理和流程 本节会以示例和图表来讲解epoll的原理和流程。 创建epoll对象 如下图所示#xff0c;当某个进程调用epoll_create方法时#x… 写在前面   epoll是开发linux高性能服务器的必备技术至epoll本质是服务端程序员的必须掌握的知识。 七、epoll的原理和流程   本节会以示例和图表来讲解epoll的原理和流程。 创建epoll对象   如下图所示当某个进程调用epoll_create方法时内核会创建一个eventpoll对象也就是程序中epfd所代表的对象。eventpoll对象也是文件系统中的一员和socket一样它也会有等待队列。内核创建eventpoll对象        创建一个代表该epoll的eventpoll对象是必须的因为内核要维护“就绪列表”等数据“就绪列表”可以作为eventpoll的成员。 维护监视列表   创建epoll对象后可以用epoll_ctl添加或删除所要监听的socket。以添加socket为例如下图如果通过epoll_ctl添加sock1、sock2和sock3的监视内核会将eventpoll添加到这三个socket的等待队列中。添加所要监听的socket        当socket收到数据后中断程序会操作eventpoll对象而不是直接操作进程。 接收数据   当socket收到数据后中断程序会给eventpoll的“就绪列表”添加socket引用。如下图展示的是sock2和sock3收到数据后中断程序让rdlist引用这两个socket。给就绪列表添加引用         eventpoll对象相当于是socket和进程之间的中介socket的数据接收并不直接影响进程而是通过改变eventpoll的就绪列表来改变进程状态。   当程序执行到epoll_wait时如果rdlist已经引用了socket那么epoll_wait直接返回如果rdlist为空阻塞进程。 阻塞和唤醒进程   假设计算机中正在运行进程A和进程B在某时刻进程A运行到了epoll_wait语句。如下图所示内核会将进程A放入eventpoll的等待队列中阻塞进程。epoll_wait阻塞进程       当socket接收到数据中断程序一方面修改rdlist另一方面唤醒eventpoll等待队列中的进程进程A再次进入运行状态如下图。也因为rdlist的存在进程A可以知道哪些socket发生了变化。epoll唤醒进程     八、epoll的实现细节 至此相信读者对epoll的本质已经有一定的了解。但我们还留有一个问题eventpoll的数据结构是什么样子 再留两个问题就绪队列应该应使用什么数据结构eventpoll应使用什么数据结构来管理通过epoll_ctl添加或删除的socket  如下图所示eventpoll包含了lock、mtx、wq等待队列、rdlist等成员。rdlist和rbr是我们所关心的。     就绪列表的数据结构   就绪列表引用着就绪的socket所以它应能够快速的插入数据。   程序可能随时调用epoll_ctl添加监视socket也可能随时删除。当删除时若该socket已经存放在就绪列表中它也应该被移除。   所以就绪列表应是一种能够快速插入和删除的数据结构。双向链表就是这样一种数据结构epoll使用双向链表来实现就绪队列对应上图的rdllist。 索引结构   既然epoll将“维护监视队列”和“进程阻塞”分离也意味着需要有个数据结构来保存监视的socket。至少要方便的添加和移除还要便于搜索以避免重复添加。红黑树是一种自平衡二叉查找树搜索、插入和删除时间复杂度都是O(log(N))效率较好。epoll使用了红黑树作为索引结构对应上图的rbr。   ps因为操作系统要兼顾多种功能以及由更多需要保存的数据rdlist并非直接引用socket而是通过epitem间接引用红黑树的节点也是epitem对象。同样文件系统也并非直接引用着socket。为方便理解本文中省略了一些间接结构。 九、结论 epoll在select和pollpoll和select基本一样有少量改进的基础引入了eventpoll作为中间层使用了先进的数据结构是一种高效的多路复用技术。 再留一点作业 下表是个很常见的表描述了select、poll和epoll的区别。读完本文读者能否解释select和epoll的时间复杂度为什么是O(n)和O(1)     转载于:https://www.cnblogs.com/chihirotan/p/11521068.html
http://wiki.neutronadmin.com/news/226916/

相关文章:

  • 专业外贸网站建设公司排名wordpress访问加密
  • Thinkphp开发wordpressseo页面优化技术
  • 合肥市建设建筑网站怎么确定电商网站建设的目标
  • 南平购物网站开发设计有域名有服务器怎么做网站
  • 网站怎么开启gzipnginx wordpress配置静态化
  • wordpress建站教程贴吧网站建设教学后记
  • 上海建网站开发公禅城网站开发
  • 哈密伊吾县建设局网站wordpress主题修改颜色教程
  • 移动网站 用户体验wordpress底部跟随按钮怎么做
  • 网站优化软件费用沈阳网站建设58同城
  • joomla 网站建设教程营销公司介绍
  • 怎么样在服务器上建设网站ic交易网站建设
  • 网站右侧固定标题怎么做公司网站备案去哪里备案
  • 济宁网站建设云科网络wordpress 插件上传漏洞
  • 网站内容布局网站砍价活动怎么做
  • 门户网站建设进度网页微博视频不能播放
  • 宜兴做网站舆情通
  • 做旅游网站的产品经理如何韩国女排出线
  • wap移动建站系统网站规划与建设心得体会
  • 垣宝建设工程集团网站大学生创新创业大赛
  • 济南上门做睫毛的网站wordpress修改code标签
  • 公司企业免费网站系统网站建设中哪些最重要性
  • 学校网站前置审批如何做建筑一体化的网站
  • php网站开发发展趋势做app 需要先做网站吗
  • 做电商排名网站wordpress 交易插件
  • 股权众筹网站开发如何申请网站域名注册
  • asp.net 网站开发的技术优势上海工商企业查询网
  • 给女朋友做的网站内容wordpress多站点用户互通
  • 织梦cms网站建设建设部网站办事大厅栏目
  • 网站降权处理学做效果图的网站有哪些