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

重庆做网站的程序员待遇中国移动网站备案管理系统不能用

重庆做网站的程序员待遇,中国移动网站备案管理系统不能用,网站建设好公司哪家好,安徽省建设工程信息网官方网站1.IO多路复用介绍 在使用单进程或单线程情况下,同时处理多个输入输出请求,需要用到IO多路复用;IO多路复用有select/poll/epoll三种实现方式;由于不需要创建新的进程和线程,减少了系统资源的开销,减少了上下…

1.IO多路复用介绍

  • 在使用单进程或单线程情况下,同时处理多个输入输出请求,需要用到IO多路复用;
  • IO多路复用有select/poll/epoll三种实现方式;
  • 由于不需要创建新的进程和线程,减少了系统资源的开销,减少了上下文切换的次数;
    • 上下文切换:从A进程切换到B进程,A进程的资源要完全替换成B进程的资源,是一个耗时的操作;
  • 如果进程同时监听的多个硬件数据都没有准备好,进程切换进入休眠状态,当一个或者多个硬件数据准备就绪后,休眠的进程被唤醒,读取准备好的硬件数据。

 

2.相似的select/epoll方式介绍

框架图: 

原理:(fd代表文件描述符) 

应用层:将要监听的fd添加到可集合中,判断事件的发生,发生的事件保留到集合中,没发生的被清除;

VFS层(虚拟文件系统):(自动执行)

  1.         将用户空间的fd拷贝到内核空间,用户空间的fd被清空;
  2.         通过fd回调每个fd对应的操作方法;
  3.         判断操作方法的返回值,如果全为0,硬件数据都没准备好,进程进入休眠态;
  4.         收到事件唤醒提示,根据集合中的每一个fd回调poll方法,找出发生事件的fd;
  5.         将发生事件的fd重新拷贝回用户空间事件集合;

驱动层:向上提交等待队列头,判断condition的值,根据事件是否发生给一个合适的返回值;

硬件中断层:更改condition值,唤醒进程;

select和poll:

  •         都需要把监控的文件描述符集合都在用户空间和内核空间来回拷贝,消耗资源大;
  •         当有事件发生,都需要遍历文件描述符集合确认哪一个事件发生;
  •         select方式能监听的文件描述符有限(1024个),poll使用pollfd结构解决了此问题;

 

3.epoll方式介绍

        被称为当前时代最好用的io多路复用方式,epoll最大的好处在是监听的fd数目的增长,不会影响执行效率;

        核心操作:一棵树(红黑树)、一张表(内核链表)以及三个接口(epoll_create/epoll_ctl/epoll_wait);

  • epoll_create:创建一个epoll句柄(红黑树根节点);
  • epoll_ctl:实现对于epoll的控制(添加/修改/删除事件);
  • epoll_wait:阻塞等待准备好的文件描述符;

 

框架图 : 

 原理:

        epoll要把检测的事件fd挂载到内核空间红黑树上,遍历红黑树,调用每个fd对应的操作方法,找到发生事件的fd,如果没有发生事件的fd,进程休眠,如果事件发生,将发生事件的fd拷贝一份放到内核链表,每个节点对应一个fd,最后把链表的节点信息传递到用户空间的数组中,用户空间无需判断事件的发生,只需要判断事件类型(读写类型等)。

 应用层:

  •         创建句柄(红黑树);
  •         打开设备文件;
  •         将fd添加到红黑树上;
  •         监听事件是否发生;
  •         循环遍历数组,做事件的处理(判断事件类型进行读写);

VFS层(虚拟文件系统):(自动执行)

  1.         通过fd回调每个fd对应的操作方法;
  2.         判断操作方法的返回值,如果全为0,硬件数据都没准备好,进程进入休眠态;
  3.         收到事件唤醒提示,根据集合中的每一个fd回调poll方法,找出发生事件的fd;
  4.         将发生事件的fd拷贝到内核链表中;

驱动层:向上提交等待队列头,判断condition的值,根据事件是否发生给一个合适的返回值;

硬件中断层:更改condition值,唤醒进程;

4.select/poll,epoll对比总结

相同点:

        select,poll,epoll都是IO多路复用方式,本质上都是同步IO(读写就绪后自己负责读写);

不同点:   
  •         select/poll每次调用都要把fd集合从用户空间拷贝到内核空间,最后在从内核空间拷贝到用户空间;epoll每次调用,任意个发生事件fd往内核队列挂一次,链表数据从内核空间拷贝到用户空间一次);
  •         select最大监测事件有限(1024个),poll/epoll不受限制;
  •         判断事件发生:select/poll需要不断轮询监测集合fd,epoll直接检查内核链表即可;
http://www.yayakq.cn/news/508782/

相关文章:

  • 惠州中小企业网站制作搜狗站长平台主动提交
  • 网站建设和的注意事项wordpress 本地慢
  • 劳务建筑公司网站代做网站
  • 官方网站建设意义网站模版化配置
  • 苏州网站建设公司科技城现代网站开发建设
  • 做网站价格 网络推广托管服务网络营销推广与策划总结
  • 建立网站的目标外贸看的英文网站
  • 界首网站优化公司洛阳便宜网站建设
  • 百度seo站长向国旗敬礼做美德少年网站
  • 网站建站 seo扁平式网站建设
  • 常用网站后台地址合肥房产网官网首页
  • 网站推广策略怎么写列出网站目录
  • 贵阳网站推广¥做下拉去118crwordpress伪静态配置文件
  • 网站建设网页制作教程化妆品网站建设的策划
  • 安监网站安全建设信息哈尔滨电话本黄页
  • 网站如何做脚注app技术
  • 响应式网站都有哪些特效视频制作软件app
  • vip广告网站建设建立一个企业网站需要花多少钱
  • 汉阳网站建设哪家便宜品牌网站建设咨询
  • 网站开发及服务合同北京网站制作17页
  • 建设银行企业网站访问不了搭建服务器教程
  • 中国广东手机网站建设杭州网站建设模板
  • 海南网站建设多少钱为wordpress设置标签页
  • 新公司网站建设西安的电商平台网站建设
  • 论坛网站需要多大的空间如何做阿里巴巴的网站
  • 可以做结构图的网站外发加工网 在家
  • 万网网站模板下载西部数据网站管理助手v3.0
  • 西安网站建设哪家好邢台网站建设优化
  • 做网站基本流程如何设计商务网站
  • 天津网站开发培训wordpress 小说网站