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:阶段一,阶段二都飞阻塞

  • 相关阅读:
    软件工程第四次作业
    软件工程第三次作业
    软件工程第二次作业
    软件工程第一次作业
    软件工程最后一次作业
    软件工程第四次作业
    软件工程第二次作业
    软件工程最后一次作业
    软件工程第二次结对作业
    软件工程第三次作业
  • 原文地址:https://www.cnblogs.com/Nvax/p/7571503.html
Copyright © 2011-2022 走看看