IOCP 写服务程序时的关键问题研究[转]

简介:
网络数据传输速度已经不仅仅依赖于带宽的增加,对软件系统提出了更高的要求。随着Windows 对新技术的支持,在现有带宽前提下,开发出更高系统资源利用率、更高数据吞吐量的网络服务程序成为可能。在开发TCP/IP 协议网络服务时,一般使用SOCKET 编程,为了对大量客户端同时响应,必定会创建大量的线程,但是线程是系统资源,它的数量是有限制的,而且在众多线程之间切换也浪费了许多CPU 时间,严重影响了系统的效率。为了解决这些问题,微软花了数年时间进行研究和测试的一种非常好的机制来支持这类服务,这种机制就被称为IOCP。但从目前的现状看,在使用IOCP编写代码的过程中会许多棘手的问题。而其中信息定位、系统资源限制、报文预处理这个问题最具代表性。对此微软专家也提供了相应的说明文档及简单的Demo 程序,但这些资料并没有提供上述问题的完美解答。一些专业开发专家也只专注于其项目特定应用,而且他们也有自身利益及版权的考虑,对上述问题不可能提供完整、实用的解决方法。在研究这些零碎资料基础上,下面将讨论这些问题的起因和解决办法。
 
IOCP 写服务程序时的关键问题研究
http://www.88dev.com/forum-viewthread-tid-184-fromuid-1.html
本文转自狗窝博客51CTO博客,原文链接http://blog.51cto.com/fxh7622/561682如需转载请自行联系原作者

fxh7622
相关文章
|
1月前
|
消息中间件 存储 算法
【软件设计师备考 专题 】操作系统的内核(中断控制)、进程、线程概念
【软件设计师备考 专题 】操作系统的内核(中断控制)、进程、线程概念
82 0
|
22天前
|
Linux 芯片
内核中断体系概括
内核中断体系概括
15 1
|
1月前
|
存储 安全 Linux
深入Linux进程内核:揭开进程工作原理的神秘面纱
深入Linux进程内核:揭开进程工作原理的神秘面纱
50 0
|
9月前
|
Java Linux API
中断-处理程序架构
中断-处理程序架构
100 0
|
5月前
|
监控 算法 Java
进程调度的原理和算法探析
本文探讨了进程调度的原理和算法,并提供了全面的概述。进程调度是操作系统中的重要组成部分,用于决定进程的执行顺序和分配CPU时间。我们讨论了优先级调度和时间片轮转调度算法。优先级调度根据进程的优先级确定执行顺序,可以分为抢占式和非抢占式。时间片轮转调度将CPU时间划分为固定大小的时间片,每个进程在一个时间片内执行。合理设置时间片长度能够避免资源浪费和频繁的上下文切换。最短作业优先和最短剩余时间优先是常见的调度算法,通过预估和动态计算进程的执行时间提高系统效率和响应速度。多级反馈队列调度综合了优先级调度和时间片轮转调度的优点,适应不同类型的进程和任务。通过本文的阐述,读者将对进程调度的原理和算法有
227 0
进程调度的原理和算法探析
|
9月前
|
消息中间件 Unix Linux
计算机操作系统实验三 进程间的通信
计算机操作系统实验三 进程间的通信
233 0
|
消息中间件 Linux
测试理论--进程间通信
进程通信(Interprocess Communication,IPC)是一个进程与另一个进程间共享消息的一种通信方式。消息(message)是发送进程形成的一个消息块,将消息内容传送给接收进程。IPC机制是消息从一个进程的地址空间拷贝到另一个进程的地址空间。
223 0
|
存储 缓存 安全
操作系统底层工作的基本原理
操作系统底层工作的基本原理
340 0
操作系统底层工作的基本原理
|
运维 Linux 调度
一文讲透计算机的“中断”
中断,英文名为Interrupt,计算机的世界里处处都有中断,任何工作都离不开中断,可以说整个计算机系统就是由中断来驱动的。那么什么是中断?简单来说就是CPU停下当前的工作任务,去处理其他事情,处理完后回来继续执行刚才的任务,这一过程便是中断。
303 0
一文讲透计算机的“中断”