原创 異步IO、APC、IO完成端口、線程池與高性能服務器之一 異步IO

背景:輪詢 PIO DMA 中斷    早期IO設備的速度與CPU相比,還不是太懸殊。CPU定時輪詢一遍IO設備,看看有無處理要求,有則加以處理,完成後返回繼續工作。至今,軟盤驅動器還保留着這種輪詢工作方式。     隨着CPU性能的迅速

原创 多線程服務器的常用編程模型

多線程服務器的常用編程模型     陳碩 (giantchen_AT_gmail) Blog.csdn.net/Solstice 2009 Feb 12   建議閱讀本文 PDF 版下載: http://files.cppblog.com

原创 Linux對I/O端口資源的管理(ZZ)

  幾乎每一種外設都是通過讀寫設備上的寄存器來進行的。外設寄存器也稱爲“I/O端口”,通常包括:控制寄存器、狀態寄存器和數據寄存器三大類,而且一個外設的寄存器通常被連續地編址。CPU對外設IO端口物理地址的編址方式有兩種:一種是I/O映射

原创 異步IO、APC、IO完成端口、線程池與高性能服務器之四 線程池

線程池下面摘抄於MSDN《Thread Pooling》。有 許多應用程序創建的線程花費了大量時間在睡眠狀態來等待事件的發生。還有一些線程進入睡眠狀態後定期被喚醒以輪詢工作方式來改變或者更新狀態信息。線程池可以讓你更有效地使用線程,它爲你

原创 軟件開發人員常用的網站

http://www.gotapi.com/ 語言:英語 簡介:HTML,CSS,XPATH,XSL,JAVASCRIPT等API的查詢網站。http://www.w3schools.com/ 語言:英語 簡介:W3C制定的標準諸如XML

原创 boost::asio 的同步方式

Boost.Asio是一個跨平臺的網絡及底層IO的C++編程庫,它使用現代C++手法實現了統一的異步調用模型。 頭文件 #include <boost/asio.hpp> 名空間 using namespace boost::asio;

原创 ICE線程池模型 — L/F領導者跟隨者模式

ICE線程池模型 — L/F領導者跟隨者模式 摘自:Leo 阿材網址:http://blog.csdn.net/ecjtuync/archive/2009/06/15/4270314.aspx 程池模式一般分爲兩種:L/F領導者與跟隨

原创 線程同步-信號量-strand的用法總結

這裏展示不用boost::asio::strand而是利用常規線程同步的手段來完成線程的同步。   #include <iostream> #include <boost/asio.hpp> #include <boost/thread.

原创 多線程服務器的適用場合

陳碩 (giantchen_AT_gmail) Blog.csdn.net/Solstice 2010 Feb 28 這篇文章原本是前一篇博客《多線程服務器的常用編程模型》(以下簡稱《常用模型》)計劃中的一節,今天終於寫完了。 “服務

原创 《多線程服務器的適用場合》例釋與答疑

陳碩 (giantchen_AT_gmail) Blog.csdn.net/Solstice 2010 March 3 - rev 01 《多線程服務器的適用場合》(以下簡稱《適用場合》)一文在博客登出之後,有熱心讀者提出質疑,我自己

原创 異步IO、APC、IO完成端口、線程池與高性能服務器之五 服務器的性能指標與實現高性能的途徑

服務器的性能指標    作爲一個網絡服務器程序,性能永遠是第一位的指標。性能可以這樣定義:在給定的硬件條件和時間裏,能夠處理的任務量。能夠最大限度地利用硬件性能的服務器設計纔是良好的設計。    設計良好的服務器還應該考慮平均服務,對於每

原创 中斷處理的tasklet(小任務)機制和workqueue(工作隊列)機制

一、中斷處理的tasklet(小任務)機制 中斷服務程序一般都是在中斷請求關閉的條件下執行的,以避免嵌套而使中斷控制複雜化。但是,中斷是一個隨機事件,它隨時會到來,如果關中斷的時間太長,CPU就不能及時響應其他的中斷請求,從而造成中斷的丟