IO Complement Port(完成端口)

转载 2016年06月02日 09:17:47

参考:

        1.  http://www.cnblogs.com/lancidie/archive/2011/12/19/2293773.html   此文很详细地阐述了Overlapped IO, 并重点说明和实现完成端口范例。

        2. 《Win32多线程程序设计》 侯捷译.    第六章Overlapped IO


部分摘录:

   1.所谓 scalable 系统,是指藉着 RAM 或磁盘空间或 CPU 个数的增加而能够提升应用程序效能的一种系统。

        2.  靠着“一大堆线程服务一大堆events ”的性质, completion ports比较容易建立起 “ scalable” 服务器。

   3. IO Completion Ports特点:
        i WaitForMultipleObjects() 不同,这里不限制handles 的个数。
        i I/O completion ports 允许一个线程将一个请求暂时保存下来,而由另一个线程为它做实际服务。
        i I/O completion ports 默默支持 scalable 架构。
        4.   I/O completion port是一种非常特殊的核心对象,用来综合一堆线程,让它们为“overlapped 请求”服务。其所提供的功能甚至可以跨越多个 CPUs,Completion port可以自动补偿成长中的服务器,适合应用于沉重的负担。

   5.大略可以这样描述一个 com pletion port:它是一个机制,用来管理一堆线程如何为completed overlapped I/O requests服务。然而,completion port远比一个简单的分派器丰富得多, I/O completion port 也像一个活门(阀)一样,保持一个CPU 或多个 CPUs 尽可能地忙碌,但也避免它们被太多的线程淹没。 I/O com pletion port 企图保持并行处理的线程个数在某个数字左右。一般而言你希望让所有的CPUs 都忙碌,所以默认情况下并行处理的线程个数就是 CPUs 的个数。

    6. 操作概观

      a. 产生一个 I/O completion port
      b. 让它和一个文件 handle 产生关联。
      c. 产生一堆线程。
      d. 让每一个线程都在 com pletion port上等待。
      e. 开始对着那个文件 handle 发出一些 overlapped I/O 请求。


   7. 产生一堆线程
     一旦 completion port 产生出来,你就可以设立在该 port 上等待的那些线程了。I/O completion port 并不自己产生那些线程,它只是使用由你产生的线程。因此,你必须自己以 CreateThread() _beginthreadex() (第8章)或AfxBeginThread()(第10 章)产生出线程。当你一产生这些线程时,它们都应该在 completion port 上等待。当线程开始为各个“请求”服务时,池子里的线程的组织如下:
        目前正在执行的线程
      + 被阻塞的线程
      + com pletion port 上等待的线程
     --------------------------------------------
      = 池子里的所有线程的个数




相关文章推荐

完成端口(Completion Port)详解

完成端口(Completion Port)详解          http://blog.csdn.net/piggyxp/article/details/6922277#           ...

完成端口(Completion Port)实现思路浅析 [草稿]

2009-04-14 18:32 完成端口是 NT 架构下一种高效的异步 IO 辅助机制,其使用方法已经被广为讨论,MSDN里面也有很详细的说明和示例。《Windows网络编程》一书...

完成端口(Completion Port)详解

作者:By PiggyXP(小猪)  ,来自http://blog.csdn.net/piggyxp/article/details/6922277 前 言         本系列里完成端...

完成端口(Completion Port)详解

完成端口(Completion Port)详解                     ...

完成端口(Completion Port)详解 转载来自博客园----- By PiggyXP(小猪)

完成端口(Completion Port)详解                     ...

完成端口(Completion Port)详解

完成端口(Completion Port)详解                      ...

完成端口(Completion Port)详解

http://blog.csdn.net/piggyxp/article/details/6922277 手把手叫你玩转网络编程系列之三 完成端口(Completion Port)详解 ----...

理解I/O Completion Port(完成端口)

原文出处:http://www.cnblogs.com/flying_bat/archive/2006/09/29/517987.html Note:该博文最精辟之处在于,把IOCP的设计缘由以及可...

完成端口(Completion Port)详解

手把手叫你玩转网络编程系列之三    完成端口(Completion Port)详解                 ...

Socket I/O模型之完成端口(completion port)

“完成端口”模型是迄今为止最为复杂的一种I/O模型。然而,假若一 的是,该模型只适用于Windows NT和Windows 2000操作系统。因其设计的复杂性,只有在你的应用程序需要同时管理数百乃至上...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)