zoukankan      html  css  js  c++  java
  • HTTP 并发响应模型

    httpd: MPM 并发响应模型
    prefork(select 1024个并发), worker, event

    1、穿行响应模型

    2、多进程模型,主控进程负责接收链接(监听端口),主控进程fork一个子进程进行通信,子进程占用一个句柄。启动的子进程数量有限,fork的进程需要预先提供好,所以叫prefork。

    3、worker模型,线程模型响应,主控进程fork一个子进程(可以由多个自己进程),子进程内部有多个线程去响应链接。 

    4、event,事件驱动模型,

    I/O模型

    1、同步 synchronous  一个任务的完成需要依赖于另一个任务时,需要被依赖的任务完成,依赖的才能完成。可靠的任务序列,两个任务可以保持一致,要么都完成要么都失败。

       异步:asyncrhonous  调用者无须等待被调用者,只是通知被依赖者,依赖着还会继续执行后面的任务,无须等待被依赖着任务进度。

     

      两者的消息通知机制不同,被调用者响应的方法有两种:

        同步:等待对方返回消息,

        异步:被调用者通过状态、通知或者回调机制,让调用者得到结果。

          状态:通过轮询来查看状态。盲等。

          通知:被条用者完成后会通知调用者完成。

          回调:外表和通知差不多。

      

      调用结果返回之前,调用者的状态有两种:

        阻塞:block :调用结果返回之前,调用者挂起。

        非阻塞:nonblock: 调用结果返回之前,调用者不会被挂起。

      I/O类型:

        网络IO:本质是socket读取:

        磁盘IO:流

        

        每次IO都经由两个阶段:

          第一步:数据先加载至内核内存空间,可以是阻塞或者非阻塞

          第二步:数据从内核缓冲区复制到用户空间的进程内存中去;这个步骤一定是阻塞的

        数据复制两个阶段  

          等待数据准备完成

          数据内核复制到进程

      

       I/O模型:

        同步阻塞:阶段一,阶段二都挂起

        同步非阻塞:阶段一盲等,阶段二挂起

           I/O 复用: 第一阶段阻塞在io复用,第二阶段阻塞在内核。select机制最多1024个并发,poll

        信号驱动IO:第一阶段解脱出来,第二阶段阻塞

        异步IO:阶段一,阶段二都飞阻塞

  • 相关阅读:
    pongo英雄会-幸运数题解
    求最大公约数的算法
    第二课、GUI程序实例分析------------------狄泰软件学院
    第一课、GUI程序原理分析------------------狄泰软件学院
    第六十八课、拾遗:令人迷惑的写法
    第六十七课、经典问题解析五
    第六十六课、c++中的类型识别
    第六十五课、c++中的异常处理(下)
    第六十四课、c++中的异常处理(上)
    第六十三课、C语言的异常处理
  • 原文地址:https://www.cnblogs.com/Nvax/p/7571503.html
Copyright © 2011-2022 走看看